Ubuntu 16,DPDK 16
我有几个基于DPDK的应用程序在两台计算机之间发送数据包,并希望使用dpdk-pdump
捕获它们。我用sudo ./build/app/pdump/dpdk-pdump -c 0x00f -- --pdump 'port=0,queue=*,rx-dev=/tmp/rx.pcap'
运行它,我看到了这个输出和崩溃:
EAL: no driver found for eth_pcap_rx_0
EAL: Driver, cannot attach the device
EAL: Error - exiting with code: 1
Cause: vdev creation failed:create_mp_ring_vdev:736
我的DPDK编译如下:hostname:~/dpdk-stable-16.07.1/x86_64-native-linuxapp-gcc# CONFIG_RTE_LIBRTE_PMD_PCAP=y make
(之前也是export CONFIG_RTE_LIBRTE_PMD_PCAP=y
)所以它使用libpcap支持构建,正如文档所说的那样。我的系统安装了libpcap。 make脚本输出显示== Build lib/librte_pdump
。在网上浏览,我只找到one person with a similar issue,建议的修复就是我尝试过的。还有什么我必须要做的吗?
我尝试安装DPDK Ubuntu package's version of the tool并使用dpdk-pdump
命令,结果相同。
答案 0 :(得分:1)
不幸的是,在命令行中设置CONFIG_RTE_LIBRTE_PMD_PCAP = y不起作用,因此编译的dpdk-pdump没有pcap支持。
在config / common_base中设置CONFIG_RTE_LIBRTE_PMD_PCAP = y,删除构建目录并重新编译DPDK。
确保您的构建目录中的.config文件具有CONFIG_RTE_LIBRTE_PMD_PCAP = y
答案 1 :(得分:0)
如果您遇到以下错误:
Error: missing pcap.h
rte_eth_pcap.c:19:18: fatal error: pcap.h: No such file or directory
使用选项CONFIG_RTE_LIBRTE_PMD_PCAP=y
编译时
安装libpcap-dev *软件包。例如:
yum install libpcap-devel