skip to main content
research-article

P4: programming protocol-independent packet processors

Published: 28 July 2014 Publication History

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. As an example, we describe how to use P4 to configure a switch to add a new hierarchical label.

References

[1]
C. Kozanitis, J. Huber, S. Singh, and G. Varghese, Leaping multiple headers in a single bound: Wire-speed parsing using the Kangaroo system," in IEEE INFOCOM, pp. 830{838, 2010.
[2]
P. Bosshart, G. Gibb, H.-S. Kim, G. Varghese, N. McKeown, M. Izzard, F. Mujica, and M. Horowitz, Forwarding metamorphosis: Fast programmable match-action processing in hardware for SDN," in ACM SIGCOMM, 2013.
[3]
\Intel Ethernet Switch Silicon FM6000." http://www.intel.com/content/dam/www/public/us/en/documents/white-papers/ethernet-switch-fm6000-sdn-paper.pdf.
[4]
N. Yadav and D. Cohn, \OpenFlow Primitive Set." http://goo.gl/6qwbg, July 2011.
[5]
H. Song, Protocol-oblivious forwarding: Unleash the power of SDN through a future-proof forwarding plane," in SIGCOMM HotSDN Workshop, Aug. 2013.
[6]
Openflow forwarding abstractions working group charter." http://goo.gl/TtLtw0, Apr. 2013.
[7]
M. Raju, A. Wundsam, and M. Yu, NOSIX: A lightweight portability layer for the SDN OS," ACM SIGCOMM Computer Communications Review, 2014.
[8]
V. Jeyakumar, M. Alizadeh, C. Kim, and D. Mazieres, Tiny packet programs for low-latency network control and monitoring," in ACM SIGCOMM HotNets Workshop, Nov. 2013.
[9]
A. Sivaraman, K. Winstein, S. Subramanian, and H. Balakrishnan, No silver bullet: Extending SDN to the data plane," in ACM SIGCOMM HotNets Workshop, Nov. 2013.
[10]
E. Kohler, R. Morris, B. Chen, J. Jannotti, and M. F. Kaashoek, The Click modular router," ACM Transactions on Computer Systems, vol. 18, pp. 263--297, Aug. 2000.
[11]
Multiprotocol Label Switching Charter." http://datatracker.ietf.org/wg/mpls/charter/.
[12]
R. Niranjan Mysore, A. Pamboris, N. Farrington, N. Huang, P. Miri, S. Radhakrishnan, V. Subramanya, and A. Vahdat, PortLand: A scalable fault-tolerant layer 2 data center network fabric," in ACM SIGCOMM, pp. 39--50, Aug. 2009.
[13]
P. McCann and S. Chandra, PacketTypes: Abstract specificationa of network protocol messages," in ACMSIGCOMM, pp. 321--333, Aug. 2000.
[14]
G. Back, DataScript - A specification and scripting language for binary data," in Generative Programming and Component Engineering, vol. 2487, pp. 66--77, Lecture Notes in Computer Science, 2002.
[15]
K. Fisher and R. Gruber, PADS: A domain specific language for processing ad hoc data," in ACM Conference on Programming Language Design and Implementation, pp. 295--304, June 2005.
[16]
G. Gibb, G. Varghese, M. Horowitz, and N. McKeown, Design principles for packet parsers," in ANCS, pp. 13--24, 2013.
[17]
\Open vSwitch website." http://www.openvswitch.org.
[18]
D. Zhou, B. Fan, H. Lim, M. Kaminsky, and D. G. Andersen, Scalable, high performance ethernet forwarding with CuckooSwitch," in CoNext, pp. 97--108, 2013.
[19]
\EZChip 240-Gigabit Network Processor for Carrier Ethernet Applications." http:http://www.ezchip.com/p_np5.htm.
[20]
\Broadcom BCM56850 Series." https://www.broadcom.com/products/Switching/ Data-Center/BCM56850-Series.

Cited By

View all

Index Terms

  1. P4: programming protocol-independent packet processors

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM SIGCOMM Computer Communication Review
    ACM SIGCOMM Computer Communication Review  Volume 44, Issue 3
    July 2014
    127 pages
    ISSN:0146-4833
    DOI:10.1145/2656877
    Issue’s Table of Contents

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 28 July 2014
    Published in SIGCOMM-CCR Volume 44, Issue 3

    Check for updates

    Author Tags

    1. p4
    2. protocol-independent
    3. reconfigurability
    4. sdn

    Qualifiers

    • Research-article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)1,143
    • Downloads (Last 6 weeks)212
    Reflects downloads up to 06 Nov 2024

    Other Metrics

    Citations

    Cited By

    View all

    View Options

    Get Access

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media