enable DPLPMTUD on macOS dual-stack sockets (#4723)

* enable DPLPMTUD on macOS dual-stack sockets

https://datatracker.ietf.org/doc/draft-seemann-tsvwg-udp-fragmentation/
contains details on how IP fragmentation is handled on different
platforms.

* only enable DF on macOS Sequoia (and newer) dual-stack sockets

* fix macOS version numbers

* fix comment in MTU integration test

* skip dual-stack test on old macOS versions
This commit is contained in:
Marten Seemann
2024-12-01 14:50:49 +08:00
committed by GitHub
parent aed4d8df0c
commit a302d7ba4d
4 changed files with 155 additions and 38 deletions

View File

@@ -58,8 +58,8 @@ func wrapConn(pc net.PacketConn) (rawConn, error) {
return nil, err
}
// only set DF on UDP sockets
if _, ok := pc.LocalAddr().(*net.UDPAddr); ok {
// Only set DF on sockets that we expect to be able to handle that configuration.
var err error
supportsDF, err = setDF(rawConn)
if err != nil {