Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/NetSys/bess
BESS: Berkeley Extensible Software Switch
https://github.com/NetSys/bess
Last synced: 3 months ago
JSON representation
BESS: Berkeley Extensible Software Switch
- Host: GitHub
- URL: https://github.com/NetSys/bess
- Owner: NetSys
- License: other
- Created: 2015-08-24T21:51:31.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2022-12-26T20:17:29.000Z (almost 2 years ago)
- Last Synced: 2024-05-16T13:24:01.352Z (6 months ago)
- Language: C++
- Homepage:
- Size: 7.52 MB
- Stars: 304
- Watchers: 54
- Forks: 174
- Open Issues: 88
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: COPYING
Awesome Lists containing this project
- awesome-sdn - BESS - Berkeley Extensible Software Switch, BESS is a modular framework for software switches. (Uncategorized / Uncategorized)
README
[![Build Status](https://travis-ci.org/NetSys/bess.svg?branch=master)](https://travis-ci.org/NetSys/bess)
[![codecov](https://codecov.io/gh/NetSys/bess/graph/badge.svg)](https://codecov.io/gh/NetSys/bess)## BESS (Berkeley Extensible Software Switch)
BESS (formerly known as [SoftNIC](https://www2.eecs.berkeley.edu/Pubs/TechRpts/2015/EECS-2015-155.html)) 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](http://read.cs.ucla.edu/click/click), BESS does not sacrifice performance for programmability.
BESS was created by Sangjin Han and is developed at the University of California, Berkeley and at Nefeli Networks. [Contributors to BESS](https://github.com/NetSys/bess/blob/master/CONTRIBUTING.md) 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](https://github.com/NetSys/bess/wiki/Hooking-up-BESS-Ports)To install BESS on Linux quickly, you can download the binary from [Release](https://github.com/NetSys/bess/releases/latest). Please refer to [GCC x86 Options](https://gcc.gnu.org/onlinedocs/gcc/x86-Options.html) to determine which tarball to use. Suppose `bess-core2-linux.tar.gz` is downloaded:
sudo apt-get install -y python python-pip libgraph-easy-perl
pip install --user protobuf grpcio scapy
sudo sysctl vm.nr_hugepages=1024 # For single NUMA node systems
tar -xf bess-core2-linux.tar.gz
cd bess/
make -C core/kmod # Build the kernel module (optional)
bessctl/bessctlDocumentation can be found [here](https://github.com/NetSys/bess/wiki/). Please consider [contributing](https://github.com/NetSys/bess/wiki/How-to-Contribute) to the project!