Hi Shane,

I've had success using DPDK with ~200Msps rates over a QSFP+ link to a USRP 
N320. I still have the uhd.conf file from that project but do not have the 
hardware on hand to try anything.

One difference is that my uhd.conf used only underscores, not dashes. UHD's key 
matching in /host/lib/transport/uhd-dpdk/dpdk_common.cpp appears to only expect 
underscores, though perhaps the earlier logic to ingest the file is smart 
enough to convert dashes to underscores - I didn't trace back that far.

Might be worth updating your config to use underscores and see if that helps. 
For reference my working config is below, though it's from when UHD required 
DPDK version 18.11 so things might be a little different in recent versions.

Best,
-David

[use_dpdk=1]
dpdk_mtu=9000
dpdk_driver=/usr/local/lib/dpdk-pmds
dpdk_corelist=24,26,28
dpdk_num_mbufs=8192
dpdk_mbuf_cache_size=512
dpdk_link_timeout=5000

[dpdk_mac=3c:fd:fe:bc:b7:88]
dpdk_lcore = 26
dpdk_ipv4 = 192.168.10.10/24
; descriptors per dma ring, must be a power of 2
dpdk_num_desc = 2048

[dpdk_mac=3c:fd:fe:bc:b7:89]
dpdk_lcore = 28
dpdk_ipv4 = 192.168.20.10/24
; descriptors per dma ring, must be a power of 2
dpdk_num_desc = 2048



From: Shane Flandermeyer <shaneflanderme...@gmail.com>
Sent: Friday, September 29, 2023 3:18 PM
To: usrp-users@lists.ettus.com
Subject: [USRP-users] DPDK with X310 and Intel X520-DA

Hello all,

I'm trying to configure my X310 to transmit at its full 200 MS/s rate without 
underflows. People have recommended DPDK, but it seems that DPDK can't find the 
X310 when I try to run scripts. I can use the X310 when I don't bind the NIC to 
vfio-pci, but running the benchmark_rate script with DPDK (as root) gives the 
following:

$ ./benchmark_rate --rx_rate 200e6 --tx_rate 200e6 --args 
"addr=192.168.30.2,use_dpdk=1"

[INFO] [UHD] linux; GNU C++ version 11.4.0; Boost_107400; DPDK_21.11; 
UHD_4.5.0.HEAD-0-g471af98f
EAL: Detected CPU lcores: 32
EAL: Detected NUMA nodes: 1
EAL: Detected shared linkage of DPDK
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
EAL: Selected IOVA mode 'VA'
EAL: No available 1048576 kB hugepages reported
EAL: VFIO support initialized
EAL: Using IOMMU type 1 (Type 1)
EAL: Ignore mapping IO port bar(2)
EAL: Probe PCI driver: net_ixgbe (8086:10fb) device: 0000:61:00.0 (socket 0)
EAL: Ignore mapping IO port bar(2)
EAL: Probe PCI driver: net_ixgbe (8086:10fb) device: 0000:61:00.1 (socket 0)
TELEMETRY: No legacy callbacks, legacy socket not created
[ERROR] [DPDK] Could not find route to destination address 192.168.30.2
[ERROR] [X300] X300 Network discovery error RuntimeError: DPDK: Could not find 
route to destination address 192.168.30.2
[00:00:00.000300] Creating the usrp device with: addr=192.168.30.2,use_dpdk=1...
[ERROR] [DPDK] Could not find route to destination address 192.168.30.2
[ERROR] [X300] X300 Network discovery error RuntimeError: DPDK: Could not find 
route to destination address 192.168.30.2
Error: LookupError: KeyError: No devices found for ----->
Device Address:
    addr: 192.168.30.2
    use_dpdk: 1

Additional info that may be helpful:
- After binding the NIC, dpdk-devbind gives the following

$ dpdk-devbind.py -s

Network devices using DPDK-compatible driver
============================================
0000:61:00.0 '82599ES 10-Gigabit SFI/SFP+ Network Connection 10fb' drv=vfio-pci 
unused=ixgbe
0000:61:00.1 '82599ES 10-Gigabit SFI/SFP+ Network Connection 10fb' drv=vfio-pci 
unused=ixgbe

Network devices using kernel driver
===================================
0000:64:00.0 'I210 Gigabit Network Connection 1533' if=enp100s0 drv=igb 
unused=vfio-pci
0000:6a:00.0 'Ethernet Controller 10G X550T 1563' if=enp106s0f0 drv=ixgbe 
unused=vfio-pci *Active*
0000:6a:00.1 'Ethernet Controller 10G X550T 1563' if=enp106s0f1 drv=ixgbe 
unused=vfio-pci

No 'Baseband' devices detected
==============================

Crypto devices using kernel driver
==================================
0000:24:00.1 'Starship/Matisse Cryptographic Coprocessor PSPCPP 1486' drv=ccp 
unused=vfio-pci

No 'DMA' devices detected
=========================

No 'Eventdev' devices detected
==============================

No 'Mempool' devices detected
=============================

No 'Compress' devices detected
==============================

No 'Misc (rawdev)' devices detected
===================================

No 'Regex' devices detected
===========================

- My configuration file is located at /root/.config/uhd.conf, and has the 
following contents:
[use_dpdk=1]
dpdk-mtu=9000
dpdk-driver=/usr/lib/x86_64-linux-gnu/dpdk/pmds-22.0
dpdk-corelist=0,1
dpdk-num-mbufs=4095
dpdk-mbufs-cache-size=315
dpdk_link_timeout=9000

[dpdk-mac=90:e2:ba:dd:5b:cc]
dpdk-io-cpu = 1
dpdk-ipv4 = 
192.168.30.1/24<https://usg02.safelinks.protection.office365.us/?url=http%3A%2F%2F192.168.30.1%2F24&data=05%7C01%7Cdavid%40synopticengineering.com%7C2d9cef7c4c664546598008dbc120ea83%7Ce861c95e27d6448db078edc45c1d9315%7C0%7C0%7C638316119369261563%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=83CgKn%2B1bcPQctERVvXcqmLhXNTzsTS51OO3lDgNnl8%3D&reserved=0>

Does anyone have any ideas for why it isn't working? Thank you!
_______________________________________________
USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-le...@lists.ettus.com

Reply via email to