https://bugs.dpdk.org/show_bug.cgi?id=1672 Bug ID: 1672 Summary: [dpdk-25.03] vf_offload/checksum_offload_tunnel_enable: gtpu packet checksum error packet Product: DPDK Version: 25.03 Hardware: All OS: All Status: UNCONFIRMED Severity: normal Priority: Normal Component: testpmd Assignee: dev@dpdk.org Reporter: songx.jiale@intel.com Target Milestone: --- 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: ======== >>> pkt[0].show2() ###[ 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: ================ >>> pkt[0].show2() ###[ 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 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 app/test-pmd/csumonly.c | 522 ++++++++++++------------------------------------ 1 file changed, 128 insertions, 394 deletions -- You are receiving this mail because: You are the assignee for the bug.