Commit 540cda75 authored by David Howells's avatar David Howells Committed by Jakub Kicinski
Browse files

rxrpc: Fix ipv6 path MTU discovery



rxrpc path MTU discovery currently only makes use of ICMPv4, but not
ICMPv6, which means that pmtud for IPv6 doesn't work correctly.  Fix it to
check for ICMPv6 messages also.

Fixes: eeaedc54 ("rxrpc: Implement path-MTU probing using padded PING ACKs (RFC8899)")
Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
cc: Marc Dionne <marc.dionne@auristor.com>
cc: Simon Horman <horms@kernel.org>
cc: linux-afs@lists.infradead.org
Link: https://patch.msgid.link/3517283.1739359284@warthog.procyon.org.uk


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 82c260c8
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -169,6 +169,13 @@ void rxrpc_input_error(struct rxrpc_local *local, struct sk_buff *skb)
		goto out;
	}

	if ((serr->ee.ee_origin == SO_EE_ORIGIN_ICMP6 &&
	     serr->ee.ee_type == ICMPV6_PKT_TOOBIG &&
	     serr->ee.ee_code == 0)) {
		rxrpc_adjust_mtu(peer, serr->ee.ee_info);
		goto out;
	}

	rxrpc_store_error(peer, skb);
out:
	rxrpc_put_peer(peer, rxrpc_peer_put_input_error);