P4rt-OVS: Programming Protocol-Independent, Runtime Extensions for Open vSwitch with P4

Virtualized 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.

[1]  Scott Shenker,et al.  SoftFlow: A Middlebox Architecture for Open vSwitch , 2016, USENIX ATC.

[2]  Huynh Tu Dang,et al.  P4FPGA: A Rapid Prototyping Framework for P4 , 2017, SOSR.

[3]  Scott Shenker,et al.  NetBricks: Taking the V out of NFV , 2016, OSDI.

[4]  Nick McKeown,et al.  OpenFlow: enabling innovation in campus networks , 2008, CCRV.

[5]  Giuseppe Lettieri,et al.  A Survey of Fast Packet I/O Technologies for Network Function Virtualization , 2017, ISC Workshops.

[6]  Toke Høiland-Jørgensen,et al.  The eXpress data path: fast programmable packet processing in the operating system kernel , 2018, CoNEXT.

[7]  Eddie Kohler,et al.  The Click modular router , 1999, SOSP.

[8]  Fang Hao,et al.  Network function virtualization enablement within SDN data plane , 2017, IEEE INFOCOM 2017 - IEEE Conference on Computer Communications.

[9]  Mihai Budiu,et al.  The P416 Programming Language , 2017, OPSR.

[10]  Martín Casado,et al.  The Design and Implementation of Open vSwitch , 2015, NSDI.

[11]  John Marshall,et al.  The Case for a Flexible Low-Level Backend for Software Data Planes , 2017, APNet.

[12]  Justin Pettit,et al.  Building an Extensible Open vSwitch Datapath , 2017, OPSR.

[13]  Sylvia Ratnasamy,et al.  Evaluating Software Switches : Hard or Hopeless ? , 2018 .

[14]  Sándor Laki,et al.  High speed packet forwarding compiled from protocol independent data plane specifications , 2016, SIGCOMM.

[15]  Olivier Festor,et al.  Offloading Security Services to the Cloud Infrastructure , 2018, SecSoN@SIGCOMM.

[16]  Martín Casado,et al.  Network Virtualization in Multi-tenant Datacenters , 2014, NSDI.

[17]  Massimo Gallo,et al.  Comparing the performance of state-of-the-art software switches for NFV , 2019, CoNEXT.

[18]  George Varghese,et al.  P4: programming protocol-independent packet processors , 2013, CCRV.

[19]  Shengru Li,et al.  Protocol Oblivious Forwarding (POF): Software-Defined Networking with Enhanced Programmability , 2017, IEEE Network.

[20]  Dino Farinacci,et al.  Optimized Mobile User Plane Solutions for 5G , 2018 .

[21]  Daniel Raho,et al.  SnabbSwitch user space virtual switch benchmark and performance optimization for NFV , 2015, 2015 IEEE Conference on Network Function Virtualization and Software Defined Network (NFV-SDN).

[22]  Nick McKeown,et al.  PISCES: A Programmable, Protocol-Independent Software Switch , 2016, SIGCOMM.

[23]  Scott O. Bradner,et al.  Benchmarking Methodology for Network Interconnect Devices , 1999, RFC.

[24]  K. K. Ramakrishnan,et al.  NetVM: High Performance and Flexible Networking Using Virtualization on Commodity Platforms , 2014, IEEE Transactions on Network and Service Management.

[25]  Olivier Festor,et al.  Oko: Extending Open vSwitch with Stateful Filters , 2018, SOSR.

[26]  Yehuda Afek,et al.  Network anti-spoofing with SDN data plane , 2017, IEEE INFOCOM 2017 - IEEE Conference on Computer Communications.

[27]  Salvatore Pontarelli,et al.  FlowBlaze: Stateful Packet Processing in Hardware , 2019, NSDI.