P4rt-OVS: Programming Protocol-Independent, Runtime Extensions for Open vSwitch with P4
Tomasz Osiński , Halina Tarasiuk , Paul Chaignon , Kossakowski Mateusz
AbstractVirtualized data centers implement overlay networking to provide network isolation. The key component that makes the overlay networking possible is a hypervisor switch, such as Open vSwitch (OVS), that is running on each compute node and switches packets to and from 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 in OVS without recompilation. In this paper, 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 Berkeley Packet Filter (BPF), 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. Our design results in a hybrid approach that provides P4 programmability without sacrificing the well-known features of OVS. The performance evaluation shows that P4rt-OVS does not introduce significant processing overhead, yet enables runtime protocol extensions and stateful packet processing.
|Publication size in sheets||0.5|
|Book||Proceedings of the 2020 IFIP Networking Conference, 2020, Institute of Electrical and Electronics Engineers, ISBN 978-3-903176-28-7, [978-1-7281-6710-7]|
|Keywords in English||Programmable data plane, P4, Software switch, OVS, BPF|
|Score||= 140.0, 15-09-2020, ChapterFromConference|
* presented citation count is obtained through Internet information analysis and it is close to the number calculated by the Publish or Perish system.