BESS (Berkeley Extensible Software Switch)
BESS (formerly known as SoftNIC) 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 was created by Sangjin Han and 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:
- BESS Overview
- Build and Install BESS
- Write a BESS Configuration Script
- Connect BESS to a Network Interface, VM, or Container
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/bessctl