patches for DPDK stable branches
 help / color / mirror / Atom feed
* [PATCH] net/ice: fix Tx offload path choice
@ 2021-12-24 15:09 Kevin Liu
       [not found] ` <20211229093702.1930214-1-kevinx.liu@intel.com>
                   ` (2 more replies)
  0 siblings, 3 replies; 16+ messages in thread
From: Kevin Liu @ 2021-12-24 15:09 UTC (permalink / raw)
  To: dev; +Cc: Qi Zhang, stevex.yang, Kevin Liu, stable

Testpmd forwards packets in checksum mode that it needs to calculate
the checksum of each layer's protocol.

When setting the hardware calculates the outer UDP checksum and the
software calculates the outer IP checksum, the dev->tx_pkt_burst in
ice_set_tx_function is set to ice_xmit_pkts_vec_avx2.
The inner and outer UDP checksum of the tunnel packet after forwarding
is wrong.The dev->tx_pkt_burst should be set to ice_xmit_pkts.

The patch adds RTE_ETH_TX_OFFLOAD_OUTER_UDP_CKSUM to
ICE_TX_NO_VECTOR_FLAGS,set dev->tx_pkt_burst to ice_xmit_pkts.After
the tunnel packet is forwarded, the inner and outer UDP checksum is
correct.

At the same time, the patch of "net/ice: fix Tx Checksum offload" will
cause interrupt errors in a special case that only inner IP and inner
UDP checksum are set for hardware calculation.The patch is updating
ICE_TX_NO_VECTOR_FLAGS, the problem can be solved, so I will restore the
code modification of that patch.

Fixes: e6b9d6411e91 ("app/testpmd: add SW L4 checksum in multi-segments")
Fixes: 28f9002ab67f ("net/ice: add Tx AVX512 offload path")
Fixes: 295968d17407 ("ethdev: add namespace")
Fixes: 17c7d0f9d6a4 ("net/ice: support basic Rx/Tx")
Cc: stable@dpdk.org

Signed-off-by: Kevin Liu <kevinx.liu@intel.com>
---
 app/test-pmd/csumonly.c               |  6 +--
 drivers/net/ice/ice_rxtx.c            | 41 ++++++-------------
 drivers/net/ice/ice_rxtx_vec_common.h | 59 +++++++++------------------
 3 files changed, 34 insertions(+), 72 deletions(-)

