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

Joshua Washington joshwash at google.com
Tue Oct 24 00:01:29 CEST 2023


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 <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 <xuemingl at nvidia.com>
>
> ---
> From 8ef9e184ca867c0ed9aed5728364aed6e7dd47e3 Mon Sep 17 00:00:00 2001
> From: Joshua Washington <joshwash at google.com>
> Date: Fri, 29 Sep 2023 13:38:25 -0700
> Subject: [PATCH] net/gve: fix max MTU limit
> Cc: Xueming Li <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 <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 <xuemingl at nvidia.com>
> +
> +[ upstream commit 030025b74202896e85a72b1e75049866800dd3f7 ]
> @@ -12 +14,0 @@
> -Cc: 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 | joshwash at google.com | (414) 366-4423
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mails.dpdk.org/archives/stable/attachments/20231023/67a261e5/attachment.htm>


More information about the stable mailing list