Begin forwarded message:
Date: Fri, 01 Dec 2017 15:54:14 +0000 From: bugzilla-dae...@bugzilla.kernel.org To: step...@networkplumber.org Subject: [Bug 198055] New: Missing mechanism to find maximum datagram sizes (mandated by RFC 1122) https://bugzilla.kernel.org/show_bug.cgi?id=198055 Bug ID: 198055 Summary: Missing mechanism to find maximum datagram sizes (mandated by RFC 1122) Product: Networking Version: 2.5 Kernel Version: 4.13.15-300.fc27.x86_64 Hardware: All OS: Linux Tree: Mainline Status: NEW Severity: high Priority: P1 Component: Other Assignee: step...@networkplumber.org Reporter: kw...@byom.de Regression: No It's currently impossible to reliably implement an application layer protocol with UDP sockets in Linux. Applications can retrieve the PMTU from IP_RECVERR control messages but are unable to account for the variable size of IP and UDP headers beyond hard-coding a large enough guess. Relevant section of RFC 1122 4.1.4 UDP/APPLICATION LAYER INTERFACE The application interface to UDP MUST provide the full services of the IP/transport interface described in Section 3.4 of this document. Thus, an application using UDP needs the functions of the GET_SRCADDR(), GET_MAXSIZES(), ADVISE_DELIVPROB(), and RECV_ICMP() calls described in Section 3.4. For example, GET_MAXSIZES() can be used to learn the effective maximum UDP maximum datagram size for a particular {interface,remote host,TOS} triplet. In particular, GET_MAXSIZES() appears to be missing. -- You are receiving this mail because: You are the assignee for the bug.