Earlier this week Google announced it's making some changes to its networking infrastructure. On the surface, that's nothing new. When you run what's reputed to be the largest network on the planet, it's a given that you're constantly changing the way you do things to stay ahead of the curve. Some changes, of course, are more important than others. This one's akin to what software developers call a major point release.
Down the road, the changes the company has planned should also benefit organizations that want to leverage open source solutions for software-defined networking (SDN).
Google is now collaborating with the Open Networking Foundation (ONF) on Stratum, an open source "next generation" SDN interface designed and built around P4Runtime, Google software engineer Jim Wanderer announced in a blog. The Stratum platform is designed for a variety of uses, including as an edge platform for mobile and IoT; a solution for data center spine-leaf fabrics; embedded in switches and routers to leverage SDN interfaces and speed porting between white boxes; and as a cloud SDN data plane. It's the later use that interests Google, and it plans deployment leveraging this use.
The P4Runtime at the platform's core supplies the method for control plane software to control the forwarding plane of switches, routers, firewalls, load-balancers, and the like. One of it's major advancements is that it lets users control any forwarding plane, regardless of whether it is built from a fixed-function or programmable switch, or a software switch running on an x86 server.
The framework of P4Runtime remains unchanged, no matter what protocols and features the forwarding plane supports, meaning the same API can be used to control a huge variety of different switches.
This addresses something that wasn't much of a problem in the days when most networking operations were handled with specialized hardware -- which usually came with vendor lock-in on the hardware level -- but has become an issue as network engineers seek agility with software-defined technology.
Previous attempts to combine the control of fixed and programmable switches have been problematic.
OverFlow, a precursors to P4Runtime, quickly becomes unwieldy when developers seek to expand is capabilities and takes an approach that's not granular in how matched packet fields can be handled. "It doesn’t always define the actions you should perform after the match, and unfortunately different switch ASICs implement the actions in different ways," the P4Runtime organization explains in a statement on its website.
A more recent implementation, SAI, suffers from similar issues. "Extending SAI requires a lot of work, and it is unclear if extensions should be standardized or kept proprietary," the P4 team said. "And it is not clear how to control switches remotely using SAI."
"P4Runtime is a new way for control plane software to program the forwarding path of a switch and provides a well-defined API to specify the switch forwarding pipelines, as well as to configure these pipelines via simple RPCs," Wanderer said. "P4Runtime can be used to control any forwarding plane, from a fixed-function ASIC to a fully programmable network switch."
Wanderer said that P4Runtime will be the foundation for Google's next generation of data centers and wide area network control-plane programming.
The main reason for the adoption is that it fills a need in Google's network ecosystem.
"At Google, we designed our own hardware switches and switch software, but our goal has always been to leverage industry SDN solutions that interoperate with our data centers and wide-area networks," he said. "P4Runtime is a new way for control plane software to program the forwarding path of a switch and provides a well-defined API to specify the switch forwarding pipelines, as well as to configure these pipelines via simple RPCs. P4Runtime can be used to control any forwarding plane, from a fixed-function ASIC to a fully programmable network switch."
Wanderer indicated that another reason behind the adoption turns on the openness of the project. Googles hopes "to drive industry adoption and to enable others to benefit from it."
Google's use of Stratum and the underlying P4Runtime will doubtlessly be good for both projects, as the company is certain to uncover and fix bugs as it rolls the project into its large and complex network infrastructure. As Steve Newman, CEO at log management startup Scalyr and onetime Google employee, told me at Container World in February, "People used to say at Google, if something is a one in a billion chance, it'll happen every day."