patch 'net/gve: advertise Rx scatter in GQI queue format' has been queued to stable release 24.11.9

luca.boccassi at gmail.com luca.boccassi at gmail.com
Thu Nov 5 17:43:01 CET 2026


Hi,

FYI, your patch has been queued to stable release 24.11.9

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/07/26. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/bluca/dpdk-stable

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/efd666aabb20f4c2c802796dd57e60ae28f211f0

Thanks.

Luca Boccassi

---
>From efd666aabb20f4c2c802796dd57e60ae28f211f0 Mon Sep 17 00:00:00 2001
From: Ryan Wolfe <rnwolfe at google.com>
Date: Mon, 19 Oct 2026 16:20:03 -0400
Subject: [PATCH] net/gve: advertise Rx scatter in GQI queue format

[ upstream commit 97fc9e27a6c4e8f48272d022d4795a051ee180a4 ]

Since jumbo frame support for GQI, a frame that does not fit in one Rx
buffer arrives as several descriptors with GVE_RXF_PKT_CONT set on all
but the last, and gve_rx_burst() chains them into one multi-segment
mbuf. The driver never reports RTE_ETH_RX_OFFLOAD_SCATTER, though, so
an application that enables multi-segment receive only when the port
claims it treats every packet as one segment. VPP is one: it masks its
requested Rx offloads with rx_offload_capa, so on a GQI gVNIC it never
sets its multi-segment flag, reads only the first buffer of a jumbo
frame and drops it as malformed. With 4 KB buffers that caps the usable
MTU near 4000 bytes on a VPC whose MTU is 8896.

Report SCATTER for GQI only. The DQO Rx path is not touched by this
patch.

Fixes: 496d4d2c8b54 ("net/gve: support jumbo frame for GQI")

Signed-off-by: Ryan Wolfe <rnwolfe at google.com>
---
 .mailmap                         | 1 +
 doc/guides/nics/features/gve.ini | 1 +
 drivers/net/gve/gve_ethdev.c     | 5 +++++
 3 files changed, 7 insertions(+)

diff --git a/.mailmap b/.mailmap
index 77c05e69980..6555bd6f0ca 100644
--- a/.mailmap
+++ b/.mailmap
@@ -1402,6 +1402,7 @@ Rui Ferreira <rui.ferreira1 at h-partners.com>
 Ruifeng Wang <ruifeng.wang at arm.com>
 Rushil Gupta <rushilg at google.com>
 Ryan E Hall <ryan.e.hall at intel.com>
+Ryan Wolfe <rnwolfe at google.com>
 Sabyasachi Sengupta <sabyasg at hpe.com>
 Sachin Saxena <sachin.saxena at nxp.com> <sachin.saxena at oss.nxp.com>
 Sagar Abhang <sabhang at brocade.com>
diff --git a/doc/guides/nics/features/gve.ini b/doc/guides/nics/features/gve.ini
index f18b829eda8..45f882ada2e 100644
--- a/doc/guides/nics/features/gve.ini
+++ b/doc/guides/nics/features/gve.ini
@@ -8,6 +8,7 @@ Speed capabilities   = Y
 Link status          = Y
 Queue start/stop     = Y
 MTU update           = Y
+Scattered Rx         = P
 TSO                  = Y
 RSS hash             = Y
 RSS key update       = Y
diff --git a/drivers/net/gve/gve_ethdev.c b/drivers/net/gve/gve_ethdev.c
index 121cd18b4bb..ee2f0d9a09c 100644
--- a/drivers/net/gve/gve_ethdev.c
+++ b/drivers/net/gve/gve_ethdev.c
@@ -623,6 +623,11 @@ gve_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 	dev_info->min_mtu = RTE_ETHER_MIN_MTU;
 
 	dev_info->rx_offload_capa = RTE_ETH_RX_OFFLOAD_RSS_HASH;
+	/* GQI receives a frame larger than one Rx buffer as a chain of
+	 * buffers (gve_rx_burst follows GVE_RXF_PKT_CONT).
+	 */
+	if (gve_is_gqi(priv))
+		dev_info->rx_offload_capa |= RTE_ETH_RX_OFFLOAD_SCATTER;
 	dev_info->tx_offload_capa =
 		RTE_ETH_TX_OFFLOAD_MULTI_SEGS	|
 		RTE_ETH_TX_OFFLOAD_UDP_CKSUM	|
-- 
2.47.3

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2026-11-05 16:42:48.518229449 +0000
+++ 0094-net-gve-advertise-Rx-scatter-in-GQI-queue-format.patch	2026-11-05 16:42:45.029064014 +0000
@@ -1 +1 @@
-From 97fc9e27a6c4e8f48272d022d4795a051ee180a4 Mon Sep 17 00:00:00 2001
+From efd666aabb20f4c2c802796dd57e60ae28f211f0 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 97fc9e27a6c4e8f48272d022d4795a051ee180a4 ]
+
@@ -21 +22,0 @@
-Cc: stable at dpdk.org
@@ -31 +32 @@
-index 1c9fd23ddb..8c3f06e6bb 100644
+index 77c05e69980..6555bd6f0ca 100644
@@ -34,2 +35,2 @@
-@@ -1483,6 +1483,7 @@ Ruifeng Wang <ruifeng.wang at arm.com>
- Rupesh Chiluka <rchiluka at marvell.com>
+@@ -1402,6 +1402,7 @@ Rui Ferreira <rui.ferreira1 at h-partners.com>
+ Ruifeng Wang <ruifeng.wang at arm.com>
@@ -43 +44 @@
-index 9f3835edf6..5566511b6b 100644
+index f18b829eda8..45f882ada2e 100644
@@ -46,2 +47,2 @@
-@@ -7,6 +7,7 @@
- Speed capabilities   = Y
+@@ -8,6 +8,7 @@ Speed capabilities   = Y
+ Link status          = Y
@@ -55 +56 @@
-index 53b0a0ec63..08b6bb831e 100644
+index 121cd18b4bb..ee2f0d9a09c 100644
@@ -58 +59 @@
-@@ -897,6 +897,11 @@ gve_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
+@@ -623,6 +623,11 @@ gve_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
@@ -67,3 +68,3 @@
- 	if (priv->clk_read_type != GVE_DEV_CLK_UNSUPPORTED &&
- 	    priv->nic_ts_report_mz != NULL)
- 		dev_info->rx_offload_capa |= RTE_ETH_RX_OFFLOAD_TIMESTAMP;
+ 	dev_info->tx_offload_capa =
+ 		RTE_ETH_TX_OFFLOAD_MULTI_SEGS	|
+ 		RTE_ETH_TX_OFFLOAD_UDP_CKSUM	|


More information about the stable mailing list