Subject: Fw: [Bug 198055] New: Missing mechanism to find maximum datagram sizes (mandated by RFC 1122)

From: Stephen Hemminger <[email-masked]>
Date: Fri, 1 Dec 2017 10:07:03 -0800

Begin forwarded message:

Date: Fri, 01 Dec 2017 15:54:14 +0000
From: [email-masked]
To: [email-masked]
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: [email-masked]
          Reporter: [email-masked]
        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.