… CORD by mid-2021” Roz Roseboro Heavy Reading ONF – A Track Record of Impact Leading Open Source SDN Controller for Operators * https://www.opennetworking.org/news-and-events/press-releases/open-networking-foundation-onf-completes-metamorphosis-focus-open-source-solutions/ Operator Led Consortium
JUST WHAT I NEED A COMPLEX PIPELINE THAT DOES EVERYTHING ...different vendors in their own way Application Application OpenFlow Table management Table { match actions } P4 program Packets P4 Runtime Table management Packets Variations in data plane pipelines are hard to abstract P4 enables custom pipelines to meet application needs P4 Runtime allows custom pipelines to be loaded and controlled P4 Runtime compile gRPC P4 Runtime –Why choose P4?
–The values of programmable or non-programmable JUST WHAT I NEED A COMPLEX PIPELINE THAT DOES EVERYTHING ...different vendors in their own way Application Application OpenFlow Table Management Table { match actions } P4 program Packets P4 Runtime Table Management Packets Requires tweaks for variations in forwarding pipelines P4 Runtime is of value even if the data plane is not programmable P4 can be used to unambiguously describe any pipeline P4 Runtime Agent compile gRPC 2 1
recognized and their order in the packet Programmer defines the tables (match type, actions) and the processing algorithm Programmable ALUs with computational capabilities and stateful memories Ref: p4.org
with the P4 program § No need to restart the control-plane with a different P4 program • Device does not need to be fully programmable § Can be used on fixed-function devices § Provided that their behavior can be expressed in P4 • Protobuf-based format § Well-supported serialization format in many languages § Supported by many RPC frameworks, e.g., gRPC 12 Control plane p4runtime.proto (API) Program-independent server (e.g. gRPC) Target driver P4 target Ref: https://github.com/p4lang/PI
Plane Data Plane Tables Extern objects Load P4-enabled switch Vendor supplied User supplied Add/remove table entries CPU port Packet-in/out Extern control P4 Runtime
the CORD fabric with P4 silicon § e.g. Barefoot Tofino, or any other vendor that offers a P4 compiler • Short-term - P4-based underlay (Spring 2018) § Design a P4 pipeline (fabric.p4) that is equivalent to the OF-DPA one § Use fabric.p4 as a drop-in replacement for the current Trellis underlay • Do NOT change the ONOS application programming the pipeline • Long-term - offload x86 processing to fabric § P4-based overlay, i.e. move VXLAN handling from OVS to the ASIC § CORD VNFs offloading 16
own P4 pipelines • ONOS run P4 Runtime to § Manage Leaf-spine fabric § Support data plane pipeline configuration • Download P4 program via P4 runtime § Manipulate downloaded pipeline tables to manage traffic • Via P4 Runtime protobuf definitions carried over gRPC • Google’s ”tor.p4” used as P4 program § Pipeline definition • Demonstrated on 2 switch types § BMv2 software switch & Barefoot Tofino hardware switches 19 Protobuf: Protocol Buffers – Google’s data interchange format
Switch configuration via OpenConfig over gNMI § Extend P4 Runtime support to other switch vendors/ASICs § Support for new/existing ONOS applications with any P4 program • Done via manual ONOS-to-P4 mapping • Longer-Term Scope: § Ability to understand P4 programs (automatic ONOS-to-P4 mapping) § Rethink Northbound API to enable the full potential of P4 § New Use Cases • In-band Network Telemetry (INT) • Leaf-Spine Fabric Optimization • VNF Offloading gNMI: gRPC Network Management Interface
is more than a VNF Monolithic VNFs Ports of legacy systems to x86 Micro-Services Functions disaggregated and cloud agility achieved Economic crossover starts to be achieved Failed to deliver the hoped for economics
is more than a VNF Monolithic VNFs Ports of legacy systems to x86 Micro-Services Functions disaggregated and cloud agility achieved Micro-Services (x86) blended with P4 Enabled Flow-Services Portions of services are run in the data plane to achieve speed and scale 100x performance improvements possible pushing functionality into programmable data plane Economic crossover starts to be achieved Failed to deliver the hoped for economics
▪ Wiki - https://wiki.onosproject.org/display/ONOS/P4+brigade • P4.org ▪ P4 API Working Group: http://p4lang.github.io/p4-spec/docs/P4_API_WG_charter.html P4 Brigade Working Session, Sept 2017, Seoul, South Korea