P4: programming protocol-independent packet processors
By P. Bosshart, Dan Daly, Glen Gibb, M. Izzard, Nick McKeown, Jennifer Rexford, Cole Schlesinger, Daniel E. Talayco, Amin Vahdat, George Varghese and 1 more. CCRV, 2013
3,052 citations recorded by the source corpus.
P4 is a high-level language for programming protocol-independent packet processors. P4 works in conjunction with SDN control protocols like OpenFlow. In its current form, OpenFlow explicitly specifies protocol headers on which it operates. This set has grown from 12 to 41 fields in a few years, increasing the complexity of the specification while still not providing the flexibility to add new headers. In this paper we propose P4 as a strawman proposal for how OpenFlow should evolve in the future. We have three goals: (1) Reconfigurability in the field: Programmers should be able to change the way switches process packets once they are deployed. (2) Protocol independence: Switches should not be tied to any specific network protocols. (3) Target independence: Programmers should be able to describe packet-processing functionality independently of the specifics of the underlying hardware. As an example, we describe how to use P4 to configure a switch to add a new hierarchical label.
Subfields: Computer Networks and Communications, Electrical and Electronic Engineering
View Paper: https://www.semanticscholar.org/paper/463e7d2a62b1f15cc2daba34230297827e7c6757
How researchers see this paper
The researchers whose trusted networks rank it highest, strongest advocate first. Every researcher gets a different order.
In Computer Networks and Communications
- Jennifer Rexford
- Hari Balakrishnan
- Ion Stoica
- Scott Shenker
- Mohammad Alizadeh
- Sylvia Ratnasamy
- Changhoon Kim
- Ian F. Akyildiz
In Electrical and Electronic Engineering
- Hari Balakrishnan
- Jennifer Rexford
- Shuai Nie
- Ian F. Akyildiz
- Martin Reisslein
- Scott Shenker
- George Varghese
- Sajal K. Das
Citations in the corpus
- Software Defined Optical Networks (SDONs): A Comprehensive Survey (2015, background): “P4 [59] is a programmable protocol-independent packet processor, that can arbitrarily match the fields within any formatted packet and is capable of applying any arbitrary actions (as programmed) on the packet before forwarding.”
- AmoebaNet: An SDN-enabled network service for big data science (2018, neutral): “Recently, a new high level programming language for routers and switches named P4 has been developed by some of the original founder of SDN (Bosshart et al., 2014).”
- This paper is included in the Proceedings of the 2022 USENIX Annual Technical Conference. (positive): “Programmable network devices [1,2] together with domain-specific programming languages ( e.g. P4 [3]) have enabled many in-data-plane (DP) network functions, such as monitoring [4–6], security [7–9], routing [10–12] and so on.”
- A Survey on Intent-Based Networking (2023, background): “P4 can be seen as a packet programming language and an evolution of OpenFlow, that can act as an interface between the controller and the switches [33].”
- NFV and SDN—Key Technology Enablers for 5G Networks (2017, background): “Key works in this context are Protocol Independent Forwarding (PIF/P4) [22], Protocol Oblivious Forwarding (POF) [23] or Deeply Programmable Networks (DPN) [24].”
- Hijacking Bitcoin: Routing Attacks on Cryptocurrencies (2016, background): “Observe that the primitives required for the interception software are also supported by recent programmable data-planes [19] opening up the possibility of performing the attack entirely on network devices.”
- 5G network slicing using SDN and NFV- A survey of taxonomy, architectures and future challenges (2019, methodology): “Thanks to the advanced switch interface technologies such as OpenState [106] , P4 [107] , POF [108] , Stateful Data Plane Architecture (SDPA) [109] and SNAP [110] that provide enhanced stateful forwarding and expose persistent state on the SDN data plane [106] .”
- Distributed SDN Control: Survey, Taxonomy, and Challenges (2018, background): “To circumvent these limitations, several approaches [27]–[30] suggest revisiting the delegation of control between the controller and switches and introducing new SDN switch”
- 6G and Beyond: The Future of Wireless Communications Systems (2020, background): “To this end, P4 [116] is being increasingly recognized as ‘‘the programming language for the data plane’’.”
- Heavy-Hitter Detection Entirely in the Data Plane (2016, methodology): “We prototype HashPipe in P4 [6] (§4) and test it on the public-domain behavioral switch model [32].”
- Scaling Distributed Machine Learning with In-Network Aggregation (2019, positive): “SwitchML is implemented as a worker component written as ∼3,100 LoCs in C++ and a switch component realized in P4 [9] with ∼3,700 LoCs.”
- Azure Accelerated Networking: SmartNICs in the Public Cloud (2018, background): “Another recent suggestion is to use P4 engines [33], thus far mostly implemented in switches, to create Smart-NICs.”
- E2: a framework for NFV applications (2015, background): “This modularity and extensibility differentiate SoftNIC from OVS, where expressiveness and functionality are limited by the flow-table semantics and predefined actions of OpenFlow.”
- A comprehensive survey of Network Function Virtualization (2018, background): “For example, P4 [96] is programming language designed to allow the data plane pro-”
- The eXpress data path: fast programmable packet processing in the operating system kernel (2018, background): “The P4 language [7] seeks to extend this programmability to a wider variety of packet processing hardware (including, incidently, an XDP backend [51]).”
- Hybrid SDN Networks: A Survey of Existing Approaches (2018, background): “Software engineering issues and the programmability of SDN networks have been surveyed in [57]– [59], while enhancements to OpenFlow in form of protocolindependent and protocol-oblivious forwarding have been covered in [60], [61].”