A modular, high-performance framework for building custom software switches by composing packet processing modules.
BESS (Berkeley Extensible Software Switch) is a modular framework for building custom software switches. It allows users to configure their own packet processing datapaths by composing small modules, rather than providing a pre-configured virtual switch. It solves the need for high-performance, programmable networking solutions in research, NFV, and specialized applications.
Network researchers, developers building custom network functions, and anyone needing a programmable software switch with high performance, such as in academic projects or NFV deployments.
Developers choose BESS because it offers a unique balance of modular programmability and high performance, avoiding the speed sacrifices of earlier frameworks like Click, while providing full control over packet processing logic.
BESS: Berkeley Extensible Software Switch
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Enables building custom packet processing pipelines by composing small, reusable modules, allowing for tailored networking solutions as highlighted in the README.
Designed to avoid sacrificing speed for programmability, unlike earlier frameworks like Click, making it suitable for performance-critical applications in research and NFV.
Not hardcoded for specific functions; supports user-defined configurations, providing full control over datapath logic without pre-set limitations.
Can be configured by external controllers for dynamic network management, facilitating integration with larger systems as mentioned in the key features.
Installation requires building optional kernel modules, system tuning like hugepages, and dependency installation, which can be daunting and time-consuming.
Requires writing configuration scripts and understanding modular architecture, with no pre-configured options for common tasks, limiting accessibility.
Primarily developed by academics and researchers, which might result in less emphasis on commercial support, documentation, and stability for enterprise use.
BESS is an open-source alternative to the following products: