ipv4: yet another new IP_MTU_DISCOVER option IP_PMTUDISC_OMIT
authorHannes Frederic Sowa <hannes@stressinduktion.org>
Wed, 26 Feb 2014 00:20:42 +0000 (01:20 +0100)
committerDavid S. Miller <davem@davemloft.net>
Wed, 26 Feb 2014 20:51:00 +0000 (15:51 -0500)
commit1b346576359c72bee34b1476b4fc63d77d37b314
treec39719e520d1771322b8e9e801c873587e05d237
parent69647ce46a236a355a7a3096d793819a9bd7c1d3
ipv4: yet another new IP_MTU_DISCOVER option IP_PMTUDISC_OMIT

IP_PMTUDISC_INTERFACE has a design error: because it does not allow the
generation of fragments if the interface mtu is exceeded, it is very
hard to make use of this option in already deployed name server software
for which I introduced this option.

This patch adds yet another new IP_MTU_DISCOVER option to not honor any
path mtu information and not accepting new icmp notifications destined for
the socket this option is enabled on. But we allow outgoing fragmentation
in case the packet size exceeds the outgoing interface mtu.

As such this new option can be used as a drop-in replacement for
IP_PMTUDISC_DONT, which is currently in use by most name server software
making the adoption of this option very smooth and easy.

The original advantage of IP_PMTUDISC_INTERFACE is still maintained:
ignoring incoming path MTU updates and not honoring discovered path MTUs
in the output path.

Fixes: 482fc6094afad5 ("ipv4: introduce new IP_MTU_DISCOVER mode IP_PMTUDISC_INTERFACE")
Cc: Florian Weimer <fweimer@redhat.com>
Signed-off-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/ip.h
include/uapi/linux/in.h
net/ipv4/ip_output.c
net/ipv4/ip_sockglue.c