A Survey on Data Plane Programming with P4: Fundamentals, Advances, and Applied Research
arXiv:2101.10632 · doi:10.1016/j.jnca.2022.103561
Abstract
Programmable data planes allow users to define their own data plane algorithms for network devices including appropriate data plane application programming interfaces (APIs) which may be leveraged by user-defined software-defined networking (SDN) control. This offers great flexibility for network customization, be it for specialized, commercial appliances, e.g., in 5G or data center networks, or for rapid prototyping in industrial and academic research. Programming protocol-independent packet processors (P4) has emerged as the currently most widespread abstraction, programming language, and concept for data plane programming. It is developed and standardized by an open community, and it is supported by various software and hardware platforms. In the first part of this paper we give a tutorial of data plane programming models, the P4 programming language, architectures, compilers, targets, and data plane APIs. We also consider research efforts to advance P4 technology. In the second part, we categorize a large body of literature of P4-based applied research into different research domains, summarize the contributions of these papers, and extract prototypes, target platforms, and source code availability. For each research domain, we analyze how the reviewed works benefit from P4's core features. Finally, we discuss potential next steps based on our findings.
References in corpus (20)
- An Exhaustive Survey on P4 Programmable Data Plane Switches: Taxonomy, Applications, Challenges, and Future Trends
- Scaling Distributed Machine Learning with In-Network Aggregation
- The Programmable Data Plane: Abstractions, Architectures, Algorithms, and Applications
- A Survey on Data Plane Flexibility and Programmability in Software-Defined Networking
- P4-IPsec: Site-to-Site and Host-to-Site VPN with IPsec in P4-Based SDN
- P4-MACsec: Dynamic Topology Monitoring and Data Layer Protection with MACsec in P4-SDN
- P4CEP: Towards In-Network Complex Event Processing
- P4-compatible High-level Synthesis of Low Latency 100 Gb/s Streaming Packet Parsers in FPGAs
- Contra: A Programmable System for Performance-aware Routing
- Programmable In-Network Security for Context-aware BYOD Policies
- GP4P4: Enabling Self-Programming Networks
- LOcAl DEcisions on Replicated States (LOADER) in programmable data planes: programming abstraction and experimental evaluation
- Detecting Heavy Hitters in the Data-plane
- LAMP: Prompt Layer 7 Attack Mitigation with Programmable Data Planes
- Design of a Hybrid Modular Switch
- One for All, All for One: A Heterogeneous Data Plane for Flexible P4 Processing
- A Case for Data Centre Traffic Management on Software Programmable Ethernet Switches
- Enabling Mobility in LTE-Compatible Mobile-edge Computing with Programmable Switches
- D2R: Dataplane-Only Policy-Compliant Routing Under Failures
- Decentralized Consistent Network Updates in SDN with ez-Segway
Cited by in corpus (7)
- A Comprehensive Survey on SmartNICs: Architectures, Development Models, Applications, and Research Directions
- Flare: Flexible In-Network Allreduce
- P4-PSFP: P4-Based Per-Stream Filtering and Policing for Time-Sensitive Networking
- Count-Less: A Counting Sketch for the Data Plane of High Speed Switches
- Tracking the QUIC Spin Bit on Tofino
- MPLS Network Actions: Technological Overview and P4-Based Implementation on a High-Speed Switching ASIC
- Survey on some optimization possibilities for data plane applications