After running into issues with UDP in multi-MTU network environment, I started digging through the code and found somewhat inconsistent behavior (if I read the code right) OMan 7 ip¹ declares that ³The system-wide default is controlled by the ip_no_pmtu_disc sysctl for SOCK_STREAM sockets, and disabled on all others.² which led me to think ODF¹ bit will not be set for UDP packets. But.. The code in ip_output.c seems to do the following, 1. If packet size <= current PMTU, then set the DF=1 and send the packet out. 2. If packet size > current PMTU, then set DF=0 and send the packet out after fragmentation. In a network environment where MTU-big and MTU-small co-exist (and have router¹s fragmentation turned off in favor of PMTU discovery), UDP packets that are > MTU-small and < MTU-big find the PMTU effectively but UDP packets that are > MTU-big get dropped. This looks like inconsistent behavior to me and doesn¹t seem to match the advertised behavior. Is there a reason why PMTU support for UDP is somewhat inconsistent ? Is there a reason ODF¹ bit cannot be set on fragmented packets on UDP transmission ? I couldn¹t find anything in RFC for IP protocol. Did I miss something here ? Would it be reasonable if PMTU discovery is performed (DF bit set + appropriate icmp logic) even for locally fragmented packets ? I think this will be a great help for UDP users that don¹t have PMTU handling logic in the application (most udp applications belong to this category in my experience). Thoughts ? Thanks, - Pradeep Vincent -- 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