patch 'net/gve: fix max MTU limit' has been queued to stable release 22.11.4

Xueming(Steven) Li xuemingl at nvidia.com
Tue Oct 24 09:51:27 CEST 2023


Hi Joshua,

Thanks for the feedback. If your new patch will be merged into 23.11 finally,
I'll include it in next round backport. Let me know otherwise.

Thanks,
Xueming Li


From: Joshua Washington <joshwash at google.com> 
Sent: 10/24/2023 6:01
To: Xueming(Steven) Li <xuemingl at nvidia.com>
Cc: dpdk stable <stable at dpdk.org>
Subject: Re: patch 'net/gve: fix max MTU limit' has been queued to stable release 22.11.4

Hello,

This change, while having the correct behavior, breaks the testpmd program, as the default MTU for testpmd is 1500B, which is higher than the default Google Cloud MTU. When specifying the max packet length, which dictates the MTU set by testpmd, the max packet length field set by the GVE driver is incorrect, causing testpmd to attempt to set the MTU to an invalid value due to underflow. This is fixed in https://patchwork.dpdk.org/project/dpdk/patch/20231016205948.2252342-1-joshwash@google.com/, and I believe these should go in together to ensure there is no point where testpmd is unusable for the GVE driver.

Thanks,
Josh

On Sun, Oct 22, 2023 at 7:26 AM Xueming Li <mailto:xuemingl at nvidia.com> wrote:
Hi,

FYI, your patch has been queued to stable release 22.11.4

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/15/23. 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://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=8ef9e184ca867c0ed9aed5728364aed6e7dd47e3

Thanks.

Xueming Li <mailto:xuemingl at nvidia.com>

---
From 8ef9e184ca867c0ed9aed5728364aed6e7dd47e3 Mon Sep 17 00:00:00 2001
From: Joshua Washington <mailto:joshwash at google.com>
Date: Fri, 29 Sep 2023 13:38:25 -0700
Subject: [PATCH] net/gve: fix max MTU limit
Cc: Xueming Li <mailto:xuemingl at nvidia.com>

[ upstream commit 030025b74202896e85a72b1e75049866800dd3f7 ]

This patch corrects the MTU setting behavior in the GVE DPDK driver to
remove the artificial upper limit of RTE_ETHER_MTU. Instead, the max MTU
is dictated by the default value of the MTU that the device sends during
initialization, which will always be the maximum supported MTU.

Fixes: 71dea04cdf9a ("net/gve: support device info and configure")

Signed-off-by: Joshua Washington <mailto:joshwash at google.com>
---
 drivers/net/gve/gve_ethdev.c | 5 +++--
 drivers/net/gve/gve_ethdev.h | 3 ---
 2 files changed, 3 insertions(+), 5 deletions(-)

diff --git a/drivers/net/gve/gve_ethdev.c b/drivers/net/gve/gve_ethdev.c
index e357f16e16..806f45b0a7 100644
--- a/drivers/net/gve/gve_ethdev.c
+++ b/drivers/net/gve/gve_ethdev.c
@@ -5,6 +5,7 @@
 #include "gve_ethdev.h"
 #include "base/gve_adminq.h"
 #include "base/gve_register.h"
+#include "rte_ether.h"

 const char gve_version_str[] = GVE_VERSION;
 static const char gve_version_prefix[] = GVE_VERSION_PREFIX;
@@ -276,8 +277,8 @@ gve_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
        dev_info->max_tx_queues = priv->max_nb_txq;
        dev_info->min_rx_bufsize = GVE_MIN_BUF_SIZE;
        dev_info->max_rx_pktlen = GVE_MAX_RX_PKTLEN;
-       dev_info->max_mtu = GVE_MAX_MTU;
-       dev_info->min_mtu = GVE_MIN_MTU;
+       dev_info->max_mtu = priv->max_mtu;
+       dev_info->min_mtu = RTE_ETHER_MIN_MTU;

        dev_info->rx_offload_capa = 0;
        dev_info->tx_offload_capa =
diff --git a/drivers/net/gve/gve_ethdev.h b/drivers/net/gve/gve_ethdev.h
index 235e55899e..975318938d 100644
--- a/drivers/net/gve/gve_ethdev.h
+++ b/drivers/net/gve/gve_ethdev.h
@@ -31,9 +31,6 @@
 #define GVE_MIN_BUF_SIZE           1024
 #define GVE_MAX_RX_PKTLEN          65535

-#define GVE_MAX_MTU    RTE_ETHER_MTU
-#define GVE_MIN_MTU    RTE_ETHER_MIN_MTU
-
 /* A list of pages registered with the device during setup and used by a queue
  * as buffers
  */
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -   2023-10-22 22:17:35.768883300 +0800
+++ 0036-net-gve-fix-max-MTU-limit.patch        2023-10-22 22:17:34.206723700 +0800
@@ -1 +1 @@
-From 030025b74202896e85a72b1e75049866800dd3f7 Mon Sep 17 00:00:00 2001
+From 8ef9e184ca867c0ed9aed5728364aed6e7dd47e3 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <mailto:xuemingl at nvidia.com>
+
+[ upstream commit 030025b74202896e85a72b1e75049866800dd3f7 ]
@@ -12 +14,0 @@
-Cc: mailto:stable at dpdk.org
@@ -21 +23 @@
-index 9b25f3036b..b441f96623 100644
+index e357f16e16..806f45b0a7 100644
@@ -24 +26,3 @@
-@@ -7,6 +7,7 @@
+@@ -5,6 +5,7 @@
+ #include "gve_ethdev.h"
+ #include "base/gve_adminq.h"
@@ -26,2 +29,0 @@
- #include "base/gve_osdep.h"
- #include "gve_version.h"
@@ -30,3 +32,3 @@
- static void
- gve_write_version(uint8_t *driver_version_register)
-@@ -297,8 +298,8 @@ gve_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
+ const char gve_version_str[] = GVE_VERSION;
+ static const char gve_version_prefix[] = GVE_VERSION_PREFIX;
+@@ -276,8 +277,8 @@ gve_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
@@ -44 +46 @@
-index ca94a09a2f..1cba282128 100644
+index 235e55899e..975318938d 100644
@@ -47 +49 @@
-@@ -23,9 +23,6 @@
+@@ -31,9 +31,6 @@
@@ -54,3 +56,3 @@
- #define GVE_TX_CKSUM_OFFLOAD_MASK (           \
-               RTE_MBUF_F_TX_L4_MASK  |        \
-               RTE_MBUF_F_TX_TCP_SEG)
+ /* A list of pages registered with the device during setup and used by a queue
+  * as buffers
+  */



-- 

Joshua Washington | Software Engineer | mailto:joshwash at google.com | (414) 366-4423
 


More information about the stable mailing list