From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 6DA81A09E4 for ; Fri, 5 Feb 2021 02:54:54 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 3687240682; Fri, 5 Feb 2021 02:54:54 +0100 (CET) Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by mails.dpdk.org (Postfix) with ESMTP id 5BB7D40682 for ; Fri, 5 Feb 2021 02:54:52 +0100 (CET) IronPort-SDR: sbwzCHGTAlyuUrG95zFdzucM5hSNbuLtgunfC1gsBp9TZ1y4s8plsnec+RESp7sSy/tbn3WKbH gBLYli1C+tcA== X-IronPort-AV: E=McAfee;i="6000,8403,9885"; a="178801020" X-IronPort-AV: E=Sophos;i="5.81,154,1610438400"; d="scan'208";a="178801020" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Feb 2021 17:54:51 -0800 IronPort-SDR: 7ZQ1ul2WftXzChFgGZX+vuCNv75D0B+LUj9ec8KhXoW6F6GXy6OLLOIowdH6dZUpY4+riPkz6l 1iqsP0xMt8Gw== X-IronPort-AV: E=Sophos;i="5.81,154,1610438400"; d="scan'208";a="393636615" Received: from intel-npg-odc-srv01.cd.intel.com ([10.240.178.136]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Feb 2021 17:54:49 -0800 From: Steve Yang To: stable@dpdk.org Cc: Steve Yang Date: Fri, 5 Feb 2021 01:51:08 +0000 Message-Id: <20210205015108.21568-1-stevex.yang@intel.com> X-Mailer: git-send-email 2.17.1 Subject: [dpdk-stable] [PATCH 19.11] net/ixgbe: fix jumbo frame flag condition X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Sender: "stable" [ upstream commit 48554c7db7eaef9b7c69f7ad8dd60fe53e78fbde ] The jumbo frame uses the 'RTE_ETHER_MAX_LEN' as boundary condition. If the Ether overhead is larger than 18 when it supports VLAN tag, that will cause the jumbo flag rx offload is wrong when MTU size is 'RTE_ETHER_MTU'. This fix will normalize the boundary condition with 'RTE_ETHER_MTU' and overhead even though current overhead is 18. Fixes: 59d0ecdbf0e1 ("ethdev: MTU accessors") Fixes: 95a27b3ba5f5 ("net/ixgbe: enable jumbo frame for VF") Cc: stable@dpdk.org Acked-by: Jeff Guo Signed-off-by: Steve Yang --- drivers/net/ixgbe/ixgbe_ethdev.c | 2 +- drivers/net/ixgbe/ixgbe_ethdev.h | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c index de528d242b..4821c203cc 100644 --- a/drivers/net/ixgbe/ixgbe_ethdev.c +++ b/drivers/net/ixgbe/ixgbe_ethdev.c @@ -5222,7 +5222,7 @@ ixgbe_dev_mtu_set(struct rte_eth_dev *dev, uint16_t mtu) hlreg0 = IXGBE_READ_REG(hw, IXGBE_HLREG0); /* switch to jumbo mode if needed */ - if (frame_size > RTE_ETHER_MAX_LEN) { + if (frame_size > IXGBE_ETH_MAX_LEN) { dev->data->dev_conf.rxmode.offloads |= DEV_RX_OFFLOAD_JUMBO_FRAME; hlreg0 |= IXGBE_HLREG0_JUMBOEN; diff --git a/drivers/net/ixgbe/ixgbe_ethdev.h b/drivers/net/ixgbe/ixgbe_ethdev.h index edb66f8258..e406b754e8 100644 --- a/drivers/net/ixgbe/ixgbe_ethdev.h +++ b/drivers/net/ixgbe/ixgbe_ethdev.h @@ -104,6 +104,9 @@ /* The overhead from MTU to max frame size. */ #define IXGBE_ETH_OVERHEAD (RTE_ETHER_HDR_LEN + RTE_ETHER_CRC_LEN) +/* The max frame size with default MTU */ +#define IXGBE_ETH_MAX_LEN (RTE_ETHER_MTU + IXGBE_ETH_OVERHEAD) + /* bit of VXLAN tunnel type | 7 bits of zeros | 8 bits of zeros*/ #define IXGBE_FDIR_VXLAN_TUNNEL_TYPE 0x8000 /* bit of NVGRE tunnel type | 7 bits of zeros | 8 bits of zeros*/ -- 2.17.1