Thread (11 messages) flat view 11 messages, 3 authors, 2014-02-20

Re: Does ICMP_FRAG_NEEDED automatically update the routing cache?

From: Hannes Frederic Sowa <hidden>
Date: 2014-02-14 15:03:29

On Fri, Feb 14, 2014 at 03:00:42PM +0000, David Howells wrote:
Hannes Frederic Sowa [off-list ref] wrote:
quoted
On Fri, Feb 14, 2014 at 02:36:48PM +0000, David Howells wrote:
quoted
Am I reading the ipv4 code right?  If a UDP packet we send results in an
ICMP_FRAG_NEEDED packet being received, the cached routing information for
the peer will automatically be updated by __udp4_lib_err()?
A next hop exception will be generated (or reused) which stores the path
mtu towards that target, yes (there is no more routing cache).

Prior to that a validation check happens if the socket really exists (this is
e.g. needed to identify the namespace or routing table the update should occur
on).
Sounds good.  Does this work even if the socket is not connected (ie. the UDP
packets are being routed by the address fields in struct msghdr)?
Yes, but connected sockets are checked prior to unconnected sockets, so the
most specific one wins.

For unconnected ones only the local ip/port is checked because kernel
does not know the past destination addresses.

Greetings,

  Hannes
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help