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.
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.
This year also saw several new P4-enabled targets including;
The P4 community came together several times over the past year at these events:
- A workshop and developer day at Stanford in May,
- A summit in Beijing in May,
- Tutorials at PLDI, HotChips, and SIGCOMM,
- A Developer Day at Stanford in November.
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!