The case for a flexible low-level backend for software data planes

S Choi, X Long, M Shahbaz, S Booth, A Keep… - Proceedings of the First …, 2017 - dl.acm.org
S Choi, X Long, M Shahbaz, S Booth, A Keep, J Marshall, C Kim
Proceedings of the First Asia-Pacific Workshop on Networking, 2017dl.acm.org
Recent efforts to simplify network data plane programming focus on providing simple, high-
level domain-specific languages (DSLs). In the case of software switches, data plane
programs are written in these DSLs and then compiled to run on CPU-based architecture.
However, the simplicity of these DSLs, along with the lack of low-level interfaces exposed by
the software switch, restrict compilers from generating optimal data plane programs for CPU-
based architecture. In this paper, we argue that increased exposure of low-level interfaces to …
Recent efforts to simplify network data plane programming focus on providing simple, high-level domain-specific languages (DSLs). In the case of software switches, data plane programs are written in these DSLs and then compiled to run on CPU-based architecture. However, the simplicity of these DSLs, along with the lack of low-level interfaces exposed by the software switch, restrict compilers from generating optimal data plane programs for CPU-based architecture.
In this paper, we argue that increased exposure of low-level interfaces to a software switch would enable more effective data plane programs. To demonstrate this, we present Programmable Vector Packet Processor (PVPP), which adds programmability to the Vector Packet Processing (VPP) framework. VPP provides fine-grain access to various low-level features of a CPU-architecture and offers better performance compared to other software switches, such as Open vSwitch (OVS), that operate at a higher level of abstraction. However, there is a cost to programming directly using VPP's low-level features. The programmer must have specialized knowledge about the architecture in order to produce an efficient implementation, resulting in difficulties when optimizing the program. PVPP attempts to alleviate this cost by allowing the compilation of a program written in P4 to VPP's internal node-graph representation. Our preliminary results show that PVPP improves performance of data plane programs by around 30% compared to naïve VPP implementations.
ACM Digital Library
Showing the best result for this search. See all results