9/11/2019 onf connect (ng-sdn track) brian o’connor · 2019-09-26 · fpm backend (broadcom)...
TRANSCRIPT
![Page 1: 9/11/2019 ONF Connect (NG-SDN Track) Brian O’Connor · 2019-09-26 · fpm backend (Broadcom) Tofino backend (Barefoot) bcm_demo.bin Control plane p4runtime.proto P4Runtime server](https://reader030.vdocuments.mx/reader030/viewer/2022040820/5e681adf8a995d463b118ca4/html5/thumbnails/1.jpg)
Overview and Update
Brian O’Connor
ONF Connect (NG-SDN Track)9/11/2019
![Page 2: 9/11/2019 ONF Connect (NG-SDN Track) Brian O’Connor · 2019-09-26 · fpm backend (Broadcom) Tofino backend (Barefoot) bcm_demo.bin Control plane p4runtime.proto P4Runtime server](https://reader030.vdocuments.mx/reader030/viewer/2022040820/5e681adf8a995d463b118ca4/html5/thumbnails/2.jpg)
Outline- Stratum Basics
- APIs and Architecture
- Open Source Launch- Supported platforms- What to expect- Quick tour of available resources- How to find more
- What’s next? (project roadmap)- Setting the stage for the rest of the sessions- Stratum Community
- Companies- Individual recognition
![Page 3: 9/11/2019 ONF Connect (NG-SDN Track) Brian O’Connor · 2019-09-26 · fpm backend (Broadcom) Tofino backend (Barefoot) bcm_demo.bin Control plane p4runtime.proto P4Runtime server](https://reader030.vdocuments.mx/reader030/viewer/2022040820/5e681adf8a995d463b118ca4/html5/thumbnails/3.jpg)
Agenda● Stratum Basics
● Open Source Launch
● What’s Next?
● Preview of Stratum @ ONF Connect ‘19
● Stratum Community
![Page 4: 9/11/2019 ONF Connect (NG-SDN Track) Brian O’Connor · 2019-09-26 · fpm backend (Broadcom) Tofino backend (Barefoot) bcm_demo.bin Control plane p4runtime.proto P4Runtime server](https://reader030.vdocuments.mx/reader030/viewer/2022040820/5e681adf8a995d463b118ca4/html5/thumbnails/4.jpg)
What is Stratum?Open source, production targeted, thin switch OS that implements
NG-SDN interfaces and models
P4 Program
Stra
tum
age
ntSwitch (Broker) Interface
Table Mgr Node Chassis Mgr
Chip Abstraction Managers Platform Mgr
gNMI gNOI
P4 Compiler
Switch SDK Platform API
Switch Chip(s) Peripheral(s)
P4Runtime
TestVectorsRunner
TestVectors
![Page 5: 9/11/2019 ONF Connect (NG-SDN Track) Brian O’Connor · 2019-09-26 · fpm backend (Broadcom) Tofino backend (Barefoot) bcm_demo.bin Control plane p4runtime.proto P4Runtime server](https://reader030.vdocuments.mx/reader030/viewer/2022040820/5e681adf8a995d463b118ca4/html5/thumbnails/5.jpg)
API Overview
![Page 6: 9/11/2019 ONF Connect (NG-SDN Track) Brian O’Connor · 2019-09-26 · fpm backend (Broadcom) Tofino backend (Barefoot) bcm_demo.bin Control plane p4runtime.proto P4Runtime server](https://reader030.vdocuments.mx/reader030/viewer/2022040820/5e681adf8a995d463b118ca4/html5/thumbnails/6.jpg)
Why Stratum?Stratum’s SDN-ready Interfaces
Built from today’s SDNs & Optimized for NG-SDN
Value Proposition:1. Hardware Independence / Vendor Optionality
2. Automated Full-Lifecycle Operation
3. Zero-Touch Provisioning
4. Data Plane Programmability and Agility
![Page 7: 9/11/2019 ONF Connect (NG-SDN Track) Brian O’Connor · 2019-09-26 · fpm backend (Broadcom) Tofino backend (Barefoot) bcm_demo.bin Control plane p4runtime.proto P4Runtime server](https://reader030.vdocuments.mx/reader030/viewer/2022040820/5e681adf8a995d463b118ca4/html5/thumbnails/7.jpg)
Top-Down Data Plane Programmability
P4 compiler
My Station(Routing Classifier)
L3 Routing(IP w/ ECMP)
L2 Forwarding
ACL(Redirect, drop & Pkt in)
fpm backend (Broadcom) Tofino backend (Barefoot)
bcm_demo.bin
Control plane
p4runtime.proto
P4Runtime server
Target driver
Switch ASIC
demo.p4info
Allocate resources to realize the pipeline, and generate runtime mapping
Generate controlplane contract
bf_demo.bin
demo.p4
Stratum
![Page 8: 9/11/2019 ONF Connect (NG-SDN Track) Brian O’Connor · 2019-09-26 · fpm backend (Broadcom) Tofino backend (Barefoot) bcm_demo.bin Control plane p4runtime.proto P4Runtime server](https://reader030.vdocuments.mx/reader030/viewer/2022040820/5e681adf8a995d463b118ca4/html5/thumbnails/8.jpg)
Platform Independence
OpenNetworkLinuxONL Platform API (ONLPv2)
ONLP Platform impl.libonlp-<platform>.so
Stratum Platform Manager
gNMI Server
OpenConfig.yangOpenConfig.yang
openconfig.yang
Control plane
gnmi.proto
/
interfaces
interface
...
...
...
...
eth0 (is_key=true)
state
... ifindex
OpenConfig Mapper
Stratum Config DB
Stratum
![Page 9: 9/11/2019 ONF Connect (NG-SDN Track) Brian O’Connor · 2019-09-26 · fpm backend (Broadcom) Tofino backend (Barefoot) bcm_demo.bin Control plane p4runtime.proto P4Runtime server](https://reader030.vdocuments.mx/reader030/viewer/2022040820/5e681adf8a995d463b118ca4/html5/thumbnails/9.jpg)
Supporting Cloud-Style Agility
StratumSourceCode
Unit tests and static analysis
Build Docker Image
Run Conformance
Tests on Target
Deploy to Network
...
GithubCI Tool
(e.g. Jenkins)
Stratum
TestVectors
Stratum
Hardware
Orchestrator
● Stratum deployment and testing framework enable best practices in CI/CD● Telemetry and end-to-end verification allow for failure detection and rollback
![Page 10: 9/11/2019 ONF Connect (NG-SDN Track) Brian O’Connor · 2019-09-26 · fpm backend (Broadcom) Tofino backend (Barefoot) bcm_demo.bin Control plane p4runtime.proto P4Runtime server](https://reader030.vdocuments.mx/reader030/viewer/2022040820/5e681adf8a995d463b118ca4/html5/thumbnails/10.jpg)
Testing Stratum Devices
TestVectors Runner (low-level, can be plugged in to complex
test frameworks)
Switch Under Test
gRPC
Traffic generators and validators
Switch Ports
Test Vector
Test Case
Stimulus 1Stimulus 2...
Expectation 1Expectation 2...
Test Vectors
Test Vectors serve as compliance tests for Stratum-based devices
They can be written manually or generated automatically
- Stratum comes with a Contract Definition language (cdlang) for generating test vectors
Test Scenarios in CDLang
Automatic Test Vector
Generators
CDLang Compiler
Humans
TestVectors Runner is a data-driven framework that enables users to execute TestVectors
- Reference impl. in golang; supports P4RT/gNMI
![Page 11: 9/11/2019 ONF Connect (NG-SDN Track) Brian O’Connor · 2019-09-26 · fpm backend (Broadcom) Tofino backend (Barefoot) bcm_demo.bin Control plane p4runtime.proto P4Runtime server](https://reader030.vdocuments.mx/reader030/viewer/2022040820/5e681adf8a995d463b118ca4/html5/thumbnails/11.jpg)
Stratum Open Source Launch
![Page 12: 9/11/2019 ONF Connect (NG-SDN Track) Brian O’Connor · 2019-09-26 · fpm backend (Broadcom) Tofino backend (Barefoot) bcm_demo.bin Control plane p4runtime.proto P4Runtime server](https://reader030.vdocuments.mx/reader030/viewer/2022040820/5e681adf8a995d463b118ca4/html5/thumbnails/12.jpg)
Stratum Approved for Open Sourcehttps://github.com/stratum/stratum
![Page 13: 9/11/2019 ONF Connect (NG-SDN Track) Brian O’Connor · 2019-09-26 · fpm backend (Broadcom) Tofino backend (Barefoot) bcm_demo.bin Control plane p4runtime.proto P4Runtime server](https://reader030.vdocuments.mx/reader030/viewer/2022040820/5e681adf8a995d463b118ca4/html5/thumbnails/13.jpg)
Getting Started in 30 Seconds
![Page 14: 9/11/2019 ONF Connect (NG-SDN Track) Brian O’Connor · 2019-09-26 · fpm backend (Broadcom) Tofino backend (Barefoot) bcm_demo.bin Control plane p4runtime.proto P4Runtime server](https://reader030.vdocuments.mx/reader030/viewer/2022040820/5e681adf8a995d463b118ca4/html5/thumbnails/14.jpg)
Getting Started in 30 Seconds
For a basic tutorial, visit https://github.com/stratum/tutorial
Works on hardware switches, too!● Canonical port for NG-SDN gRPC interfaces is 28000● Need to mount /dev, /sys, and ONLP libraries into the container
![Page 15: 9/11/2019 ONF Connect (NG-SDN Track) Brian O’Connor · 2019-09-26 · fpm backend (Broadcom) Tofino backend (Barefoot) bcm_demo.bin Control plane p4runtime.proto P4Runtime server](https://reader030.vdocuments.mx/reader030/viewer/2022040820/5e681adf8a995d463b118ca4/html5/thumbnails/15.jpg)
What to ExpectOpen Source Launch is an Alpha Release● Software Architecture is in place● Support for fixed-function and programmable targets● Some features not yet implemented
What can I do with Stratum today?● Demos (ONF has done several over the past year)● User Experimentation; Porting to New Platforms
Stratum can now be incorporated into vendors’ products
![Page 16: 9/11/2019 ONF Connect (NG-SDN Track) Brian O’Connor · 2019-09-26 · fpm backend (Broadcom) Tofino backend (Barefoot) bcm_demo.bin Control plane p4runtime.proto P4Runtime server](https://reader030.vdocuments.mx/reader030/viewer/2022040820/5e681adf8a995d463b118ca4/html5/thumbnails/16.jpg)
TofinoUp to 6.5 Tbps
Stratum Switch Support Today
Z910032 x 100 Gbps
AG9064v164 x 100 Gbps
Wedge100BF-32X32 x 100 Gbps
Wedge100BF-65X65 x 100 Gbps
TomahawkUp to 3.2 Tbps
D50546 x 100 Gbps +48 x 25 Gbps
T7032-IX132 x 100 Gbps
AS771232 x 100 Gbps
D703232 x 100 Gbps
BF6064X64 x 100 Gbps
+ 2 software switches: bmv2 (functional software switch) & dummy switch (used for API testing)
Near-term future platforms:● Additional platforms for existing targets
○ Existing vendors + Asterfusion, ...● Mellanox SN2700 (Spectrum)● Datacom platforms (PowerPC-based)
Switching ASIC
Switch Vendor
![Page 17: 9/11/2019 ONF Connect (NG-SDN Track) Brian O’Connor · 2019-09-26 · fpm backend (Broadcom) Tofino backend (Barefoot) bcm_demo.bin Control plane p4runtime.proto P4Runtime server](https://reader030.vdocuments.mx/reader030/viewer/2022040820/5e681adf8a995d463b118ca4/html5/thumbnails/17.jpg)
Downloading StratumStratum bmv2 switch + Mininet Docker Image:docker pull opennetworking/mn-stratumhttps://cloud.docker.com/u/opennetworking/repository/docker/opennetworking/mn-stratum
Barefoot Tofino Docker Image:stratumproject/stratum-bf:8.9.1-4.14.49-OpenNetworkLinuxhttps://cloud.docker.com/u/opennetworking/repository/docker/opennetworking/mn-stratum
Broadcom Tomahawk Docker Image: coming soon
ONL OS Image: pre-built, ONIE installable image coming soonSource code: https://github.com/opennetworkinglab/OpenNetworkLinuxBased on ONLPv2
or
![Page 18: 9/11/2019 ONF Connect (NG-SDN Track) Brian O’Connor · 2019-09-26 · fpm backend (Broadcom) Tofino backend (Barefoot) bcm_demo.bin Control plane p4runtime.proto P4Runtime server](https://reader030.vdocuments.mx/reader030/viewer/2022040820/5e681adf8a995d463b118ca4/html5/thumbnails/18.jpg)
How to Contribute● Get started with the basic tutorial
https://github.com/stratum/tutorial
● Stratum uses Github for source management, issue tracking and pull requests○ File bugs, request features, and submit patches on Github
● Join the Stratum Announcement mailing listhttps://lists.stratumproject.org/listinfo/stratum-announce(We will provide more details on joining developer lists and Slack soon)
● Attend a Stratum Technical Steering Team call(Currently, alternating between Wednesday 4:30pm & Thursday 10am Pacific)
![Page 19: 9/11/2019 ONF Connect (NG-SDN Track) Brian O’Connor · 2019-09-26 · fpm backend (Broadcom) Tofino backend (Barefoot) bcm_demo.bin Control plane p4runtime.proto P4Runtime server](https://reader030.vdocuments.mx/reader030/viewer/2022040820/5e681adf8a995d463b118ca4/html5/thumbnails/19.jpg)
What’s Next for Stratum?
![Page 20: 9/11/2019 ONF Connect (NG-SDN Track) Brian O’Connor · 2019-09-26 · fpm backend (Broadcom) Tofino backend (Barefoot) bcm_demo.bin Control plane p4runtime.proto P4Runtime server](https://reader030.vdocuments.mx/reader030/viewer/2022040820/5e681adf8a995d463b118ca4/html5/thumbnails/20.jpg)
Stratum Roadmap1. Pushing Stratum towards production
○ Work towards feature parity with ONF’s Trellis and SEBA○ Additional core features for Telco stacks
(support for MPLS, VLAN, security, QoS, etc.)
2. Additional switch chip & platform support3. Formalizing and publishing a compliance test framework
○ Work to gain broader consensus on TestVectors approach○ Increase repo of test cases; build tools to make test generation easier
4. Beyond packet switches○ Stratum for Packet Transponders (see Leonid’s talk at 5pm today)○ Stratum for Smart NICs○ Stratum on a production-quality software switch
![Page 21: 9/11/2019 ONF Connect (NG-SDN Track) Brian O’Connor · 2019-09-26 · fpm backend (Broadcom) Tofino backend (Barefoot) bcm_demo.bin Control plane p4runtime.proto P4Runtime server](https://reader030.vdocuments.mx/reader030/viewer/2022040820/5e681adf8a995d463b118ca4/html5/thumbnails/21.jpg)
Stratum Roadmap1. Pushing Stratum towards production
○ Work towards feature parity with ONF’s Trellis and SEBA○ Additional core features for Telco stacks
(support for MPLS, VLAN, security, QoS, etc.)
2. Additional switch chip & platform support3. Formalizing and publishing a compliance test framework
○ Work to gain broader consensus on TestVectors approach○ Increase repo of test cases; build tools to make test generation easier
4. Beyond packet switches○ Stratum for Packet Transponders (see Leonid’s talk at 5pm today)○ Stratum for Smart NICs○ Stratum on a production quality software switch
The roadmap is defined by the community!
If you have ideas or want to push Stratum in a new direction, give a presentation at one of the
Stratum Technical Steering calls.
![Page 22: 9/11/2019 ONF Connect (NG-SDN Track) Brian O’Connor · 2019-09-26 · fpm backend (Broadcom) Tofino backend (Barefoot) bcm_demo.bin Control plane p4runtime.proto P4Runtime server](https://reader030.vdocuments.mx/reader030/viewer/2022040820/5e681adf8a995d463b118ca4/html5/thumbnails/22.jpg)
Stratum @ ONF Connect ‘19
![Page 23: 9/11/2019 ONF Connect (NG-SDN Track) Brian O’Connor · 2019-09-26 · fpm backend (Broadcom) Tofino backend (Barefoot) bcm_demo.bin Control plane p4runtime.proto P4Runtime server](https://reader030.vdocuments.mx/reader030/viewer/2022040820/5e681adf8a995d463b118ca4/html5/thumbnails/23.jpg)
P4 Program
Stra
tum
age
ntSwitch (Broker) Interface
Table Mgr Node Chassis Mgr
Chip Abstraction Managers Platform Mgr
gNMI gNOI
P4 Compiler
Switch SDK Platform API
Switch Chip(s) Peripheral(s)
P4Runtime
TestVectorsRunner
TestVectors
NG-SDN Track Preview
Stratum Internal Deep DiveWednesday, 2:30pm - 4pm
Testing and Qualifying Stratum Devices
Thursday, 2pm - 4pm
Stratum Ecosystem and Use CasesWednesday & Thursday,
4:30pm - 6pm Control Plane
µONOS EvolutionFriday, 2pm - 4pm
![Page 24: 9/11/2019 ONF Connect (NG-SDN Track) Brian O’Connor · 2019-09-26 · fpm backend (Broadcom) Tofino backend (Barefoot) bcm_demo.bin Control plane p4runtime.proto P4Runtime server](https://reader030.vdocuments.mx/reader030/viewer/2022040820/5e681adf8a995d463b118ca4/html5/thumbnails/24.jpg)
Demos @ ONF Connect ‘191. Stratum Interoperability
○ Community Launch Demo with multiple ASIC and platform vendors○ 8 Stratum switches in an IP routed, leaf-spine fabric○ Highlighting hardware independence and automatic full-lifecycle
operation
2. µONOS○ 3 Stratum switches○ Highlighting zero-touch provisioning and device configuration
3. SEBA○ 1 Stratum switch○ Highlighting top-down data plane programmability (offloading the BNG)
![Page 25: 9/11/2019 ONF Connect (NG-SDN Track) Brian O’Connor · 2019-09-26 · fpm backend (Broadcom) Tofino backend (Barefoot) bcm_demo.bin Control plane p4runtime.proto P4Runtime server](https://reader030.vdocuments.mx/reader030/viewer/2022040820/5e681adf8a995d463b118ca4/html5/thumbnails/25.jpg)
Stratum Interoperability Demo
IPv4 Leaf-Spine Fabric with ECMPL2 Bridging on the host
Connectivity to upstream router
![Page 26: 9/11/2019 ONF Connect (NG-SDN Track) Brian O’Connor · 2019-09-26 · fpm backend (Broadcom) Tofino backend (Barefoot) bcm_demo.bin Control plane p4runtime.proto P4Runtime server](https://reader030.vdocuments.mx/reader030/viewer/2022040820/5e681adf8a995d463b118ca4/html5/thumbnails/26.jpg)
Stratum @ ONF Connect ‘19Tutorial: https://github.com/opennetworkinglab/ngsdn-tutorial
Next-Gen SDN Keynote on Thursday @ 11am
![Page 27: 9/11/2019 ONF Connect (NG-SDN Track) Brian O’Connor · 2019-09-26 · fpm backend (Broadcom) Tofino backend (Barefoot) bcm_demo.bin Control plane p4runtime.proto P4Runtime server](https://reader030.vdocuments.mx/reader030/viewer/2022040820/5e681adf8a995d463b118ca4/html5/thumbnails/27.jpg)
Stratum Community
![Page 28: 9/11/2019 ONF Connect (NG-SDN Track) Brian O’Connor · 2019-09-26 · fpm backend (Broadcom) Tofino backend (Barefoot) bcm_demo.bin Control plane p4runtime.proto P4Runtime server](https://reader030.vdocuments.mx/reader030/viewer/2022040820/5e681adf8a995d463b118ca4/html5/thumbnails/28.jpg)
Stratum CommunityPioneer Phase Member Preview Phase
Launch Members (March 2018)
Mar. ‘18 Mar. ‘19
🎉 O
pen Source 🥳
Sept. ‘19
![Page 29: 9/11/2019 ONF Connect (NG-SDN Track) Brian O’Connor · 2019-09-26 · fpm backend (Broadcom) Tofino backend (Barefoot) bcm_demo.bin Control plane p4runtime.proto P4Runtime server](https://reader030.vdocuments.mx/reader030/viewer/2022040820/5e681adf8a995d463b118ca4/html5/thumbnails/29.jpg)
Stratum ContributorsThanks to everyone who has contributed code to the project!
Alex Yashchuk, PLVisionAndrea Campanella, ONFAntonin Bas, Barefoot NetworksBrian O'Connor, ONFCarmelo Cascone, ONFCraig Stevens, DellDavid Bainbridge, CienaDevjit Gopalpur, GoogleKaranam Phani, EdgecoreKrishna Kolakaluri, DeltaLeonid Khedyk, PLVisionMaksym Polovyi, PLVisionMaximilian Pudelko, ONF
Mohammed Habeeb, InventecMurali Krishna, CiscoRajesh Pandey, CiscoRavi Chalamcharla, BroadcomRemi Pelland, NoviFlowRohan Tibrewal, ONFTiffany Chiang, DeltaTom Everman, GoogleTomek Madejski, GoogleUyen Chau, ONFVolodymyr Veskera, PLVisionYi Tseng, ONFZubin Shah, Cavium
… as well as Anonymous Contributors from Google and commit co-authors
![Page 30: 9/11/2019 ONF Connect (NG-SDN Track) Brian O’Connor · 2019-09-26 · fpm backend (Broadcom) Tofino backend (Barefoot) bcm_demo.bin Control plane p4runtime.proto P4Runtime server](https://reader030.vdocuments.mx/reader030/viewer/2022040820/5e681adf8a995d463b118ca4/html5/thumbnails/30.jpg)
ONF’s 2019 Contributor AwardDesigned to recognize top ONF Community members who are:
● Top Code Contributors (or Code Removers)● Top Reviewers and Mentors● Top Ambassadors or Advocates● Contributors of Significant Components of a system● Consistently "chopping wood and carrying water" (helping everyone be more productive)
Antonin BasBarefoot Networks
Alireza GhaffarkhahGoogle
Devjit GopalpurGoogle
Yi TsengONF
For outstanding contributions to Stratum