From: Rick Jones <rick.jones2@hp.com>
To: Glen Turner <gdt@gdt.id.au>
Cc: netdev@vger.kernel.org
Subject: Re: UDP path MTU discovery
Date: Thu, 25 Mar 2010 17:53:11 -0700 [thread overview]
Message-ID: <4BAC0577.7070803@hp.com> (raw)
In-Reply-To: <1269561751.2891.8.camel@ilion>
Glen Turner wrote:
> [This is a second attempt to report this bug.]
Bugzilla somewhere?
> Path MTU Discovery for UDP underperforms for IPv4 and fails for IPv6 in Linux
> for transactional services like DHCP and RADIUS running on jumbo frame
> interfaces.
>
> These servers send packets with exponential back-off. UDP Path MTU Discovery
> probes for the path MTU each time the application sends a packet. So if you
> start with a high enough interface MTU then the server application backoff
> times get huge and the client gives up before the path MTU is discovered.
>
> This differs from TCP, where it is the kernel -- and not the application --
> which organises retransmission. On receiving a ICMP Fragmentation Needed the
> kernel can immediately re-probe the path MTU wiht no waiting for an
> exponential timer to expire.
>
> In IPv4 there is a work-around for the server, turn off Path MTU Discovery
> and allow routers to fragment the packet as needed. Looking at the code for
> the various transactional servers (ISC DHCP, FreeRADIUS, RADIATOR,
> radsecproxy) they all disable Path MTU Discovery on Linux. This workaround
> has the side effect of hiding the problem, misleading people into thinking
> that UDP Path MTU Discovery actually works for these transactional servers.
>
> In IPv6 routers do not fragment packets, so there is no work around.
> Transactional servers which use UDP over IPv6 encounter exponential backoffs
> within the application and the client abandons the transaction. There is no
> way for the server to know that the packet was lost due to Path MTU Discovery
> and to immediately re-transmit it (without an exponential penalty) so that
> the MTU can be probed again.
>
> This can be viewed as a flaw in the RFC and in the sockets API
> for which IPv6 has removed the common work-around.
So, presuming it is indeed a bug what form might a fix take? Are you suggesting
there should be a way for an application to say "Please let me see/know about
the ICMP messages?" Is that option available on other platforms as a
platform-specific extension? I don't have the details, but the HP-UX 11i v3
(11.31) netinet/udp.h file contains these:
#define UDP_RX_ICMP 0x02 /* boolean; get/set ICMP packets reception */
/* Set to 1 if ICMP packets are to be received*/
#define UDP_RX_ICMP6 0x03 /* boolean; get/set ICMPv6 packets reception */
/* Set to 1 if ICMPv6 packets are to be
received */
and it does appear that they are in more places than just HP-UX - there are some
hits for that for the old Apple Open Transport - which makes sense - it too had
Mentat origins.
rick jones
next prev parent reply other threads:[~2010-03-26 0:53 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-03-26 0:02 UDP path MTU discovery Glen Turner
2010-03-26 0:53 ` Rick Jones [this message]
2010-03-26 3:26 ` David Miller
2010-03-26 17:48 ` Rick Jones
2010-03-31 23:42 ` Glen Turner
2010-03-31 23:51 ` Hagen Paul Pfeifer
2010-04-01 0:06 ` Rick Jones
2010-03-26 3:24 ` David Miller
2010-03-28 8:41 ` Andi Kleen
2010-03-31 23:57 ` Glen Turner
2010-04-01 0:57 ` Andi Kleen
2010-03-28 8:50 ` Andi Kleen
2010-03-29 17:01 ` Rick Jones
2010-03-29 20:14 ` Andi Kleen
2010-03-29 20:25 ` Rick Jones
2010-03-29 20:50 ` Edgar E. Iglesias
2010-03-29 21:01 ` Rick Jones
2010-03-29 21:29 ` Eric Dumazet
2010-03-29 23:38 ` Templin, Fred L
2010-03-30 5:20 ` Andi Kleen
2010-03-30 6:06 ` Eric Dumazet
2010-03-30 6:16 ` Andi Kleen
2010-03-30 6:17 ` UDP path MTU discovery II Andi Kleen
2010-03-30 6:16 ` UDP path MTU discovery Edgar E. Iglesias
2010-03-30 6:19 ` Andi Kleen
2010-03-30 8:20 ` Edgar E. Iglesias
2010-03-30 14:12 ` Andi Kleen
2010-03-30 22:04 ` Edgar E. Iglesias
2010-03-30 15:58 ` Templin, Fred L
2010-03-30 16:06 ` Andi Kleen
2010-03-31 23:43 ` Glen Turner
2010-04-01 0:55 ` Andi Kleen
2010-04-02 5:41 ` Glen Turner
2010-04-04 10:25 ` Andi Kleen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4BAC0577.7070803@hp.com \
--to=rick.jones2@hp.com \
--cc=gdt@gdt.id.au \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).