pktgen使用說明(轉發)


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM