Thread (19 messages) flat view 19 messages, 2 authors, 2012-06-14

Re: [PATCH 2/5] ipv4: Kill ip_rt_frag_needed().

From: Steffen Klassert <steffen.klassert@secunet.com>
Date: 2012-06-14 05:35:33

On Wed, Jun 13, 2012 at 03:22:28AM -0700, David Miller wrote:
From: Steffen Klassert <steffen.klassert@secunet.com>
Date: Wed, 13 Jun 2012 12:07:09 +0200
quoted
On Wed, Jun 13, 2012 at 02:42:25AM -0700, David Miller wrote:
quoted
From: Steffen Klassert <steffen.klassert@secunet.com>
Date: Wed, 13 Jun 2012 10:01:52 +0200
quoted
I think an application that sets IP_PMTUDISC_WANT explicitly will
rely on the fact that the kernel does pmtu discovery. Changing
the socket setting to IP_PMTUDISC_DONT the first time we get into
trouble makes IP_PMTUDISC_WANT pointless for udp and raw sockets.
How so?

We are mimicking exactly what would happen if we had just created
a new routing cache entry when the application openned the socket.

There is no behavioral difference whatsoever.

We absolutely do perform PMTU discovery, the first large packet
will trigger it.  And then, as if we had lowered the PMTU in
the routing cache entry, we will stop setting DF in the packets.
Maybe I missunderstood what you meant. I thought that you don't want
to update the pmtu cache informations at all on udp and raw.
If we update the pmtu cache informations with first large packet,
I agree absolutely.
We don't update the PMTU.

But we behave as if we did.

The only effect the IP_PMTUDISC_* values have is in deciding whether
to set the DF flag in the outgoing packets.
With your patch applied, we stop setting the DF bit after we received
a 'need to frag' ICMP message, but we don't fragment. We send the packets
out unfragmented. Before we removed ip_rt_frag_needed(), we did the
fragmentation according to the pmtu informations we got from the icmp
message. Now the router with the low mtu has to do the fragmentation.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help