Hi NVIDIA Aerial team,
I am trying to run the cuBB end-to-end loopback test on a single GH200 server, following the loopback cuBB test flow. The RU Emulator fails during initialization when creating the C-plane flow rule on the BlueField-3 NIC.
Environment
-
Platform: GH200 / aarch64
-
Aerial cuBB image:
nvcr.io/nvidia/aerial/aerial-cuda-accelerated-ran:26-1-cubb -
Host source path:
/home/rain/aerial-cuda-accelerated-ran -
Container path:
/opt/nvidia/cuBB -
NIC used for loopback: BlueField-3
-
aerial00→0002:01:00.0 -
aerial01→0002:01:00.1
-
-
BF3 firmware:
-
32.47.1088 -
PSID:
MT_0000000884
-
-
BFB installed:
-
bf-fwbundle-3.2.1-34_25.11-prod.bfb -
bfb-installcompleted successfully -
Output included:
-
INFO[MISC]: Installation finished -
INFO[UEFI]: In Enhanced NIC mode -
Binding pf0 (0002:01:00.0) -
Binding pf1 (0002:01:00.1)
-
-
-
Cold boot / full power cycle was performed after the BFB installation and mlxconfig changes.
Physical link status
The two BF3 ports are connected with a QSFP112 DAC cable. Both ports are up at 200G:
aerial00:
bus-info: 0002:01:00.0
Speed: 200000Mb/s
Link detected: yes
aerial01:
bus-info: 0002:01:00.1
Speed: 200000Mb/s
Link detected: yes
BF3 mlxconfig
Both /dev/mst/mt41692_pciconf0 and /dev/mst/mt41692_pciconf0.1 show the expected settings:
FLEX_PARSER_PROFILE_ENABLE 4
PROG_PARSE_GRAPH True(1)
INTERNAL_CPU_MODEL EMBEDDED_CPU(1)
INTERNAL_CPU_PAGE_SUPPLIER EXT_HOST_PF(1)
INTERNAL_CPU_ESWITCH_MANAGER EXT_HOST_PF(1)
INTERNAL_CPU_IB_VPORT0 EXT_HOST_PF(1)
INTERNAL_CPU_OFFLOAD_ENGINE DISABLED(1)
ACCURATE_TX_SCHEDULER True(1)
CQE_COMPRESSION AGGRESSIVE(1)
REAL_TIME_CLOCK_ENABLE True(1)
LINK_TYPE_P1 ETH(2)
LINK_TYPE_P2 ETH(2)
PTP status
ptp4l and phc2sys are running.
ptp4l selected /dev/ptp2, which corresponds to aerial00.
phc2sys is using aerial00:
/usr/sbin/phc2sys -s aerial00 -c CLOCK_REALTIME -n 24 -O 0 -R 256 -u 256
The phc2sys RMS value is around 5–8.
Test case
I am running the 6001 PUCCH loopback case.
Setup commands:
export cuBB_SDK=/opt/nvidia/cuBB
cd $cuBB_SDK/testBenches/phase4_test_scripts
export du_port=aerial00
export ru_port=aerial01
./setup1_DU.sh -y nrSim_SCF_CG1_6001 \
--ru-host-type=_LOOPBACK \
--du-eth0=$du_port
./setup2_RU.sh --ru-eth0=$ru_port
./test_config_nrSim.sh --channels PUCCH
Then I run:
./run1_RU.sh
Error
The RU Emulator fails during initialization:
EAL: Probe PCI driver: mlx5_pci (15b3:a2dc) device: 0002:01:00.1 (socket 0)
[RU] PUCCH enabled!
[RU] Config file: /opt/nvidia/cuBB/cuPHY-CP/ru-emulator/config/ru_emulator_config_nrSim_SCF_CG1_6001.yaml
[RU] Launch pattern file: /opt/nvidia/cuBB/testVectors/multi-cell/launch_pattern_nrSim_6001.yaml
ERR [AERIAL_ORAN_FH_EVENT] [FH.LIB] Exception! Failed to create C-plane flow rule for Peer 58:a2:e1:68:5c:b4 on NIC 0002:01:00.1: hardware refuses to create flow
ERR [AERIAL_RU_EMULATOR_EVENT] [RU] Throwing exception: Failed to add Peer 0
ERR [AERIAL_RU_EMULATOR_EVENT] [RU] Exception caught at initialization phase: Failed to add Peer 0
The relevant dmesg line is:
mlx5_core 0002:01:00.1: mlx5_cmd_out_err:839:
CREATE_FLOW_GROUP(0x933) op_mod(0x0) failed,
status bad parameter(0x3), syndrome (0x8b69a9), err(-22)
Sometimes after this main error, RU Emulator also aborts with:
fmt::v10::format_error: string pointer is null
I assume this is a secondary error during exception handling. The main issue seems to be the C-plane flow rule creation failure.
What I already tried
-
Verified that
aerial00/aerial01are the BF3 ports and are linked at 200G. -
Verified BF3 mlxconfig settings on both
mt41692_pciconf0andmt41692_pciconf0.1. -
Installed the BF3 BFB bundle successfully via
rshim0. -
Performed a full cold boot / power cycle after BFB installation and mlxconfig changes.
-
Verified that
rshim0is attached. -
Verified that
ptp4landphc2sysare running. -
Reversed the DU/RU ports:
-
du_port=aerial01 -
ru_port=aerial00
The same type of failure still occurred.
-
-
Reduced the RU config to only
Cell1to rule out too many cell/flow rules.
The same failure still occurred.
Question
Could you help clarify what CREATE_FLOW_GROUP failed, status bad parameter, syndrome 0x8b69a9 means in this context?
Is there any additional BF3 / eCPRI parser / flow steering / DOCA / DPDK configuration required for RU Emulator C-plane flow rule creation in cuBB 26-1 on GH200 loopback?
Also, is there any known issue with the RU Emulator C-plane flow rule on BF3 firmware 32.47.1088 / BFB 3.2.1-34_25.11?
I also attached a photo of the physical cabling. The red box marks the DAC cable connection used for the BF3 loopback test.
