ONF Collaborating with Google and Barefoot Networks to Demonstrate the ONOS Controller Integrated with the P4 Toolchain and a Programmable Dataplane
Today at the ONF we announced availability of the first P4 proof of concept data center fabric solution PoC to demonstrate switch and protocol independent SDN programmability enabling network operators to define their own forwarding pipelines on the fly. In collaboration with P4.org, Google and Barefoot Networks, we’ve created this PoC to explore and demonstrate the capabilities of the programmable dataplane enabled by P4 and P4 Runtime. The ONF is also open sourcing artifacts to enable a complete demonstrable prototype to be assembled (from a soft switch through controller extensions) to encourage broad experimentation and innovation across the industry.
This blog post provides some more background and color on what we’ve been doing.
ONOS P4 Brigade Collaborating With P4.org, Google and Barefoot Networks
The ONOS Project has been working on building P4 support into the ONOS controller by leveraging P4 Runtime. The P4 Brigade, a smaller team within the ONOS project focused on advancing the high-level language, in collaboration with P4.org, Google and Barefoot Networks has completed the first demonstrable prototype, and will be showing this demo at the SDN World Congress next week.
History: OpenFlow Gives Rise to P4
OpenFlow® was the enabling innovation that helped drive the SDN movement. It exposed the interfaces for forwarding devices (switches), making it possible for external controllers to access and program forwarding rules in the network. This made possible the emergence of third-party controllers, companies like Google created their own controllers, and open source offerings like the ONOS controller emerged and gained traction. Today, this technology has served as a catalyst for tremendous innovation, it is widely used and is a fundamental part of ONF’s CORD platform and CORD-Trellis fabric enabling innovative service delivery.
With time it became clear that OpenFlow, while breakthrough in nature, provided only a limited ability to program the network. In fact, it only allows control of a dataplane whose raw capabilities have been predefined in the hardware. OpenFlow allows the dataplane forwarding path to be populated with forwarding entries, such as how to reach a particular server, but it cannot define or alter the types of packets that the dataplane can understand nor the sequence of processing steps that are applied to packets (the pipeline). It is as if OpenFlow is a traffic officer that can direct traffic at an intersection, but the cars themselves can never be altered and the road can never be reconfigured. This meant network operators cannot define their own forwarding pipelines -- they have to depend on switch or switch ASIC vendors and they have to wait for OpenFlow spec to evolve and it takes time. This has limited potential of SDN.
P4 Unleashes Next Wave of SDN Programmability
P4 is a language that (re)defines the forwarding behavior of the dataplane. With P4, new processing pipelines and packet formats can be defined, virtually unlimited packet manipulation is made possible and a whole new level of SDN innovation is enabled.
With the addition of P4 Runtime, a standard is emerging for the definition of how an external controller can interface with a P4 enabled dataplane. Now SDN controllers gain the ability to not only program the forwarding tables in predefined ASIC pipelines, but they can now dynamically redefine how the dataplane parses, interprets and processes packets. An ASIC development and deployment cycle is no longer needed to create and deploy new innovative capabilities (a costly multi-year process) and a network operator or use does not need to wait for the protocol spec such as OpenFlow to evolve to (re)define its forwarding pipelines. The network now becomes truly programmable, eliminating the remaining barriers to achieving true SDN programmability.
Growing Importance of P4 Runtime
P4 has a value even for data planes that do not support P4 programs in hardware. Even for fixed function networking hardware the P4 language can be used to describe the forwarding pipeline and capabilities of the device, and then the P4 Runtime can be used by controllers to interface to the hardware. This imparts to the controller a clear and unambiguous definition of the hardware’s capabilities, and lets the controller use a standard interface for controlling these capabilities. This ultimately makes it possible to support new dataplane hardware devices without the need to reengineer the controller. P4 Runtime is an important enabler for further disaggregation of the data plane and the SDN controller, even in the absence of native P4 support in the hardware itself.
P4 Runtime Demo
Next week a live demo of ONOS running a Barefoot spine-leaf fabric will be featured at the SDN World Congress. The demo highlights ONOS discovering, configuring and controlling a Barefoot leaf-spine fabric using P4 Runtime.
This demo is the result of collaboration between the ONF, the ONOS P4 Brigade, Google Cloud and Barefoot to demonstrate ONOS controlling a P4 fabric.
Be sure to also check out the press release to learn more about the demo.
We welcome others to join these exciting efforts. Please check out these resources to learn more and join the community: