我正在运行 DPDK 骨架示例,它转发接收到的数据包:
https://doc.dpdk.org/guides/sample_app_ug/skeleton.html
sudo ./dpdk-skeleton -l 1 -n 4
EAL: Detected CPU lcores: 4
EAL: Detected NUMA nodes: 1
EAL: Detected static linkage of DPDK
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
EAL: Selected IOVA mode 'PA'
EAL: VFIO support initialized
EAL: Probe PCI driver: net_e1000_igb (8086:1533) device: 0000:05:00.0 (socket -1)
EAL: Probe PCI driver: net_e1000_igb (8086:1533) device: 0000:0a:00.0 (socket -1)
TELEMETRY: No legacy callbacks, legacy socket not created
Port 0 MAC: 98 b7 85 00 5b 87
Port 1 MAC: 6c b3 11 52 a3 29
Core 1 forwarding packets. [Ctrl+C to quit]
它在这些端口上运行:
unix 2 [ ] DGRAM 110208 6549/./dpdk-skeleto /var/run/dpdk/rte/mp_socket
unix 2 [ ACC ] SEQPACKET LISTENING 108476 6549/./dpdk-skeleto /var/run/dpdk/rte/dpdk_telemetry.v2
unix 2 [ ] DGRAM CONNECTED 110213 6549/./dpdk-skeleto
所以在一个终端中,我使用 netcat 生成到端口 108476 的流量:
nc -l -p 108476 < /dev/random
在第二个终端中,我正在侦听端口 110213,以便 DPDK 转发数据:
nc -l 110213
但是,第二个
netcat
命令(监听)没有输出任何东西。 DPDK 应该正在转发数据包。
我做错了什么?
/var/run/dpdk/rte/dpdk_telemetry.v2
似乎是 unix 域套接字。
您可以先安装
socat
:
apt-get install socat
并尝试:
date | socat - /var/run/dpdk/rte/dpdk_telemetry.v2
然后检查
dpdk-skeleton
是否打印任何东西。
我无法安装dpdk,所以无法测试。