[dpdk-24.07] l3fwdacl/l3fwdacl_acl_rule: core dump when recei=
ving packets
Product
DPDK
Version
24.07
Hardware
x86
OS
Linux
Status
UNCONFIRMED
Severity
normal
Priority
Normal
Component
examples
Assignee
dev@dpdk.org
Reporter
songx.jiale@intel.com
Target Milestone
---
[Environment]
DPDK version:=20
dpdk24.07-rc3=EF=BC=9A82c47f005b9a0a1e3a649664b7713443d18abe43
Other software versions: N/A.
OS: Anolis OS 8.8/5.10.134-13.an8.x86_64
Compiler: gcc version 8.5.0 20210514
Hardware platform: Intel(R) Xeon(R) Gold 6139 CPU @ 2.30GHz
NIC hardware: Intel Corporation Ethernet Controller E810-C for SFP [8086:15=
93]
(rev 01)
NIC driver: ice-1.14.11
NIC firmware: 4.50 0x8001d8b6 1.3597.0
[Test Setup]
1.compile dpdk
rm -rf x86_64-native-linuxapp-gcc
CC=3Dgcc meson -Denable_kmods=3DTrue -Dlibdir=3Dlib --default-library=3Dsta=
tic
-Db_sanitize=3Daddress -Dexamples=3Dl3fwd x86_64-native-linuxapp-gcc
ninja -C x86_64-native-linuxapp-gcc=20=20
2. bind pf to vfio-pci=20
./usertools/dpdk-devbind.py -b vfio-pci 18:00.0 18:00.1
3.prepare acl rules=20
echo '' > /root/rule_ipv4.db
echo 'R0.0.0.0/0 0.0.0.0/0 0 : 65535 0 : 65535 0x00/0x00 1' >>
/root/rule_ipv4.db
echo '' > /root/rule_ipv6.db
echo 'R0:0:0:0:0:0:0:0/0 0:0:0:0:0:0:0:0/0 0 : 65535 0 : 65535 0x00/0x00 1'=
>>
/root/rule_ipv6.db
echo '' > /root/rule_ipv4.db
echo @200.10.0.1/32 0.0.0.0/0 0 : 65535 0 : 65535 0x00/0x00 >>
/root/rule_ipv4.db
echo R0.0.0.0/0 0.0.0.0/0 0 : 65535 0 : 65535 0x00/0x00 1 >> /root/ru=
le_ipv4.db
4.launch dpdk-l3fwd=20
x86_64-native-linuxapp-gcc/examples/dpdk-l3fwd -l 1-4 -n 4 -a 0000:18:00.0 =
-a
0000:18:00.1 --force-max-simd-bitwidth=3D0 -- -p 0x3 --lookup acl
--config=3D"(0,0,2),(1,0,3)" --rule_ipv4=3D"/root/rule_ipv4.=
db"
--rule_ipv6=3D"/root/rule_ipv6.db" --parse-ptype=20=20
5.Send packets
sendp([Ether(dst=3D"{rx_port_mac}")/IP(src=3D"200.10.0.1&quo=
t;,dst=3D"100.10.0.1")/UDP(sport=3D11,dport=3D101)],iface=3D"=
;ens7",count=3D1,inter=3D0,verbose=3DFalse)
[Show the output from the previous commands.]
Segmentation fault
[Expected Result]
The application can receive and send packages normally.
[Regression]
Is this issue a regression: (Y/N)Y
commit aa7c6077c19bd39b48ac17cd844b91f0dd03319f
Author: Konstantin Ananyev <konstantin.ananyev@huawei.com>
Date: Thu May 2 16:28:16 2024 +0100
examples/l3fwd: avoid packets reorder in ACL mode
In ACL mode l3fwd first do classify() and send() for ipv4 packets,
then the same procedure for ipv6.
That might cause packets reordering within one ingress queue.
Probably not a big deal, as order within each flow are still preserved,
but better to be avoided anyway.
Specially considering that in other modes (lpm, fib, em)
l3fwd does preserve the order no matter of packet's IP version.
This patch aims to make ACL mode to behave in the same manner
and preserve packet's order within the same ingress queue.
Also these changes allow ACL mode to use common
(and hopefully better optimized) send_packets_multi() function at Tx pa=
th.
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@huawei.com>
examples/l3fwd/l3fwd_acl.c | 125 ++++++++++++++++++++++++----------=
----
examples/l3fwd/l3fwd_acl_scalar.h | 71 ++++++++++++----------
2 files changed, 118 insertions, 78 deletions