Wednesday, April 4, 2018

Google Cloud adopts P4Runtime as foundational for network programming

Google Cloud will use P4Runtime as the foundation for its next generation of data centers and wide area network control-plane programming, according to a new blog posting from Jim Wanderer, Engineering Director at Google and Amin Vahdat, Google Fellow.

P4 is a programming language was designed to be target-independent (i.e. a program written in P4 could be compiled, without modification, to run on a variety of targets, such as ASICs, FPGAs, CPUs, NPUs, and GPUs), and protocol-independent (i.e. a P4 program can describe existing standard protocols, or be used to specify innovative, new, customized forwarding behaviors). P4 can be used for both programmable and fixed-function devices alike. For example, it is used to capture the switch pipeline behavior under the Switch Abstraction Interface (SAI) APIs. P4 is also used by the ONF Stratum project to describe forwarding behavior across a variety of fixed and programmable devices. The P4 Language Consortium (, creator of the P4 programming language, recently transitioned to become a project of the Open Networking Foundation (ONF) and part of the Linux Foundation portfolio.

Google, which designs and builds its own hardware switches and software, sees the P4Runtime as a new way for control plane software to program the forwarding path of a switch as it provides a well-defined API to specify the switch forwarding pipelines. The vision is that the P4Runtime will be used to control any forwarding plane, from a fixed-function ASIC to a fully programmable network switch.

Google is working with the Open Networking Foundation (ONF) on Stratum, an open source project to implement an open reference platform for a truly "software-defined" data plane, designed and built around the P4Runtime.