From: Alice Mikityanska <alice.kernel@fastmail.im>
To: Daniel Borkmann <daniel@iogearbox.net>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
Xin Long <lucien.xin@gmail.com>,
Willem de Bruijn <willemdebruijn.kernel@gmail.com>,
David Ahern <dsahern@kernel.org>,
Nikolay Aleksandrov <razor@blackwall.org>
Cc: Shuah Khan <shuah@kernel.org>,
Stanislav Fomichev <stfomichev@gmail.com>,
netdev@vger.kernel.org, Alice Mikityanska <alice@isovalent.com>
Subject: [PATCH net-next v2 00/11] BIG TCP without HBH in IPv6
Date: Tue, 13 Jan 2026 23:26:44 +0200 [thread overview]
Message-ID: <20260113212655.116122-1-alice.kernel@fastmail.im> (raw)
From: Alice Mikityanska <alice@isovalent.com>
This series is part 1 of v2 of "BIG TCP for UDP tunnels". Due to the
number of patches, I'm splitting it into two logical parts:
* Remove hop-by-hop header for BIG TCP IPv6 to align with BIG TCP IPv4.
* Fix up things that prevent BIG TCP from working with UDP tunnels.
The current BIG TCP IPv6 code inserts a hop-by-hop extension header with
32-bit length of the packet. When the packet is encapsulated, and either
the outer or the inner protocol is IPv6, or both are IPv6, there will be
1 or 2 HBH headers that need to be dealt with. The issues that arise:
1. The drivers don't strip it, and they'd all need to know the structure
of each tunnel protocol in order to strip it correctly, also taking into
account all combinations of IPv4/IPv6 inner/outer protocols.
2. Even if (1) is implemented, it would be an additional performance
penalty per aggregated packet.
3. The skb_gso_validate_network_len check is skipped in
ip6_finish_output_gso when IP6SKB_FAKEJUMBO is set, but it seems that it
would make sense to do the actual validation, just taking into account
the length of the HBH header. When the support for tunnels is added, it
becomes trickier, because there may be one or two HBH headers, depending
on whether it's IPv6 in IPv6 or not.
At the same time, having an HBH header to store the 32-bit length is not
strictly necessary, as BIG TCP IPv4 doesn't do anything like this and
just restores the length from skb->len. The same thing can be done for
BIG TCP IPv6. Removing HBH from BIG TCP would allow to simplify the
implementation significantly, and align it with BIG TCP IPv4, which has
been a long-standing goal.
v1: https://lore.kernel.org/netdev/20250923134742.1399800-1-maxtram95@gmail.com/
v2 changes:
Split the series into two parts. Address the review comments in part 2
(details follow with part 2).
P.S. Author had her name changed since v1; it's the same person.
Alice Mikityanska (11):
net/ipv6: Introduce payload_len helpers
net/ipv6: Drop HBH for BIG TCP on TX side
net/ipv6: Drop HBH for BIG TCP on RX side
net/ipv6: Remove jumbo_remove step from TX path
net/mlx5e: Remove jumbo_remove step from TX path
net/mlx4: Remove jumbo_remove step from TX path
ice: Remove jumbo_remove step from TX path
bnxt_en: Remove jumbo_remove step from TX path
gve: Remove jumbo_remove step from TX path
net: mana: Remove jumbo_remove step from TX path
net/ipv6: Remove HBH helpers
drivers/net/ethernet/broadcom/bnxt/bnxt.c | 21 -----
drivers/net/ethernet/google/gve/gve_tx_dqo.c | 3 -
drivers/net/ethernet/intel/ice/ice_txrx.c | 3 -
drivers/net/ethernet/mellanox/mlx4/en_tx.c | 42 ++--------
.../net/ethernet/mellanox/mlx5/core/en_tx.c | 75 +++---------------
drivers/net/ethernet/microsoft/mana/mana_en.c | 3 -
include/linux/ipv6.h | 21 ++++-
include/net/ipv6.h | 79 -------------------
include/net/netfilter/nf_tables_ipv6.h | 4 +-
net/bridge/br_netfilter_ipv6.c | 2 +-
net/bridge/netfilter/nf_conntrack_bridge.c | 4 +-
net/core/dev.c | 6 +-
net/core/gro.c | 2 -
net/ipv6/ip6_input.c | 2 +-
net/ipv6/ip6_offload.c | 36 +--------
net/ipv6/ip6_output.c | 20 +----
net/ipv6/output_core.c | 7 +-
net/netfilter/ipvs/ip_vs_xmit.c | 2 +-
net/netfilter/nf_conntrack_ovs.c | 2 +-
net/netfilter/nf_log_syslog.c | 2 +-
net/sched/sch_cake.c | 2 +-
21 files changed, 59 insertions(+), 279 deletions(-)
--
2.52.0
next reply other threads:[~2026-01-13 21:27 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-13 21:26 Alice Mikityanska [this message]
2026-01-13 21:26 ` [PATCH net-next v2 01/11] net/ipv6: Introduce payload_len helpers Alice Mikityanska
2026-01-13 21:26 ` [PATCH net-next v2 02/11] net/ipv6: Drop HBH for BIG TCP on TX side Alice Mikityanska
2026-01-13 21:26 ` [PATCH net-next v2 03/11] net/ipv6: Drop HBH for BIG TCP on RX side Alice Mikityanska
2026-01-13 21:26 ` [PATCH net-next v2 04/11] net/ipv6: Remove jumbo_remove step from TX path Alice Mikityanska
2026-01-13 21:26 ` [PATCH net-next v2 05/11] net/mlx5e: " Alice Mikityanska
2026-01-13 21:26 ` [PATCH net-next v2 06/11] net/mlx4: " Alice Mikityanska
2026-01-13 21:26 ` [PATCH net-next v2 07/11] ice: " Alice Mikityanska
2026-01-13 21:26 ` [PATCH net-next v2 08/11] bnxt_en: " Alice Mikityanska
2026-01-13 21:26 ` [PATCH net-next v2 09/11] gve: " Alice Mikityanska
2026-01-13 21:26 ` [PATCH net-next v2 10/11] net: mana: " Alice Mikityanska
2026-01-13 21:26 ` [PATCH net-next v2 11/11] net/ipv6: Remove HBH helpers Alice Mikityanska
2026-01-20 9:17 ` [PATCH net-next v2 00/11] BIG TCP without HBH in IPv6 Paolo Abeni
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260113212655.116122-1-alice.kernel@fastmail.im \
--to=alice.kernel@fastmail.im \
--cc=alice@isovalent.com \
--cc=daniel@iogearbox.net \
--cc=davem@davemloft.net \
--cc=dsahern@kernel.org \
--cc=edumazet@google.com \
--cc=kuba@kernel.org \
--cc=lucien.xin@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=razor@blackwall.org \
--cc=shuah@kernel.org \
--cc=stfomichev@gmail.com \
--cc=willemdebruijn.kernel@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox