参考:

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

基于OpenNetVM配置环境的发包实践的更多相关文章

  1. Hadoop伪分布配置与基于Eclipse开发环境搭建

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  2. Innovus教程 - Flow系列 - MMMC分析环境的配置概述(理论+实践+命令)

    本文转自:自己的微信公众号<集成电路设计及EDA教程> <Innovus教程 - Flow系列 - MMMC分析环境的配置概述(理论+实践+命令)>   轻轻走过,悄悄看过,无 ...

  3. 【SpringBoot】(1)-- 基于eclipse配置springboot开发环境

    基于eclipse配置springboot开发环境 1. 下载并配置eclipse ① 前往eclipse官网 https://www.eclipse.org/downloads/packages/ ...

  4. JDK 安装及配置环境变量(基于 Linux)

    1.先确定虚拟机系统是 32 位还是 64 位 #Linux 指令下输入 getconf LONG_BIT 2.建目录 JDK mkdir JDK 3.通过 rz 导入压缩包 jdk-8u144-li ...

  5. Sping MVC不使用任何注解处理(jQuery)Ajax请求(基于XML配置)

    1. Spring Spring框架是一个轻量级的解决方案,是一个潜在的一站式商店,用于构建企业就绪的应用程序.Spring框架是一个Java平台,为开发Java应用程序提供全面的基础架构支持.Spr ...

  6. Android 2D游戏引擎AndEngine配置环境

    Android 2D游戏引擎AndEngine配置环境 1.2  配置环境 在任何编程中,都需要一些软件或者硬件的支持.否则,没有硬件软件是不可能存在的,而想要编写对应语言的的程序,这需要对应语言库和 ...

  7. 基于 koajs 的前后端分离实践

    一.什么是前后端分离? 前后端分离的概念和优势在这里不再赘述,有兴趣的同学可以看各个前辈们一系列总结和讨论: 系列文章:前后端分离的思考与实践(1-6) slider: 淘宝前后端分离实践 知乎提问: ...

  8. 《Flask Web开发——基于Python的Web应用开发实践》一字一句上机实践(上)

    目录 前言 第1章 安装 第2章 程序的基本结构 第3章 模板 第4章 Web表单 第5章 数据库 第6章 电子邮件 第7章 大型程序的结构   前言 学习Python也有一个半月时间了,学到现在感觉 ...

  9. 基于 Docker 的微服务架构实践

    本文来自作者 未闻 在 GitChat 分享的{基于 Docker 的微服务架构实践} 前言 基于 Docker 的容器技术是在2015年的时候开始接触的,两年多的时间,作为一名 Docker 的 D ...

随机推荐

  1. Java Socket NIO入门

    Java Socket.SocketServer的读写.连接事件监听,都是阻塞式的.Java提供了另外一种非阻塞式读写.连接事件监听方式——NIO.本文简单的介绍一个NIO Socket入门例子,原理 ...

  2. JAVA基础2---深度解析A++和++A的区别

    我们都知道JAVA中A++和++A在用法上的区别,都是自增,A++是先取值再自增,++A是先自增再取值,那么为什么会是这样的呢? 1.关于A++和++A的区别,下面的来看个例子: public cla ...

  3. 收音机FM和AM的区别

    1.频率区别 FM = Frequency Modulation 调频,微波:微波传输,信号质量高,传输成本低,发射功率小,覆盖范围小,受地理因素影响较大,一般作为城市广播的首选.比如你的家乡城市台, ...

  4. 系统批量运维管理器Fabric详解

    系统批量运维管理器Fabric详解 Fabrici 是基于python现实的SSH命令行工具,简化了SSH的应用程序部署及系统管理任务,它提供了系统基础的操作组件,可以实现本地或远程shell命令,包 ...

  5. vue -resource 文件提交提示process,或者拦截处理

    this.$http.post('url',fd||data,{emulateJSON:true}).then(fn(res){},fn(res){}) process成功案例 _self.$http ...

  6. getElementsByClassName方法的封装

    Element.prototype.getElementsByClassName = function(searchClass,node,tag){ if(document.getElementsBy ...

  7. 2017_CET4_CET6_正规段子——正规!正规!解析!段子手勿入!

    噫,2017年的四六级结束了,布吉岛宝宝们考得肿么样,反正本宝宝六级听力刚开始一阵挠头…… 天,神一般的FM信号,吃吃吃,擦擦擦,吃擦吃擦,吱吱吱…… 考完了就真完了,走出考场的那一刻,突然想起灰太狼 ...

  8. jq如何获取服务器的时间

    $.ajax({type:"OPTIONS",url:"/",complete:function(x){alert(x.getResponseHeader(&q ...

  9. MyEclipse新建Server项目

  10. SpringAOP单元测试时找不到文件。

    ...applicationContext.xml] cannot be opened because it does not exist. 刚才在进行单元测试时,报这个错,我把它放到了src的某个包 ...