日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

如何在DPDK盒子上使用TRex

發(fā)布時(shí)間:2023/12/16 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何在DPDK盒子上使用TRex 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

使用步驟

1. 接線

使用HDMI線連接盒子與顯示器,將其中一個(gè)網(wǎng)絡(luò)端口(下文以ETH0為例)接入有線網(wǎng),并將電源插入電源接口,將USB外接鍵盤插入盒子的USB接口。DPDK盒子及接口示意圖如圖1所示。

2. 啟動(dòng)登錄

接通電源后,待盒子里的系統(tǒng)啟動(dòng)完畢,輸入用戶名和密碼:

用戶名: test 密碼:tester

3. 登陸后獲取根用戶權(quán)限: sudo bash,這里會(huì)提示需要輸入密碼,密碼同上:tester

4. 安裝igb網(wǎng)卡驅(qū)動(dòng)

a. 使用其他電腦設(shè)備將igb 驅(qū)動(dòng)下載保存至USB存儲(chǔ)設(shè)備,并將其拷貝至盒子[1]。

進(jìn)入頁面后下載對(duì)應(yīng)版本的壓縮包文件。

b. 安裝:

tar –xvzf igb-xxxx.tar.gz cd /igb-xxxx/src make install

5. 將接入有線網(wǎng)的端口綁到igb驅(qū)動(dòng)上

a. 查看端口狀態(tài)信息,如圖2所示:

cd dpdk ./usertools/dpdk-devbind.py -s

圖2 端口狀態(tài)信息(綁定igb_uio驅(qū)動(dòng))

b. 綁定igb驅(qū)動(dòng):

./usertools/dpdk-devbind.py -b igb 02:00.0

從圖3可以看到,02:00.0口被綁到了igb上,接口名為eth0

圖3 端口狀態(tài)信息(綁定igb驅(qū)動(dòng))

6.為eth0設(shè)置動(dòng)態(tài)分配IP地址:

dhclient eth0

7.設(shè)置網(wǎng)絡(luò)代理

export http_proxy=xxx export https_proxy=xxx

8.從Github上下載 TRex

git clone https : //github . com/cisco-system-traffic-generator/trex-core . git

9.安裝TRex必需的庫:

yum install zlib-devel

(如果提示由于網(wǎng)絡(luò)問題yum install 失敗, 編輯/etc/yum.conf, 加上一行設(shè)置代理: proxy= xxx)

10.不論實(shí)際使用1個(gè)還是多個(gè)端口,TRex需要至少兩個(gè)端口,因此需要將綁到igb驅(qū)動(dòng)的eth0綁回到原來的igb_uio(內(nèi)核空間的驅(qū)動(dòng))上:

cd dpdk ./usertools/dpdk-devbind.py -b igb_uio 02:00.0

11.編輯TRex的配置文件:

vi /etc/trex_cfg.yaml(注意yaml文件的縮進(jìn)格式)

在/trex-core/scripts/cfg下有一些配置文件示例可供參考。

也可使用TRex中的腳本dpdk_setup_ports.py來創(chuàng)建一個(gè)簡單的文件,內(nèi)容如圖4所示。

圖4 配置文件示例

12.配置并編譯TRex

cd /trex-core/linux_dpdk ./b configure ./b build

13.啟動(dòng) TRex 服務(wù)器端,結(jié)果如圖5所示:

cd /trex-core/scripts ./t-rex-64 -i -c 2(盒子的兩個(gè)端口都需要有連接,不然會(huì)報(bào)錯(cuò))

圖5 啟動(dòng)TRex服務(wù)器端結(jié)果示意圖

14.啟動(dòng)TRex客戶端

cd /trex-core/scripts ./trex-console

(由于當(dāng)前終端被服務(wù)器端占有,切換新的終端用來啟動(dòng)TRex客戶端:CTRL+ALT+F2,CTRL+ALT+F1可切換回TRex服務(wù)器端)

  • trex> help(幫助命令,顯示所支持的命令,如:發(fā)包命令start,停止發(fā)包stop,圖形化顯示命令tui)
  • trex> start -h (對(duì)于每條命令,加上-h或--help可以顯示具體的幫助信息)

