BlueField-2 DPU RegEx Acceleration Support

Environment

  • HW: BlueField-2 E-Series DPU (MBF2M516C-CESO_Ax, Crypto Disabled, 16GB DDR)

  • FW: 24.44.1036

  • Driver: mlx5_core 25.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 rxpc from 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 rxpc compiler (from DOCA 2.2) to generate .rof2 rule files, transfer them to the DPU, and then load them in the DPU application (dpdk-test-regex).

Steps Taken

  1. 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 4096 work fine; memory initialization completes successfully.

  2. DPDK Testing

    • Initially dpdk-test-regex failed with mlx5_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).

  3. Device/Driver Checks

    • In /sys/bus/auxiliary/devices, I see mlx5_core.eth.*, mlx5_core.rdma.*, mlx5_core.sf.*, etc.,
      but no mlx5_core.regex.* entries.

    • dmesg, ethtool -i, mlxconfig -d p0 q show no RegEx-related parameters (e.g., REGEX_ENABLE).

    • /sys/class/net/p0/smart_nic/pf/regex_en exists but is set to 0.
      Attempts to echo 1 > .../regex_en return Invalid argument, suggesting HW/FW rejects it.

  4. FW/PSID Confirmation

    • PSID: MT_0000000731

    • mlxfwmanager/mlxconfig show no RegEx options.

    • This suggests the current SKU (FW/PSID) may not support RegEx at the hardware level or it is disabled.

Questions

  1. Since DOCA 2.10 removed doca-regex,

    • Is it still officially supported to use RegEx hardware acceleration via the mlx5_regex DPDK PMD?

    • The documentation suggests DPDK PMD could be used, but actual support/roadmap is unclear.

  2. 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?

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

Hi @Joon99 ,

Thanks for contact NVidia Enterprise Support!

According the document:

Support for the DOCA RegEx and DOCA DPI libraries has been discontinued.

Reference: NVIDIA DOCA Release Notes - NVIDIA Docs

Best regards!