net/i40e: fix offload flag checking in simple Tx datapath

Message ID 20210427085859.22376-1-alvinx.zhang@intel.com (mailing list archive)
State Superseded, archived
Delegated to: Qi Zhang
Headers
Series net/i40e: fix offload flag checking in simple Tx datapath |

Checks

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

Commit Message

Alvin Zhang April 27, 2021, 8:58 a.m. UTC
  For Tx packets, if no other offload flag except
'PKT_TX_OUTER_IPV6, PKT_TX_OUTER_IPV4, PKT_TX_IPV6, PKT_TX_IPV4' is
set, the hardware doesn't need to do offloads for these packets.

This patch removes those previously indicated flags from the offload
flag checking in simple Tx datapath.

Fixes: 146ffa81d05e ("net/i40e: add Tx preparation for simple Tx datapath")
Cc: stable@dpdk.org

Signed-off-by: Alvin Zhang <alvinx.zhang@intel.com>
---
 drivers/net/i40e/i40e_rxtx.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
  

Comments

Zhou, JunX W May 6, 2021, 5:32 a.m. UTC | #1
> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Alvin Zhang
> Sent: Tuesday, April 27, 2021 4:59 PM
> To: Wu, Jingjing <jingjing.wu@intel.com>; Xing, Beilei <beilei.xing@intel.com>
> Cc: dev@dpdk.org; Zhang, AlvinX <alvinx.zhang@intel.com>; stable@dpdk.org
> Subject: [dpdk-dev] [PATCH] net/i40e: fix offload flag checking in simple Tx datapath

Tested-by: Jun, Zhou <junx.w.zhou@intel.com>
  
Leyi Rong May 10, 2021, 3:27 a.m. UTC | #2
> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Alvin Zhang
> Sent: Tuesday, April 27, 2021 4:59 PM
> To: Wu, Jingjing <jingjing.wu@intel.com>; Xing, Beilei <beilei.xing@intel.com>
> Cc: dev@dpdk.org; Zhang, AlvinX <alvinx.zhang@intel.com>; stable@dpdk.org
> Subject: [dpdk-dev] [PATCH] net/i40e: fix offload flag checking in simple Tx
> datapath
> 
> For Tx packets, if no other offload flag except 'PKT_TX_OUTER_IPV6,
> PKT_TX_OUTER_IPV4, PKT_TX_IPV6, PKT_TX_IPV4' is set, the hardware doesn't
> need to do offloads for these packets.
> 
> This patch removes those previously indicated flags from the offload flag
> checking in simple Tx datapath.
> 
> Fixes: 146ffa81d05e ("net/i40e: add Tx preparation for simple Tx datapath")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Alvin Zhang <alvinx.zhang@intel.com>
> ---
>  drivers/net/i40e/i40e_rxtx.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/net/i40e/i40e_rxtx.c b/drivers/net/i40e/i40e_rxtx.c index
> 86a9eae..48d0582 100644
> --- a/drivers/net/i40e/i40e_rxtx.c
> +++ b/drivers/net/i40e/i40e_rxtx.c
> @@ -1501,7 +1501,9 @@
>  			return i;
>  		}
> 
> -		if (ol_flags & PKT_TX_OFFLOAD_MASK) {
> +		if (ol_flags & PKT_TX_OFFLOAD_MASK &
> +		    ~(PKT_TX_OUTER_IPV6 | PKT_TX_OUTER_IPV4 |
> +		      PKT_TX_IPV6 | PKT_TX_IPV4)) {

Hi Alvin,

Could we define a new macro like I40E_SIMPLE_TX_OFFLOAD_NOTSUP_MASK as what I40E_TX_OFFLOAD_NOTSUP_MASK did.
That would have nice readability. Thanks!

>  			rte_errno = ENOTSUP;
>  			return i;
>  		}
> --
> 1.8.3.1
  

Patch

diff --git a/drivers/net/i40e/i40e_rxtx.c b/drivers/net/i40e/i40e_rxtx.c
index 86a9eae..48d0582 100644
--- a/drivers/net/i40e/i40e_rxtx.c
+++ b/drivers/net/i40e/i40e_rxtx.c
@@ -1501,7 +1501,9 @@ 
 			return i;
 		}
 
-		if (ol_flags & PKT_TX_OFFLOAD_MASK) {
+		if (ol_flags & PKT_TX_OFFLOAD_MASK &
+		    ~(PKT_TX_OUTER_IPV6 | PKT_TX_OUTER_IPV4 |
+		      PKT_TX_IPV6 | PKT_TX_IPV4)) {
 			rte_errno = ENOTSUP;
 			return i;
 		}