Search code examples
drivernicdpdkusrp

installing DPDK on Ubuntu 18.04 and intel XL710


I'm trying to make DPDK work on my machine without success; My machine is running Ubuntu 18.04 and the NIC I'm trying to bind is an Intel XL710. I'm completely new to DPDK and not an expert on linux.

Additional context: I need DPDK in order to get more bandwidth when using a USRP SDR (Software Defined Radio), that has this capability.

What I've done so far:

  • Added default_hugepagesz=1G hugepagesz=1G hugepages=8 to the grub config
  • Cloned and compiled DPDK 19, installed with make install. Result: Installation in /usr/local/ complete
  • get the status of the devices and drivers using ./dpdk-devbind.py -s. The relevant line I get from this command is: 0000:02:00.0 'Ethernet Controller XL710 for 40GbE QSFP+ 1583' if=enp2s0f0 drv=i40e unused=

When I try to bind the device (even if it is already binded? shouldn't I get a different driver/option for that?) using sudo ./dpdk-devbind.py -b i40e 0000:02:00.0 I get:

Warning: no supported DPDK kernel modules are loaded
Notice: 0000:02:00.0 already bound to driver i40e, skipping

What am I missing?

Thanks in advance for the help.


Solution

  • Before binding the i40e NIC to DPDK PMD driver, you need to load uio or vfio Linux driver as shown below:

    modprobe uio
    insmod ./x86_64-native-linux-gcc/kmod/igb_uio.ko
    

    or

    modprobe vfio-pci
    

    Take a look at link to know why we should load kernel module before ports are bind to DPDK.