一、安装准备
1. 加载环境变量
dpdk安装目录
export RTE_SDK=/home/sword/dpdk-17.08
export RTE_TARGET=x86_64-native-linuxapp-gcc
2. 安装libelf-dev
sudo apt install libelf-dev
以前安装过,也重新更新安装否则会出错
/usr/src/linux-headers-4.15.0-46-generic/Makefile:975: "Cannot use CONFIG_STACK_VALIDATION=y, please install libelf-dev, libelf-devel or elfutils-libelf-devel"
3. 修改配置文件
在DPDK安装目录下,CONFIG文件夹中的common_base下修改,将n改为y,之后重新编译DPDK
CONFIG_RTE_LIBRTE_PMD_PCAP=y
CONFIG_RTE_LIBRTE_PDUMP=y
4. 安装pdump
cd dpdk-17.08/app/pdump
make
make install
二、运行pdump
1. 运行testpmd
pdump需要依附testpmd之类的主进程才可以运行
首先运行DPDK脚本,实现网卡绑定、设置大页内存等
./dpdk-17.08/usertools/dpdk-setup.sh
运行testpmd
/dpdk-17.08/app/test-pmd/build/app
./testpmd -c 0x03 -n 4 -- -i --port-topology=chained
2. 运行pdump
此处的rx-dev即文件保存目录和保存文件名
这里有个大坑!!!!
就是不能在build/app/目录下运行,会一直卡在初始化PMD驱动阶段
dpdk-17.08/app/pdump
./build/app/dpdk-pdump -- --pdump 'port=0,queue=*,rx-dev=/tmp/capture1609.pcap'
运行结果:
root@sword:/home/sword/dpdk-17.08/app/pdump# ./build/app/dpdk-pdump -- --pdump 'port=0,queue=*,rx-dev=/tmp/capture1609.pcap'
EAL: Detected 2 lcore(s)
EAL: Probing VFIO support...
EAL: WARNING: Address Space Layout Randomization (ASLR) is enabled in the kernel.
EAL: This may cause issues with mapping memory into secondary processes
EAL: PCI device 0000:06:00.0 on NUMA socket -1
EAL: Invalid NUMA socket, default to 0
EAL: probe driver: 8086:10d3 net_e1000_em
EAL: PCI device 0000:0b:00.0 on NUMA socket -1
EAL: Invalid NUMA socket, default to 0
EAL: probe driver: 8086:10d3 net_e1000_em
PMD: Initializing pmd_pcap for net_pcap_rx_0
PMD: Creating pcap-backed ethdev on numa socket 4294967295
Port 1 MAC: 00 00 00 01 02 03
^C
Signal 2 received, preparing to exit...
##### PDUMP DEBUG STATS #####
-packets dequeued: 10
-packets transmitted to vdev: 10
-packets freed: 0
此处收到的10个数据包是在另外的主机A上使用pktgen,设定发送数据包数量为10,发过来的。
3. 使用wireshark打开pcap文件
//wireshark安装
sudo apt install wireshark
//查看现有用户组
cat /etc/group |grep wireshark
//将当前用户添加进wireshark用户组
usermod -a -G wireshark $USER
//打开
wireshark
结果显示为:
版权声明:本文为Sword1996原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。