The Programmable Data Plane Reading List

Miscellaneous Topics

There exists highly recommendable literature on the history of SDN and programmable data planes. We also report on two other important topics, deployment and algorithms of programmable data planes.

History

There are several interesting papers putting the technological trends around programmable networks into a historic perspective.

Smart packets: Applying active networks to network management Beverly Schwartz, Alden W. Jackson, W. Timothy Strayer, Wenyi Zhou, R. Dennis Rockwell, Craig Partridge — ACM Trans. Comp. Sys. 18,1 (2000) One intellectual precursor to programmable networks is the Active Networks concept. This paper surveys the application of active networks technology to network management and monitoring. The main idea of Smart Packets, which contain programs written in a safe language, is to move management decision points closer to the nodes being managed, as well as to target specific aspects of the node for information.
The road to SDN: an intellectual history of programmable networks Nick Feamster, Jennifer Rexford, Ellen Zegura — ACM SIGCOMM CCR 44,2 (2014) An intellectual history of programmable networks. A mustread.
Reconfigurable Network Systems and Software-Defined Networking Noa Zilberman, Philip M. Watts, Charalampos Rotsos, Andrew W. Moore — Proc. IEEE 103,7 (2015) The paper reviews the state of the art in reconfigurable network systems, covering hardware reconfiguration, SDN, and the interplay between them. It starts with a tutorial on software-defined networks, then continues to discuss programming languages as the linking element between different levels of software and hardware in the network, reviews electronic switching systems, highlighting programmability and reconfiguration aspects, and describes the trends in reconfigurable network elements.
Programmable Forwarding Planes are Here to Stay Nick McKeown — ACM SIGCOMM NetPL Keynote (2017) A keynote from Nick McKeown at NetPL'17 on the many great research ideas and new languages that have emerged for programmable forwarding. The talk considers how we got here, why programmable forwarding planes are inevitable, why now is the right time, why they are a final frontier for SDN, and why they are here to stay.

Deployments

A very relevant question, which is also a research challenge, regards the deployment of SDN and programmable data planes.

Ethane: Taking Control of the Enterprise Martin Casado, Michael J. Freedman, Justin Pettit, Jianying Luo, Nick McKeown, Scott Shenker — ACM SIGCOMM '07 (2007) A seminal paper for deploying SDN in enterprise networks, this paper presents Ethane, a network architecture allowing managers to define a single network-wide fine-grain policy and then enforcing it directly. Ethane couples extremely simple flow-based Ethernet switches with a centralized controller that manages the admittance and routing of flows. While radical, this design is backwards-compatible with existing hosts and switches. Ethane was implemented in both hardware and software, supporting both wired and wireless hosts.
Softcell: Scalable and flexible cellular core network architecture Xin Jin, Li Erran Li, Laurent Vanbever, Jennifer Rexford — ACM CoNEXT '13 (2013) SoftCell aims to overcome today's expensive, inflexible and complex cellular core networks by supporting fine-grained policies for mobile devices, using commodity switches and servers. In particular, SoftCell allows to flexibly route traffic through sequences of middleboxes based on subscriber attributes and applications. Scalability is achieved by minimizing the size of the forwarding tables, using aggregation, and by performing packet classification at the access switches, next to the base stations.
B4: Experience with a Globally-deployed Software Defined Wan Sushant Jain, Alok Kumar, Subhasree Mandal, Joon Ong, Leon Poutievski, Arjun Singh, Subbaiah Venkata, Jim Wanderer, Junlan Zhou, Min Zhu, Jon Zolla, Urs Hölzle, Stephen Stuart, Amin Vahdat — ACM SIGCOMM '13 (2013) The paper presents the design, implementation, and evaluation of B4, a private WAN connecting Google's data centers across the planet. B4 has a number of unique characteristics: (1) massive bandwidth requirements deployed to a modest number of sites, (2) elastic traffic demand that seeks to maximize average bandwidth, and (3) full control over the edge servers and network, which enables rate limiting and demand measurement at the edge. These characteristics led to a Software Defined Networking architecture using OpenFlow to control relatively simple switches built from merchant silicon.
A High Performance Packet Core for Next Generation Cellular Networks Zafar Ayyub Qazi, Melvin Walls, Aurojit Panda, Vyas Sekar, Sylvia Ratnasamy, and Scott Shenker — ACM SIGCOMM '17 (2017) To support deploying SDNs into the Evolved Packet Core (EPC), the paper presents the design and evaluation of a system architecture for a software EPC that achieves high and scalable performance. The authors postulate that the poor scaling of existing EPC systems stems from the manner in which the system is decomposed, which leads to device state being duplicated across multiple components, which in turn results in frequent interactions between the different components. An alternate approach is proposed in which state for a single device is consolidated in one location and EPC functions are reorganized for efficient access to this consolidated state. A prototype for PEPC is also presented, as a software EPC that implements the key components of the design.

Simulators and evaluation platforms

NS4: Enabling Programmable Data Plane Simulation Jiasong Bai, Jun Bi, Peng Kuang, Chengze Fan, Yu Zhou, Cheng Zhang — ACM SOSR '18 (2018) The paper presents a new simulator platform on top of ns-3 specifically tailored to programmable dataplanes and P4 in particular. Evaluations show tht NS4 can effectively simulate representative P4 programs and scales to large-scale P4-enabled networks at a low cost.

Performance

P8: P4 with Predictable Packet Processing Performance Hasanin Harkous, Michael Jarschel, Mu He, Rastin Priest, Wolfgang Kellerer — IEEE Transactions on Network and Service Management (TNSM) (2020) The authors leverage the characteristics of the P4 programming language to provide a method for estimating the packet forwarding latency as a function of the data path program. They analyze the impact of different P4 constructs on packet processing latency for three state-of-the-art P4 devices: a Netronome SmartNIC, the NetFPGA-SUME, and the T4P4S DPDK-based software switch. Besides comparing the performance of these three targets, derived results are used to propose a method for estimating the average packet latency, at compilation time, of arbitrary P4-based network functions implemented using the surveyed P4 constructs. The proposed method is finally validated using a set of realistic network functions, which shows that the method estimates the average packet latency with sub-microsecond precision.

Security

P4Fuzz: Compiler Fuzzer for Dependable Programmable Dataplanes Andrei-Alexandru Agape, Madalin Claudiu Danceanu, Rene Rydhof Hansen, Stefan Schmid — ICDCN '21 (2021) Extending programmability into the data plane introduces new threat models, in particular related to compilers used to map data plane languages, such as P4 to software or hardware targets. P4Fuzz aims at uncovering vulnerabilities in such compilers through automated compiler fuzzing. The author's compiler found several bugs in production compilers that since have been acknowledged and fixed by the community.