Environment
-
HW: BlueField-2 E-Series DPU (MBF2M516C-CESO_Ax, Crypto Disabled, 16GB DDR)
-
FW: 24.44.1036
-
Driver:
mlx5_core25.01-0.6.0 -
BSP / Kernel: BlueField BSP 4.10.0.13520 / Linux 5.15.0-1060-bluefield
-
DOCA: 2.10.0087
-
DPDK (DPU): MLNX_DPDK 22.11.2501.1.0 (based on DPDK 23.0)
-
Host: Ubuntu 24.04 (only
rxpcfrom DOCA 2.2 package installed, used to compile regex rules)
Background
-
The DOCA-regex library is no longer provided as of DOCA 2.10.
-
Therefore, I assumed that RegEx acceleration should instead be accessed through the DPDK PMD (
mlx5_regex). -
My workflow: On the host I use the
rxpccompiler (from DOCA 2.2) to generate.rof2rule files, transfer them to the DPU, and then load them in the DPU application (dpdk-test-regex).
Steps Taken
-
HugePage Setup
-
Created and mounted 2MB/1GB hugepage pools (
/mnt/huge,/mnt/huge-1G). -
Verified with
hugeadm --explain. -
DPDK EAL options such as
--huge-dir=/mnt/huge-1G,-m 4096work fine; memory initialization completes successfully.
-
-
DPDK Testing
-
Initially
dpdk-test-regexfailed withmlx5_regex: Failed to program rxp rules. -
After tuning hugepages/EAL options, that error disappeared, but the program now hangs right after EAL initialization (no further output).
-
-
Device/Driver Checks
-
In
/sys/bus/auxiliary/devices, I seemlx5_core.eth.*,mlx5_core.rdma.*,mlx5_core.sf.*, etc.,
but nomlx5_core.regex.*entries. -
dmesg,ethtool -i,mlxconfig -d p0 qshow no RegEx-related parameters (e.g.,REGEX_ENABLE). -
/sys/class/net/p0/smart_nic/pf/regex_enexists but is set to0.
Attempts toecho 1 > .../regex_enreturnInvalid argument, suggesting HW/FW rejects it.
-
-
FW/PSID Confirmation
-
PSID:
MT_0000000731 -
mlxfwmanager/mlxconfigshow no RegEx options. -
This suggests the current SKU (FW/PSID) may not support RegEx at the hardware level or it is disabled.
-
Questions
-
Since DOCA 2.10 removed
doca-regex,-
Is it still officially supported to use RegEx hardware acceleration via the
mlx5_regexDPDK PMD? -
The documentation suggests DPDK PMD could be used, but actual support/roadmap is unclear.
-
-
For my specific BlueField-2 E-Series SKU (
MBF2M516C-CESO_Ax, Crypto Disabled),-
Does this SKU lack RegEx hardware support entirely, or could it be enabled via firmware/PSID profile change?
-
If the hardware does not support RegEx, does that mean it is impossible to use RegEx even with the DPDK PMD?
-
-
Looking ahead:
-
To continue using RegEx acceleration, do I need to switch to a RegEx-enabled SKU (e.g., Crypto-enabled models or specific PSIDs)?
-
Or will NVIDIA continue to support RegEx acceleration via DPDK PMD in DOCA versions beyond 2.10?
-
ubuntu@dtn2-dpu:/opt/mellanox/dpdk/bin$ sudo ./dpdk-test-regex -l 0-1 -n 4 -a 0000:03:00.0,class=regex --iova-mode=va -- --rules /home/ubuntu/phase1_min.rof2 --data /tmp/phase1_payload.txt --nb_jobs 1 --nb_iter 1 --nb_qps 1 --nb_lcores 1 --nb_segs 1 --match_mode 1
sudo: unable to resolve host dtn2-dpu: Name or service not known
EAL: Detected CPU lcores: 8
EAL: Detected NUMA nodes: 1
EAL: Detected shared linkage of DPDK
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
EAL: Selected IOVA mode 'VA'
EAL: 4 hugepages of size 1073741824 reserved, but no mounted hugetlbfs found for that size
EAL: Probe PCI driver: mlx5_pci (15b3:a2d6) device: 0000:03:00.0 (socket -1)
TELEMETRY: No legacy callbacks, legacy socket not created
===> Core 1: allocated queues: 0
:: initializing dev: 0
mlx5_regex: Rules program failed 121
mlx5_regex: Failed to program rxp rules.
mlx5_regex: Failed to program rxp rules.
Error, can't configure device 0.
EAL: Error - exiting with code: 1
Cause: init port failed'
---
ubuntu@dtn2-dpu:/opt/mellanox/dpdk/bin$ sudo ./dpdk-test-regex \
-l 0-1 -n 4 \
-a 0000:03:00.0,class=regex \
--iova-mode=va \
--huge-dir=/mnt/huge-1G \
-m 4096 \
-- \
--rules /home/ubuntu/phase1_min.rof2 \
--data /tmp/phase1_payload.txt \
--nb_jobs 1 --nb_iter 1 --nb_qps 1 --nb_lcores 1 --nb_segs 1 --match_mode 1
sudo: unable to resolve host dtn2-dpu: Name or service not known
EAL: Detected CPU lcores: 8
EAL: Detected NUMA nodes: 1
EAL: Detected shared linkage of DPDK
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
EAL: Selected IOVA mode 'VA'
^C
---
ubuntu@dtn4-dpu:/mnt/src/samples/dpdk/test-regex/build$ !1994
sudo ./MinioS3_regex_test -a 0000:03:00.0,class=regex -l 0-1 -n 4 -- --rules ../rule_sample/phase1.rof2.binary --phase 1
EAL: Detected CPU lcores: 8
EAL: Detected NUMA nodes: 1
EAL: Detected shared linkage of DPDK
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
EAL: Selected IOVA mode 'PA'
EAL: Probe PCI driver: mlx5_pci (15b3:a2d6) device: 0000:03:00.0 (socket -1)
TELEMETRY: No legacy callbacks, legacy socket not created
RegEx Hardware Validation - Step by Step
==========================================
Rules file: ../rule_sample/phase1.rof2.binary
Test phase: 1
✅ mbuf pool created
✅ Found 1 RegEx devices
Device info:
Max payload size: 16384 bytes
Max matches: 254
Max rules per group: 4294967295
✅ Loaded rules file: 688 bytes
mlx5_regex: Rules program failed 121
mlx5_regex: Failed to program rxp rules.
mlx5_regex: Failed to program rxp rules.
❌ Device configuration failed: -19
❌ Device initialization failed