I'm submitting this fast-track for Erik Nordmark, it times out on 10/02/2009. The release binding is Patch.
Background: ---------- Since Solaris 2.0 we have enabled path MTU discovery by default including for UDP and RAWIP sockets. The addition of IP_DONTFRAG [PSARC/2009/494] allows applications to control this. Solaris implements traceroute -F ("dontfrag") to disable path MTU discovery for traceroute. But this is documented as not working in zones. And the implementation doesn't do it for IPv6 at all. BSD implements a -D option to ping(1m) to enable path MTU discovery just like "-F" does it for traceroute. Solaris does not currently implement this option. Details: ------- This case is to introduce ping -D in Solaris and remove the limitations for traceroute -F.. The behavior of ping and traceroute when these options (-D and -F respectively) are not specified is unchanged. Exported Interfaces ------------------------------------------------------------- Interface Classification Comments ------------------------------------------------------------- ping -D option Committed ping(1M) ping -F option Committed traceroute(1M) ------------------------------------------------------------- Man page updates: ================ Add this text to ping(1M): -D Turn off path MTU discovery. For IPv4 this means setting the Don't Fragment bit. For IPv4 and IPv6 this means to not allow fragmentation as the datagrams are sent. If the data_size exceeds the MTU, then ping may report that sending failed due to Message too long. Change the text in traceroute(1M) from: -F Set the "don't fragment" bit. This option is valid only on IPv4. When specified from within a shared-IP zone, this option has no effect as the "don't fragment" bit is always set in this case. to: -F Turn off path MTU discovery. For IPv4 this means setting the Don't Fragment bit. For IPv4 and IPv6 this means to not allow fragmentation as the datagrams are sent. If the packetlen exceeds the MTU, then traceroute may report that sending failed due to Message too long. ---