]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
net/ipv6: Drop HBH for BIG TCP on TX side
authorAlice Mikityanska <alice@isovalent.com>
Thu, 5 Feb 2026 13:39:15 +0000 (15:39 +0200)
committerJakub Kicinski <kuba@kernel.org>
Sat, 7 Feb 2026 04:50:12 +0000 (20:50 -0800)
commit741d069aa488866ae8425f87ad270ed3815ccaac
tree65114ea5d20be61173b52a4bced08432bd3539f6
parentb2936b4fd56294e49d6c8e9152ea6c4982757c7d
net/ipv6: Drop HBH for BIG TCP on TX side

BIG TCP IPv6 inserts a hop-by-hop extension header to indicate the real
IPv6 payload length when it doesn't fit into the 16-bit field in the
IPv6 header itself. While it helps tools parse the packet, it also
requires every driver that supports TSO and BIG TCP to remove this
8-byte extension header. It might not sound that bad until we try to
apply it to tunneled traffic. Currently, the drivers don't attempt to
strip HBH if skb->encapsulation = 1. Moreover, trying to do so would
require dissecting different tunnel protocols and making corresponding
adjustments on case-by-case basis, which would slow down the fastpath
(potentially also requiring adjusting checksums in outer headers).

At the same time, BIG TCP IPv4 doesn't insert any extra headers and just
calculates the payload length from skb->len, significantly simplifying
implementing BIG TCP for tunnels.

Stop inserting HBH when building BIG TCP GSO SKBs.

Signed-off-by: Alice Mikityanska <alice@isovalent.com>
Acked-by: Paolo Abeni <pabeni@redhat.com>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Link: https://patch.msgid.link/20260205133925.526371-3-alice.kernel@fastmail.im
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
include/linux/ipv6.h
net/ipv6/ip6_output.c