diff --git a/app/test-pmd/csumonly.c b/app/test-pmd/csumonly.c
index 02bc3929c7..c235456e58 100644
--- a/app/test-pmd/csumonly.c
+++ b/app/test-pmd/csumonly.c
@@ -513,7 +513,7 @@ process_inner_cksums(void *l3_hdr, const struct testpmd_offload_info *info,
 				ol_flags |= RTE_MBUF_F_TX_UDP_CKSUM;
 			} else {
 				if (info->is_tunnel)
-					l4_off = info->l2_len +
+					l4_off = info->outer_l2_len +
 						 info->outer_l3_len +
 						 info->l2_len + info->l3_len;
 				else
@@ -536,7 +536,7 @@ process_inner_cksums(void *l3_hdr, const struct testpmd_offload_info *info,
 			ol_flags |= RTE_MBUF_F_TX_TCP_CKSUM;
 		} else {
 			if (info->is_tunnel)
-				l4_off = info->l2_len + info->outer_l3_len +
+				l4_off = info->outer_l2_len + info->outer_l3_len +
 					 info->l2_len + info->l3_len;
 			else
 				l4_off = info->l2_len + info->l3_len;
@@ -625,7 +625,7 @@ process_outer_cksums(void *outer_l3_hdr, struct testpmd_offload_info *info,
 	if (udp_hdr->dgram_cksum != 0) {
 		udp_hdr->dgram_cksum = 0;
 		udp_hdr->dgram_cksum = get_udptcp_checksum(m, outer_l3_hdr,
-					info->l2_len + info->outer_l3_len,
+					info->outer_l2_len + info->outer_l3_len,
 					info->outer_ethertype);
 	}
 
diff --git a/drivers/net/ice/ice_rxtx.c b/drivers/net/ice/ice_rxtx.c
index 4f218bcd0d..041f4bc91f 100644
--- a/drivers/net/ice/ice_rxtx.c
+++ b/drivers/net/ice/ice_rxtx.c
@@ -2501,35 +2501,18 @@ ice_txd_enable_checksum(uint64_t ol_flags,
 			<< ICE_TX_DESC_LEN_MACLEN_S;
 
 	/* Enable L3 checksum offloads */
-	/*Tunnel package usage outer len enable L3 checksum offload*/
-	if (ol_flags & RTE_MBUF_F_TX_TUNNEL_MASK) {
-		if (ol_flags & RTE_MBUF_F_TX_IP_CKSUM) {
-			*td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV4_CSUM;
-			*td_offset |= (tx_offload.outer_l3_len >> 2) <<
-				ICE_TX_DESC_LEN_IPLEN_S;
-		} else if (ol_flags & RTE_MBUF_F_TX_IPV4) {
-			*td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV4;
-			*td_offset |= (tx_offload.outer_l3_len >> 2) <<
-				ICE_TX_DESC_LEN_IPLEN_S;
-		} else if (ol_flags & RTE_MBUF_F_TX_IPV6) {
-			*td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV6;
-			*td_offset |= (tx_offload.outer_l3_len >> 2) <<
-				ICE_TX_DESC_LEN_IPLEN_S;
-		}
-	} else {
-		if (ol_flags & RTE_MBUF_F_TX_IP_CKSUM) {
-			*td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV4_CSUM;
-			*td_offset |= (tx_offload.l3_len >> 2) <<
-				ICE_TX_DESC_LEN_IPLEN_S;
-		} else if (ol_flags & RTE_MBUF_F_TX_IPV4) {
-			*td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV4;
-			*td_offset |= (tx_offload.l3_len >> 2) <<
-				ICE_TX_DESC_LEN_IPLEN_S;
-		} else if (ol_flags & RTE_MBUF_F_TX_IPV6) {
-			*td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV6;
-			*td_offset |= (tx_offload.l3_len >> 2) <<
-				ICE_TX_DESC_LEN_IPLEN_S;
-		}
+	if (ol_flags & RTE_MBUF_F_TX_IP_CKSUM) {
+		*td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV4_CSUM;
+		*td_offset |= (tx_offload.l3_len >> 2) <<
+			ICE_TX_DESC_LEN_IPLEN_S;
+	} else if (ol_flags & RTE_MBUF_F_TX_IPV4) {
+		*td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV4;
+		*td_offset |= (tx_offload.l3_len >> 2) <<
+			ICE_TX_DESC_LEN_IPLEN_S;
+	} else if (ol_flags & RTE_MBUF_F_TX_IPV6) {
+		*td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV6;
+		*td_offset |= (tx_offload.l3_len >> 2) <<
+			ICE_TX_DESC_LEN_IPLEN_S;
 	}
 
 	if (ol_flags & RTE_MBUF_F_TX_TCP_SEG) {
diff --git a/drivers/net/ice/ice_rxtx_vec_common.h b/drivers/net/ice/ice_rxtx_vec_common.h
index 8ff01046e1..2dd2d83650 100644
--- a/drivers/net/ice/ice_rxtx_vec_common.h
+++ b/drivers/net/ice/ice_rxtx_vec_common.h
@@ -250,7 +250,8 @@ ice_rxq_vec_setup_default(struct ice_rx_queue *rxq)
 #define ICE_TX_NO_VECTOR_FLAGS (			\
 		RTE_ETH_TX_OFFLOAD_MULTI_SEGS |		\
 		RTE_ETH_TX_OFFLOAD_OUTER_IPV4_CKSUM |	\
-		RTE_ETH_TX_OFFLOAD_TCP_TSO)
+		RTE_ETH_TX_OFFLOAD_TCP_TSO |	\
+		RTE_ETH_TX_OFFLOAD_OUTER_UDP_CKSUM)
 
 #define ICE_TX_VECTOR_OFFLOAD (				\
 		RTE_ETH_TX_OFFLOAD_VLAN_INSERT |		\
@@ -364,45 +365,23 @@ ice_txd_enable_offload(struct rte_mbuf *tx_pkt,
 	uint32_t td_offset = 0;
 
 	/* Tx Checksum Offload */
-	/*Tunnel package usage outer len enable L2/L3 checksum offload*/
-	if (ol_flags & RTE_MBUF_F_TX_TUNNEL_MASK) {
-		/* SET MACLEN */
-		td_offset |= (tx_pkt->outer_l2_len >> 1) <<
-			ICE_TX_DESC_LEN_MACLEN_S;
-
-		/* Enable L3 checksum offload */
-		if (ol_flags & RTE_MBUF_F_TX_IP_CKSUM) {
-			td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV4_CSUM;
-			td_offset |= (tx_pkt->outer_l3_len >> 2) <<
-				ICE_TX_DESC_LEN_IPLEN_S;
-		} else if (ol_flags & RTE_MBUF_F_TX_IPV4) {
-			td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV4;
-			td_offset |= (tx_pkt->outer_l3_len >> 2) <<
-				ICE_TX_DESC_LEN_IPLEN_S;
-		} else if (ol_flags & RTE_MBUF_F_TX_IPV6) {
-			td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV6;
-			td_offset |= (tx_pkt->outer_l3_len >> 2) <<
-				ICE_TX_DESC_LEN_IPLEN_S;
-		}
-	} else {
-		/* SET MACLEN */
-		td_offset |= (tx_pkt->l2_len >> 1) <<
-			ICE_TX_DESC_LEN_MACLEN_S;
-
-		/* Enable L3 checksum offload */
-		if (ol_flags & RTE_MBUF_F_TX_IP_CKSUM) {
-			td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV4_CSUM;
-			td_offset |= (tx_pkt->l3_len >> 2) <<
-				ICE_TX_DESC_LEN_IPLEN_S;
-		} else if (ol_flags & RTE_MBUF_F_TX_IPV4) {
-			td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV4;
-			td_offset |= (tx_pkt->l3_len >> 2) <<
-				ICE_TX_DESC_LEN_IPLEN_S;
-		} else if (ol_flags & RTE_MBUF_F_TX_IPV6) {
-			td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV6;
-			td_offset |= (tx_pkt->l3_len >> 2) <<
-				ICE_TX_DESC_LEN_IPLEN_S;
-		}
+	/* SET MACLEN */
+	td_offset |= (tx_pkt->l2_len >> 1) <<
+		ICE_TX_DESC_LEN_MACLEN_S;
+
+	/* Enable L3 checksum offload */
+	if (ol_flags & RTE_MBUF_F_TX_IP_CKSUM) {
+		td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV4_CSUM;
+		td_offset |= (tx_pkt->l3_len >> 2) <<
+			ICE_TX_DESC_LEN_IPLEN_S;
+	} else if (ol_flags & RTE_MBUF_F_TX_IPV4) {
+		td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV4;
+		td_offset |= (tx_pkt->l3_len >> 2) <<
+			ICE_TX_DESC_LEN_IPLEN_S;
+	} else if (ol_flags & RTE_MBUF_F_TX_IPV6) {
+		td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV6;
+		td_offset |= (tx_pkt->l3_len >> 2) <<
+			ICE_TX_DESC_LEN_IPLEN_S;
 	}
 
 	/* Enable L4 checksum offloads */
-- 
2.33.1


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH v2 1/2] net/ice: fix Tx offload path choice
       [not found] ` <20211229093702.1930214-1-kevinx.liu@intel.com>
@ 2021-12-29  9:37   ` Kevin Liu
  2022-03-04  3:19     ` Xu, Ting
  2021-12-29  9:37   ` [PATCH v2 2/2] app/testpmd: fix SW L4 checksum in multi-segments Kevin Liu
  1 sibling, 1 reply; 16+ messages in thread
From: Kevin Liu @ 2021-12-29  9:37 UTC (permalink / raw)
  To: dev; +Cc: qiming.yang, qi.z.zhang, stevex.yang, ferruh.yigit, Kevin Liu, stable

Testpmd forwards packets in checksum mode that it needs to calculate
the checksum of each layer's protocol.

When setting the hardware calculates the outer UDP checksum and the
software calculates the outer IP checksum, the dev->tx_pkt_burst in
ice_set_tx_function is set to ice_xmit_pkts_vec_avx2.
The inner and outer UDP checksum of the tunnel packet after forwarding
is wrong.The dev->tx_pkt_burst should be set to ice_xmit_pkts.

The patch adds RTE_ETH_TX_OFFLOAD_OUTER_UDP_CKSUM to
ICE_TX_NO_VECTOR_FLAGS,set dev->tx_pkt_burst to ice_xmit_pkts.After
the tunnel packet is forwarded, the inner and outer UDP checksum is
correct.

At the same time, the patch of "net/ice: fix Tx Checksum offload" will
cause interrupt errors in a special case that only inner IP and inner
UDP checksum are set for hardware calculation.The patch is updating
ICE_TX_NO_VECTOR_FLAGS, the problem can be solved, so I will restore the
code modification of that patch.

Fixes: 28f9002ab67f ("net/ice: add Tx AVX512 offload path")
Fixes: 295968d17407 ("ethdev: add namespace")
Fixes: 17c7d0f9d6a4 ("net/ice: support basic Rx/Tx")
Cc: stable@dpdk.org

Signed-off-by: Kevin Liu <kevinx.liu@intel.com>
---
 drivers/net/ice/ice_rxtx.c            | 41 ++++++-------------
 drivers/net/ice/ice_rxtx_vec_common.h | 59 +++++++++------------------
 2 files changed, 31 insertions(+), 69 deletions(-)

diff --git a/drivers/net/ice/ice_rxtx.c b/drivers/net/ice/ice_rxtx.c
index 4f218bcd0d..041f4bc91f 100644
--- a/drivers/net/ice/ice_rxtx.c
+++ b/drivers/net/ice/ice_rxtx.c
@@ -2501,35 +2501,18 @@ ice_txd_enable_checksum(uint64_t ol_flags,
 			<< ICE_TX_DESC_LEN_MACLEN_S;
 
 	/* Enable L3 checksum offloads */
-	/*Tunnel package usage outer len enable L3 checksum offload*/
-	if (ol_flags & RTE_MBUF_F_TX_TUNNEL_MASK) {
-		if (ol_flags & RTE_MBUF_F_TX_IP_CKSUM) {
-			*td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV4_CSUM;
-			*td_offset |= (tx_offload.outer_l3_len >> 2) <<
-				ICE_TX_DESC_LEN_IPLEN_S;
-		} else if (ol_flags & RTE_MBUF_F_TX_IPV4) {
-			*td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV4;
-			*td_offset |= (tx_offload.outer_l3_len >> 2) <<
-				ICE_TX_DESC_LEN_IPLEN_S;
-		} else if (ol_flags & RTE_MBUF_F_TX_IPV6) {
-			*td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV6;
-			*td_offset |= (tx_offload.outer_l3_len >> 2) <<
-				ICE_TX_DESC_LEN_IPLEN_S;
-		}
-	} else {
-		if (ol_flags & RTE_MBUF_F_TX_IP_CKSUM) {
-			*td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV4_CSUM;
-			*td_offset |= (tx_offload.l3_len >> 2) <<
-				ICE_TX_DESC_LEN_IPLEN_S;
-		} else if (ol_flags & RTE_MBUF_F_TX_IPV4) {
-			*td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV4;
-			*td_offset |= (tx_offload.l3_len >> 2) <<
-				ICE_TX_DESC_LEN_IPLEN_S;
-		} else if (ol_flags & RTE_MBUF_F_TX_IPV6) {
-			*td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV6;
-			*td_offset |= (tx_offload.l3_len >> 2) <<
-				ICE_TX_DESC_LEN_IPLEN_S;
-		}
+	if (ol_flags & RTE_MBUF_F_TX_IP_CKSUM) {
+		*td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV4_CSUM;
+		*td_offset |= (tx_offload.l3_len >> 2) <<
+			ICE_TX_DESC_LEN_IPLEN_S;
+	} else if (ol_flags & RTE_MBUF_F_TX_IPV4) {
+		*td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV4;
+		*td_offset |= (tx_offload.l3_len >> 2) <<
+			ICE_TX_DESC_LEN_IPLEN_S;
+	} else if (ol_flags & RTE_MBUF_F_TX_IPV6) {
+		*td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV6;
+		*td_offset |= (tx_offload.l3_len >> 2) <<
+			ICE_TX_DESC_LEN_IPLEN_S;
 	}
 
 	if (ol_flags & RTE_MBUF_F_TX_TCP_SEG) {
diff --git a/drivers/net/ice/ice_rxtx_vec_common.h b/drivers/net/ice/ice_rxtx_vec_common.h
index 8ff01046e1..2dd2d83650 100644
--- a/drivers/net/ice/ice_rxtx_vec_common.h
+++ b/drivers/net/ice/ice_rxtx_vec_common.h
@@ -250,7 +250,8 @@ ice_rxq_vec_setup_default(struct ice_rx_queue *rxq)
 #define ICE_TX_NO_VECTOR_FLAGS (			\
 		RTE_ETH_TX_OFFLOAD_MULTI_SEGS |		\
 		RTE_ETH_TX_OFFLOAD_OUTER_IPV4_CKSUM |	\
-		RTE_ETH_TX_OFFLOAD_TCP_TSO)
+		RTE_ETH_TX_OFFLOAD_TCP_TSO |	\
+		RTE_ETH_TX_OFFLOAD_OUTER_UDP_CKSUM)
 
 #define ICE_TX_VECTOR_OFFLOAD (				\
 		RTE_ETH_TX_OFFLOAD_VLAN_INSERT |		\
@@ -364,45 +365,23 @@ ice_txd_enable_offload(struct rte_mbuf *tx_pkt,
 	uint32_t td_offset = 0;
 
 	/* Tx Checksum Offload */
-	/*Tunnel package usage outer len enable L2/L3 checksum offload*/
-	if (ol_flags & RTE_MBUF_F_TX_TUNNEL_MASK) {
-		/* SET MACLEN */
-		td_offset |= (tx_pkt->outer_l2_len >> 1) <<
-			ICE_TX_DESC_LEN_MACLEN_S;
-
-		/* Enable L3 checksum offload */
-		if (ol_flags & RTE_MBUF_F_TX_IP_CKSUM) {
-			td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV4_CSUM;
-			td_offset |= (tx_pkt->outer_l3_len >> 2) <<
-				ICE_TX_DESC_LEN_IPLEN_S;
-		} else if (ol_flags & RTE_MBUF_F_TX_IPV4) {
-			td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV4;
-			td_offset |= (tx_pkt->outer_l3_len >> 2) <<
-				ICE_TX_DESC_LEN_IPLEN_S;
-		} else if (ol_flags & RTE_MBUF_F_TX_IPV6) {
-			td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV6;
-			td_offset |= (tx_pkt->outer_l3_len >> 2) <<
-				ICE_TX_DESC_LEN_IPLEN_S;
-		}
-	} else {
-		/* SET MACLEN */
-		td_offset |= (tx_pkt->l2_len >> 1) <<
-			ICE_TX_DESC_LEN_MACLEN_S;
-
-		/* Enable L3 checksum offload */
-		if (ol_flags & RTE_MBUF_F_TX_IP_CKSUM) {
-			td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV4_CSUM;
-			td_offset |= (tx_pkt->l3_len >> 2) <<
-				ICE_TX_DESC_LEN_IPLEN_S;
-		} else if (ol_flags & RTE_MBUF_F_TX_IPV4) {
-			td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV4;
-			td_offset |= (tx_pkt->l3_len >> 2) <<
-				ICE_TX_DESC_LEN_IPLEN_S;
-		} else if (ol_flags & RTE_MBUF_F_TX_IPV6) {
-			td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV6;
-			td_offset |= (tx_pkt->l3_len >> 2) <<
-				ICE_TX_DESC_LEN_IPLEN_S;
-		}
+	/* SET MACLEN */
+	td_offset |= (tx_pkt->l2_len >> 1) <<
+		ICE_TX_DESC_LEN_MACLEN_S;
+
+	/* Enable L3 checksum offload */
+	if (ol_flags & RTE_MBUF_F_TX_IP_CKSUM) {
+		td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV4_CSUM;
+		td_offset |= (tx_pkt->l3_len >> 2) <<
+			ICE_TX_DESC_LEN_IPLEN_S;
+	} else if (ol_flags & RTE_MBUF_F_TX_IPV4) {
+		td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV4;
+		td_offset |= (tx_pkt->l3_len >> 2) <<
+			ICE_TX_DESC_LEN_IPLEN_S;
+	} else if (ol_flags & RTE_MBUF_F_TX_IPV6) {
+		td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV6;
+		td_offset |= (tx_pkt->l3_len >> 2) <<
+			ICE_TX_DESC_LEN_IPLEN_S;
 	}
 
 	/* Enable L4 checksum offloads */
-- 
2.33.1


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH v2 2/2] app/testpmd: fix SW L4 checksum in multi-segments
       [not found] ` <20211229093702.1930214-1-kevinx.liu@intel.com>
  2021-12-29  9:37   ` [PATCH v2 1/2] " Kevin Liu
@ 2021-12-29  9:37   ` Kevin Liu
       [not found]     ` <d2d97e6cf1a14faaa47b61b63ed55573@intel.com>
  1 sibling, 1 reply; 16+ messages in thread
From: Kevin Liu @ 2021-12-29  9:37 UTC (permalink / raw)
  To: dev; +Cc: qiming.yang, qi.z.zhang, stevex.yang, ferruh.yigit, Kevin Liu, stable

Testpmd forwards packets in checksum mode that it needs to calculate
the checksum of each layer's protocol.

In process_inner_cksums, when parsing tunnel packets, inner L4 offset should be
outer_l2_len + outer_l3_len + l2_len + l3_len.

In process_outer_cksums, when parsing tunnel packets, outer L4 offset should be
outer_l2_len + outer_l3_len.

Fixes: e6b9d6411e91 ("app/testpmd: add SW L4 checksum in multi-segments")
Cc: stable@dpdk.org

Signed-off-by: Kevin Liu <kevinx.liu@intel.com>
---
 app/test-pmd/csumonly.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/app/test-pmd/csumonly.c b/app/test-pmd/csumonly.c
index 02bc3929c7..c235456e58 100644
--- a/app/test-pmd/csumonly.c
+++ b/app/test-pmd/csumonly.c
@@ -513,7 +513,7 @@ process_inner_cksums(void *l3_hdr, const struct testpmd_offload_info *info,
 				ol_flags |= RTE_MBUF_F_TX_UDP_CKSUM;
 			} else {
 				if (info->is_tunnel)
-					l4_off = info->l2_len +
+					l4_off = info->outer_l2_len +
 						 info->outer_l3_len +
 						 info->l2_len + info->l3_len;
 				else
@@ -536,7 +536,7 @@ process_inner_cksums(void *l3_hdr, const struct testpmd_offload_info *info,
 			ol_flags |= RTE_MBUF_F_TX_TCP_CKSUM;
 		} else {
 			if (info->is_tunnel)
-				l4_off = info->l2_len + info->outer_l3_len +
+				l4_off = info->outer_l2_len + info->outer_l3_len +
 					 info->l2_len + info->l3_len;
 			else
 				l4_off = info->l2_len + info->l3_len;
@@ -625,7 +625,7 @@ process_outer_cksums(void *outer_l3_hdr, struct testpmd_offload_info *info,
 	if (udp_hdr->dgram_cksum != 0) {
 		udp_hdr->dgram_cksum = 0;
 		udp_hdr->dgram_cksum = get_udptcp_checksum(m, outer_l3_hdr,
-					info->l2_len + info->outer_l3_len,
+					info->outer_l2_len + info->outer_l3_len,
 					info->outer_ethertype);
 	}
 
-- 
2.33.1


^ permalink raw reply	[flat|nested] 16+ messages in thread

* RE: [PATCH] net/ice: fix Tx offload path choice
  2021-12-24 15:09 [PATCH] net/ice: fix Tx offload path choice Kevin Liu
       [not found] ` <20211229093702.1930214-1-kevinx.liu@intel.com>
@ 2022-02-24  2:32 ` Ling, WeiX
  2022-02-27  6:19 ` Zhang, Qi Z
  2 siblings, 0 replies; 16+ messages in thread
From: Ling, WeiX @ 2022-02-24  2:32 UTC (permalink / raw)
  To: Liu, KevinX, dev; +Cc: Zhang, Qi Z, Yang, SteveX, Liu, KevinX, stable

> -----Original Message-----
> From: Kevin Liu <kevinx.liu@intel.com>
> Sent: Friday, December 24, 2021 11:09 PM
> To: dev@dpdk.org
> Cc: Zhang, Qi Z <qi.z.zhang@intel.com>; Yang, SteveX
> <stevex.yang@intel.com>; Liu, KevinX <kevinx.liu@intel.com>;
> stable@dpdk.org
> Subject: [PATCH] net/ice: fix Tx offload path choice
>
> Testpmd forwards packets in checksum mode that it needs to calculate the
> checksum of each layer's protocol.
>
> When setting the hardware calculates the outer UDP checksum and the
> software calculates the outer IP checksum, the dev->tx_pkt_burst in
> ice_set_tx_function is set to ice_xmit_pkts_vec_avx2.
> The inner and outer UDP checksum of the tunnel packet after forwarding is
> wrong.The dev->tx_pkt_burst should be set to ice_xmit_pkts.
>
> The patch adds RTE_ETH_TX_OFFLOAD_OUTER_UDP_CKSUM to
> ICE_TX_NO_VECTOR_FLAGS,set dev->tx_pkt_burst to ice_xmit_pkts.After
> the tunnel packet is forwarded, the inner and outer UDP checksum is correct.
>
> At the same time, the patch of "net/ice: fix Tx Checksum offload" will cause
> interrupt errors in a special case that only inner IP and inner UDP checksum
> are set for hardware calculation.The patch is updating
> ICE_TX_NO_VECTOR_FLAGS, the problem can be solved, so I will restore the
> code modification of that patch.
>
> Fixes: e6b9d6411e91 ("app/testpmd: add SW L4 checksum in multi-
> segments")
> Fixes: 28f9002ab67f ("net/ice: add Tx AVX512 offload path")
> Fixes: 295968d17407 ("ethdev: add namespace")
> Fixes: 17c7d0f9d6a4 ("net/ice: support basic Rx/Tx")
> Cc: stable@dpdk.org
>
> Signed-off-by: Kevin Liu <kevinx.liu@intel.com>
> ---

Tested-by: Wei Ling <weix.ling@intel.com>

^ permalink raw reply	[flat|nested] 16+ messages in thread

* RE: [PATCH] net/ice: fix Tx offload path choice
  2021-12-24 15:09 [PATCH] net/ice: fix Tx offload path choice Kevin Liu
       [not found] ` <20211229093702.1930214-1-kevinx.liu@intel.com>
  2022-02-24  2:32 ` [PATCH] net/ice: fix Tx offload path choice Ling, WeiX
@ 2022-02-27  6:19 ` Zhang, Qi Z
  2 siblings, 0 replies; 16+ messages in thread
From: Zhang, Qi Z @ 2022-02-27  6:19 UTC (permalink / raw)
  To: Liu, KevinX, dev; +Cc: Yang, SteveX, stable



> -----Original Message-----
> From: Liu, KevinX <kevinx.liu@intel.com>
> Sent: Friday, December 24, 2021 11:09 PM
> To: dev@dpdk.org
> Cc: Zhang, Qi Z <qi.z.zhang@intel.com>; Yang, SteveX <stevex.yang@intel.com>;
> Liu, KevinX <kevinx.liu@intel.com>; stable@dpdk.org
> Subject: [PATCH] net/ice: fix Tx offload path choice
> 
> Testpmd forwards packets in checksum mode that it needs to calculate the
> checksum of each layer's protocol.
> 
> When setting the hardware calculates the outer UDP checksum and the
> software calculates the outer IP checksum, the dev->tx_pkt_burst in
> ice_set_tx_function is set to ice_xmit_pkts_vec_avx2.
> The inner and outer UDP checksum of the tunnel packet after forwarding is
> wrong.The dev->tx_pkt_burst should be set to ice_xmit_pkts.
> 
> The patch adds RTE_ETH_TX_OFFLOAD_OUTER_UDP_CKSUM to
> ICE_TX_NO_VECTOR_FLAGS,set dev->tx_pkt_burst to ice_xmit_pkts.After the
> tunnel packet is forwarded, the inner and outer UDP checksum is correct.
> 
> At the same time, the patch of "net/ice: fix Tx Checksum offload" will cause
> interrupt errors in a special case that only inner IP and inner UDP checksum are
> set for hardware calculation.The patch is updating ICE_TX_NO_VECTOR_FLAGS,
> the problem can be solved, so I will restore the code modification of that patch.
> 
> Fixes: e6b9d6411e91 ("app/testpmd: add SW L4 checksum in multi-segments")
> Fixes: 28f9002ab67f ("net/ice: add Tx AVX512 offload path")
> Fixes: 295968d17407 ("ethdev: add namespace")
> Fixes: 17c7d0f9d6a4 ("net/ice: support basic Rx/Tx")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Kevin Liu <kevinx.liu@intel.com>
> ---
>  app/test-pmd/csumonly.c               |  6 +--
>  drivers/net/ice/ice_rxtx.c            | 41 ++++++-------------
>  drivers/net/ice/ice_rxtx_vec_common.h | 59 +++++++++------------------
>  3 files changed, 34 insertions(+), 72 deletions(-)

Please separate testpmd fix and pmd fix into two patches. 



^ permalink raw reply	[flat|nested] 16+ messages in thread

* RE: [PATCH v2 2/2] app/testpmd: fix SW L4 checksum in multi-segments
       [not found]     ` <d2d97e6cf1a14faaa47b61b63ed55573@intel.com>
@ 2022-03-03  6:29       ` Zhang, Yuying
  2022-03-11  7:04         ` Liu, KevinX
  0 siblings, 1 reply; 16+ messages in thread
From: Zhang, Yuying @ 2022-03-03  6:29 UTC (permalink / raw)
  To: Zhang, Qi Z, Liu, KevinX, dev
  Cc: Yang, Qiming, Yang, SteveX, Yigit, Ferruh, Xing, Beilei, Li,
	Xiaoyun, dpdk stable

LGTM.

> > -----Original Message-----
> > From: Liu, KevinX <kevinx.liu@intel.com>
> > Sent: Wednesday, December 29, 2021 5:37 PM
> > To: dev@dpdk.org
> > Cc: Yang, Qiming <qiming.yang@intel.com>; Zhang, Qi Z
> > <qi.z.zhang@intel.com>; Yang, SteveX <stevex.yang@intel.com>; Yigit,
> > Ferruh <ferruh.yigit@intel.com>; Liu, KevinX <kevinx.liu@intel.com>;
> > stable@dpdk.org
> > Subject: [PATCH v2 2/2] app/testpmd: fix SW L4 checksum in
> > multi-segments
> >
> > Testpmd forwards packets in checksum mode that it needs to calculate
> > the checksum of each layer's protocol.
> >
> > In process_inner_cksums, when parsing tunnel packets, inner L4 offset
> > should be outer_l2_len + outer_l3_len + l2_len + l3_len.
> >
> > In process_outer_cksums, when parsing tunnel packets, outer L4 offset
> > should be outer_l2_len + outer_l3_len.
> >
> > Fixes: e6b9d6411e91 ("app/testpmd: add SW L4 checksum in multi-
> > segments")
> > Cc: stable@dpdk.org
> >
> > Signed-off-by: Kevin Liu <kevinx.liu@intel.com>

Acked-by: Yuying Zhang <yuying.zhang@intel.com>

> > ---
> >  app/test-pmd/csumonly.c | 6 +++---
> >  1 file changed, 3 insertions(+), 3 deletions(-)
> >
> > diff --git a/app/test-pmd/csumonly.c b/app/test-pmd/csumonly.c index
> > 02bc3929c7..c235456e58 100644
> > --- a/app/test-pmd/csumonly.c
> > +++ b/app/test-pmd/csumonly.c
> 
> 
> > @@ -513,7 +513,7 @@ process_inner_cksums(void *l3_hdr, const struct
> > testpmd_offload_info *info,  ol_flags |= RTE_MBUF_F_TX_UDP_CKSUM;  }
> > else {  if (info->is_tunnel) -l4_off = info->l2_len +
> > +l4_off = info->outer_l2_len +
> >   info->outer_l3_len +
> >   info->l2_len + info->l3_len;
> >  else
> > @@ -536,7 +536,7 @@ process_inner_cksums(void *l3_hdr, const struct
> > testpmd_offload_info *info,  ol_flags |= RTE_MBUF_F_TX_TCP_CKSUM;  }
> > else {  if (info->is_tunnel) -l4_off = info->l2_len +
> > info->outer_l3_len +
> > +l4_off = info->outer_l2_len + info-
> > >outer_l3_len +
> >   info->l2_len + info->l3_len;
> >  else
> >  l4_off = info->l2_len + info->l3_len; @@ -
> > 625,7 +625,7 @@ process_outer_cksums(void *outer_l3_hdr, struct
> > testpmd_offload_info *info,  if (udp_hdr->dgram_cksum != 0) {
> > udp_hdr->dgram_cksum = 0;  udp_hdr->dgram_cksum =
> > get_udptcp_checksum(m, outer_l3_hdr,
> > -info->l2_len + info->outer_l3_len,
> > +info->outer_l2_len + info-
> > >outer_l3_len,
> >  info->outer_ethertype);
> >  }
> >
> > --
> > 2.33.1
> 


^ permalink raw reply	[flat|nested] 16+ messages in thread

* RE: [PATCH v2 1/2] net/ice: fix Tx offload path choice
  2021-12-29  9:37   ` [PATCH v2 1/2] " Kevin Liu
@ 2022-03-04  3:19     ` Xu, Ting
  2022-03-04  3:31       ` Zhang, Qi Z
  0 siblings, 1 reply; 16+ messages in thread
From: Xu, Ting @ 2022-03-04  3:19 UTC (permalink / raw)
  To: Liu, KevinX, dev
  Cc: Yang, Qiming, Zhang, Qi Z, Yang, SteveX, Yigit, Ferruh, Liu,
	KevinX, stable

> -----Original Message-----
> From: Kevin Liu <kevinx.liu@intel.com>
> Sent: Wednesday, December 29, 2021 5:37 PM
> To: dev@dpdk.org
> Cc: Yang, Qiming <qiming.yang@intel.com>; Zhang, Qi Z
> <qi.z.zhang@intel.com>; Yang, SteveX <stevex.yang@intel.com>; Yigit, Ferruh
> <ferruh.yigit@intel.com>; Liu, KevinX <kevinx.liu@intel.com>;
> stable@dpdk.org
> Subject: [PATCH v2 1/2] net/ice: fix Tx offload path choice
>
> Testpmd forwards packets in checksum mode that it needs to calculate the
> checksum of each layer's protocol.
>
> When setting the hardware calculates the outer UDP checksum and the
> software calculates the outer IP checksum, the dev->tx_pkt_burst in
> ice_set_tx_function is set to ice_xmit_pkts_vec_avx2.
> The inner and outer UDP checksum of the tunnel packet after forwarding is
> wrong.The dev->tx_pkt_burst should be set to ice_xmit_pkts.
>
> The patch adds RTE_ETH_TX_OFFLOAD_OUTER_UDP_CKSUM to
> ICE_TX_NO_VECTOR_FLAGS,set dev->tx_pkt_burst to ice_xmit_pkts.After the
> tunnel packet is forwarded, the inner and outer UDP checksum is correct.
>
> At the same time, the patch of "net/ice: fix Tx Checksum offload" will cause
> interrupt errors in a special case that only inner IP and inner UDP checksum
> are set for hardware calculation.The patch is updating
> ICE_TX_NO_VECTOR_FLAGS, the problem can be solved, so I will restore the
> code modification of that patch.
>
> Fixes: 28f9002ab67f ("net/ice: add Tx AVX512 offload path")
> Fixes: 295968d17407 ("ethdev: add namespace")
> Fixes: 17c7d0f9d6a4 ("net/ice: support basic Rx/Tx")
> Cc: stable@dpdk.org
>
> Signed-off-by: Kevin Liu <kevinx.liu@intel.com>
> ---
>  drivers/net/ice/ice_rxtx.c            | 41 ++++++-------------
>  drivers/net/ice/ice_rxtx_vec_common.h | 59 +++++++++------------------
>  2 files changed, 31 insertions(+), 69 deletions(-)
>
> diff --git a/drivers/net/ice/ice_rxtx.c b/drivers/net/ice/ice_rxtx.c index
> 4f218bcd0d..041f4bc91f 100644
> --- a/drivers/net/ice/ice_rxtx.c
> +++ b/drivers/net/ice/ice_rxtx.c
> @@ -2501,35 +2501,18 @@ ice_txd_enable_checksum(uint64_t ol_flags,
>                       << ICE_TX_DESC_LEN_MACLEN_S;
>
>       /* Enable L3 checksum offloads */
> -     /*Tunnel package usage outer len enable L3 checksum offload*/
> -     if (ol_flags & RTE_MBUF_F_TX_TUNNEL_MASK) {
> -             if (ol_flags & RTE_MBUF_F_TX_IP_CKSUM) {
> -                     *td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV4_CSUM;
> -                     *td_offset |= (tx_offload.outer_l3_len >> 2) <<
> -                             ICE_TX_DESC_LEN_IPLEN_S;
> -             } else if (ol_flags & RTE_MBUF_F_TX_IPV4) {
> -                     *td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV4;
> -                     *td_offset |= (tx_offload.outer_l3_len >> 2) <<
> -                             ICE_TX_DESC_LEN_IPLEN_S;
> -             } else if (ol_flags & RTE_MBUF_F_TX_IPV6) {
> -                     *td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV6;
> -                     *td_offset |= (tx_offload.outer_l3_len >> 2) <<
> -                             ICE_TX_DESC_LEN_IPLEN_S;
> -             }
> -     } else {
> -             if (ol_flags & RTE_MBUF_F_TX_IP_CKSUM) {
> -                     *td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV4_CSUM;
> -                     *td_offset |= (tx_offload.l3_len >> 2) <<
> -                             ICE_TX_DESC_LEN_IPLEN_S;
> -             } else if (ol_flags & RTE_MBUF_F_TX_IPV4) {
> -                     *td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV4;
> -                     *td_offset |= (tx_offload.l3_len >> 2) <<
> -                             ICE_TX_DESC_LEN_IPLEN_S;
> -             } else if (ol_flags & RTE_MBUF_F_TX_IPV6) {
> -                     *td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV6;
> -                     *td_offset |= (tx_offload.l3_len >> 2) <<
> -                             ICE_TX_DESC_LEN_IPLEN_S;
> -             }
> +     if (ol_flags & RTE_MBUF_F_TX_IP_CKSUM) {
> +             *td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV4_CSUM;
> +             *td_offset |= (tx_offload.l3_len >> 2) <<
> +                     ICE_TX_DESC_LEN_IPLEN_S;
> +     } else if (ol_flags & RTE_MBUF_F_TX_IPV4) {
> +             *td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV4;
> +             *td_offset |= (tx_offload.l3_len >> 2) <<
> +                     ICE_TX_DESC_LEN_IPLEN_S;
> +     } else if (ol_flags & RTE_MBUF_F_TX_IPV6) {
> +             *td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV6;
> +             *td_offset |= (tx_offload.l3_len >> 2) <<
> +                     ICE_TX_DESC_LEN_IPLEN_S;
>       }
>
>       if (ol_flags & RTE_MBUF_F_TX_TCP_SEG) { diff --git
> a/drivers/net/ice/ice_rxtx_vec_common.h
> b/drivers/net/ice/ice_rxtx_vec_common.h
> index 8ff01046e1..2dd2d83650 100644
> --- a/drivers/net/ice/ice_rxtx_vec_common.h
> +++ b/drivers/net/ice/ice_rxtx_vec_common.h
> @@ -250,7 +250,8 @@ ice_rxq_vec_setup_default(struct ice_rx_queue *rxq)
>  #define ICE_TX_NO_VECTOR_FLAGS (                     \
>               RTE_ETH_TX_OFFLOAD_MULTI_SEGS |         \
>               RTE_ETH_TX_OFFLOAD_OUTER_IPV4_CKSUM |   \
> -             RTE_ETH_TX_OFFLOAD_TCP_TSO)
> +             RTE_ETH_TX_OFFLOAD_TCP_TSO |    \
> +             RTE_ETH_TX_OFFLOAD_OUTER_UDP_CKSUM)
>
>  #define ICE_TX_VECTOR_OFFLOAD (                              \
>               RTE_ETH_TX_OFFLOAD_VLAN_INSERT |                \
> @@ -364,45 +365,23 @@ ice_txd_enable_offload(struct rte_mbuf *tx_pkt,
>       uint32_t td_offset = 0;
>
>       /* Tx Checksum Offload */
> -     /*Tunnel package usage outer len enable L2/L3 checksum offload*/
> -     if (ol_flags & RTE_MBUF_F_TX_TUNNEL_MASK) {
> -             /* SET MACLEN */
> -             td_offset |= (tx_pkt->outer_l2_len >> 1) <<
> -                     ICE_TX_DESC_LEN_MACLEN_S;
> -
> -             /* Enable L3 checksum offload */
> -             if (ol_flags & RTE_MBUF_F_TX_IP_CKSUM) {
> -                     td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV4_CSUM;
> -                     td_offset |= (tx_pkt->outer_l3_len >> 2) <<
> -                             ICE_TX_DESC_LEN_IPLEN_S;
> -             } else if (ol_flags & RTE_MBUF_F_TX_IPV4) {
> -                     td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV4;
> -                     td_offset |= (tx_pkt->outer_l3_len >> 2) <<
> -                             ICE_TX_DESC_LEN_IPLEN_S;
> -             } else if (ol_flags & RTE_MBUF_F_TX_IPV6) {
> -                     td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV6;
> -                     td_offset |= (tx_pkt->outer_l3_len >> 2) <<
> -                             ICE_TX_DESC_LEN_IPLEN_S;
> -             }
> -     } else {
> -             /* SET MACLEN */
> -             td_offset |= (tx_pkt->l2_len >> 1) <<
> -                     ICE_TX_DESC_LEN_MACLEN_S;
> -
> -             /* Enable L3 checksum offload */
> -             if (ol_flags & RTE_MBUF_F_TX_IP_CKSUM) {
> -                     td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV4_CSUM;
> -                     td_offset |= (tx_pkt->l3_len >> 2) <<
> -                             ICE_TX_DESC_LEN_IPLEN_S;
> -             } else if (ol_flags & RTE_MBUF_F_TX_IPV4) {
> -                     td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV4;
> -                     td_offset |= (tx_pkt->l3_len >> 2) <<
> -                             ICE_TX_DESC_LEN_IPLEN_S;
> -             } else if (ol_flags & RTE_MBUF_F_TX_IPV6) {
> -                     td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV6;
> -                     td_offset |= (tx_pkt->l3_len >> 2) <<
> -                             ICE_TX_DESC_LEN_IPLEN_S;
> -             }
> +     /* SET MACLEN */
> +     td_offset |= (tx_pkt->l2_len >> 1) <<
> +             ICE_TX_DESC_LEN_MACLEN_S;
> +
> +     /* Enable L3 checksum offload */
> +     if (ol_flags & RTE_MBUF_F_TX_IP_CKSUM) {
> +             td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV4_CSUM;
> +             td_offset |= (tx_pkt->l3_len >> 2) <<
> +                     ICE_TX_DESC_LEN_IPLEN_S;
> +     } else if (ol_flags & RTE_MBUF_F_TX_IPV4) {
> +             td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV4;
> +             td_offset |= (tx_pkt->l3_len >> 2) <<
> +                     ICE_TX_DESC_LEN_IPLEN_S;
> +     } else if (ol_flags & RTE_MBUF_F_TX_IPV6) {
> +             td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV6;
> +             td_offset |= (tx_pkt->l3_len >> 2) <<
> +                     ICE_TX_DESC_LEN_IPLEN_S;
>       }
>
>       /* Enable L4 checksum offloads */
> --
> 2.33.1

Acked-by: Ting Xu <ting.xu@intel.com>

^ permalink raw reply	[flat|nested] 16+ messages in thread

* RE: [PATCH v2 1/2] net/ice: fix Tx offload path choice
  2022-03-04  3:19     ` Xu, Ting
@ 2022-03-04  3:31       ` Zhang, Qi Z
  2022-03-04 11:52         ` Ferruh Yigit
  0 siblings, 1 reply; 16+ messages in thread
From: Zhang, Qi Z @ 2022-03-04  3:31 UTC (permalink / raw)
  To: Xu, Ting, Liu, KevinX, dev
  Cc: Yang, Qiming, Yang, SteveX, Yigit, Ferruh, Liu, KevinX, stable



> -----Original Message-----
> From: Xu, Ting <ting.xu@intel.com>
> Sent: Friday, March 4, 2022 11:19 AM
> To: Liu, KevinX <kevinx.liu@intel.com>; dev@dpdk.org
> Cc: Yang, Qiming <qiming.yang@intel.com>; Zhang, Qi Z
> <qi.z.zhang@intel.com>; Yang, SteveX <stevex.yang@intel.com>; Yigit, Ferruh
> <ferruh.yigit@intel.com>; Liu, KevinX <kevinx.liu@intel.com>; stable@dpdk.org
> Subject: RE: [PATCH v2 1/2] net/ice: fix Tx offload path choice
> 
> > -----Original Message-----
> > From: Kevin Liu <kevinx.liu@intel.com>
> > Sent: Wednesday, December 29, 2021 5:37 PM
> > To: dev@dpdk.org
> > Cc: Yang, Qiming <qiming.yang@intel.com>; Zhang, Qi Z
> > <qi.z.zhang@intel.com>; Yang, SteveX <stevex.yang@intel.com>; Yigit,
> > Ferruh <ferruh.yigit@intel.com>; Liu, KevinX <kevinx.liu@intel.com>;
> > stable@dpdk.org
> > Subject: [PATCH v2 1/2] net/ice: fix Tx offload path choice
> >
> > Testpmd forwards packets in checksum mode that it needs to calculate
> > the checksum of each layer's protocol.
> >
> > When setting the hardware calculates the outer UDP checksum and the
> > software calculates the outer IP checksum, the dev->tx_pkt_burst in
> > ice_set_tx_function is set to ice_xmit_pkts_vec_avx2.
> > The inner and outer UDP checksum of the tunnel packet after forwarding
> > is wrong.The dev->tx_pkt_burst should be set to ice_xmit_pkts.
> >
> > The patch adds RTE_ETH_TX_OFFLOAD_OUTER_UDP_CKSUM to
> > ICE_TX_NO_VECTOR_FLAGS,set dev->tx_pkt_burst to ice_xmit_pkts.After
> > the tunnel packet is forwarded, the inner and outer UDP checksum is correct.
> >
> > At the same time, the patch of "net/ice: fix Tx Checksum offload" will
> > cause interrupt errors in a special case that only inner IP and inner
> > UDP checksum are set for hardware calculation.The patch is updating
> > ICE_TX_NO_VECTOR_FLAGS, the problem can be solved, so I will restore
> > the code modification of that patch.
> >
> > Fixes: 28f9002ab67f ("net/ice: add Tx AVX512 offload path")
> > Fixes: 295968d17407 ("ethdev: add namespace")
> > Fixes: 17c7d0f9d6a4 ("net/ice: support basic Rx/Tx")
> > Cc: stable@dpdk.org
> >
> > Signed-off-by: Kevin Liu <kevinx.liu@intel.com>
> > ---
> >  drivers/net/ice/ice_rxtx.c            | 41 ++++++-------------
> >  drivers/net/ice/ice_rxtx_vec_common.h | 59
> > +++++++++------------------
> >  2 files changed, 31 insertions(+), 69 deletions(-)
> >
> > diff --git a/drivers/net/ice/ice_rxtx.c b/drivers/net/ice/ice_rxtx.c
> > index 4f218bcd0d..041f4bc91f 100644
> > --- a/drivers/net/ice/ice_rxtx.c
> > +++ b/drivers/net/ice/ice_rxtx.c
> > @@ -2501,35 +2501,18 @@ ice_txd_enable_checksum(uint64_t ol_flags,
> >  			<< ICE_TX_DESC_LEN_MACLEN_S;
> >
> >  	/* Enable L3 checksum offloads */
> > -	/*Tunnel package usage outer len enable L3 checksum offload*/
> > -	if (ol_flags & RTE_MBUF_F_TX_TUNNEL_MASK) {
> > -		if (ol_flags & RTE_MBUF_F_TX_IP_CKSUM) {
> > -			*td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV4_CSUM;
> > -			*td_offset |= (tx_offload.outer_l3_len >> 2) <<
> > -				ICE_TX_DESC_LEN_IPLEN_S;
> > -		} else if (ol_flags & RTE_MBUF_F_TX_IPV4) {
> > -			*td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV4;
> > -			*td_offset |= (tx_offload.outer_l3_len >> 2) <<
> > -				ICE_TX_DESC_LEN_IPLEN_S;
> > -		} else if (ol_flags & RTE_MBUF_F_TX_IPV6) {
> > -			*td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV6;
> > -			*td_offset |= (tx_offload.outer_l3_len >> 2) <<
> > -				ICE_TX_DESC_LEN_IPLEN_S;
> > -		}
> > -	} else {
> > -		if (ol_flags & RTE_MBUF_F_TX_IP_CKSUM) {
> > -			*td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV4_CSUM;
> > -			*td_offset |= (tx_offload.l3_len >> 2) <<
> > -				ICE_TX_DESC_LEN_IPLEN_S;
> > -		} else if (ol_flags & RTE_MBUF_F_TX_IPV4) {
> > -			*td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV4;
> > -			*td_offset |= (tx_offload.l3_len >> 2) <<
> > -				ICE_TX_DESC_LEN_IPLEN_S;
> > -		} else if (ol_flags & RTE_MBUF_F_TX_IPV6) {
> > -			*td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV6;
> > -			*td_offset |= (tx_offload.l3_len >> 2) <<
> > -				ICE_TX_DESC_LEN_IPLEN_S;
> > -		}
> > +	if (ol_flags & RTE_MBUF_F_TX_IP_CKSUM) {
> > +		*td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV4_CSUM;
> > +		*td_offset |= (tx_offload.l3_len >> 2) <<
> > +			ICE_TX_DESC_LEN_IPLEN_S;
> > +	} else if (ol_flags & RTE_MBUF_F_TX_IPV4) {
> > +		*td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV4;
> > +		*td_offset |= (tx_offload.l3_len >> 2) <<
> > +			ICE_TX_DESC_LEN_IPLEN_S;
> > +	} else if (ol_flags & RTE_MBUF_F_TX_IPV6) {
> > +		*td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV6;
> > +		*td_offset |= (tx_offload.l3_len >> 2) <<
> > +			ICE_TX_DESC_LEN_IPLEN_S;
> >  	}
> >
> >  	if (ol_flags & RTE_MBUF_F_TX_TCP_SEG) { diff --git
> > a/drivers/net/ice/ice_rxtx_vec_common.h
> > b/drivers/net/ice/ice_rxtx_vec_common.h
> > index 8ff01046e1..2dd2d83650 100644
> > --- a/drivers/net/ice/ice_rxtx_vec_common.h
> > +++ b/drivers/net/ice/ice_rxtx_vec_common.h
> > @@ -250,7 +250,8 @@ ice_rxq_vec_setup_default(struct ice_rx_queue *rxq)
> >  #define ICE_TX_NO_VECTOR_FLAGS (			\
> >  		RTE_ETH_TX_OFFLOAD_MULTI_SEGS |		\
> >  		RTE_ETH_TX_OFFLOAD_OUTER_IPV4_CKSUM |	\
> > -		RTE_ETH_TX_OFFLOAD_TCP_TSO)
> > +		RTE_ETH_TX_OFFLOAD_TCP_TSO |	\
> > +		RTE_ETH_TX_OFFLOAD_OUTER_UDP_CKSUM)
> >
> >  #define ICE_TX_VECTOR_OFFLOAD (				\
> >  		RTE_ETH_TX_OFFLOAD_VLAN_INSERT |		\
> > @@ -364,45 +365,23 @@ ice_txd_enable_offload(struct rte_mbuf *tx_pkt,
> >  	uint32_t td_offset = 0;
> >
> >  	/* Tx Checksum Offload */
> > -	/*Tunnel package usage outer len enable L2/L3 checksum offload*/
> > -	if (ol_flags & RTE_MBUF_F_TX_TUNNEL_MASK) {
> > -		/* SET MACLEN */
> > -		td_offset |= (tx_pkt->outer_l2_len >> 1) <<
> > -			ICE_TX_DESC_LEN_MACLEN_S;
> > -
> > -		/* Enable L3 checksum offload */
> > -		if (ol_flags & RTE_MBUF_F_TX_IP_CKSUM) {
> > -			td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV4_CSUM;
> > -			td_offset |= (tx_pkt->outer_l3_len >> 2) <<
> > -				ICE_TX_DESC_LEN_IPLEN_S;
> > -		} else if (ol_flags & RTE_MBUF_F_TX_IPV4) {
> > -			td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV4;
> > -			td_offset |= (tx_pkt->outer_l3_len >> 2) <<
> > -				ICE_TX_DESC_LEN_IPLEN_S;
> > -		} else if (ol_flags & RTE_MBUF_F_TX_IPV6) {
> > -			td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV6;
> > -			td_offset |= (tx_pkt->outer_l3_len >> 2) <<
> > -				ICE_TX_DESC_LEN_IPLEN_S;
> > -		}
> > -	} else {
> > -		/* SET MACLEN */
> > -		td_offset |= (tx_pkt->l2_len >> 1) <<
> > -			ICE_TX_DESC_LEN_MACLEN_S;
> > -
> > -		/* Enable L3 checksum offload */
> > -		if (ol_flags & RTE_MBUF_F_TX_IP_CKSUM) {
> > -			td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV4_CSUM;
> > -			td_offset |= (tx_pkt->l3_len >> 2) <<
> > -				ICE_TX_DESC_LEN_IPLEN_S;
> > -		} else if (ol_flags & RTE_MBUF_F_TX_IPV4) {
> > -			td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV4;
> > -			td_offset |= (tx_pkt->l3_len >> 2) <<
> > -				ICE_TX_DESC_LEN_IPLEN_S;
> > -		} else if (ol_flags & RTE_MBUF_F_TX_IPV6) {
> > -			td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV6;
> > -			td_offset |= (tx_pkt->l3_len >> 2) <<
> > -				ICE_TX_DESC_LEN_IPLEN_S;
> > -		}
> > +	/* SET MACLEN */
> > +	td_offset |= (tx_pkt->l2_len >> 1) <<
> > +		ICE_TX_DESC_LEN_MACLEN_S;
> > +
> > +	/* Enable L3 checksum offload */
> > +	if (ol_flags & RTE_MBUF_F_TX_IP_CKSUM) {
> > +		td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV4_CSUM;
> > +		td_offset |= (tx_pkt->l3_len >> 2) <<
> > +			ICE_TX_DESC_LEN_IPLEN_S;
> > +	} else if (ol_flags & RTE_MBUF_F_TX_IPV4) {
> > +		td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV4;
> > +		td_offset |= (tx_pkt->l3_len >> 2) <<
> > +			ICE_TX_DESC_LEN_IPLEN_S;
> > +	} else if (ol_flags & RTE_MBUF_F_TX_IPV6) {
> > +		td_cmd |= ICE_TX_DESC_CMD_IIPT_IPV6;
> > +		td_offset |= (tx_pkt->l3_len >> 2) <<
> > +			ICE_TX_DESC_LEN_IPLEN_S;
> >  	}
> >
> >  	/* Enable L4 checksum offloads */
> > --
> > 2.33.1
> 
> Acked-by: Ting Xu <ting.xu@intel.com>

Applied to dpdk-next-net-intel.

Thanks
Qi


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH v2 1/2] net/ice: fix Tx offload path choice
  2022-03-04  3:31       ` Zhang, Qi Z
@ 2022-03-04 11:52         ` Ferruh Yigit
  0 siblings, 0 replies; 16+ messages in thread
From: Ferruh Yigit @ 2022-03-04 11:52 UTC (permalink / raw)
  To: Zhang, Qi Z, Xu, Ting, Liu, KevinX, dev
  Cc: Yang, Qiming, Yang, SteveX, stable

On 3/4/2022 3:31 AM, Zhang, Qi Z wrote:
> 
> 
>> -----Original Message-----
>> From: Xu, Ting <ting.xu@intel.com>
>> Sent: Friday, March 4, 2022 11:19 AM
>> To: Liu, KevinX <kevinx.liu@intel.com>; dev@dpdk.org
>> Cc: Yang, Qiming <qiming.yang@intel.com>; Zhang, Qi Z
>> <qi.z.zhang@intel.com>; Yang, SteveX <stevex.yang@intel.com>; Yigit, Ferruh
>> <ferruh.yigit@intel.com>; Liu, KevinX <kevinx.liu@intel.com>; stable@dpdk.org
>> Subject: RE: [PATCH v2 1/2] net/ice: fix Tx offload path choice
>>
>>> -----Original Message-----
>>> From: Kevin Liu <kevinx.liu@intel.com>
>>> Sent: Wednesday, December 29, 2021 5:37 PM
>>> To: dev@dpdk.org
>>> Cc: Yang, Qiming <qiming.yang@intel.com>; Zhang, Qi Z
>>> <qi.z.zhang@intel.com>; Yang, SteveX <stevex.yang@intel.com>; Yigit,
>>> Ferruh <ferruh.yigit@intel.com>; Liu, KevinX <kevinx.liu@intel.com>;
>>> stable@dpdk.org
>>> Subject: [PATCH v2 1/2] net/ice: fix Tx offload path choice
>>>
>>> Testpmd forwards packets in checksum mode that it needs to calculate
>>> the checksum of each layer's protocol.
>>>
>>> When setting the hardware calculates the outer UDP checksum and the
>>> software calculates the outer IP checksum, the dev->tx_pkt_burst in
>>> ice_set_tx_function is set to ice_xmit_pkts_vec_avx2.
>>> The inner and outer UDP checksum of the tunnel packet after forwarding
>>> is wrong.The dev->tx_pkt_burst should be set to ice_xmit_pkts.
>>>
>>> The patch adds RTE_ETH_TX_OFFLOAD_OUTER_UDP_CKSUM to
>>> ICE_TX_NO_VECTOR_FLAGS,set dev->tx_pkt_burst to ice_xmit_pkts.After
>>> the tunnel packet is forwarded, the inner and outer UDP checksum is correct.
>>>
>>> At the same time, the patch of "net/ice: fix Tx Checksum offload" will
>>> cause interrupt errors in a special case that only inner IP and inner
>>> UDP checksum are set for hardware calculation.The patch is updating
>>> ICE_TX_NO_VECTOR_FLAGS, the problem can be solved, so I will restore
>>> the code modification of that patch.
>>>
>>> Fixes: 28f9002ab67f ("net/ice: add Tx AVX512 offload path")
>>> Fixes: 295968d17407 ("ethdev: add namespace")
>>> Fixes: 17c7d0f9d6a4 ("net/ice: support basic Rx/Tx")
>>> Cc: stable@dpdk.org
>>>
>>> Signed-off-by: Kevin Liu <kevinx.liu@intel.com>

<...>

>>
>> Acked-by: Ting Xu <ting.xu@intel.com>
> 
> Applied to dpdk-next-net-intel.
> 

Converting Qi's implicit ack to explicit (as ice maintainer):
Reviewed-by: Qi Zhang <qi.z.zhang@intel.com>

And updating it in next-net.

^ permalink raw reply	[flat|nested] 16+ messages in thread

* RE: [PATCH v2 2/2] app/testpmd: fix SW L4 checksum in multi-segments
  2022-03-03  6:29       ` Zhang, Yuying
@ 2022-03-11  7:04         ` Liu, KevinX
  2022-03-11  8:02           ` Singh, Aman Deep
  2022-03-11 10:46           ` Ferruh Yigit
  0 siblings, 2 replies; 16+ messages in thread
From: Liu, KevinX @ 2022-03-11  7:04 UTC (permalink / raw)
  To: Zhang, Qi Z, dev, Yigit, Ferruh
  Cc: Yang, Qiming, Yang, SteveX, Xing, Beilei, Li, Xiaoyun,
	dpdk stable, Zhang, Yuying

Hi, Ferruh

Yuying has already reviewed it days ago.
If you can, I hope you can change the status as soon as possible and try to merge the code in RC4.
Thank you.

> -----Original Message-----
> From: Zhang, Yuying <yuying.zhang@intel.com>
> Sent: 2022年3月3日 14:30
> To: Zhang, Qi Z <qi.z.zhang@intel.com>; Liu, KevinX <kevinx.liu@intel.com>;
> dev <dev@dpdk.org>
> Cc: Yang, Qiming <qiming.yang@intel.com>; Yang, SteveX
> <stevex.yang@intel.com>; Yigit, Ferruh <ferruh.yigit@intel.com>; Xing, Beilei
> <beilei.xing@intel.com>; Li, Xiaoyun <xiaoyun.li@intel.com>; dpdk stable
> <stable@dpdk.org>
> Subject: RE: [PATCH v2 2/2] app/testpmd: fix SW L4 checksum in multi-
> segments
> 
> LGTM.
> 
> > > -----Original Message-----
> > > From: Liu, KevinX <kevinx.liu@intel.com>
> > > Sent: Wednesday, December 29, 2021 5:37 PM
> > > To: dev@dpdk.org
> > > Cc: Yang, Qiming <qiming.yang@intel.com>; Zhang, Qi Z
> > > <qi.z.zhang@intel.com>; Yang, SteveX <stevex.yang@intel.com>; Yigit,
> > > Ferruh <ferruh.yigit@intel.com>; Liu, KevinX <kevinx.liu@intel.com>;
> > > stable@dpdk.org
> > > Subject: [PATCH v2 2/2] app/testpmd: fix SW L4 checksum in
> > > multi-segments
> > >
> > > Testpmd forwards packets in checksum mode that it needs to calculate
> > > the checksum of each layer's protocol.
> > >
> > > In process_inner_cksums, when parsing tunnel packets, inner L4
> > > offset should be outer_l2_len + outer_l3_len + l2_len + l3_len.
> > >
> > > In process_outer_cksums, when parsing tunnel packets, outer L4
> > > offset should be outer_l2_len + outer_l3_len.
> > >
> > > Fixes: e6b9d6411e91 ("app/testpmd: add SW L4 checksum in multi-
> > > segments")
> > > Cc: stable@dpdk.org
> > >
> > > Signed-off-by: Kevin Liu <kevinx.liu@intel.com>
> 
> Acked-by: Yuying Zhang <yuying.zhang@intel.com>
> 
> > > ---
> > >  app/test-pmd/csumonly.c | 6 +++---
> > >  1 file changed, 3 insertions(+), 3 deletions(-)
> > >
> > > diff --git a/app/test-pmd/csumonly.c b/app/test-pmd/csumonly.c index
> > > 02bc3929c7..c235456e58 100644
> > > --- a/app/test-pmd/csumonly.c
> > > +++ b/app/test-pmd/csumonly.c
> >
> >
> > > @@ -513,7 +513,7 @@ process_inner_cksums(void *l3_hdr, const struct
> > > testpmd_offload_info *info,  ol_flags |=
> RTE_MBUF_F_TX_UDP_CKSUM;  }
> > > else {  if (info->is_tunnel) -l4_off = info->l2_len +
> > > +l4_off = info->outer_l2_len +
> > >   info->outer_l3_len +
> > >   info->l2_len + info->l3_len;
> > >  else
> > > @@ -536,7 +536,7 @@ process_inner_cksums(void *l3_hdr, const struct
> > > testpmd_offload_info *info,  ol_flags |=
> RTE_MBUF_F_TX_TCP_CKSUM;  }
> > > else {  if (info->is_tunnel) -l4_off = info->l2_len +
> > > info->outer_l3_len +
> > > +l4_off = info->outer_l2_len + info-
> > > >outer_l3_len +
> > >   info->l2_len + info->l3_len;
> > >  else
> > >  l4_off = info->l2_len + info->l3_len; @@ -
> > > 625,7 +625,7 @@ process_outer_cksums(void *outer_l3_hdr, struct
> > > testpmd_offload_info *info,  if (udp_hdr->dgram_cksum != 0) {
> > > udp_hdr->dgram_cksum = 0;  udp_hdr->dgram_cksum =
> > > get_udptcp_checksum(m, outer_l3_hdr,
> > > -info->l2_len + info->outer_l3_len,
> > > +info->outer_l2_len + info-
> > > >outer_l3_len,
> > >  info->outer_ethertype);
> > >  }
> > >
> > > --
> > > 2.33.1
> >


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH v2 2/2] app/testpmd: fix SW L4 checksum in multi-segments
  2022-03-11  7:04         ` Liu, KevinX
@ 2022-03-11  8:02           ` Singh, Aman Deep
  2022-03-11  8:12             ` Liu, KevinX
  2022-03-11 10:46           ` Ferruh Yigit
  1 sibling, 1 reply; 16+ messages in thread
From: Singh, Aman Deep @ 2022-03-11  8:02 UTC (permalink / raw)
  To: Liu, KevinX, Zhang, Qi Z, dev, Yigit, Ferruh
  Cc: Yang, Qiming, Yang, SteveX, Xing, Beilei, Li, Xiaoyun,
	dpdk stable, Zhang, Yuying

Hi Kevin,

On 3/11/2022 12:34 PM, Liu, KevinX wrote:
> Hi, Ferruh
>
> Yuying has already reviewed it days ago.
> If you can, I hope you can change the status as soon as possible and try to merge the code in RC4.
> Thank you.
>
>> -----Original Message-----
>> From: Zhang, Yuying <yuying.zhang@intel.com>
>> Sent: 2022年3月3日 14:30
>> To: Zhang, Qi Z <qi.z.zhang@intel.com>; Liu, KevinX <kevinx.liu@intel.com>;
>> dev <dev@dpdk.org>
>> Cc: Yang, Qiming <qiming.yang@intel.com>; Yang, SteveX
>> <stevex.yang@intel.com>; Yigit, Ferruh <ferruh.yigit@intel.com>; Xing, Beilei
>> <beilei.xing@intel.com>; Li, Xiaoyun <xiaoyun.li@intel.com>; dpdk stable
>> <stable@dpdk.org>
>> Subject: RE: [PATCH v2 2/2] app/testpmd: fix SW L4 checksum in multi-
>> segments
>>
>> LGTM.
>>
>>>> -----Original Message-----
>>>> From: Liu, KevinX <kevinx.liu@intel.com>
>>>> Sent: Wednesday, December 29, 2021 5:37 PM
>>>> To: dev@dpdk.org
>>>> Cc: Yang, Qiming <qiming.yang@intel.com>; Zhang, Qi Z
>>>> <qi.z.zhang@intel.com>; Yang, SteveX <stevex.yang@intel.com>; Yigit,
>>>> Ferruh <ferruh.yigit@intel.com>; Liu, KevinX <kevinx.liu@intel.com>;
>>>> stable@dpdk.org
>>>> Subject: [PATCH v2 2/2] app/testpmd: fix SW L4 checksum in
>>>> multi-segments
>>>>
>>>> Testpmd forwards packets in checksum mode that it needs to calculate
>>>> the checksum of each layer's protocol.
>>>>
>>>> In process_inner_cksums, when parsing tunnel packets, inner L4
>>>> offset should be outer_l2_len + outer_l3_len + l2_len + l3_len.
>>>>
>>>> In process_outer_cksums, when parsing tunnel packets, outer L4
>>>> offset should be outer_l2_len + outer_l3_len.
>>>>
>>>> Fixes: e6b9d6411e91 ("app/testpmd: add SW L4 checksum in multi-
>>>> segments")
>>>> Cc: stable@dpdk.org
>>>>
>>>> Signed-off-by: Kevin Liu <kevinx.liu@intel.com>
>> Acked-by: Yuying Zhang <yuying.zhang@intel.com>
>>
>>>> ---
>>>>   app/test-pmd/csumonly.c | 6 +++---
>>>>   1 file changed, 3 insertions(+), 3 deletions(-)
>>>>
>>>> diff --git a/app/test-pmd/csumonly.c b/app/test-pmd/csumonly.c index
>>>> 02bc3929c7..c235456e58 100644
>>>> --- a/app/test-pmd/csumonly.c
>>>> +++ b/app/test-pmd/csumonly.c
>>>
>>>> @@ -513,7 +513,7 @@ process_inner_cksums(void *l3_hdr, const struct
>>>> testpmd_offload_info *info,  ol_flags |=
>> RTE_MBUF_F_TX_UDP_CKSUM;  }
>>>> else {  if (info->is_tunnel) -l4_off = info->l2_len +
>>>> +l4_off = info->outer_l2_len +
>>>>    info->outer_l3_len +
>>>>    info->l2_len + info->l3_len;
This seems OK. A similar miss is present for TCP case also.
Can you please do the same for that. Line 537
>>>>   else
>>>> @@ -536,7 +536,7 @@ process_inner_cksums(void *l3_hdr, const struct
>>>> testpmd_offload_info *info,  ol_flags |=
>> RTE_MBUF_F_TX_TCP_CKSUM;  }
>>>> else {  if (info->is_tunnel) -l4_off = info->l2_len +
>>>> info->outer_l3_len +
>>>> +l4_off = info->outer_l2_len + info-
>>>>> outer_l3_len +
>>>>    info->l2_len + info->l3_len;
>>>>   else
>>>>   l4_off = info->l2_len + info->l3_len; @@ -
This change might not be required. As for normal packet (non-tunnel case)
l4_off = info->l2_len + info->l3_len;  should be valid.
Please re-check.


>>>> 625,7 +625,7 @@ process_outer_cksums(void *outer_l3_hdr, struct
>>>> testpmd_offload_info *info,  if (udp_hdr->dgram_cksum != 0) {
>>>> udp_hdr->dgram_cksum = 0;  udp_hdr->dgram_cksum =
>>>> get_udptcp_checksum(m, outer_l3_hdr,
>>>> -info->l2_len + info->outer_l3_len,
>>>> +info->outer_l2_len + info-
>>>>> outer_l3_len,
>>>>   info->outer_ethertype);
>>>>   }
>>>>
>>>> --
>>>> 2.33.1

^ permalink raw reply	[flat|nested] 16+ messages in thread

* RE: [PATCH v2 2/2] app/testpmd: fix SW L4 checksum in multi-segments
  2022-03-11  8:02           ` Singh, Aman Deep
@ 2022-03-11  8:12             ` Liu, KevinX
  2022-03-11  9:04               ` Singh, Aman Deep
  0 siblings, 1 reply; 16+ messages in thread
From: Liu, KevinX @ 2022-03-11  8:12 UTC (permalink / raw)
  To: Singh, Aman Deep, Zhang, Qi Z, dev, Yigit, Ferruh
  Cc: Yang, Qiming, Yang, SteveX, Xing, Beilei, Li, Xiaoyun,
	dpdk stable, Zhang, Yuying



> -----Original Message-----
> From: Singh, Aman Deep <aman.deep.singh@intel.com>
> Sent: 2022年3月11日 16:02
> To: Liu, KevinX <kevinx.liu@intel.com>; Zhang, Qi Z <qi.z.zhang@intel.com>;
> dev <dev@dpdk.org>; Yigit, Ferruh <ferruh.yigit@intel.com>
> Cc: Yang, Qiming <qiming.yang@intel.com>; Yang, SteveX
> <stevex.yang@intel.com>; Xing, Beilei <beilei.xing@intel.com>; Li, Xiaoyun
> <xiaoyun.li@intel.com>; dpdk stable <stable@dpdk.org>; Zhang, Yuying
> <yuying.zhang@intel.com>
> Subject: Re: [PATCH v2 2/2] app/testpmd: fix SW L4 checksum in multi-
> segments
> 
> Hi Kevin,
> 
> On 3/11/2022 12:34 PM, Liu, KevinX wrote:
> > Hi, Ferruh
> >
> > Yuying has already reviewed it days ago.
> > If you can, I hope you can change the status as soon as possible and try to
> merge the code in RC4.
> > Thank you.
> >
> >> -----Original Message-----
> >> From: Zhang, Yuying <yuying.zhang@intel.com>
> >> Sent: 2022年3月3日 14:30
> >> To: Zhang, Qi Z <qi.z.zhang@intel.com>; Liu, KevinX
> >> <kevinx.liu@intel.com>; dev <dev@dpdk.org>
> >> Cc: Yang, Qiming <qiming.yang@intel.com>; Yang, SteveX
> >> <stevex.yang@intel.com>; Yigit, Ferruh <ferruh.yigit@intel.com>;
> >> Xing, Beilei <beilei.xing@intel.com>; Li, Xiaoyun
> >> <xiaoyun.li@intel.com>; dpdk stable <stable@dpdk.org>
> >> Subject: RE: [PATCH v2 2/2] app/testpmd: fix SW L4 checksum in multi-
> >> segments
> >>
> >> LGTM.
> >>
> >>>> -----Original Message-----
> >>>> From: Liu, KevinX <kevinx.liu@intel.com>
> >>>> Sent: Wednesday, December 29, 2021 5:37 PM
> >>>> To: dev@dpdk.org
> >>>> Cc: Yang, Qiming <qiming.yang@intel.com>; Zhang, Qi Z
> >>>> <qi.z.zhang@intel.com>; Yang, SteveX <stevex.yang@intel.com>;
> >>>> Yigit, Ferruh <ferruh.yigit@intel.com>; Liu, KevinX
> >>>> <kevinx.liu@intel.com>; stable@dpdk.org
> >>>> Subject: [PATCH v2 2/2] app/testpmd: fix SW L4 checksum in
> >>>> multi-segments
> >>>>
> >>>> Testpmd forwards packets in checksum mode that it needs to
> >>>> calculate the checksum of each layer's protocol.
> >>>>
> >>>> In process_inner_cksums, when parsing tunnel packets, inner L4
> >>>> offset should be outer_l2_len + outer_l3_len + l2_len + l3_len.
> >>>>
> >>>> In process_outer_cksums, when parsing tunnel packets, outer L4
> >>>> offset should be outer_l2_len + outer_l3_len.
> >>>>
> >>>> Fixes: e6b9d6411e91 ("app/testpmd: add SW L4 checksum in multi-
> >>>> segments")
> >>>> Cc: stable@dpdk.org
> >>>>
> >>>> Signed-off-by: Kevin Liu <kevinx.liu@intel.com>
> >> Acked-by: Yuying Zhang <yuying.zhang@intel.com>
> >>
> >>>> ---
> >>>>   app/test-pmd/csumonly.c | 6 +++---
> >>>>   1 file changed, 3 insertions(+), 3 deletions(-)
> >>>>
> >>>> diff --git a/app/test-pmd/csumonly.c b/app/test-pmd/csumonly.c
> >>>> index
> >>>> 02bc3929c7..c235456e58 100644
> >>>> --- a/app/test-pmd/csumonly.c
> >>>> +++ b/app/test-pmd/csumonly.c
> >>>
> >>>> @@ -513,7 +513,7 @@ process_inner_cksums(void *l3_hdr, const
> struct
> >>>> testpmd_offload_info *info,  ol_flags |=
> >> RTE_MBUF_F_TX_UDP_CKSUM;  }
> >>>> else {  if (info->is_tunnel) -l4_off = info->l2_len +
> >>>> +l4_off = info->outer_l2_len +
> >>>>    info->outer_l3_len +
> >>>>    info->l2_len + info->l3_len;
> This seems OK. A similar miss is present for TCP case also.
> Can you please do the same for that. Line 537
> >>>>   else
> >>>> @@ -536,7 +536,7 @@ process_inner_cksums(void *l3_hdr, const
> struct
> >>>> testpmd_offload_info *info,  ol_flags |=
> >> RTE_MBUF_F_TX_TCP_CKSUM;  }
> >>>> else {  if (info->is_tunnel) -l4_off = info->l2_len +
> >>>> info->outer_l3_len +
> >>>> +l4_off = info->outer_l2_len + info-
> >>>>> outer_l3_len +
> >>>>    info->l2_len + info->l3_len;
> >>>>   else
> >>>>   l4_off = info->l2_len + info->l3_len; @@ -
> This change might not be required. As for normal packet (non-tunnel case)
> l4_off = info->l2_len + info->l3_len;  should be valid.
> Please re-check.
I don't understand what you mean. I fix the code under the tunnel case, and I didn't modify the code for the non-tunnel case.
> 
> 
> >>>> 625,7 +625,7 @@ process_outer_cksums(void *outer_l3_hdr, struct
> >>>> testpmd_offload_info *info,  if (udp_hdr->dgram_cksum != 0) {
> >>>> udp_hdr->dgram_cksum = 0;  udp_hdr->dgram_cksum =
> >>>> get_udptcp_checksum(m, outer_l3_hdr,
> >>>> -info->l2_len + info->outer_l3_len,
> >>>> +info->outer_l2_len + info-
> >>>>> outer_l3_len,
> >>>>   info->outer_ethertype);
> >>>>   }
> >>>>
> >>>> --
> >>>> 2.33.1

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH v2 2/2] app/testpmd: fix SW L4 checksum in multi-segments
  2022-03-11  8:12             ` Liu, KevinX
@ 2022-03-11  9:04               ` Singh, Aman Deep
  0 siblings, 0 replies; 16+ messages in thread
From: Singh, Aman Deep @ 2022-03-11  9:04 UTC (permalink / raw)
  To: Liu, KevinX, Zhang, Qi Z, dev, Yigit, Ferruh
  Cc: Yang, Qiming, Yang, SteveX, Xing, Beilei, Li, Xiaoyun,
	dpdk stable, Zhang, Yuying

[-- Attachment #1: Type: text/plain, Size: 4520 bytes --]

On 3/11/2022 1:42 PM, Liu, KevinX wrote:
>
>> -----Original Message-----
>> From: Singh, Aman Deep<aman.deep.singh@intel.com>
>> Sent: 2022年3月11日 16:02
>> To: Liu, KevinX<kevinx.liu@intel.com>; Zhang, Qi Z<qi.z.zhang@intel.com>;
>> dev<dev@dpdk.org>; Yigit, Ferruh<ferruh.yigit@intel.com>
>> Cc: Yang, Qiming<qiming.yang@intel.com>; Yang, SteveX
>> <stevex.yang@intel.com>; Xing, Beilei<beilei.xing@intel.com>; Li, Xiaoyun
>> <xiaoyun.li@intel.com>; dpdk stable<stable@dpdk.org>; Zhang, Yuying
>> <yuying.zhang@intel.com>
>> Subject: Re: [PATCH v2 2/2] app/testpmd: fix SW L4 checksum in multi-
>> segments
>>
>> Hi Kevin,
>>
>> On 3/11/2022 12:34 PM, Liu, KevinX wrote:
>>> Hi, Ferruh
>>>
>>> Yuying has already reviewed it days ago.
>>> If you can, I hope you can change the status as soon as possible and try to
>> merge the code in RC4.
>>> Thank you.
>>>
>>>> -----Original Message-----
>>>> From: Zhang, Yuying<yuying.zhang@intel.com>
>>>> Sent: 2022年3月3日 14:30
>>>> To: Zhang, Qi Z<qi.z.zhang@intel.com>; Liu, KevinX
>>>> <kevinx.liu@intel.com>; dev<dev@dpdk.org>
>>>> Cc: Yang, Qiming<qiming.yang@intel.com>; Yang, SteveX
>>>> <stevex.yang@intel.com>; Yigit, Ferruh<ferruh.yigit@intel.com>;
>>>> Xing, Beilei<beilei.xing@intel.com>; Li, Xiaoyun
>>>> <xiaoyun.li@intel.com>; dpdk stable<stable@dpdk.org>
>>>> Subject: RE: [PATCH v2 2/2] app/testpmd: fix SW L4 checksum in multi-
>>>> segments
>>>>
>>>> LGTM.
>>>>
>>>>>> -----Original Message-----
>>>>>> From: Liu, KevinX<kevinx.liu@intel.com>
>>>>>> Sent: Wednesday, December 29, 2021 5:37 PM
>>>>>> To:dev@dpdk.org
>>>>>> Cc: Yang, Qiming<qiming.yang@intel.com>; Zhang, Qi Z
>>>>>> <qi.z.zhang@intel.com>; Yang, SteveX<stevex.yang@intel.com>;
>>>>>> Yigit, Ferruh<ferruh.yigit@intel.com>; Liu, KevinX
>>>>>> <kevinx.liu@intel.com>;stable@dpdk.org
>>>>>> Subject: [PATCH v2 2/2] app/testpmd: fix SW L4 checksum in
>>>>>> multi-segments
>>>>>>
>>>>>> Testpmd forwards packets in checksum mode that it needs to
>>>>>> calculate the checksum of each layer's protocol.
>>>>>>
>>>>>> In process_inner_cksums, when parsing tunnel packets, inner L4
>>>>>> offset should be outer_l2_len + outer_l3_len + l2_len + l3_len.
>>>>>>
>>>>>> In process_outer_cksums, when parsing tunnel packets, outer L4
>>>>>> offset should be outer_l2_len + outer_l3_len.
>>>>>>
>>>>>> Fixes: e6b9d6411e91 ("app/testpmd: add SW L4 checksum in multi-
>>>>>> segments")
>>>>>> Cc:stable@dpdk.org
>>>>>>
>>>>>> Signed-off-by: Kevin Liu<kevinx.liu@intel.com>
>>>> Acked-by: Yuying Zhang<yuying.zhang@intel.com>

Acked-by: Aman Singh <aman.deep.singh@intel.com>

>>>>
>>>>>> ---
>>>>>>    app/test-pmd/csumonly.c | 6 +++---
>>>>>>    1 file changed, 3 insertions(+), 3 deletions(-)
>>>>>>
>>>>>> diff --git a/app/test-pmd/csumonly.c b/app/test-pmd/csumonly.c
>>>>>> index
>>>>>> 02bc3929c7..c235456e58 100644
>>>>>> --- a/app/test-pmd/csumonly.c
>>>>>> +++ b/app/test-pmd/csumonly.c
>>>>>> @@ -513,7 +513,7 @@ process_inner_cksums(void *l3_hdr, const
>> struct
>>>>>> testpmd_offload_info *info,  ol_flags |=
>>>> RTE_MBUF_F_TX_UDP_CKSUM;  }
>>>>>> else {  if (info->is_tunnel) -l4_off = info->l2_len +
>>>>>> +l4_off = info->outer_l2_len +
>>>>>>     info->outer_l3_len +
>>>>>>     info->l2_len + info->l3_len;
>> This seems OK. A similar miss is present for TCP case also.
>> Can you please do the same for that. Line 537
>>>>>>    else
>>>>>> @@ -536,7 +536,7 @@ process_inner_cksums(void *l3_hdr, const
>> struct
>>>>>> testpmd_offload_info *info,  ol_flags |=
>>>> RTE_MBUF_F_TX_TCP_CKSUM;  }
>>>>>> else {  if (info->is_tunnel) -l4_off = info->l2_len +
>>>>>> info->outer_l3_len +
>>>>>> +l4_off = info->outer_l2_len + info-
>>>>>>> outer_l3_len +
>>>>>>     info->l2_len + info->l3_len;
>>>>>>    else
>>>>>>    l4_off = info->l2_len + info->l3_len; @@ -
>> This change might not be required. As for normal packet (non-tunnel case)
>> l4_off = info->l2_len + info->l3_len;  should be valid.
>> Please re-check.
> I don't understand what you mean. I fix the code under the tunnel case, and I didn't modify the code for the non-tunnel case.
Sorry, my bad.
>>
>>>>>> 625,7 +625,7 @@ process_outer_cksums(void *outer_l3_hdr, struct
>>>>>> testpmd_offload_info *info,  if (udp_hdr->dgram_cksum != 0) {
>>>>>> udp_hdr->dgram_cksum = 0;  udp_hdr->dgram_cksum =
>>>>>> get_udptcp_checksum(m, outer_l3_hdr,
>>>>>> -info->l2_len + info->outer_l3_len,
>>>>>> +info->outer_l2_len + info-
>>>>>>> outer_l3_len,
>>>>>>    info->outer_ethertype);
>>>>>>    }
>>>>>>
>>>>>> --
>>>>>> 2.33.1

[-- Attachment #2: Type: text/html, Size: 11085 bytes --]

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH v2 2/2] app/testpmd: fix SW L4 checksum in multi-segments
  2022-03-11  7:04         ` Liu, KevinX
  2022-03-11  8:02           ` Singh, Aman Deep
@ 2022-03-11 10:46           ` Ferruh Yigit
  2022-03-14  2:33             ` Zhang, Qi Z
  1 sibling, 1 reply; 16+ messages in thread
From: Ferruh Yigit @ 2022-03-11 10:46 UTC (permalink / raw)
  To: Liu, KevinX, Zhang, Qi Z, dev, Thomas Monjalon
  Cc: Yang, Qiming, Yang, SteveX, Xing, Beilei, Li, Xiaoyun,
	dpdk stable, Zhang, Yuying

On 3/11/2022 7:04 AM, Liu, KevinX wrote:

message moved down, please do not top post

>> -----Original Message-----
>> From: Zhang, Yuying <yuying.zhang@intel.com>
>> Sent: 2022年3月3日 14:30
>> To: Zhang, Qi Z <qi.z.zhang@intel.com>; Liu, KevinX <kevinx.liu@intel.com>;
>> dev <dev@dpdk.org>
>> Cc: Yang, Qiming <qiming.yang@intel.com>; Yang, SteveX
>> <stevex.yang@intel.com>; Yigit, Ferruh <ferruh.yigit@intel.com>; Xing, Beilei
>> <beilei.xing@intel.com>; Li, Xiaoyun <xiaoyun.li@intel.com>; dpdk stable
>> <stable@dpdk.org>
>> Subject: RE: [PATCH v2 2/2] app/testpmd: fix SW L4 checksum in multi-
>> segments
>>
>> LGTM.
>>
>>>> -----Original Message-----
>>>> From: Liu, KevinX <kevinx.liu@intel.com>
>>>> Sent: Wednesday, December 29, 2021 5:37 PM
>>>> To: dev@dpdk.org
>>>> Cc: Yang, Qiming <qiming.yang@intel.com>; Zhang, Qi Z
>>>> <qi.z.zhang@intel.com>; Yang, SteveX <stevex.yang@intel.com>; Yigit,
>>>> Ferruh <ferruh.yigit@intel.com>; Liu, KevinX <kevinx.liu@intel.com>;
>>>> stable@dpdk.org
>>>> Subject: [PATCH v2 2/2] app/testpmd: fix SW L4 checksum in
>>>> multi-segments
>>>>
>>>> Testpmd forwards packets in checksum mode that it needs to calculate
>>>> the checksum of each layer's protocol.
>>>>
>>>> In process_inner_cksums, when parsing tunnel packets, inner L4
>>>> offset should be outer_l2_len + outer_l3_len + l2_len + l3_len.
>>>>
>>>> In process_outer_cksums, when parsing tunnel packets, outer L4
>>>> offset should be outer_l2_len + outer_l3_len.
>>>>
>>>> Fixes: e6b9d6411e91 ("app/testpmd: add SW L4 checksum in multi-
>>>> segments")
>>>> Cc: stable@dpdk.org
>>>>
>>>> Signed-off-by: Kevin Liu <kevinx.liu@intel.com>
>>
>> Acked-by: Yuying Zhang <yuying.zhang@intel.com>
>>
> Hi, Ferruh
> 
> Yuying has already reviewed it days ago.
> If you can, I hope you can change the status as soon as possible and try to merge the code in RC4.
> Thank you.
> 

+Thomas, he is getting patches for -rc4.

And just for double check Qi, are you comfortable with patch?
(I am asking because initially this is set with ice and testpmd patch)

^ permalink raw reply	[flat|nested] 16+ messages in thread

* RE: [PATCH v2 2/2] app/testpmd: fix SW L4 checksum in multi-segments
  2022-03-11 10:46           ` Ferruh Yigit
@ 2022-03-14  2:33             ` Zhang, Qi Z
  2022-03-14 20:21               ` Thomas Monjalon
  0 siblings, 1 reply; 16+ messages in thread
From: Zhang, Qi Z @ 2022-03-14  2:33 UTC (permalink / raw)
  To: Yigit, Ferruh, Liu, KevinX, dev, Thomas Monjalon
  Cc: Yang, Qiming, Yang, SteveX, Xing, Beilei, Li, Xiaoyun,
	dpdk stable, Zhang, Yuying



> -----Original Message-----
> From: Yigit, Ferruh <ferruh.yigit@intel.com>
> Sent: Friday, March 11, 2022 6:47 PM
> To: Liu, KevinX <kevinx.liu@intel.com>; Zhang, Qi Z <qi.z.zhang@intel.com>; dev
> <dev@dpdk.org>; Thomas Monjalon <thomas@monjalon.net>
> Cc: Yang, Qiming <qiming.yang@intel.com>; Yang, SteveX
> <stevex.yang@intel.com>; Xing, Beilei <beilei.xing@intel.com>; Li, Xiaoyun
> <xiaoyun.li@intel.com>; dpdk stable <stable@dpdk.org>; Zhang, Yuying
> <yuying.zhang@intel.com>
> Subject: Re: [PATCH v2 2/2] app/testpmd: fix SW L4 checksum in multi-segments
> 
> On 3/11/2022 7:04 AM, Liu, KevinX wrote:
> 
> message moved down, please do not top post
> 
> >> -----Original Message-----
> >> From: Zhang, Yuying <yuying.zhang@intel.com>
> >> Sent: 2022年3月3日 14:30
> >> To: Zhang, Qi Z <qi.z.zhang@intel.com>; Liu, KevinX
> >> <kevinx.liu@intel.com>; dev <dev@dpdk.org>
> >> Cc: Yang, Qiming <qiming.yang@intel.com>; Yang, SteveX
> >> <stevex.yang@intel.com>; Yigit, Ferruh <ferruh.yigit@intel.com>;
> >> Xing, Beilei <beilei.xing@intel.com>; Li, Xiaoyun
> >> <xiaoyun.li@intel.com>; dpdk stable <stable@dpdk.org>
> >> Subject: RE: [PATCH v2 2/2] app/testpmd: fix SW L4 checksum in multi-
> >> segments
> >>
> >> LGTM.
> >>
> >>>> -----Original Message-----
> >>>> From: Liu, KevinX <kevinx.liu@intel.com>
> >>>> Sent: Wednesday, December 29, 2021 5:37 PM
> >>>> To: dev@dpdk.org
> >>>> Cc: Yang, Qiming <qiming.yang@intel.com>; Zhang, Qi Z
> >>>> <qi.z.zhang@intel.com>; Yang, SteveX <stevex.yang@intel.com>;
> >>>> Yigit, Ferruh <ferruh.yigit@intel.com>; Liu, KevinX
> >>>> <kevinx.liu@intel.com>; stable@dpdk.org
> >>>> Subject: [PATCH v2 2/2] app/testpmd: fix SW L4 checksum in
> >>>> multi-segments
> >>>>
> >>>> Testpmd forwards packets in checksum mode that it needs to
> >>>> calculate the checksum of each layer's protocol.
> >>>>
> >>>> In process_inner_cksums, when parsing tunnel packets, inner L4
> >>>> offset should be outer_l2_len + outer_l3_len + l2_len + l3_len.
> >>>>
> >>>> In process_outer_cksums, when parsing tunnel packets, outer L4
> >>>> offset should be outer_l2_len + outer_l3_len.
> >>>>
> >>>> Fixes: e6b9d6411e91 ("app/testpmd: add SW L4 checksum in multi-
> >>>> segments")
> >>>> Cc: stable@dpdk.org
> >>>>
> >>>> Signed-off-by: Kevin Liu <kevinx.liu@intel.com>
> >>
> >> Acked-by: Yuying Zhang <yuying.zhang@intel.com>
> >>
> > Hi, Ferruh
> >
> > Yuying has already reviewed it days ago.
> > If you can, I hope you can change the status as soon as possible and try to
> merge the code in RC4.
> > Thank you.
> >
> 
> +Thomas, he is getting patches for -rc4.
> 
> And just for double check Qi, are you comfortable with patch?
> (I am asking because initially this is set with ice and testpmd patch)

Yes, I'm OK with this patch. It has been verified on most of Intel PMDs.




^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH v2 2/2] app/testpmd: fix SW L4 checksum in multi-segments
  2022-03-14  2:33             ` Zhang, Qi Z
@ 2022-03-14 20:21               ` Thomas Monjalon
  0 siblings, 0 replies; 16+ messages in thread
From: Thomas Monjalon @ 2022-03-14 20:21 UTC (permalink / raw)
  To: Liu, KevinX
  Cc: Yigit, Ferruh, dev, Yang, Qiming, Yang, SteveX, Xing, Beilei, Li,
	Xiaoyun, dpdk stable, Zhang, Yuying, Zhang, Qi Z

14/03/2022 03:33, Zhang, Qi Z:
> From: Yigit, Ferruh <ferruh.yigit@intel.com>
> > On 3/11/2022 7:04 AM, Liu, KevinX wrote:
> > > From: Zhang, Yuying <yuying.zhang@intel.com>
> > >>> From: Liu, KevinX <kevinx.liu@intel.com>
> > >>>> Testpmd forwards packets in checksum mode that it needs to
> > >>>> calculate the checksum of each layer's protocol.
> > >>>>
> > >>>> In process_inner_cksums, when parsing tunnel packets, inner L4
> > >>>> offset should be outer_l2_len + outer_l3_len + l2_len + l3_len.
> > >>>>
> > >>>> In process_outer_cksums, when parsing tunnel packets, outer L4
> > >>>> offset should be outer_l2_len + outer_l3_len.
> > >>>>
> > >>>> Fixes: e6b9d6411e91 ("app/testpmd: add SW L4 checksum in multi-
> > >>>> segments")
> > >>>> Cc: stable@dpdk.org
> > >>>>
> > >>>> Signed-off-by: Kevin Liu <kevinx.liu@intel.com>
> > >>
> > >> Acked-by: Yuying Zhang <yuying.zhang@intel.com>
> > >>
> > > Hi, Ferruh
> > >
> > > Yuying has already reviewed it days ago.
> > > If you can, I hope you can change the status as soon as possible and try to
> > merge the code in RC4.
> > > Thank you.
> > >
> > 
> > +Thomas, he is getting patches for -rc4.
> > 
> > And just for double check Qi, are you comfortable with patch?
> > (I am asking because initially this is set with ice and testpmd patch)
> 
> Yes, I'm OK with this patch. It has been verified on most of Intel PMDs.

Applied, thanks.





^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2022-03-14 20:21 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-24 15:09 [PATCH] net/ice: fix Tx offload path choice Kevin Liu
     [not found] ` <20211229093702.1930214-1-kevinx.liu@intel.com>
2021-12-29  9:37   ` [PATCH v2 1/2] " Kevin Liu
2022-03-04  3:19     ` Xu, Ting
2022-03-04  3:31       ` Zhang, Qi Z
2022-03-04 11:52         ` Ferruh Yigit
2021-12-29  9:37   ` [PATCH v2 2/2] app/testpmd: fix SW L4 checksum in multi-segments Kevin Liu
     [not found]     ` <d2d97e6cf1a14faaa47b61b63ed55573@intel.com>
2022-03-03  6:29       ` Zhang, Yuying
2022-03-11  7:04         ` Liu, KevinX
2022-03-11  8:02           ` Singh, Aman Deep
2022-03-11  8:12             ` Liu, KevinX
2022-03-11  9:04               ` Singh, Aman Deep
2022-03-11 10:46           ` Ferruh Yigit
2022-03-14  2:33             ` Zhang, Qi Z
2022-03-14 20:21               ` Thomas Monjalon
2022-02-24  2:32 ` [PATCH] net/ice: fix Tx offload path choice Ling, WeiX
2022-02-27  6:19 ` Zhang, Qi Z

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).