Polycube, an in kernel software framework intended to facilitate Network Function Virtualization (NFV) implementations that provide the needed characteristics of isolation, persistence and composability with a user space control plane that simplifies debugging and introspection in cloud based environments.
- Kernel packet processing is difficult to implement and the current implementation of Network Functions (NF) in software often rely on kernel bypass approaches that give user-space processes direct access to the underlying hardware and require the dedicated allocation of CPU cores for acceptable performance, require re-implementation of ther network stack in user space , require non standard Network Interface Card (NIC) drivers as well as the need for custom APIs such as mTCP or application modification to leverage StackMap. This hinders deployment within cloud-native platforms requiring NFs to be packaged in containers and follow standard DevOps processes and continuous delivery workflows.
Whose objective is to provide:
- A common structure and abstraction of in-Kernel Network Functions (NF)
- A Programmable and Extensible NF Chainring
- Simple management and execution of the NFs
- Simple development of the Control and Management Plane
The authors provided a C++ daemon that does not require a modified Linux Kernel nor custom drivers.
Polycube accommodates the demands of microservice implementations within cloud environments and allows for a continuous runtime configuration with the possibility to dynamically inject and modify existing Network Functions without incurring a traffic disruption.
eBPF, DPDK, Linux, NFV, SmartNICS, Kernel Bypass