Skip to contentSkip to conversation

l3fwdacl/l3fwdacl_acl_rule: core dump when receiving packets

DPDK/examples Bug 1502 [email protected] 1 participant 2 messages Jul 26, 2024 – Mar 26, 2025

lore
Share & tools
lore
#0 lore raw

https://bugs.dpdk.org/show_bug.cgi?id=1502

            Bug ID: 1502
           Summary: [dpdk-24.07] l3fwdacl/l3fwdacl_acl_rule: core dump
                    when receiving packets
           Product: DPDK
           Version: 24.07
          Hardware: x86
                OS: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: examples
          Assignee: [email protected]
          Reporter: [email protected]

Target Milestone: ---

[Environment]
DPDK version:
dpdk24.07-rc3:82c47f005b9a0a1e3a649664b7713443d18abe43
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:1593] (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=gcc meson -Denable_kmods=True -Dlibdir=lib --default-library=static -Db_sanitize=address -Dexamples=l3fwd x86_64-native-linuxapp-gcc ninja -C x86_64-native-linuxapp-gcc
2. bind pf to vfio-pci
./usertools/dpdk-devbind.py -b vfio-pci 18:00.0 18:00.1

3.prepare acl rules
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/rule_ipv4.db

4.launch dpdk-l3fwd
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=0 -- -p 0x3 --lookup acl
--config="(0,0,2),(1,0,3)" --rule_ipv4="/root/rule_ipv4.db"
--rule_ipv6="/root/rule_ipv6.db" --parse-ptype
5.Send packets sendp([Ether(dst="{rx_port_mac}")/IP(src="200.10.0.1",dst="100.10.0.1")/UDP(sport=11,dport=101)],iface="ens7",count=1,inter=0,verbose=False)

[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 <[email protected]>
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 path.

 examples/l3fwd/l3fwd_acl.c        | 125 ++++++++++++++++++++++++--------------
 examples/l3fwd/l3fwd_acl_scalar.h |  71 ++++++++++++----------
 2 files changed, 118 insertions, 78 deletions
Signature · 2 lines
You are receiving this mail because:
You are the assignee for the bug.
#1 lore raw

https://bugs.dpdk.org/show_bug.cgi?id=1502

Thomas Monjalon ([email protected]) changed:

What |Removed |Added
----------------------------------------------------------------------------

             Status|CONFIRMED                   |RESOLVED
         Resolution|---                         |FIXED

--- Comment #6 from Thomas Monjalon ([email protected]) --- Resolved in http://git.dpdk.org/dpdk/commit/?id=795b63416b

Signature · 2 lines
You are receiving this mail because:
You are the assignee for the bug.