DPDK中文 DPDK工具 pdump

2021-07-27 15:40:33 字數 1473 閱讀 5447

翻譯自:

注意:pdump只能是主dpdk程式準備ok了;

pdump依賴基於pmd的libpcap。這個選項預設在編譯的配置檔案是disable的;由於libpcap必須實現被安裝在板子上,並且開發檔案libpcap-dev這種也要安裝;同時把build的配置檔案。config修改

config_rte_librte_pmd_pcap=y 

執行程式,下面是程式的執行引數

--pdump '(port=| device_id=),

(queue=),

(rx-dev=|

tx-dev=),

[ring-size=],

[mbuf-size=],

[total-num-mbufs=]'

[--server-socket-path=]

[--client-socket-path=]

注意:--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

使用例子: $

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

dpdk中文 mbuf的基本操作

mbuf是報文中的描素的結構體,是整個 過程中最核心的資料結構之一。主要針對於mbuf的常用api與基本原理做乙個簡單的介紹 首先我們看一下rte mbuf的資料結構的定義 先主要說明幾個跟資料有關的變數 struct rte mbuf 既然叫mbuf,其實就是一種buf管理的結構體 如上圖所示 m...

dpdk儲存系統

普通的南北橋系統裡面主要是通過北橋進行資料的交換,這樣系統的瓶頸在北橋中,numa 非一致性記憶體架構non uniform memory architecture 系統可以解決這樣的系統瓶頸。在這種架構下,在乙個配有四核的機器中,不需要乙個複雜的北橋就能將記憶體頻寬增加到之前的四倍,這樣有乙個問題...

dpdk環境搭建

步驟一 yum update yum install libpcap devel kernel 安裝程式依賴 config rte librte vhost numa y改為 config rte librte vhost numa n config rte kni kmod y改為 config ...