This is an implementation of the BEBA Software Switch based on the CPqD OpenFlow 1.3 softswitch.
BEBA is a European H2020 project on SDN data plane programmability. Our goal is to devise a data plane abstraction and prototype implementations for future-proof network devices capable to be repurposed with middlebox-type functions well beyond static packet forwarding, with a focus on stateful processing and packet generation.
A controller for this switch can be found at https://github.com/beba-eu/beba-ctrl
The BEBA Switch is an OpenFlow 1.3 switch extended with support for:
- Stateful packet forwarding based on the OpenState API
- Packet generation based on the InSP API
Such extensions to OpenFlow 1.3 are implemented using the OpenFlow Experimenter framework. The API to control them is defined in oflib-exp/ofl-exp-beba.h.
Moreover, BEBA targets software accelleration. We improve the CPqD softswitch troughput while retaining the simplicity of the original CPqD code base.
Similarly to the CPqD softswitch, the following components are available in this package:
ofdatapath
: the switch implementationofprotocol
: secure channel for connecting the switch to the controlleroflib
: a library for converting to/from 1.3 wire formatdpctl
: a tool for configuring the switch from the console
For more information on how to use these components please refer to the original CPqD's documentation
Run the following commands in the beba-switch
directory to build and install everything:
$ mkdir build
$ cd build
$ cmake .. -DCMAKE_BUILD_TYPE=Release
$ make
$ sudo make install
Please refer to the original CPqD's softswitch README
Please submit your bug reports, fixes and suggestions as pull requests on GitHub, or by contacting us directly.
BEBA Software Switch is released under the BSD license (BSD-like for code from the original Stanford switch).