net/iavf: fix Tx path

Message ID 20220804073300.402973-1-ke1x.zhang@intel.com (mailing list archive)
State Superseded, archived
Delegated to: Qi Zhang
Headers
Series net/iavf: fix Tx path |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-aarch64-unit-testing success Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/github-robot: build success github build: passed
ci/iol-x86_64-unit-testing success Testing PASS
ci/iol-x86_64-compile-testing success Testing PASS
ci/iol-aarch64-compile-testing success Testing PASS

Commit Message

Zhang, Ke1X Aug. 4, 2022, 7:33 a.m. UTC
  Fix the Tx path and Tx descriptor usage in order
to make the Tx offload flags and Tx data descriptor
consistent.

Fixes: 1e728b01120c ("net/iavf: rework Tx path")
Cc: stable@dpdk.org

Signed-off-by: Ke Zhang <ke1x.zhang@intel.com>
---
 drivers/net/iavf/iavf_rxtx.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)
  

Comments

Qi Zhang Aug. 8, 2022, 1:13 a.m. UTC | #1
> -----Original Message-----
> From: Ke Zhang <ke1x.zhang@intel.com>
> Sent: Thursday, August 4, 2022 3:33 PM
> To: Li, Xiaoyun <xiaoyun.li@intel.com>; Wu, Jingjing
> <jingjing.wu@intel.com>; Xing, Beilei <beilei.xing@intel.com>;
> dev@dpdk.org
> Cc: Zhang, Ke1X <ke1x.zhang@intel.com>; stable@dpdk.org
> Subject: [PATCH] net/iavf: fix Tx path
> 
> Fix the Tx path and Tx descriptor usage in order to make the Tx offload flags
> and Tx data descriptor consistent.

Seems all the changes are about fix Tx l3 checksum offload, the title and commit log can be more specific.

> 
> Fixes: 1e728b01120c ("net/iavf: rework Tx path")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Ke Zhang <ke1x.zhang@intel.com>
> ---
>  drivers/net/iavf/iavf_rxtx.c | 8 +++++---
>  1 file changed, 5 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/net/iavf/iavf_rxtx.c b/drivers/net/iavf/iavf_rxtx.c index
> 109ba756f8..dfd021889e 100644
> --- a/drivers/net/iavf/iavf_rxtx.c
> +++ b/drivers/net/iavf/iavf_rxtx.c
> @@ -2538,9 +2538,11 @@ iavf_build_data_desc_cmd_offset_fields(volatile
> uint64_t *qw1,
>  	offset |= (m->l2_len >> 1) <<
> IAVF_TX_DESC_LENGTH_MACLEN_SHIFT;
> 
>  	/* Enable L3 checksum offloading inner */
> -	if (m->ol_flags & (RTE_MBUF_F_TX_IP_CKSUM |
> RTE_MBUF_F_TX_IPV4)) {
> -		command |= IAVF_TX_DESC_CMD_IIPT_IPV4_CSUM;
> -		offset |= (m->l3_len >> 2) <<
> IAVF_TX_DESC_LENGTH_IPLEN_SHIFT;
> +	if (m->ol_flags & RTE_MBUF_F_TX_IP_CKSUM) {
> +		if (m->ol_flags & RTE_MBUF_F_TX_IPV4) {
> +			command |= IAVF_TX_DESC_CMD_IIPT_IPV4_CSUM;
> +			offset |= (m->l3_len >> 2) <<
> IAVF_TX_DESC_LENGTH_IPLEN_SHIFT;
> +		}
>  	} else if (m->ol_flags & RTE_MBUF_F_TX_IPV4) {
>  		command |= IAVF_TX_DESC_CMD_IIPT_IPV4;
>  		offset |= (m->l3_len >> 2) <<
> IAVF_TX_DESC_LENGTH_IPLEN_SHIFT;
> --
> 2.25.1
  

Patch

diff --git a/drivers/net/iavf/iavf_rxtx.c b/drivers/net/iavf/iavf_rxtx.c
index 109ba756f8..dfd021889e 100644
--- a/drivers/net/iavf/iavf_rxtx.c
+++ b/drivers/net/iavf/iavf_rxtx.c
@@ -2538,9 +2538,11 @@  iavf_build_data_desc_cmd_offset_fields(volatile uint64_t *qw1,
 	offset |= (m->l2_len >> 1) << IAVF_TX_DESC_LENGTH_MACLEN_SHIFT;
 
 	/* Enable L3 checksum offloading inner */
-	if (m->ol_flags & (RTE_MBUF_F_TX_IP_CKSUM | RTE_MBUF_F_TX_IPV4)) {
-		command |= IAVF_TX_DESC_CMD_IIPT_IPV4_CSUM;
-		offset |= (m->l3_len >> 2) << IAVF_TX_DESC_LENGTH_IPLEN_SHIFT;
+	if (m->ol_flags & RTE_MBUF_F_TX_IP_CKSUM) {
+		if (m->ol_flags & RTE_MBUF_F_TX_IPV4) {
+			command |= IAVF_TX_DESC_CMD_IIPT_IPV4_CSUM;
+			offset |= (m->l3_len >> 2) << IAVF_TX_DESC_LENGTH_IPLEN_SHIFT;
+		}
 	} else if (m->ol_flags & RTE_MBUF_F_TX_IPV4) {
 		command |= IAVF_TX_DESC_CMD_IIPT_IPV4;
 		offset |= (m->l3_len >> 2) << IAVF_TX_DESC_LENGTH_IPLEN_SHIFT;