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 48915A0C5E for ; Fri, 5 Nov 2021 04:39:21 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 3B6AD41102; Fri, 5 Nov 2021 04:39:21 +0100 (CET) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by mails.dpdk.org (Postfix) with ESMTP id 0858740151; Fri, 5 Nov 2021 04:39:17 +0100 (CET) X-IronPort-AV: E=McAfee;i="6200,9189,10158"; a="318041733" X-IronPort-AV: E=Sophos;i="5.87,210,1631602800"; d="scan'208";a="318041733" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Nov 2021 20:39:15 -0700 X-IronPort-AV: E=Sophos;i="5.87,210,1631602800"; d="scan'208";a="450444229" Received: from dpdk.cd.intel.com ([10.240.178.133]) by orsmga006-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Nov 2021 20:39:12 -0700 From: Jie Wang To: dev@dpdk.org Cc: yuying.zhang@intel.com, xiaoyun.li@intel.com, stevex.yang@intel.com, beilei.xing@intel.com, qi.z.zhang@intel.com, Jie Wang , stable@dpdk.org Date: Fri, 5 Nov 2021 11:37:05 +0800 Message-Id: <20211105033705.285200-1-jie1x.wang@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211102070827.141162-1-jie1x.wang@intel.com> References: <20211102070827.141162-1-jie1x.wang@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [dpdk-stable] [PATCH v2] net/i40e: fix forward outer IPv6 VXLAN packets 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" Testpmd forwards packets in checksum mode that it need to calculate the checksum of each layer's protocol. Then it will fill flags and header length into mbuf. In process_outer_cksums, HW calculates the outer checksum if tx_offloads contains outer UDP checksum otherwise SW calculates the outer checksum. When tx_offloads contains outer UDP checksum or outer IPv4 checksum, mbuf will be filled with correct header length. This patch added outer UDP checksum in tx_offload_capa and I40E_TX_OFFLOAD_MASK, when we set csum hw outer-udp on that the engine can forward outer IPv6 VXLAN packets. Fixes: 7497d3e2f777 ("net/i40e: convert to new Tx offloads API") Cc: stable@dpdk.org Signed-off-by: Jie Wang --- drivers/net/i40e/i40e_ethdev.c | 1 + drivers/net/i40e/i40e_rxtx.c | 1 + 2 files changed, 2 insertions(+) diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c index 9ea5f303ff..344cbd25d3 100644 --- a/drivers/net/i40e/i40e_ethdev.c +++ b/drivers/net/i40e/i40e_ethdev.c @@ -3746,6 +3746,7 @@ i40e_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info) RTE_ETH_TX_OFFLOAD_IPIP_TNL_TSO | RTE_ETH_TX_OFFLOAD_GENEVE_TNL_TSO | RTE_ETH_TX_OFFLOAD_MULTI_SEGS | + RTE_ETH_TX_OFFLOAD_OUTER_UDP_CKSUM | dev_info->tx_queue_offload_capa; dev_info->dev_capa = RTE_ETH_DEV_CAPA_RUNTIME_RX_QUEUE_SETUP | diff --git a/drivers/net/i40e/i40e_rxtx.c b/drivers/net/i40e/i40e_rxtx.c index 6ccb598677..41fe3bf481 100644 --- a/drivers/net/i40e/i40e_rxtx.c +++ b/drivers/net/i40e/i40e_rxtx.c @@ -65,6 +65,7 @@ RTE_MBUF_F_TX_QINQ | \ RTE_MBUF_F_TX_VLAN | \ RTE_MBUF_F_TX_TUNNEL_MASK | \ + RTE_MBUF_F_TX_OUTER_UDP_CKSUM | \ I40E_TX_IEEE1588_TMST) #define I40E_TX_OFFLOAD_NOTSUP_MASK \ -- 2.25.1