基于OpenNetVM配置环境的发包实践

时间:2023-12-05 14:08:50

参考:

openNetVM

基于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