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...@intel.com
Cc: sta...@dpdk.org

Signed-off-by: Raslan Darawsheh <rasl...@nvidia.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);
 }
 
 /* Parse a vxlan header */
-- 
2.25.1

Reply via email to