skip to main content
research-article

P4: programming protocol-independent packet processors

Published: 28 July 2014 Publication History
  • Get Citation Alerts
  • 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
    • (2024)Secure multi-path routing for Internet of Things based on trust evaluationMathematical Biosciences and Engineering10.3934/mbe.202414821:2(3335-3363)Online publication date: 2024
    • (2024)High-Performance Reconfigurable Pipeline Implementation for FPGA-Based SmartNICMicromachines10.3390/mi1504044915:4(449)Online publication date: 27-Mar-2024
    • (2024)Implementation of a Lossless Moving Target Defense MechanismElectronics10.3390/electronics1305091813:5(918)Online publication date: 28-Feb-2024
    • Show More Cited By

    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,099
      • Downloads (Last 6 weeks)122

      Other Metrics

      Citations

      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