• P4 Language and
    Related Specifications

    P416 is the current revision of the P4 language.

    The P4Runtime API is a control plane specification to manage the data plane elements of a device defined by a P4 program.

    The Portable NIC Architecture (PNA) is a target architecture that describes the common capabilities of network NIC devices that process and forward packets between one or more network interfaces and a host system.

    The Portable Switch Architecture (PSA) is a target architecture that describes the common capabilities of network switch devices to process and forward packets.

    Inband Network Telemetry (INT) is a framework for the data plane to collect and report network state without requiring work from the control plane.

    The Telemetry Report Format defines packet formats for reports from data plane devices to a distributed telemetry monitoring system.

    P416 Language Specification

    • Version 1.2.4 [ HTML | PDF ] (May 2023)
    • Working draft [ HTML | PDF ]

     

    P4Runtime

     

    In-Band Network Telemetry (INT)

    • v2.1 [PDF] (May 2020)
    • working draft: [MDK]

    P416 Portable NIC Architecture (PNA)

     

    P416 Portable Switch Architecture (PSA)

     

    Telemetry Report Format

    • v2.0 [PDF] (October 2020)
    • working draft: [MDK]

    Archives

    An archive of older versions of specifications are also available.
    Note that these specifications should be considered deprecated.

    P416

    • P416 Version 1.2.3 [ HTML | PDF ] (July 2022)
    • P416 Version 1.2.2 [ HTML | PDF ] (May 2021)
    • P416 Version 1.2.1 [ HTML | PDF ] (June 2020)
    • P416 Version 1.2.0 [ HTML | PDF ] (Oct 2019)
    • P416 Version 1.1.0 [ HTML | PDF ] (Nov 2018)
    • P416 Version 1.0.0 [ HTML | PDF ] (May 2017)

     

    P4Runtime

    • v1.2.0 [HTML | PDF] (July 2020)
    • v1.1.0 [HTML | PDF] (February 2020)
    • v1.0.0 [HTML | PDF] (October 2019)

     

    In-band Network Telemetry (INT)

    • v2.0 [PDF] (Feb 2020)
    • v1.0 [PDF] (Apr 2018)
    • v0.5 [PDF] (Dec 2017)

    P414

    The previous release of the language is P414.

    • P414 Version 1.1.0 [ PDF ] (November 2018)
    • P414 Version 1.0.5 [ PDF ] (November 2018)
    • P414 Version 1.0.4 [ PDF ] (May 2017)
    • P414 Version 1.0.3 [ PDF ] (November 2016)
    • P414 Version 1.0.2 [ PDF ] (March 2015)

     

    Telemetry Report Format

    • v1.0 [PDF] (Apr 2018)
    • v0.5 [PDF] (Nov 2017)