From 8cc79a1636cda2e9d6ba4cfd1cf16cf2a782ae1b Mon Sep 17 00:00:00 2001 From: Jie Wang Date: Fri, 5 Nov 2021 11:37:05 +0800 Subject: [PATCH] net/i40e: fix forward outer IPv6 VXLAN 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 Acked-by: Beilei Xing --- 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.39.5