public inbox for netdev@vger.kernel.org
 help / color / mirror / Atom feed
From: Paolo Abeni <pabeni@redhat.com>
To: netdev@vger.kernel.org
Cc: "David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>, Simon Horman <horms@kernel.org>,
	Donald Hunter <donald.hunter@gmail.com>,
	Andrew Lunn <andrew+netdev@lunn.ch>,
	Shuah Khan <shuah@kernel.org>,
	Willem de Bruijn <willemdebruijn.kernel@gmail.com>,
	sdf@fomichev.me, petrm@nvidia.com, razor@blackwall.org,
	idosch@nvidia.com
Subject: Re: [PATCH v4 net-next 00/10] geneve: introduce double tunnel GSO/GRO support
Date: Tue, 20 Jan 2026 09:37:36 +0100	[thread overview]
Message-ID: <e3738b0f-a18c-48ff-993d-eb8a1e989dd9@redhat.com> (raw)
In-Reply-To: <cover.1768820066.git.pabeni@redhat.com>

On 1/19/26 4:09 PM, Paolo Abeni wrote:
> This is the [belated] incarnation of topic discussed in the last Neconf
> [1].
> 
> In container orchestration in virtual environments there is a consistent
> usage of double UDP tunneling - specifically geneve. Such setup lack
> support of GRO and GSO for inter VM traffic.
> 
> After commit b430f6c38da6 ("Merge branch 'virtio_udp_tunnel_08_07_2025'
> of https://github.com/pabeni/linux-devel") and the qemu cunter-part, VMs
> are able to send/receive GSO over UDP aggregated packets.
> 
> This series introduces the missing bit for full end-to-end aggregation
> in the above mentioned scenario. Specifically:
> 
> - introduces a new netdev feature set to generalize existing per device
> driver GSO admission check.1
> - adds GSO partial support for the geneve and vxlan drivers
> - introduces and use a geneve option to assist double tunnel GRO
> - adds some simple functional tests for the above.
> 
> The new device features set is not strictly needed for the following
> work, but avoids the introduction of trivial `ndo_features_check` to
> support GSO partial and thus possible performance regression due to the
> additional indirect call. Such feature set could be leveraged by a
> number of existing drivers (intel, meta and possibly wangxun) to avoid
> duplicate code/tests. Such part has been omitted here to keep the series
> small.
> 
> Both GSO partial support and double GRO support have some downsides.
> With the first in place, GSO partial packets will traverse the network
> stack 'downstream' the outer geneve UDP tunnel and will be visible by
> the udp/IP/IPv6 and by netfilter. Currently only H/W NICs implement GSO
> partial support and such packets are visible only via software taps.
> 
> Double UDP tunnel GRO will cook 'GSO partial' like aggregate packets,
> i.e. the inner UDP encapsulation headers set will still carry the
> wire-level lengths and csum, so that segmentation considering such
> headers parts of a giant, constant encapsulation header will yield the
> correct result.
> 
> The correct GSO packet layout is applied when the packet traverse the
> outermost geneve encapsulation.
> 
> Both GSO partial and double UDP encap are disabled by default and must
> be explicitly enabled via, respectively ethtool and geneve device
> configuration.
> 
> Finally note that the GSO partial feature could potentially be applied
> to all the other UDP tunnels, but this series limits its usage to geneve
> and vxlan devices.
> 
> Link: https://netdev.bots.linux.dev/netconf/2024/paolo.pdf [1]
> ---
> v3 -> v4:
>   - better mangleid handling in patch 1
>   - use xfail_on_slow in patch 10
> v3: https://lore.kernel.org/netdev/cover.1768410519.git.pabeni@redhat.com/
> 
> v2 -> v3:
>   - addressed AI-reported possible UaF
> v2: https://lore.kernel.org/netdev/cover.1768250796.git.pabeni@redhat.com/
> 
> v1 -> v2:
>   - addressed AI and checker feedback
>   - more stable self-tests
>   - avoid GRO cells for double encap GSO pkts
> v1: https://lore.kernel.org/netdev/cover.1764056123.git.pabeni@redhat.com/#t
> 
> Paolo Abeni (10):
>   net: introduce mangleid_features
>   geneve: expose gso partial features for tunnel offload
>   vxlan: expose gso partial features for tunnel  offload
>   geneve: add netlink support for GRO hint
>   geneve: constify geneve_hlen()
>   geneve: pass the geneve device ptr to geneve_build_skb()
>   geneve: add GRO hint output path
>   geneve: extract hint option at GRO stage
>   geneve: use GRO hint option in the RX path
>   selftests: net: tests for add double tunneling GRO/GSO

It looks like the last 3 patches did not land on the ML. I have no idea
about the root cause. I'll wait a bit more and I'll resend the whole series.

/P


  parent reply	other threads:[~2026-01-20  8:37 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-01-19 15:09 [PATCH v4 net-next 00/10] geneve: introduce double tunnel GSO/GRO support Paolo Abeni
2026-01-19 15:09 ` [PATCH v4 net-next 01/10] net: introduce mangleid_features Paolo Abeni
2026-01-20  8:58   ` Eric Dumazet
2026-01-20  9:54     ` Paolo Abeni
2026-01-19 15:09 ` [PATCH v4 net-next 02/10] geneve: expose gso partial features for tunnel offload Paolo Abeni
2026-01-19 15:09 ` [PATCH v4 net-next 03/10] vxlan: " Paolo Abeni
2026-01-19 15:09 ` [PATCH v4 net-next 04/10] geneve: add netlink support for GRO hint Paolo Abeni
2026-01-19 15:09 ` [PATCH v4 net-next 05/10] geneve: constify geneve_hlen() Paolo Abeni
2026-01-19 15:09 ` [PATCH v4 net-next 06/10] geneve: pass the geneve device ptr to geneve_build_skb() Paolo Abeni
2026-01-19 15:09 ` [PATCH v4 net-next 07/10] geneve: add GRO hint output path Paolo Abeni
2026-01-20  8:37 ` Paolo Abeni [this message]
2026-01-20 13:30   ` [PATCH v4 net-next 00/10] geneve: introduce double tunnel GSO/GRO support Petr Machata

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=e3738b0f-a18c-48ff-993d-eb8a1e989dd9@redhat.com \
    --to=pabeni@redhat.com \
    --cc=andrew+netdev@lunn.ch \
    --cc=davem@davemloft.net \
    --cc=donald.hunter@gmail.com \
    --cc=edumazet@google.com \
    --cc=horms@kernel.org \
    --cc=idosch@nvidia.com \
    --cc=kuba@kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=petrm@nvidia.com \
    --cc=razor@blackwall.org \
    --cc=sdf@fomichev.me \
    --cc=shuah@kernel.org \
    --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