Skip to content

rlaprade/bess

 
 

Repository files navigation

Build Status codecov

BESS (Berkeley Extensible Software Switch)

BESS is a modular framework for software switches. BESS itself is not a virtual switch; it is neither pre-configured or hardcoded to perform particular functionality, such as Ethernet bridging or OpenFlow 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 is developed at the University of California, Berkeley and at Nefeli Networks. Contributors to BESS include students, researchers, and developers who care about networking with high performance and high customizability. BESS is open-source under a BSD license.

If you are new to BESS, we recommend you start here:

  1. [BESS Overview] (https://github.com/NetSys/bess/wiki/BESS-Overview)
  2. [Build and Install BESS] (https://github.com/NetSys/bess/wiki/Build-and-Install-BESS)
  3. [Write a BESS Configuration Script] (https://github.com/NetSys/bess/wiki/Writing-a-BESS-Configuration-Script)
  4. Connect BESS to a Network Interface, VM, or Container

To configure and install BESS on Linux quickly, you can run the provided ansible script (vagrant/bess.yml):

git clone https://github.com/NetSys/bess.git
cd bess/
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 vagrant/bess.yml
sudo reboot

About

BESS: Berkeley Extensible Software Switch

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 65.4%
  • C 17.0%
  • Python 13.4%
  • Protocol Buffer 2.8%
  • Makefile 1.0%
  • Shell 0.2%
  • Ruby 0.2%