A Programmable Data Plane for Networked Systems
01 January 2016
Software routers are popular for lower-layer packet processing because of their modular and extensible design. Albeit increasingly flexible, with their support for virtualized operation, middleboxes do not provide sufficient modularity to enable the development of customized L2-L7 stacks. In this paper we present PDP, an architecture that provides a tailored implementation of the data plane for programmable devices that integrates both general-purpose processors and specialized hardware accelerators. The PDP data plane provides a library of high-performance network functions. The PDP control plane is in charge of instantiating and orchestrating data planes modules to compose higher-level services. We overview a number of PDP data plane modules and show how they can be used to build two applications: a HTTP load balancer, popular in datacenter deployments, and an Information Centric Networking router. Finally, we present early micro-benchmark results about the modules in our design.