DPDK中文-DPDK工具(pdump)

  • Post author:
  • Post category:其他


翻译自:http://dpdk.org/doc/guides/tools/pdump.html
pdump故名思意:就是packet dump的意思。是DPDK提供给我们意secondary方式运行程序捕获dpdkport报文的app;一句话就是dpdk抓包的工具;
注意:
pdump只能是主dpdk程序准备OK了;
pdump依赖基于PMD的libpcap。这个选项默认在编译的配置文件是disable的;由于libpcap必须实现被安装在板子上,并且开发文件libpcap-dev这种也要安装;同时把build的配置文件。config修改

CONFIG_RTE_LIBRTE_PMD_PCAP=y
运行程序,下面是程序的运行参数

./build/app/dpdk-pdump —




–pdump ‘(port=<port id> | device_id=<pci id or vdev name>),




(queue=<queue_id>),




(rx-dev=<iface or pcap file> |




tx-dev=<iface or pcap file>),




[ring-size=<ring size>],




[mbuf-size=<mbuf data size>],




[total-num-mbufs=<number of mbufs>]’




[–server-socket-path=<server socket dir>]




[–client-socket-path=<client socket dir>]

注意:

–pdump是必须强制指定的,其子参数将在下面部分描素

()是强制指定的

【】是可选的

多个–pdump可以用于捕获不同的接口和队列

–server-socket-path

这个选项是可选的。用于指定server socket的目录。如果这个参数没有被指定,root用户就默认是:

/var/run/.dpdk/

非root用户就是



~/.dpdk/

–client-socket-path 这个也是可选的。指的是client 的socket目录。

如果这个参数没有被指定,root用户就默认是:

/var/run/.dpdk/

非root用户就是



~/.dpdk/
–pdump的子参数

port

:需要被抓包的以太网的portid;

device_id

:需要被抓包的以太网的pci地址或者名字;
注意:因为一个bug。现在的pdump并不能抓虚拟设备的报文;

queue

:以太网设备的queue id;如果queue是*则抓所有的队列;(多队列的情况)

rx-dev

:应该是一个pcap文件名或者linux 的接口

tx-dev

:应该是一个pcap的文件名或者是linux的接口
注意:
rx-dev只是入口方向的
tx-dev只是出口方向的
如果两个方向都分别要。tx-dev与rx-dev应该被同时制定两个不同的文件或者接口
两个方向都同时要,tx-dev与rx-dev应该指定相同的接口或者文件

ring-size:r

ing的大小。创建内部使用的ring;这个ring讲用于主程序向抓包程序入队了用的。默认是16384。

mbuf-sizze:

mbuf data的大小。用于mempool的创建。用于入队列的mbuf用的。主要用于主程序向抓包程序传数据用的。默认是2176;应该与主server的mbuf一样

total-num-mbufs:

这个指创建mbug的个数。默认值是65535

使用例子:

$


sudo ./build/app/dpdk-pdump — –pdump


‘port=0,queue=*,rx-dev=/tmp/rx.pcap’

转载请注明bestboyxie原创



版权声明:本文为bestboyxie原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。