Bug 55861
Summary: | PMTU discovery no longer works in Linux 3.6+ with routers that do not send next hop MTU information | ||
---|---|---|---|
Product: | Networking | Reporter: | Max Bowsher (maxbowsher) |
Component: | IPV4 | Assignee: | Stephen Hemminger (stephen) |
Status: | NEW --- | ||
Severity: | normal | CC: | edward, luke, ramankonna.825 |
Priority: | P1 | ||
Hardware: | All | ||
OS: | Linux | ||
Kernel Version: | 3.6 onwards | Subsystem: | |
Regression: | Yes | Bisected commit-id: |
Description
Max Bowsher
2013-03-27 15:25:13 UTC
The proper handling of these ICMP packets is more clearly explained in RFC1191, in which section 3 contains the statement: Hosts MUST be able to deal with Datagram Too Big messages that do not include the next-hop MTU, since it is not feasible to upgrade all the routers in the Internet in any finite time. The specific problem seems to be in net/ipv4/icmp.c:icmp_unreach() case ICMP_FRAG_NEEDED: info = ntohs(icmph->un.frag.mtu); if (!info) goto out; where the goto skips the later icmp_socket_deliver() that would invoke the upper protocol stack, which seems after a brief look to handle this case fine. Fixed upstream in 3.16 (commit is 68b7107). |