Stratum is being formed to execute on the SDN vision of a programmable network with the active support and participation by a broad array of network industry players. This is an exceptionally exciting initiative, posed to help create a diverse, innovative ecosystem supporting programmable SDN networking. Founding members include:
Cloud Providers: Google, Tencent
Telecom Operators: China Unicom, NTT, Turk Telekom/Netsia
Networking Vendors: Big Switch Networks, Ruijie Networks, VMware
White Box ODM Vendors: Delta, Edgecore Networks, QCT
Silicon Vendors: Barefoot, Broadcom, Cavium, Mellanox, Xilinx
Other Open Source Projects: CORD, ONL, ONOS, OpenSwitch, OVS, P4.org, SDKLT
Additionally, Google is open sourcing the first revision of source code for Stratum, helping to launch the project with a solid base of software that originates from Google's production network.
Delivering on the "Software Defined" Vision
To move forward towards the vision of a truly "software defined" network, a new set of interfaces are needed to enable full lifecycle control and automated network management of every aspect of the data plane, and to do so without requiring the definition of new standards. At software speed, the interfaces can be enhanced and refined. A software tool chain enables dynamic negotiation between the Network OS (NOS) and the data plane so that deployments can be upgraded in lock step at runtime by developers.
Furthermore, whereas OpenFlow® only defined mechanisms to control the forwarding behavior, it is now possible to completely redefine the forwarding behavior as well as manage all configuration and operational aspects of the data plane. Next-generation SDN interfaces include four major functional capabilities, exposing all aspects of data plane control and management, including:
The P4 language is used to define/document the logical data plane pipeline. On fixed or partially-configurable data plane silicon, P4 is used to document the logical pipeline that is exposed by the switch. On P4 programmable devices, this same P4 pipeline definition can be used to dynamically (re)define and/or upgrade the switch pipeline.
P4Runtime is used to dynamically program the forwarding pipeline tables in the switch. This can be thought of as a newer dynamic version of OpenFlow, where the Network OS and data plane can dynamically negotiate completely new pipeline configurations (unlike OpenFlow, which requires a revision of the specification).
gNMI with OpenConfig data models is used to manage device configuration. Initial work in SDN did not address these requirements, and instead SNMP, Netconf and CLI were used in an ad-hoc manner (inhibiting interoperability).
gNOI is used for operations, for one-time events like device testing or reboots that do not required maintenance of state. This too was not specified in earlier SDN initiatives, resulting in inconsistent implementations and limiting interoperability.
The impact of supporting comprehensive control and network management includes:
- Defining an unambiguous "contract" between the NOS and the data plane, ensuring compatibility between different implementations
- On compatible systems, the forwarding behavior 'contract' can even be updated at runtime, greatly speeding the innovation cycle
- With ensured compatibility, the overhead of inserting new devices and leveraging the latest silicon will be greatly reduced
- As it becomes easier to insert new devices, upgrade cycles will be optimized and a vibrant market of white box systems will be enabled
There are three diametrically opposed business goals being addressed by this initiative. Often it is possible to achieve only 2 out of 3 of these ambitions when attempting to affect change, but this initiative aims to deliver on all three, including:
- Greater velocity of innovation
- Greater reliability
- Lower capex and opex
About the Stratum Project:
Stratum is an open source project developing a reference implementation for white box switches supporting all the next-generation of SDN interfaces. The project and its founding members plan to make Stratum solutions available on the broadest possible selection of networking silicon on a diverse selection of white box switches from a choice of ODM vendors. Care is being taken to ensure that Stratum can be made available on both existing deployed systems as well as on state-of-the-art programmable silicon coming to market.
Stratum provides a new paradigm that will:
- Speed operator adoption of each new generation of switching silicon (regardless of whether it is fixed, partial or fully programmable)
- Empower a supply chain of white box switching options with a complete open source software solution, thus providing a diversity of choice for operators
- Provide an open source solution for fully-programmable data planes
Stratum will enable an ecosystem of simple "thin" forwarding devices with a wide multi-vendor diversity of underlying switching silicon, as well as provide a vehicle for "thick" traditional switches to support programmable pipelines and to be more easily ported between different systems and different switching silicon.
Leveraging the power of P4 to document the logical pipeline, Stratum-enabled devices will be able to declare a "contract" defining precisely what forwarding behavior they support, expressing this in the P4 language. Furthermore, the Stratum project toolchain will include programmatic verification of the 'contract' offered by each data plane offering. As a result, each forwarding device will be able to unambiguously declare and verify what behavior it supports.
This elimination of ambiguity will allow operators to rapidly adopt the latest generations of switching silicon into their networks without the need for exhaustive requalification nor modification of their operating environments to accommodate the small deviations between devices and manufacturers that exists today.
Stratum is envisioned to become a key software component of future SDN solutions. Stratum implements the latest next-generation SDN interfaces and does not embed control protocols, but instead is designed to support either an external Network OS, or embedded on-switch management and control (e.g. BGP). In this way, Stratum will support a variety of use cases and a diversity of market applications.
Use Case 1 - Cloud SDN Data Plane: The initial code base for Stratum has been provided by Google, who is donating code from their production codebase to kick-start the project. Google also intends to take Stratum into their production networks by pairing it with their internal SDN controller to manage and control Stratum-based white box switches. Others with proprietary controllers can do the same, leveraging Stratum for custom SDN networks.
Use Case 2 - Cloud SDN Fabric Platform: ONOS® plus Trellis™, two open source projects hosted by the ONF, will natively run over Stratum as a P4 data plane switching layer. Together this will provide a complete open source solution for programmable SDN data center spine-leaf fabrics.
Use Case 3 - CORD: CORD®, a comprehensive platform for operator edge clouds, runs over Trellis and ONOS, which in turn will optionally run over Stratum. Combined with Stratum, CORD is on a path to support instantiation of VNFs in a programmable networking fabric, vastly increasing the scalability and cost efficiency of edge clouds.
Use Case 4 - Thick Switches with Embedded Control: While optimized to provide a 'thin switch' solution, Stratum can also be used with an embedded NOS running within the same switch. Dubbed a 'thick switch', this configuration enables the replication of the traditional model of embedded management and control (e.g. Netconf, SNMP, BGP) all into a single system. This approach allows traditionally-structured, tightly integrated systems to be built leveraging Stratum and the latest SDN interfaces. In this way, the common work on Stratum can benefit both thin and thick switch designs, ensuring the work benefits the broadest possible community.
Building Upon to Other Open Source Networking Projects
Stratum is a versatile platform designed to be implemented on a broad variety of systems and forwarding silicon. This versatility is largely enhanced by leveraging the work of other open source projects. Stratum can use OCP's Open Network Install Environment (ONIE) and Open Network Linux (ONL) to provide boot and platform support on open networking hardware platforms. Furthermore, each implementation will expose the latest SDN interfaces to a northbound Network OS by internally mapping the intent and actions expressed by the NOS into system specific operations. SAI (Switch Abstraction Interface) and SDKLT (Broadcom's recently announced open interface) are both examples of open silicon pipeline interfaces that can be leveraged when implementing Stratum on a particular switch. In this way Stratum builds on previous open source work while creating a holistic northbound interface providing for comprehensive control and automated network management.
Stratum is starting in an 'incubation' phase, with the code only available to participating companies. Additional companies are invited to join the effort during this phase, the only requirement being that each participating organization must dedicate a full-time engineer (or equivalent).
The complete release of the project under the Apache 2.0 open source license is expected in early 2019. At that time, multiple interoperable solutions leveraging a choice of silicon options are expected to be available from a number of different white box suppliers.
"Google runs its network based on SDN control of a broad array of hardware switches managed through a well-defined specification for switch programming and control," said Amin Vahdat, Google Fellow and Technical Lead for networking at Google Cloud. "We are pleased to collaborate with the ONF and contribute to Stratum as an open source project for a well-defined API supporting hardware innovation and SDN interoperability in the largest enterprise cloud deployments. With Stratum, large companies have a new option for building smarter and more reliable networks."
"Today, we take it for granted that network operators choose and customize the control plane software for their network; the largest cloud providers and service providers have made the leap already. Stratum takes things one step further and hands them the keys to the forwarding plane too," said Nick McKeown, Professor at Stanford University and co-founder of ONF. "I believe the network should be as easy to program as a server. By lifting protocols out of hardware and into software, we will unleash a Cambrian explosion of innovation in networking, just as we have seen in compute. Because of its use of P4Runtime, Stratum opens the door for every network operator to tailor their network to best meet their needs, while benefiting from a rich open-source ecosystem and a choice of silicon providers."
"Stratum is filling a number of critical gaps to fulfill the ultimate vision of SDN," said Guru Parulkar, executive director for the ONF. "It makes the data plane easily interchangeable as well as exposing full programmability of the forwarding behavior. This will make available a breadth of choice for operators, and ultimately enables unbounded innovation."
Additional commentary by founding members can be found here.
About the ONF:
The Open Networking Foundation (ONF) is an operator led consortium spearheading disruptive network transformation. Now the recognized leader for open source solutions for operators, the ONF first launched in 2011 as the standard bearer for Software Defined Networking (SDN). Led by its operator partners AT&T, China Unicom, Comcast, Deutsche Telekom, Google, NTT Group and Turk Telekom, the ONF has now merged operations with ON.Lab to create a single organization driving vast transformation across the operator space. For further information visit http://www.opennetworking.org