Thread (23 messages) 23 messages, 4 authors, 13h ago

Re: [PATCH net-next v9 8/9] geneve: Enable BIG TCP packets

From: Alice Mikityanska <hidden>
Date: 2026-07-16 18:45:46

On Thu, 16 Jul 2026 at 17:48, Simon Horman [off-list ref] wrote:
quoted hunk ↗ jump to hunk
This is an AI-generated review of your patch. The human sending this
email has considered the AI review valid, or at least plausible.
Full review at: https://sashiko.dev
---
--- Patch [8]: [PATCH net-next v9 8/9] geneve: Enable BIG TCP packets ---
commit d560b2b7c8bd97bea9e23790fdfc21cfe031b961
Author: Alice Mikityanska [off-list ref]

geneve: Enable BIG TCP packets

In Cilium we do support BIG TCP, but so far the latter has only been
enabled for direct routing use-cases. A lot of users rely on Cilium
with vxlan/geneve tunneling though. The underlying kernel infra for
tunneling has not been supporting BIG TCP up to this point.
quoted
diff --git a/drivers/net/geneve.c b/drivers/net/geneve.c
index 011bf9d833caf..a1639ad53077e 100644
--- a/drivers/net/geneve.c
+++ b/drivers/net/geneve.c
@@ -1745,6 +1745,8 @@ static void geneve_setup(struct net_device *dev)
      dev->max_mtu = IP_MAX_MTU - GENEVE_BASE_HLEN - dev->hard_header_len;

      netif_keep_dst(dev);
+     netif_set_tso_max_size(dev, GSO_MAX_SIZE);
+
[Severity: High]
This is a pre-existing issue, but by enabling BIG TCP on Geneve, will it
expose a bug where valid BIG TCP packets are incorrectly dropped?
BIG TCP on Geneve is not broken (and the selftest shows that), but see below...
In geneve_post_decap_hint(), there is a legacy size check that rejects
packets aggregated by GRO to sizes >= 65536 bytes:

drivers/net/geneve.c:geneve_post_decap_hint() {
        ...
        total_len = skb->len - gro_hint->nested_nh_offset;
        if (total_len >= GRO_LEGACY_MAX_SIZE)
                return -E2BIG;
        ...
}

When BIG TCP is enabled and the Geneve tunnel is configured with gro_hint,
large flows are aggregated by GRO into packets exceeding 64KB. This will hit
the legacy check and return -E2BIG, causing packet loss for large flows.
...This concern looks valid: in the double Geneve setup with gro_hint
enabled BIG TCP aggregate packets will be dropped.

Since this is an incompatibility between two opt-in features (BIG TCP
and GRO hint), which doesn't affect single Geneve, can it be addressed
in a follow-up? I can see how geneve_post_decap_hint may be altered,
but it sure needs testing.

Thanks,
Alice
quoted
      dev->priv_flags &= ~IFF_TX_SKB_SHARING;
      dev->priv_flags |= IFF_LIVE_ADDR_CHANGE | IFF_NO_QUEUE;
      dev->lltx = true;
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help