Re: "IP PMTU discovery"

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Nov 29, 2006 at 06:08:51PM -0500, John Heffner wrote:
> >However the send(2) manpage doesn't make this clear. At least, the version 
> >I
> >have installed in CentOS 4.4 says:
> >
> >       If the message is too long to pass atomically through  the 
> >       underlying
> >       protocol,  the  error  EMSGSIZE  is  returned,  and the message is 
> >       not
> >       transmitted.
> >...
> >       EMSGSIZE
> >              The socket type requires that message be sent  atomically, 
> >              and
> >              the size of the message to be sent made this impossible.
> >
> >It doesn't hint that a retry may succeed.
> >
> >Also, presumably send() returns -1 in this case - how would the application
> >learn what the actual MTU limit encountered was?
> 
> With a getsockopt() of IP_MTU (man 7 ip).

Thanks. Just as a note, ip(7) says:

       IP_MTU_DISCOVER
              Sets  or  receives the Path MTU Discovery setting for a socket.
              When enabled, Linux will perform Path MTU Discovery as  defined
              in  RFC1191  on  this socket. The donâ??t fragment flag is set on
              all outgoing datagrams.  The system-wide default is  controlled
              by the ip_no_pmtu_disc sysctl for SOCK_STREAM sockets, and dis-
              abled on all others.

But I can still see packets being sent with DF=1 from a SOCK_DGRAM socket.

Regards,

Brian.
-
To unsubscribe from this list: send the line "unsubscribe linux-net" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux 802.1Q VLAN]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Git]     [Bugtraq]     [Yosemite News and Information]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux PCI]     [Linux Admin]     [Samba]

  Powered by Linux