[PATCH net-next v3 0/3] ipv4/ipv6: Cache pmtu on all paths of a multipath route

From: Vladimir Vdovin

Date: Fri Nov 13 2026 - 08:52:53 EST


IPv6 counterpart of commit 7d3f3b4367f3 ("net: ipv4: Cache pmtu for
all packet paths if multipath enabled"), deferred back then [1].

Patch 1 keeps the IPv4 fan-out from raising the pmtu of a path above
what it can carry, patch 2 does the IPv6 side, patch 3 adds the tests:
the IPv6 variant of the pmtu.sh multipath test and, for both families,
a multipath test with paths of different MTU. The asymmetric tests
fail without patch 1, the IPv6 ones without patch 2.

v3, after the Sashiko review of v2:
- compare the mtu with what each path uses now, not once with the
looked-up dst, so no path gets a pmtu above what it can carry
- ipv6: keep updating a cached dst itself, the walk may not find it
- ipv4: Fixes: tag, Fragmentation Needed wording
- tests: MTU 1350 on the link to R2, so a Packet Too Big from R1 must
not be cached on the path via R2
- tests: return routes on R1 and R2, hex flow labels, skip when
"ip route get" has no flowlabel
v2: https://lore.kernel.org/netdev/20261110095903.84813-1-deliran@xxxxxxxxxx/

v2, after the Sashiko review of v1:
- update an existing exception in place, on every Packet Too Big
- don't walk the siblings of a fib6_info no longer in the tree
- commit message: the lookup in ip6_update_pmtu() hashes without
protocol and ports
- new ipv4 patch, tests with paths of different MTU
v1: https://lore.kernel.org/netdev/20261017210508.71849-1-deliran@xxxxxxxxxx/

[1] https://lore.kernel.org/netdev/ad29493c-9e48-4a94-b327-e47af3a9d137@xxxxxxxxxx/

Vladimir Vdovin (3):
ipv4: Only lower the pmtu of the other paths of a multipath route
ipv6: Cache pmtu for all paths of a multipath route
selftests: net: pmtu: Add IPv6 and asymmetric multipath tests

net/ipv4/route.c | 30 +++
net/ipv6/route.c | 121 ++++++++----
tools/testing/selftests/net/pmtu.sh | 281 ++++++++++++++++++++++++----
3 files changed, 355 insertions(+), 77 deletions(-)


base-commit: d26955e57475434b59d43ba372b2a50d33d5e0ed
--
2.56.0