This week the Open Networking Foundation (ONF) announced Stratum, a new software package that will allow an SDN controller to program the data plane of network switches.
Stratum, which aims to bring programmability all the way to the silicon layer of the network, will be based on code originally developed by Google. Google is contributing the code to the ONF.
Stratum is currently in what the ONF calls an “incubation” phase. Organizations that want to participate in this phase must commit a full-time engineer to the project.
Once the project moves out of the incubation phase, it will be made available to anyone via an Apache 2.0 license. The ONF expects this to happen in early 2019.
It’s Not Another NOS
The Stratum project is not another network OS (NOS). To my mind, it’s more of a software shim that sits above a switch ASIC and below a NOS and/or SDN controller.
Stratum’s job is two-fold: to document the capabilities of the packet processing pipeline of a switch and communicate that information to a NOS or controller; and to provide an interface for that NOS or controller to change or configure that pipeline to the degree that the switch ASIC is programmable.
Stratum incorporates several elements to make all this happen:
- P4 Runtime
- gNMI and Openconfig
P4, which is an open language to define packet processing, describes the logical pipeline. The ONF says this definition or description can act as a contract: it explicitly defines a switch’s packet processing capabilities so there’s no ambiguity about what the switch can or can’t do.
This contract informs the NOS or controller about how it should interact with the switch.
The P4 Runtime component dynamically programs the pipeline tables in real time. For example, if a developer creates a new field or protocol, P4 Runtime would add that feature to the packet forwarding pipeline on a programmable switch.
gNMI (gRPC Network Management Interface) is a protocol for accessing and changing device configuration, as well as for streaming telemetry information from a device using gRPC.
Within Stratum, gNMI is the protocol used to manage device configuration using OpenConfig models. It also leverages gRPC. A northbound controller can use gNMI to collect or change switch configurations.
gNOI (gRCP Network Operations Interface) provides operations services, such as rebooting a device, pinging a device, and so on.
Stratum incorporates all these elements into a software package that can interoperate with a network OS on the switch itself and/or with an external SDN controller such as ONOS.
The ONF says Stratum can work with third-party network OSs and controllers, including Open Network Linux and ONOS, though at the outset it is developing with ONOS in mind. That’s because the ONF is run by telcos and service providers, so it’s putting its energies into serving these constituencies first, and ONOS is seeing telco and service provider adoption.
As ONF mentioned in a briefing, the organization hopes to see a whole ecosystem of hardware and software emerge from its efforts around Stratum.
That hope is reflected in the makeup of its founding members, which include telcos and service providers who are the likely consumers of Stratum, as well as silicon vendors, switch and white box manufacturers, and networking companies who want to sell to those telcos and service providers.
A complete list of founders is available in the press release.
Code, Not Standards
Unlike OpenFlow, an ONF project that was developed like a traditional networking standard, the ONF decided to debut Stratum as running code and (eventually) release it as an open-source project.
Rather than have different entities cook up their own versions of a standard, the code base becomes the working reference.
The ONF believes this will lead to more robust development of project, including new features and fixes, which will be driven by the community rather than a standards body.
Don’t Call It OpenFlow Revisted (Though It Kind Of Is)
When asked if Stratum is a replacement for OpenFlow, the ONF said no. They pointed to the CORD project, which uses OpenFlow as part of a larger package to help service providers and carriers automate services and streamline operations.
However, a slide deck available on the Stratum site (scroll to the bottom to find the presentation link) does reference drawbacks of OpenFlow and positions Stratum as an improvement over this protocol.
In other words, Stratum isn’t replacing OpenFlow, but it is trying to correct limitations with that standard.
Stratum is one in a long (and sometimes perplexing) chain of projects, initiatives, and programs cracking open the traditional networking stack. And right now, most of these projects are either driven by, or targeted at, giant companies such as Google and Facebook or global telcos and service providers.
These organizations have the business cases and the internal headcount and processes required to stitch together various software packages, operations tools, and hardware into highly customized and easily swappable components.
That doesn’t mean the enterprise gets left out. The innovations and opportunities generated by these trends are also descending from the Olympus of the hyperscale gods to the mortal realm, sometimes in the arms of startups, and more and more by legacy vendors doing their best not to get swamped by waves of disruption.
Speaking of Stratum in particular, I’m not sure how many enterprises are champing at the bit to program their switches’ data planes; they’ve got other problems to deal with.
So I expect this project will live among the Olympians for the time being. But for those mortals willing to grasp them, the thunderbolts are within reach.