参考:

Github BESS

How to install Bekeley Extension Software Switch(BESS)?

Introduction

BESS is a modular framework for software switches. BESS itself is not a virtual switch; it is neither pre-configured nor hardcoded to provide particular functionality, such as Ethernet bridging or OpenFlow-driven switching. Instead, you (or an external controller) can configure your own packet processing datapath by composing small "modules". While the basic concept is similar to Click, BESS does not sacrifice performance for programmability.

BESS是一个用于软件交换机的模块化框架, 本身并不是一个虚拟交换机; 它既不用预先配置也不用使用写死的方法来提供特殊功能, 比如以太网桥或OpenFlow驱动的交换. 相反, 你(或者一台额外的控制器)能够通过将小型模块进行组合来配置你自己的数据报处理datapath. BESS的思想类似于Click, 但它不需要为可编程性消耗性能.

Installation

官方的文档给出了安装BESS的方法, 然而会遇到许多问题.

1.Clone BESS:

$ git clone https://github.com/NetSys/bess.git
$ cd bess/

2.安装依赖:

$ sudo apt-get install -y software-properties-common
$ sudo apt-add-repository -y ppa:ansible/ansible
$ sudo apt-get update
$ sudo apt-get install -y ansible
$ ansible-playbook -K -t package -i localhost, -c local env/bess.yml
$ sudo reboot

这一步容易出现ansible安装clang-5.0的错误, 一种解决方法是讲package.yml中安装clang-5.0的语句注释掉, 并人为安装clang-5.0. 详情见: issues#734.

3.设置大页:

# For single-node systems
$ sudo sysctl vm.nr_hugepages=1024 # For multi-node (NUMA) systems
$ echo 1024 | sudo tee /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages
$ echo 1024 | sudo tee /sys/devices/system/node/node1/hugepages/hugepages-2048kB/nr_hugepages

4.安装BESS:

$ cd bess/
$ ./build.py

此步会出现DPDK驱动的问题, 原因是BESS是基于老版本的DPDK的, 由于代码本身用于安全检测, 因此这里选择注释忽略.

此外在packet.cc中也在一个宏的位置报错, 这里也选择暴力注释.

最后把Makefile里面的-Werror参数注释掉, 令Build成功了, 当然这只是权益之计.

可能需要安装MLNX_OFED驱动, 方法见: HowTo Install MLNX_OFED Driver. 问题详情见: issues#735.

5.运行BESS:

$ ./bessctl/bessctl

<disconnected> $ daemon start

如果出现:

E1129 09:16:44.214349  7425 bessd.cc:358] Failed to launch a daemon process
*** Error: Cannot start BESS daemon

重新设置大页即可正常启动.

2017.11

How to install Bekeley Extension Software Switch(BESS)?的更多相关文章

  1. PISCES: A Programmable, Protocol-Independent Software Switch

    Name of article:PISCES: A Programmable, Protocol-Independent Software Switch Origin of the article:S ...

  2. 2018 How to register and install LAUNCH ICARSCAN software ?

    2018 New Version ICARSCAN is available now! Here’s the instruction on how to install ICARSCAN softwa ...

  3. [label][phalcon] How to install Phalcon extension for Zend Server 6.3.0 for windows 7 64bit

    At first , you should download Phalcon DLL file. You can download from this link under. http://stati ...

  4. php7 install memcache extension

    #download source code package from git $ git clone https://github.com/websupport-sk/pecl-memcache.gi ...

  5. php7 install memcached extension

    #download source code package from git $ git clone https://github.com/php-memcached-dev/php-memcache ...

  6. Install Package and Software

    svn http://tortoisesvn.sourceforge.net/ git https://download.tortoisegit.org/ http://git-for-windows ...

  7. How To Download Youtube Videos Without any software

    https://www.quora.com/What-is-the-best-way-to-download-YouTube-videos-for-free There are various met ...

  8. Install Visual Studio Tools for Apache Cordova

    Install Visual Studio Tools for Apache Cordova Visual Studio 2013   This article refers to the Visua ...

  9. 十几个remote control software

    5 alternatives to LogMeIn Free for remote PC access VNC VNC, or Virtual Network Computing, isn’t its ...

随机推荐

  1. neuFlow&CNP-卷积计算加速器&神经网络加速芯片生态系统

    上周看到韩松毕业论文,扯出神经网络加速器EIE,刚好这周调研了一下neuFlow,扯出09年的一篇做卷积加速的文章,大牛Lecun Yan的学生做的,一晃眼,快十年了.也记录之. 这一套还没研究透,又 ...

  2. django中orm使用的注意事项

    必备小知识点 <1> all(): 查询所有结果 <2> get(**kwargs): 返回与所给筛选条件相匹配的对象,返回结果有且只有一个,如果符合筛选条件的对象超过一个或者 ...

  3. 谷歌重磅开源强化学习框架Dopamine吊打OpenAI

    谷歌重磅开源强化学习框架Dopamine吊打OpenAI 近日OpenAI在Dota 2上的表现,让强化学习又火了一把,但是 OpenAI 的强化学习训练环境 OpenAI Gym 却屡遭抱怨,比如不 ...

  4. GUI颜色、字体设置对话框

    %颜色设置对话框 uisetcolor %c 红色 c=uisetcolor %默认规定颜色 c=uisetcolor([ ]); %设置曲线颜色 h = plot([:]); c = uisetco ...

  5. bzoj3196 二逼平衡树

    题目链接 平衡树系列最后一题 坑啊 10s时间限制跑了9764ms...还是要学一学bit套主席树啦... 经典的线段树套treap...至于第一发为什么要TLE(我不会告诉你treap插入的时候忘了 ...

  6. [转载]tnsnames.ora监听配置文件详解

    监听配置文件             为了使得外部进程 如 CAMS后台程序 能够访问 Oracle 数据库 必须配             置 Oracle 网络服务器环境 配置 Oracle 网络 ...

  7. MySQL底层索引剖析

    1:Mysql索引是什么 mysql索引: 是一种帮助mysql高效的获取数据的数据结构,这些数据结构以某种方式引用数据,这种结构就是索引.可简单理解为排好序的快速查找数据结构.如果要查“mysql” ...

  8. Sqring核心概念

    Spring  是大规模企业级框架,用户数量多,数据规模大,功能众多,业务复杂, 性能和安全要求高   灵活多变 Spring框架是轻量级的框架,javaEE的春天,当前主流的框架,一站式的企业应用开 ...

  9. mxnet 查看 Sym shape

    import mxnet as mximport numpy as npimport randomimport mxnet as mximport sysdata_shape = {'data':(6 ...

  10. socket - option编程:SO_REUSEADDR

    网友vmstat多次提出了这个问题:SO_REUSEADDR有什么用处和怎么使用.而且很多网友在编写网络程序时也会遇到这个问题.所以特意写了这么一篇文章,希望能够解答一些人的疑难. 其实这个问题在Ri ...