DPDK中文-DPDK工具(pdump)

翻譯自: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原創
發佈了146 篇原創文章 · 獲贊 371 · 訪問量 43萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章