Install DPDK
Install the required dependencies.
yum -y install "@Development tools" yum -y install pciutils net-tools glib2 glib2-devel git yum -y install kernel kernel-devel kernel-headers
Decide where DPDK will be installed.
export DPDK_HOME=/usr/local/dpdk/
Download, build, and install DPDK.
wget http://fast.dpdk.org/rel/dpdk-16.11.1.tar.xz -O - | tar -xJ cd dpdk-stable-16.11.1/ make config install T=x86_64-native-linuxapp-gcc DESTDIR=$DPDK_HOME
Find the PCI address of the ethernet device that you plan on using to capture network packets. In the following example we plan on binding
enp9s0f0
which has a PCI address of09:00.0
.$ lspci | grep "VIC Ethernet" 09:00.0 Ethernet controller: Cisco Systems Inc VIC Ethernet NIC (rev a2) 0a:00.0 Ethernet controller: Cisco Systems Inc VIC Ethernet NIC (rev a2)
Bind the device. Replace the device name and PCI address with what is appropriate for your environment.
ifdown enp9s0f0 modprobe uio_pci_generic $DPDK_HOME/sbin/dpdk-devbind --bind=uio_pci_generic "09:00.0"
Ensure that the device was bound. It should be shown as a 'network device using DPDK-compatible driver.'
$ dpdk-devbind --status Network devices using DPDK-compatible driver ============================================ 0000:09:00.0 'VIC Ethernet NIC' drv=uio_pci_generic unused=enic Network devices using kernel driver =================================== 0000:01:00.0 'I350 Gigabit Network Connection' if=eno1 drv=igb unused=uio_pci_generic