Abstract
A hypervisor switch, such as Open vSwitch (OVS), plays a key role in the virtualized data centers implementing overlay networking to provide network isolation. The hypervisor switch is running on each compute node as a software application and switches packets between virtual machines. Software switches frequently require upgrading and customization of network protocol's stack to introduce novel or domain-specific networking techniques. However, it is still difficult to extend OVS to support new network features as it requires mastery of network protocol design, programming expertise, and familiarity with the complex codebase of OVS. Moreover, there is currently no solution that enables the deployment of network features recompilation of OVS. In this article, we present P4rt-OVS, an original extension of OVS that enables runtime programming of protocol-independent and stateful packet processing pipelines. It extends the forwarding model of OVS with the userspace Berkeley Packet Filter (uBPF), bringing a new extensibility mechanism. Moreover, P4rt-OVS comes with a P4-to-uBPF compiler, which allows developers to write data plane programs in the high-level P4 language, compile them to the BPF bytecode and inject them to the OVS packet processing pipeline at runtime. Our design results in a hybrid approach that provides P4 programmability without sacrificing the well-known features of OVS. We provide thorough performance results, including end-to-end performance tests, microbenchmarks and a performance test of an exemplary network application (Broadband Network Gateway). The performance evaluation shows that P4rt-OVS does not introduce significant processing overhead, yet enables runtime protocol extensions and stateful packet processing. Moreover, we discuss features of P4rt-OVS and provide programming guidelines to help developers achieve the best performance of P4 programs for P4rt-OVS.
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have