[USRP-users] dpdk-test does not work

akin soysal akinsoysal at gmail.com
Wed Jan 8 07:22:47 EST 2020

Dear all,

We have a USRP X310 setup and we are trying to make the
UHD_3.15.0.0-0-g4e06022c driver work. I have added a file under
/etc/uhd/uhd.conf and it is attached to this email.

I am not sure about the dpdk-mac and dpdk-ipv4 addresses, what are they
used for?

I am trying to make the dpdk-test work but I am experiencing problems with
setting of ipv4.

sudo ./dpdk_test
EAL: Detected 18 lcore(s)
EAL: No free hugepages reported in hugepages-1048576kB
EAL: Probing VFIO support...
EAL: VFIO support initialized
EAL: PCI device 0000:05:00.0 on NUMA socket 0
EAL:   probe driver: 8086:1533 net_e1000_igb
EAL: PCI device 0000:65:00.0 on NUMA socket 0
EAL:   probe driver: 8086:1557 net_ixgbe
EAL:   using IOMMU type 1 (Type 1)
EAL: Ignore mapping IO port bar(2)
EAL: Waiting for links to come up...
[INFO] [UHD] linux; GNU C++ version 4.8.5 20150623 (Red Hat 4.8.5-39);
Boost_105800; UHD_3.15.0.0-0-g4e06022c
EAL: Starting I/O threads!
terminate called after throwing an instance of 'uhd::assertion_error'
  what():  AssertionError: status == 0
  in std::string get_ipv4_addr(unsigned int)
  at /home/ulak-gnb/workarea-uhd/uhd/host/tests/dpdk_test.cpp:229


What should be the uhd-dpdk arguments for this to run? It seems like it
does not even read the uhd.conf file.

I am using DPDK dpdk-stable-17.11.9. I have also programmed my SFP+
interface via dpdk-devbind.py as shown below.

sudo ./dpdk-devbind.py -s

Network devices using DPDK-compatible driver
0000:65:00.0 '82599 10 Gigabit Network Connection 1557' drv=vfio-pci

Network devices using kernel driver
0000:04:00.0 'AQC108 NBase-T/IEEE 802.3bz Ethernet Controller [AQtion]
d108' if=eth1 drv=atlantic unused=vfio-pci
0000:05:00.0 'I210 Gigabit Network Connection 1533' if=eno1 drv=igb
unused=vfio-pci *Active*

Other Network devices

Crypto devices using DPDK-compatible driver

Crypto devices using kernel driver

Other Crypto devices

Eventdev devices using DPDK-compatible driver

Eventdev devices using kernel driver

Other Eventdev devices

Mempool devices using DPDK-compatible driver

Mempool devices using kernel driver

Other Mempool devices

Thanks and regards,
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ettus.com/pipermail/usrp-users_lists.ettus.com/attachments/20200108/402109af/attachment.html>
-------------- next part --------------
;When present in device args, use_dpdk indicates you want DPDK to take over the UDP transports
;The value here represents a config, so you could have another section labeled use_dpdk=myconf
;instead and swap between them
;dpdk_mtu is the NIC's MTU setting
;This is separate from MPM's maximum packet size
;dpdk_driver is the -d flag for the DPDK EAL. If DPDK doesn't pick up the driver for your NIC
;automatically, you may need this argument to point it to the folder where it can find the drivers
;Note that DPDK will attempt to load _everything_ in that folder as a driver, so you may want to
;create a separate folder with symlinks to the librte_pmd_* and librte_mempool_* libraries.
;dpdk_corelist is the -l flag for the DPDK EAL. See more at the link
; https://doc.dpdk.org/guides-18.11/linux_gsg/build_sample_apps.html#running-a-sample-application
;dpdk_num_mbufs is the total number of packet buffers allocated
;to each direction's packet buffer pool
;This will be multiplied by the number of NICs, but NICs on the same
;CPU socket share a pool.
;dpdk_mbuf_cache_size is the number of buffers to cache for a CPU
;The cache reduces the interaction with the global pool

;dpdk_lcore selects the lcore that this NIC's driver will run on
;Multiple NICs may occupy one lcore, but the I/O thread will completely
;consume that lcore's CPU. Also, 0 is reserved for the master thread (i.e.
;the initial UHD thread that calls init() for DPDK). Attempting to
;use it as an I/O thread will only result in hanging.
;Note also that by default, the lcore ID will be the same as the CPU ID.
dpdk-io-cpu = 5
;dpdk_ipv4 specifies the IPv4 address, and both the address and
;subnet mask are required (and in this format!). DPDK uses the
;netmask to create a basic routing table. Routing to other networks
;(i.e. via gateways) is not permitted.
dpdk-ipv4 =
;dpdk_num_desc is the number of descriptors in each DMA ring.
;Must be a power of 2.

dpdk-lcore = 6
dpdk-ipv4 =

More information about the USRP-users mailing list