1

I'm trying to set up DPDK on a Mellanox ConnectX-3 card and run some of the applications that comes with it, e.g., l2fwd. My understanding is that I need to use dpdk_nic_bind.py script that comes with DPDK distribution to bind ports to Mellanox card PMD driver. However, dpdk_nic_bind.py doesn't my Mellanox card.

./dpdk_nic_bind.py -s

Network devices using DPDK-compatible driver
============================================
<none>

Network devices using kernel driver
===================================
0000:01:00.0 '82599ES 10-Gigabit SFI/SFP+ Network Connection' if=eth0 drv=ixgbe unused=igb_uio,vfio-pci,uio_pci_generic *Active*
0000:01:00.1 '82599ES 10-Gigabit SFI/SFP+ Network Connection' if=eth1 drv=ixgbe unused=igb_uio,vfio-pci,uio_pci_generic 

Other network devices
=====================
<none>

In general, do I need to do the binding? If yes, how? If not, how is the PMD driver enabled?

Salem Derisavi
  • 137
  • 1
  • 10
  • Try using driverctl, ie: driverctl -v list-devices |grep -iE "net|connectx". PS: the mellanox driver is not enabled in default dpdk confg scropt, you need to set CONFIG_RTE_LIBRTE_MLX4_PMD y – Alec Istomin Jan 04 '16 at 21:43
  • @AlecIstomin. Thanks for your comment. I had made the .config modification you've mentioned above. What is driverctl? Where can I find it? – Salem Derisavi Jan 06 '16 at 23:47
  • 1
    It's an alternative for dpdk_nic_bind.py, that persists device assignment over reboots. I have found .src.rpm in fedora, google for one in your distro – Alec Istomin Feb 10 '16 at 23:22

2 Answers2

0

If you want to bind it with dpdk_nic_bind.py, you should run: dpdk_nic_bind --bind userspace driver BDF, wheras BDF is what you see by ethtool -i ethName. The userspace driver might be ib_ipoib in this case. You can find out the required userspace driver by running dpdk_nic_bind.py -s, and looking for the connectx driver under the "Network devices using kernel driver" section.

Pang
  • 9,564
  • 146
  • 81
  • 122
Rami Rosen
  • 330
  • 2
  • 2
0

For Mellanox you should follow the procedure described here:

http://dpdk.org/doc/guides/nics/mlx4.html

Basically, the answers are:

  1. No you do not need to bind your card to UIO, but you need to load Mellanox kernel modules:

    modprobe -a ib_uverbs mlx4_en mlx4_core mlx4_ib
    
  2. You should use the whitelist EAL argument to run a DPDK app on Mellanox NIC, i.e.:

    testpmd -w 0000:83:00.0 -w 0000:84:00.0 ...
    
Andriy Berestovskyy
  • 8,059
  • 3
  • 17
  • 33