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.
Detailed documentation will be available soon.
Installation
$ git clone https://github.com/NetSys/bess.git
$ bess/build.py
Add -b develop
when cloning if you want the most recent, but less stable version.
BESS runs on top of DPDK. The installation script will automatically download and build DPDK 2.0 in deps/dpdk
directory. Like any other DPDK applications, you need to set up hugepages. If you want to use physical NIC ports, you also need to bind ports to DPDK.
Running BESS
Launch the BESS daemon as root, then you can control the dataplane with the controller, bessctl:
$ sudo bess/bin/bessd
$ bess/bin/bessctl.py
Type "help" for more information.
localhost:10514 $ _