The Programmable Data Plane: Reading List
Table of Contents
See the HTML version for a nicely formatted version and the shortened list for the most relevant papers.
This is a reading list for students, practitioners, and researchers interested in the general area of programmable data plane devices. Topics include SmartNICs, programmable middleboxes and software/hardware switches, that is, everything that may underlie a software-defined network, with only a marginal attention to the major application areas like Network Function Virtualization, service chaining, or 5G.
The reading list completes the survey paper:
Roberto Bifulco and Gábor Rétvári: A Survey on the Programmable Data Plane: Abstractions, Architectures, and Open Problems, in IEEE HPSR, 2018.
The reading list is organized into a rough hierarchy based on the major topics of Abstractions, Architecture, Applications, and Miscellanea; note that this hierarchy is more or less arbitrary and the purpose is just to have some organization at all. The individual papers are tagged as "mustread", "important", and "interesting" (available only in the HTML version), with the approximate meaning "read at least these papers to get a good understanding of the area", "papers for getting more familiar with some sub-areas", and "interesting contributions to the field", respectively. Just like the hierarchy, the tags are also pretty much arbitrary and follow the subjective view of the authors; as always, your mileage may vary.
Note: Some of the linked papers are behind paywalls. We double-checked that all listed papers can be accessed freely by a moderate amount of googling; we still provide the paywall links as user-provided PDFs often do not prove overly stable over time.
Abstractions
Languages and Compilers
Low-level APIs
- McKeown et al.: OpenFlow: Enabling Innovation in Campus Networks, ACM SIGCOMM Comput. Commun. Rev., 2008.
- Bosshart et al.: P4: Programming protocol-independent packet processors, ACM SIGCOMM Comput. Commun. Rev., 2014.
- Bifulco et al.: Improving SDN with InSPired Switches, ACM SOSR, 2016.
High-level Languages and Compilers
- Curtis et al.: DevoFlow: scaling flow management for high-performance networks, SIGCOMM CCR, 2011.
- Christopher Monsanto et al.: Composing Software Defined Networks, USENIX NSDI, 2013.
- Foster et al.: Languages for software-defined networks, IEEE Communications Magazine, 2013.
- Anderson et al.: NetKAT: Semantic Foundations for Networks, ACM POPL, 2014.
- Lavanya Jose et al.: Compiling Packet Programs to Reconfigurable Switches, USENIX NSDI, 2015.
Abstractions for Embedded State
- Bianchi et al.: OpenState: Programming Platform-independent Stateful Openflow Applications Inside the Switch, ACM SIGCOMM Comput. Commun. Rev., 2014.
- Murad Kablan et al.: Stateless Network Functions: Breaking the Tight Coupling of State and Processing, USENIX NSDI, 2017.
- Shinae Woo et al.: Elastic Scaling of Stateful Network Functions, USENIX NSDI, 2018.
- Salvatore Pontarelli et al.: FlowBlaze: Stateful Packet Processing in Hardware, USENIX NSDI, 2019.
Programmable Parsing and Scheduling
- Vishal Shrivastav: Fast, Scalable, and Programmable Packet Scheduler in Hardware, ACM SIGCOMM, 2019.
Architecture
Software Switch Architectures
Viability of Software Switching
- Greenhalgh et al.: Flow Processing and the Rise of Commodity Network Hardware, SIGCOMM Comput. Commun. Rev., 2009.
The Dataflow Graph Abstraction
- Morris et al.: The Click modular router, ACM Trans. on Computer Systems, 2000.
- Martins et al.: ClickOS and the Art of Network Function Virtualization, USENIX NSDI, 2014.
The Match-action Abstraction
- Ben Pfaff et al.: The Design and Implementation of Open vSwitch, USENIX NSDI, 2015.
- Molnár et al.: Dataplane Specialization for High-performance OpenFlow Software Switching, ACM SIGCOMM, 2016.
- Michael Dalton et al.: Andromeda: Performance, Isolation, and Velocity at Scale in Cloud Network Virtualization, USENIX NSDI, 2018.
Hardware Switch Architectures
- De Carli et al.: PLUG: Flexible Lookup Modules for Rapid Deployment of New Protocols in High-speed Routers, ACM SIGCOMM, 2009.
- Bosshart et al.: Forwarding Metamorphosis: Fast Programmable Match-action Processing in Hardware for SDN, ACM SIGCOMM, 2013.
- Kuzniar et al.: What You Need to Know About SDN Control and Data Planes, EPFL Technical Report 199497, 2014.
- Daniel Firestone et al.: Azure Accelerated Networking: SmartNICs in the Public Cloud, USENIX NSDI, 2018.
Programmable NICs
- Pravin Shinde et al.: We Need to Talk About NICs, USENIX HotOS, 2013.
- Zilberman et al.: NetFPGA SUME: Toward 100 Gbps as Research Commodity, IEEE Micro, 2014.
Algorithms & HW Realizations
- Srinivasan et al.: Packet Classification Using Tuple Space Search, ACM SIGCOMM, 1999.
- Fu et al.: Efficient IP-address Lookup with a Shared Forwarding Table for Multiple Virtual Routers, ACM CoNEXT, 2008.
- Rétvári et al.: Compressing IP Forwarding Tables: Towards Entropy Bounds and Beyond, ACM SIGCOMM, 2013.
Applications
In-network Computation
- Mai et al.: Netagg: Using middleboxes for application-specific on-path aggregation in data centres, ACM CoNEXT, 2014.
- Sanvito et al.: Can the Network Be the AI Accelerator, SIGCOMM NetCompute, 2018.
Monitoring, Telemetry, and Measurement
- Kim et al.: In-band Network Telemetry (INT), P4 Consortium, 2015.
Load balancing
- Katta et al.: Hula: Scalable load balancing using programmable data planes, ACM SOSR, 2016.
Control plane acceleration
- Molero et al.: Hardware-Accelerated Network Control Planes, ACM HotNets, 2018.
Miscellaneous Topics
History
- Feamster et al.: The Road to SDN, ACM Queue, 2013.
- Nick McKeown et al.: Programmable Forwarding Planes are Here to Stay, ACM SIGCOMM NetPL, 2017.