From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stephen Hemminger Subject: Fw: [Bug 198055] New: Missing mechanism to find maximum datagram sizes (mandated by RFC 1122) Date: Fri, 1 Dec 2017 10:07:03 -0800 Message-ID: <20171201100703.36319d5f@xeon-e3> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit To: netdev@vger.kernel.org Return-path: Received: from mail-pg0-f51.google.com ([74.125.83.51]:41733 "EHLO mail-pg0-f51.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751183AbdLASHM (ORCPT ); Fri, 1 Dec 2017 13:07:12 -0500 Received: by mail-pg0-f51.google.com with SMTP id o2so4794365pgc.8 for ; Fri, 01 Dec 2017 10:07:12 -0800 (PST) Received: from xeon-e3 (76-14-207-240.or.wavecable.com. [76.14.207.240]) by smtp.gmail.com with ESMTPSA id m87sm14945540pfi.88.2017.12.01.10.07.11 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 01 Dec 2017 10:07:11 -0800 (PST) Sender: netdev-owner@vger.kernel.org List-ID: Begin forwarded message: Date: Fri, 01 Dec 2017 15:54:14 +0000 From: bugzilla-daemon@bugzilla.kernel.org To: stephen@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: stephen@networkplumber.org Reporter: kwyut@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.