Polycube is an open source framework to build network functions and virtual networks natively for Linux and programmable hardware. With the existing network functions, or your own customized ones, composing a virtual network is easy and straightforward.
Network functions are contained in cubes, and you may simply link multiple cubes to create a virtual network to server your Linux environment or a cluster. Polycube network functions are lightweight and efficient, and the performance is simply better than most popularly used network components on Linux. Not limited to the traditional host network stack, the Polycube community has built many fundamental, though basic, network functions like bridge, router, load balancer, firewall, DDoS migitator, etc.
With those “cubes”, it’s now practical to create a customized network for every different cluster.
Polycube provides a simple and coherent command-line control with polycubectl. Equivalent RESTful APIs are available and handled by the polycube daemon, polycubed, for easy integration with any GUI.
Underneath, network function cubes leverage Linux BPF, eBPF in some context, and XDP technologies, so that every cubed function could be easily extended and updated without tearing down the network.