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
結果は次のように表示されます。