Trouble Detecting NIC Ports in DPDK Program with ConnectX-6

I’m encountering an issue while developing a DPDK-based program using a dual-port ConnectX-6 NIC on Ubuntu 24.04. Despite following the setup instructions, my program fails to detect the NIC ports. Specifically, the rte_eth_dev_count_avail() function always returns 0.

Here’s what I’ve done so far:

  • Downloaded, built, and installed DPDK 24.11.2 on Ubuntu 24.04.
  • Installed MLNX_OFED 24.10-2.1.8.0
  • Configured Huge Pages following the DPDK documentation.

Output of dpdk-devbind.py --status :

Network devices using kernel driver
===================================
0000:01:00.0 'MT2892 Family [ConnectX-6 Dx] 101d' if=enp1s0f0np0 drv=mlx5_core unused=
0000:01:00.1 'MT2892 Family [ConnectX-6 Dx] 101d' if=enp1s0f1np1 drv=mlx5_core unused=

I modified DPDK’s HelloWorld example by adding the function rte_eth_dev_count_avail() after EAL initialization. I run the program with these EAL arguments: -l 0-3 -n 4 -a 0000:01:00.0. But the function rte_eth_dev_count_avail() returns zero. I have tested other examples as well.

I have also tested vfio-pci.
Output of dpdk-devbind.py --status after binding to vfio-pci :

Network devices using DPDK-compatible driver
============================================
0000:01:00.0 'MT2892 Family [ConnectX-6 Dx] 101d' drv=vfio-pci unused=mlx5_core

Network devices using kernel driver
===================================
0000:01:00.1 'MT2892 Family [ConnectX-6 Dx] 101d' if=enp1s0f1np1 drv=mlx5_core unused=

My program still cannot find the NIC ports.

My questions:

  1. Is there something wrong with my configuration or driver setup?
  2. Which driver should I use for ConnectX-6? mlx5_core or vfio-pci or any other?
  3. How can I further troubleshoot why rte_eth_dev_count_avail() is returning 0?
  4. Are there any additional steps or configurations specific to ConnectX-6 NICs that I might have missed?

Thanks in advance

Hello @ mo69.hoseini,

Thank you for posting your query on our community.

DPDK needs to be installed after MOFED because it relies on MOFED’s libraries to work properly with Mellanox hardware. If you install DPDK first, it might miss important dependencies and some features may not work. Could you please verify that the correct order is followed and re-test.

Thanks,
Bhargavi

1 Like