Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cd174e67 authored by Hannes Frederic Sowa's avatar Hannes Frederic Sowa Committed by David S. Miller
Browse files

ipv4: new ip_no_pmtu_disc mode to always discard incoming frag needed msgs



This new mode discards all incoming fragmentation-needed notifications
as I guess was originally intended with this knob. To not break backward
compatibility too much, I only added a special case for mode 2 in the
receiving path.

Signed-off-by: default avatarHannes Frederic Sowa <hannes@stressinduktion.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 974eda11
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -15,12 +15,18 @@ ip_default_ttl - INTEGER
	forwarded) IP packets. Should be between 1 and 255 inclusive.
	Default: 64 (as recommended by RFC1700)

ip_no_pmtu_disc - BOOLEAN
	Disable Path MTU Discovery. If enabled and a
ip_no_pmtu_disc - INTEGER
	Disable Path MTU Discovery. If enabled in mode 1 and a
	fragmentation-required ICMP is received, the PMTU to this
	destination will be set to min_pmtu (see below). You will need
	to raise min_pmtu to the smallest interface MTU on your system
	manually if you want to avoid locally generated fragments.

	In mode 2 incoming Path MTU Discovery messages will be
	discarded. Outgoing frames are handled the same as in mode 1,
	implicitly setting IP_PMTUDISC_DONT on every created socket.

	Possible values: 0-2
	Default: FALSE

min_pmtu - INTEGER
+3 −1
Original line number Diff line number Diff line
@@ -705,7 +705,9 @@ static void icmp_unreach(struct sk_buff *skb)
		case ICMP_PORT_UNREACH:
			break;
		case ICMP_FRAG_NEEDED:
			if (net->ipv4.sysctl_ip_no_pmtu_disc) {
			if (net->ipv4.sysctl_ip_no_pmtu_disc == 2) {
				goto out;
			} else if (net->ipv4.sysctl_ip_no_pmtu_disc) {
				LIMIT_NETDEBUG(KERN_INFO pr_fmt("%pI4: fragmentation needed and DF set\n"),
					       &iph->daddr);
			} else {