Skip to main content

P4: Programming protocol-independent packet processors

Author(s): Bosshart, P; Daly, D; Gibb, G; Izzard, M; McKeown, N; et al

To refer to this page use:
Abstract: P4 is a high-level language for programming protocol-inde-pendent 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 exibility to add new headers. In this paper we propose P4 as a strawman proposal for how Open-Flow 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 inde- pendence: 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.
Publication Date: 28-Jul-2014
Electronic Publication Date: 2014
Citation: Bosshart, P, Daly, D, Gibb, G, Izzard, M, McKeown, N, Rexford, J, Schlesinger, C, Talayco, D, Vahdat, A, Varghese, G, Walker, D. (2014). P4: Programming protocol-independent packet processors. 44 (87 - 95. doi:10.1145/2656877.2656890
DOI: doi:10.1145/2656877.2656890
Pages: 87 - 95
Type of Material: Journal Article
Journal/Proceeding Title: Computer Communication Review
Version: Author's manuscript

Items in OAR@Princeton are protected by copyright, with all rights reserved, unless otherwise indicated.