参考:
基于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