DPDK--pdumpテストの例



Dpdk Pdump Test Example



まず、インストールの準備

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を実行します

実行するには、testpmdなどのメインプロセスにPdumpをアタッチする必要があります
最初に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@xxxxx:/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個のパケットはpktgenを使用して別のホストAで使用され、送信パケット数は10個に設定されて送信されます。

3.wiresharkでpcapファイルを開きます
//wireshark installation sudo apt install wireshark / / View existing user groups cat /etc/group |grep wireshark / / Add the current user to the wireshark user group usermod -a -G wireshark $USER //turn on wireshark

結果は次のように表示されます。
画像