<html>
    <head>
      <base href="https://bugs.dpdk.org/">
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8" class="bz_new_table">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_UNCONFIRMED "
   title="UNCONFIRMED - [dpdk-25.03] vf_offload/checksum_offload_tunnel_enable: gtpu packet checksum error packet"
   href="https://bugs.dpdk.org/show_bug.cgi?id=1672">1672</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>[dpdk-25.03] vf_offload/checksum_offload_tunnel_enable: gtpu packet checksum error packet
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>DPDK
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>25.03
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>All
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>All
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>UNCONFIRMED
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>normal
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>Normal
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>testpmd
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>dev@dpdk.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>songx.jiale@intel.com
          </td>
        </tr>

        <tr>
          <th>Target Milestone</th>
          <td>---
          </td>
        </tr></table>
      <p>
        <div class="bz_comment_block">
          <pre class="bz_comment_text">Environment
===========
DPDK version: 5f37ee9c859f3ce08ca4364f1d8c0e70ec33ac83 version: 25.03.0-rc2
OS: Ubuntu24.04.1 LTS (Noble Numbat)/6.8.0-41-generic
Compiler:  gcc version 13.2.0
Hardware platform: Intel(R) Xeon(R) Platinum 8380 CPU @ 2.30GHz
NIC hardware: CVL(Intel Corporation Ethernet Controller E810-C for SFP
[8086:1593])
NIC firmware: 
  driver: vfio-pci
  kdriver: ice-1.16.3
  firmware-version: 4.70 0x8001f79e 1.3755.0
  pkg: ice comms 1.3.53.0
scapy:2.4.4

Test Setup
Steps to reproduce
==================
1. create 1 vf and set vf 
echo 1 > /sys/bus/pci/devices/0000\:18\:00.0/sriov_numvfs
ip link set enp24s0f0np0 vf 0 trust on
ip link set enp24s0f0np0 vf 0 spoofchk off
modprobe vfio-pci
./usertools/dpdk-devbind.py -b vfio-pci 0000:18:01.0

2. start testpmd 
x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-3 -n 4 -a 0000:18:01.0 -- -i
--enable-rx-cksum

3. set testpmd 
set verbose 1
set promisc 0 on
set fwd csum
port stop all
csum set ip hw 0
csum set udp hw 0
csum set tcp hw 0
csum set sctp hw 0
csum set outer-ip hw 0
csum set outer-udp hw 0
csum parse-tunnel on 0
port start all
start

4. tcpdump captures packets forwarded by testpmd
tcpdump -ei ens8 -Q in -w 1.pcap

5. scapy send packets
from scapy.contrib.gtp import *
p=Ether(dst="76:D4:6B:F1:BF:7A", src="52:00:00:00:00:00") / IP(src =
"10.0.0.1", chksum = 0xff) / UDP(dport = 2182, chksum = 0xff) /
GTP_U_Header(gtp_type=255, teid=0x123456) / IP(src = "10.0.0.1", chksum = 0xff)
/ UDP(sport = 29999, dport = 30000, chksum = 0xff) / Raw("x" * 100) 
sendp(p, iface='ens8', count=1)

6. ^C exit tcpdump and scapy or wireshark parsing data packets
scapy parsing data packets:
from scapy.contrib.gtp import *
pkt=rdpcap('1.pcap')
pkt[0].show2()


Results: 
========
<span class="quote">>>> pkt[0].show2()</span >
###[ Ethernet ]###
  dst= 02:00:00:00:00:00
  src= 7e:45:ee:26:3a:23
  type= IPv4
###[ IP ]###
     version= 4
     ihl= 5
     tos= 0x0
     len= 164
     id= 1
     flags=
     frag= 0
     ttl= 64
     proto= udp
     chksum= 0xf146
     src= 10.0.0.1
     dst= 127.0.0.1
     \options\
###[ UDP ]###
        sport= 2152
        dport= 2182
        len= 144
        chksum= 0x7c10
###[ GTP-U Header ]###
           version= 1
           PT= 1
           reserved= 0
           E= 0
           S= 0
           PN= 0
           gtp_type= g_pdu
           length= 128
           teid= 1193046
###[ IP ]###
              version= 4
              ihl= 5
              tos= 0x0
              len= 128
              id= 1
              flags=
              frag= 0
              ttl= 64
              proto= udp
              chksum= 0xff
              src= 10.0.0.1
              dst= 127.0.0.1
              \options\
###[ UDP ]###
                 sport= 29999
                 dport= 30000
                 len= 108
                 chksum= 0xff
###[ Raw ]###
                    load=
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'

Expected Result:
================
<span class="quote">>>> pkt[0].show2()</span >
###[ Ethernet ]###
  dst= 02:00:00:00:00:00
  src= 7e:45:ee:26:3a:23
  type= IPv4
###[ IP ]###
     version= 4
     ihl= 5
     tos= 0x0
     len= 164
     id= 1
     flags=
     frag= 0
     ttl= 64
     proto= udp
     chksum= 0xf146
     src= 10.0.0.1
     dst= 127.0.0.1
     \options\
###[ UDP ]###
        sport= 2152
        dport= 2182
        len= 144
        chksum= 0x8894
###[ GTP-U Header ]###
           version= 1
           PT= 1
           reserved= 0
           E= 0
           S= 0
           PN= 0
           gtp_type= g_pdu
           length= 128
           teid= 1193046
###[ IP ]###
              version= 4
              ihl= 5
              tos= 0x0
              len= 128
              id= 1
              flags=
              frag= 0
              ttl= 64
              proto= udp
              chksum= 0xf16a
              src= 10.0.0.1
              dst= 127.0.0.1
              \options\
###[ UDP ]###
                 sport= 29999
                 dport= 30000
                 len= 108
                 chksum= 0x42d
###[ Raw ]###
                    load=
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'

bad commit:
===========
commit 76730c7b9b5a35d1a74d45a08153a03bdb1b26f8
Author: Jie Hai <<a href="mailto:haijie1@huawei.com">haijie1@huawei.com</a>>
Date:   Fri Feb 14 09:56:38 2025 +0800

    app/testpmd: use packet type parsing API

    1. Use rte_net_get_ptype() to parse packets instead.
    2. Support TSO for packets with IPv6 extension header.

    Signed-off-by: Jie Hai <<a href="mailto:haijie1@huawei.com">haijie1@huawei.com</a>>

 app/test-pmd/csumonly.c | 522 ++++++++++++------------------------------------
 1 file changed, 128 insertions, 394 deletions
          </pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
      <div itemscope itemtype="http://schema.org/EmailMessage">
        <div itemprop="action" itemscope itemtype="http://schema.org/ViewAction">
          
          <link itemprop="url" href="https://bugs.dpdk.org/show_bug.cgi?id=1672">
          <meta itemprop="name" content="View bug">
        </div>
        <meta itemprop="description" content="Bugzilla bug update notification">
      </div>
    </body>
</html>