Programming Protocol-Independent Packet Processors
Pat Bosshart, Dan Daly, Martin Izzard, Nick McKeown, Jennifer Rexford,, Cole Schlesinger, Dan Talayco, Amin Vahdat, George Varghese, David Walker

TL;DR
This paper advocates for using the P4 language to develop protocol-independent, reconfigurable packet processors that can adapt to new protocols and hardware targets, enhancing flexibility in network switch programming.
Contribution
It proposes P4 as a future evolution for OpenFlow, enabling in-field reconfigurability, protocol independence, and target independence for packet processing.
Findings
P4 enables flexible packet processing configurations.
Switches can be reprogrammed to support new protocols.
P4 facilitates hardware-agnostic network programming.
Abstract
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.…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware-Defined Networks and 5G · Interconnection Networks and Systems · Network Packet Processing and Optimization
