<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>