Pktgen-DPDK使用說明
安裝配置
獲取源碼
# cd<InstallDir>
# exporthttps_proxy=https://proxy.austin.hp.com:8080
# gitclone https://github.com/pktgen/Pktgen-DPDK.git
Ubuntu14.04,pktgen2.7.7 ,DPDK1.7.1
注:Pktgen-DPDK/dpdk/example目錄中包含有pktgen源碼
編譯安裝
Build DPDK
1. 設置運行時環境
# sudo apt-get install libpcap-dev
# export RTE_SDK=<installDir>/Pktgen-DPDK/dpdk
# export RTE_TARGET=x86_64-pktgen-linuxapp-gcc
2. 編譯安裝
# cd $RTE_SDK
# ./tools/setup.sh
選擇安裝x86_64-pktgen-linuxapp-gcc,然后配置hugepagemappings for non-NUMA systems。安裝成功后在dpdk目錄下會出現x86_64-pktgen-linuxapp-gcc文件夾。
Build pktgen
1. 編譯安裝
構建pktgen時確保RTE_SDK、RTE_TARGET兩個環境變量的值(同dpdk配置)存在有效。
# cd examples/pktgen
# make
2. 配置腳本
在pktgen目錄下,setup.sh和doit.sh兩個腳本文件需要根據自身系統來配置。
# lspci | grep Ethernet //
查看以太網端口信息
# name=`uname -n` //
獲取主機名
setup.sh腳本主要用來a.檢查環境變量和hugepages的設置; b.加載uio、igb_uio和rte_kni三個模塊;c.綁定綁定網卡。在環境變量設置正確的情況下b會正確執行。需要手動配置的是c,綁定網卡。如node3上的配置:
name=`uname -n`
if [ $name == "node3" ]; then
$sdk/tools/dpdk_nic_bind.py -b igb_uio 01:00.0 06:00.0
fi
doit.sh腳本是設置pktgen運行參數並啟動
name=`uname -n`
if [ $name == "node3" ]; then
./app/build/pktgen -c f -n 3 --proc-type auto --socket-mem 256,256 --file-prefix pg -b 0000:00:19.0 -- -T -P -m "[1:3].0, [2:4].1" -f test/set_seq.lua
fi
注:
-c 是指選擇的core的掩碼,f等於1111也就是選擇 1 、 2 、3 core;
--proc-type 選擇的auto ,如果是當前系統第一執行的dpdk相關的程序,選擇primary模式,如果是第二是secondary 模式;
--file-prefix pg 設置/mnt/huge/內存分配模塊的文件名前綴;
-p 0x14 0x14等於 00010100 , 選擇你當前系統的其中2塊intel相關網卡端口;
-P 使能網絡混裝模式,
-m "2.0, 3.1" 是指一個矩陣模型,2.0是指,在2號lcore上綁定的端口0 , 3.1是指在lcore3上綁定端口1
-f test/set_seq.lua 導入pktgen的執行配置文件;在執行pktgen時,利用配置產生數據包;
安裝指導:https://github.com/Pktgen/Pktgen-DPDK/
測試舉例
+-----------+ +-----------+
|node0 | | node3 |
| eth1 +--------+ eth2 |
| | | |
| | | |
+-----------+ +-----------+
Eth1與Eth2網線直連,node0和node3編譯安裝dpdk和pktgen。在dpdk/example/pktgen/目錄下先后執行setup.sh和doIt.sh.
Pktgen參數選擇及運行時命令文檔:http://pktgen.readthedocs.org/en/latest/commands.html
執行./setup.sh輸出如下:
執行./doit.sh輸出如下
在node3一端執行
Pktgen>start 0 //
端口
0
開始發包
通過當前窗口可以監控發包狀態
Node0一端可以查看端口2的收包狀態
————————————————
版權聲明:本文為CSDN博主「jhxifeng」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/jhxifeng/article/details/45101805