< back to overview

Year in Review

Jan 2, 2018
Nate Foster
Nate Foster About the author

Posted by Nate Foster on January 2, 2018

As the new year begins, we wanted to take a look back and reflect on all of the progress made by the P4 community in 2017.

New Language Version

In May, the Language Design Working Group released version 1.0.0 of the P416 language. P416 retains the core features of the original version of the language, now called P414, and adds new primitives designed to make it easy to write safe, portable, and modular data plane programs. See the blog post announcing P416 for more details.

Portable Switch Architecture

One of the innovations in P416 is the notion of “architecture,” which separates the logical functionality needed to express a given program from the components used to implement it. In November, the Architecture Working Groupreleased a draft specification of the Portable Switch Architecture (PSA). It defines a standard packet-processing pipeline as well as a rich “standard library” of externs. The goal is to establish a common baseline architecture so that P4 programs written for PSA are portable across a variety of hardware and software targets.

Flexible Control-Plane API

To date, much of the focus in the P4 community has been on designing constructs for data plane programming. But in practical deployments, P4 programmers will also need to write control-plane software. In November, the API Working Group announced the initial implementation of P4 Runtime. It provides a common mechanism by which local and remote control planes can manage a huge variety of programmable and fixed-function switches. Google Cloud, Barefoot Networks and the ONF demonstrated the first physical network running P4 Runtime at the SDN NFV World Congress. See the blog post on P4 Runtime for more details.

Emerging Applications

As P4 continues to mature, there is growing interest in applications that change the way people design, build, and run their networks. To help nurture a P4 software ecosystem that is well aligned with the needs of applications, we launched the Applications Working Group in November. The goal of this working group is to develop specifications and open-source implementations of novel data plane applications enabled by P4. Initially, the working group plans to focus on data plane telemetry but it may broaden its scope to include other applications as they emerge. See the blog post announcing the Applications Working Group for more details.

New Targets

This year also saw several new P4-enabled targets including;

Community Events

The P4 community came together several times over the past year at these events:

Looking Ahead

In the coming year we are excited to continue growing the momentum behind P4. We are looking forward to seeing the release of PSA and P4 Runtime, and the development of novel applications built using P4. We invite you to get involved. If you are not already a member of P4.org, please join us and help shape the future of networking!

Share this post:
Nate Foster
Nate Foster, Associate Professor, Cornell University. His research uses ideas from programming languages to solve problems in networking, databases, and security. Some topics of interest include semantics, type systems, bidirectional languages, data synchronization, and mechanized proof. Recently he spends most of his time thinking about network programming.