]> git.baikalelectronics.ru Git - kernel.git/commit
ipv6: pmtudisc setting not respected with UFO/CORK
authorHannes Frederic Sowa <hannes@stressinduktion.org>
Mon, 16 Dec 2013 11:36:44 +0000 (12:36 +0100)
committerDavid S. Miller <davem@davemloft.net>
Wed, 18 Dec 2013 22:52:15 +0000 (17:52 -0500)
commit530b4247fffa8f0253bc0500c9791d0abf1dd53e
treebdb816df90048996ac90467934522cc677cdf7ea
parent88e8b4e08c558177d0a7c4b3ac1647e5be6ae18d
ipv6: pmtudisc setting not respected with UFO/CORK

Sockets marked with IPV6_PMTUDISC_PROBE (or later IPV6_PMTUDISC_INTERFACE)
don't respect this setting when the outgoing interface supports UFO.

We had the same problem in IPv4, which was fixed in commit
20bddc89e0adc7d27f4303cace4dd15a7de0338a ("ipv4: fix DO and PROBE pmtu
mode regarding local fragmentation with UFO/CORK").

Also IPV6_DONTFRAG mode did not care about already corked data, thus
it may generate a fragmented frame even if this socket option was
specified. It also did not care about the length of the ipv6 header and
possible options.

In the error path allow the user to receive the pmtu notifications via
both, rxpmtu method or error queue. The user may opted in for both,
so deliver the notification to both error handlers (the handlers check
if the error needs to be enqueued).

Also report back consistent pmtu values when sending on an already
cork-appended socket.

Signed-off-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv6/ip6_output.c