app/testpmd: fix GTP L2 len in checksum engine

Message ID 20230402122619.10078-1-rasland@nvidia.com (mailing list archive)
State Accepted, archived
Delegated to: Ferruh Yigit
Headers
Series app/testpmd: fix GTP L2 len in checksum engine |

Checks

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

Commit Message

Raslan Darawsheh April 2, 2023, 12:26 p.m. UTC
  GTP header can be followed by an optional 32 bits extension.

But, l2_len value statically set to RTE_ETHER_GTP_HLEN
which is defined to be
        (sizeof(struct rte_udp_hdr) + sizeof(struct rte_gtp_hdr))

This fixes the l2_len to take into consideration the extension size.

Fixes: d8e5e69f3a9b ("app/testpmd: add GTP parsing and Tx checksum offload")
Cc: ting.xu@intel.com
Cc: stable@dpdk.org

Signed-off-by: Raslan Darawsheh <rasland@nvidia.com>
---
 app/test-pmd/csumonly.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Singh, Aman Deep April 25, 2023, 11:59 a.m. UTC | #1
On 4/2/2023 5:56 PM, Raslan Darawsheh wrote:
> GTP header can be followed by an optional 32 bits extension.
>
> But, l2_len value statically set to RTE_ETHER_GTP_HLEN
> which is defined to be
>          (sizeof(struct rte_udp_hdr) + sizeof(struct rte_gtp_hdr))
>
> This fixes the l2_len to take into consideration the extension size.
>
> Fixes: d8e5e69f3a9b ("app/testpmd: add GTP parsing and Tx checksum offload")
> Cc: ting.xu@intel.com
> Cc: stable@dpdk.org
>
> Signed-off-by: Raslan Darawsheh <rasland@nvidia.com>

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

> ---
>   app/test-pmd/csumonly.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/app/test-pmd/csumonly.c b/app/test-pmd/csumonly.c
> index fc85c22a77..b50b89367a 100644
> --- a/app/test-pmd/csumonly.c
> +++ b/app/test-pmd/csumonly.c
> @@ -250,7 +250,7 @@ parse_gtp(struct rte_udp_hdr *udp_hdr,
>   		info->l4_proto = 0;
>   	}
>   
> -	info->l2_len += RTE_ETHER_GTP_HLEN;
> +	info->l2_len += gtp_len + sizeof(udp_hdr);

Macro is unused after above change.
So can be removed.

>   }
>   
>   /* Parse a vxlan header */
  
Ferruh Yigit May 17, 2023, 3:31 p.m. UTC | #2
On 4/25/2023 12:59 PM, Singh, Aman Deep wrote:
> 
> On 4/2/2023 5:56 PM, Raslan Darawsheh wrote:
>> GTP header can be followed by an optional 32 bits extension.
>>
>> But, l2_len value statically set to RTE_ETHER_GTP_HLEN
>> which is defined to be
>>          (sizeof(struct rte_udp_hdr) + sizeof(struct rte_gtp_hdr))
>>
>> This fixes the l2_len to take into consideration the extension size.
>>
>> Fixes: d8e5e69f3a9b ("app/testpmd: add GTP parsing and Tx checksum
>> offload")
>> Cc: ting.xu@intel.com
>> Cc: stable@dpdk.org
>>
>> Signed-off-by: Raslan Darawsheh <rasland@nvidia.com>
> 
> Acked-by: Aman Singh <aman.deep.singh@intel.com>>

Applied to dpdk-next-net/main, thanks.
  

Patch

diff --git a/app/test-pmd/csumonly.c b/app/test-pmd/csumonly.c
index fc85c22a77..b50b89367a 100644
--- a/app/test-pmd/csumonly.c
+++ b/app/test-pmd/csumonly.c
@@ -250,7 +250,7 @@  parse_gtp(struct rte_udp_hdr *udp_hdr,
 		info->l4_proto = 0;
 	}
 
-	info->l2_len += RTE_ETHER_GTP_HLEN;
+	info->l2_len += gtp_len + sizeof(udp_hdr);
 }
 
 /* Parse a vxlan header */