您的位置:首页 > 其它

DPDK中文-DPDK工具(pdump)

2017-02-28 23:21 1046 查看
翻译自: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:ring的大小。创建内部使用的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原创
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  dpdk中文