By Jen Rexford and Nick McKeown
To start fostering community around P4, we organized a small by-invitation workshop with people from industry and academia who we knew were actively working on P4-related topics. We thought we'd have around 30 or 40 people, tops. After all, how many people pine for the opportunity to program packet processing? By the time June 4 rolled around, we had around 100 people on our hands for a one-day event at Stanford.
The highlight of the day was the eleven demos from Xilinx, Barefoot, Dell, Intel, Microsoft, Netronome, Rocker, ON.Lab, Yale, USC, and Princeton, all showing examples of using P4 programs to express forwarding behavior. We discovered that many more people were already using P4 than we realized!
The agenda and slides are available online. Talks included:
- Chang Kim from Barefoot Networks giving a brief tutorial about P4, an overview of the open-source code on P4.org, and an introduction to INT (Inband Network Telemetry) for probing switch state via the forwarding plane,
- Dan Daly describing Intel's work using P4 to spec the behavior of NICs,
- Lihua Yuan presenting a Switch Abstraction Interface (SAI) that offers a unified control-plane API for various switch devices,
- A panel where Tom Edsall and Amin Vahdat shared users' perspectives, including how users can leverage P4 to specify novel packet-processing functionality without divulging the details to their vendors (and, in turn, their competitors),
- Ben Pfaff showing how to use P4 as a front-end to specify Open vSwitch's kernel forwarding behavior,
- Mihai Budiu summarizing ways the P4 language can evolve over the next year,
- Luigi Rizzo showing how to support high-speed packet processing in software,
- George Varghese describing Microsoft's work on formal verification of P4 programs in the field,
- Nate Foster explaining how to compile high-level network programming languages into switch forwarding rules,
- Ming Zhang showing how P4-capable switches could enable much more flexible traffic monitoring for troubleshooting in data-center networks,
- Subi Krishnamurthy showing how Dell used P4 to create a simple "tunnel splicing" application,
- Gordon Brebner illustrating how P4 can naturally express how packets are processed and forwarded in an FPGA, and
- Lisa Yan presenting her research work with Lavanya Jose comparing different approaches to designing P4 compilers.
We concluded the day with a decision to start regular P4 meetings for those interested in contributing to the P4 language, tools, and user code; and a second P4 workshop to be held in November 2015.