TRex客戶端發(fā)包示例命令:

trex> start -f stl/bench.py -t size=64,vm=cached --port 0 -m 100%

(如果將ETH0和ETH1用網(wǎng)線互連,則該命令可實(shí)現(xiàn)從port 0發(fā)送64 bytes長度的數(shù)據(jù)包到port 1,結(jié)果如圖6和圖7所示。)

其中,-f表示加載的發(fā)包腳本文件,這里指定了文件stl/bench.py;

-t表示發(fā)包腳本bench.py可傳遞的參數(shù),這里指定了數(shù)據(jù)包長度size=64,Virtual OS模式vm=cached;

-p或 --port表示發(fā)包端口,這里指定從0號(hào)端口發(fā)包;

-m 或 --multiplier表示發(fā)包速率,這里指定用線速的100%發(fā)包。

圖6 TRex啟動(dòng)客戶端后客戶端結(jié)果示意圖

圖7 TRex啟動(dòng)客戶端后服務(wù)器端結(jié)果示意圖

15.編輯自己的發(fā)包腳本

步驟14指定發(fā)包腳本為bench.py,而用戶可以參照示例根據(jù)需求編輯自己的發(fā)包腳本。scripts/stl目錄下包含多種發(fā)包腳本示例

接下來,以stl/udp_1pkt_simple.py為例稍作介紹。

其中register()和get_streams()兩個(gè)函數(shù)是必須定義的。

STLPktBuilder()是構(gòu)造數(shù)據(jù)包的函數(shù),會(huì)構(gòu)造出pkt數(shù)據(jù)包,并以mode模式進(jìn)行發(fā)包。Trex采用scapy構(gòu)造數(shù)據(jù)包,因此數(shù)據(jù)包pkt的構(gòu)造與scapy一致,通過layer的疊加從而達(dá)到構(gòu)造數(shù)據(jù)包的目的。

STLTXCont()是連續(xù)發(fā)包模式,可攜帶參數(shù)指定發(fā)包速率,默認(rèn)是10 pps。此外,還有STLTXSingleBurst()和STLTXMultiBurst()兩種模式。

注::

[1] 從外接USB設(shè)備拷貝文件:

  • 插入U(xiǎn)SB設(shè)備后,可以使用 dmesg 命令找到設(shè)備的路徑。
  • 以/dev/sdb1 為例,掛載該設(shè)備: mount /dev/sdb1 /mnt
  • 加載后用常規(guī)的命令將文件拷貝至任意路徑 (cp, mv等)
  • 拷貝完畢后,取消USB設(shè)備掛載并拔除: umount /mnt

[2] TRex 官方手冊(cè):?https : //trex-tgn . cisco . com/trex/doc/trex_manual . html#

[3] 如何解決 hugepage相關(guān)報(bào)錯(cuò):

在TRex的dpdk-setup_ports.py 腳本中,有hugepage配置函數(shù)config_hugepages()

由于盒子本身的空間不夠會(huì)導(dǎo)致hugepage配置失敗,該函數(shù)會(huì)報(bào)錯(cuò)。 可以將 “wanted_count = 2048” 中的數(shù)字改小, 如:“wanted_count = 512”, 從而使hugepage配置成功。

原文鏈接:https://blog.csdn.net/weixin_37097605/article/details/101514437

更多DPDK學(xué)習(xí)資料有需要的可以自行添加進(jìn)入學(xué)習(xí)交流君 羊?793599096?免費(fèi)獲取,或自行報(bào)名學(xué)習(xí),免費(fèi)訂閱,永久學(xué)習(xí),關(guān)注我持續(xù)更新哦!!!

學(xué)習(xí)地址:http://ke.qq.com/course/5066203?flowToken=1043717

總結(jié)

以上是生活随笔為你收集整理的如何在DPDK盒子上使用TRex的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。