參考:
基於OpenNetVM配置環境的發包實踐
注意:本文並未對OpenNetVM的服務鏈進行測試,而是在借助OpenNetVM腳本環境的情況下,分別對Pktgen和MoonGen進行運行測試。
OpenNetVM Installation
我們提供在OpenP4SC的文檔中提供了修改過的OpenNetVM安裝文檔:opennetvm-installation。
您也可以參考原教程:opennetvm-installation。
安裝OpenNetVM之后,會安裝好DPDK的配置環境。
環境配置
環境配置包括:
- 初始化DPDK環境;
- 設置hugepage;
- 10G NIC綁定。
初始化DPDK環境
進入openNetVM/scripts/:
$ ./setup_environment.sh
也可以在此步進行10G NIC網口的綁定。
設置hugepage
進入openNetVM/dpdk/tools:
$ ./dpdk-setup.sh
選擇選項20,配置hugepage的大小(如1024),再選擇選項33退出。
10G NIC綁定
進入openNetVM/dpdk/tools:
$ ./dpdk-devbind.py --status
查看10G網口PCIe地址,將其綁定到DPDK:
$ ./dpdk-devbind.py --bind=igb_uio [dev_address]
測試物理環境
使用一根網線將dpdk0和dpdk1兩個已經綁定到DPDK的10G網口直連:
+---+
| |
| | (dpdk0) ---+
| h | |
| | (dpdk1) ---+
| |
+---+
運行Pktgen
安裝環境:
$ cd openNetVM/
$ git submodule init && git submodule update
$ sudo apt-get install libpcap-dev
$ cd tools/Pktgen/pktgen-dpdk/
$ make
測試命令:
$ sudo ./app/app/x86_64-native-linuxapp-gcc/pktgen -c 3 -n 1
運行MoonGen
安裝環境:
首先保證gcc和g++的版本號高於4.7,如果沒有的話請參考:
$ git clone https://github.com/emmericp/MoonGen
$ cd MoonGen
$ sudo apt-get install libnuma-dev
$ sudo git submodule update --init
$ sudo ./build.sh
$ sudo ./setup-hugetlbfs.sh
測試之前,確保腳本中的IP地址/MAC地址、本機端口的IP地址配置正確。
測試命令:
$ sudo ./build/MoonGen ./examples/quality-of-service-test.lua 0 1
2017.10
