S O N i C - Programmability, Extensibility and Beyond

David A. Maltz Distinguished Engineer Microsoft Azure Networking Application & Management tools

SONiC [Software For Open Networking in the Cloud] Switch Switch

SAI [Switch Abstraction Interface] Silicon/ASIC SONiC Recap – Containerized Open Source NOS

Platform Agnostic

Velocity

Reliability What Is New -

• SONiC supports Open Optical Monitoring (OOM) • Richer features, thanks to • Alibaba: Vlan Trunk, TACACS, etc. and leading streaming telemetry work • LinkedIn: leading FRR integration, BGP convergence and Open 19 • Tencent: leading VRF work • Mellanox: leading RDMA work • Richer classes of devices • Arista: modular chassis • Marvell: ARM-based switch • Richer scenarios via programmability • SONiC Network Virtualization New Challenges from Broad Spectrum of Workload

management management

software software

software software Case Study - VNET Peering in Legacy Network 1K VMs and 100 VNETs will Traditional Implementation require up to 10M routes !!! VMs • VNET represented by VRF VMs 1.1 VMs 1.1 VMs 1.1 VNET 1 1.1 • VNET1 peering with VNET2 implies VRF 1

copy routes from VNET1 to VNET2 VNET1 routers Peering Service A Port 1 and vice versa VNET2 routers • 1K VMs and 100 VNETs will require up to 10M routes !!! K- VMs per ScalableVRF 2 router VMs VNET 0 – VNETs Service B Port 2 VNET2 routers VMs VNET1 routers 1.1 VMs 1.1 VMs 2.1 VNET3 routers VNET 2 1.1

VRF 3 router Peering VNET3 routers Service C Port 3 VNET2 routers

VMs VMs 1.1 VMs 1.1 VMs 3.1 VNET 3 1.1 VNET Peering in Programmable Network SONiC Implementation 1K VMs and 100 VNETs need only 100k routes • Two match action tables VMs VMs Port to VNET SONIC ToR 1.1 VMs1.1.1.1 • VNET 1 1.1 • Key: Port 1.1

• Action Set metadata Peering • Where metadata = VNET ID Service A Port 1

• VNET key action key action port Set metadata Allowed Prefix Next hop • Key: metadata, prefix VNET ID VNET IDID VMs Where metadata vector of VNET 1 0x1 0x1 1.1.1.1 VM .. • 0x3 1.1.1.1 VM .. VMs peers Service B Port 2 1.1 VMs 2 0x2 0x2 2.2.2.2 VM … 1.1 2.2.2.2 • Action: next hop 0x7 VNET 2 1.1 3 0x4 0x4 3.3.3.3 VM .... VNET1 peering with VNET2 -> 0x6

• Peering turn on VNET1 VNET ID in VNET routing metadata of all routes Service C Port 3 originated by VNET2 • A single route per VM VM update requires a single route VMs • VMs update 1.1 VMs 1.1 3.3.3.3 VNET 3 1.1 SAI Part: Programmable SAI API

NOS Application SandBox User programs tunnel app

P FLEX Auto generated SAI objects

4 4 SAI Compiler SAI SAI host adapter

SAI pipeline

Tunnel.p4

1 2

3 …

port

flex

Flex

Flex

tunnel

router

Bridge

Parser Parser deparser

HW RO blocks flex M&A flex parser flex de-parser • Multiple switching SW options, develop apps • SAIFlexAPI – uniform API for all programing language SONIC Part: Supporting VNET

SONiC Switch • RestAPI: Provide RestAPI for external SONiC Stack • Allow external control to config the switch • Provides real-time data path counters and RestAPI Server Quagga ARP resource monitoring • Use OpenAPI specification (swagger) SWSS

Orchagent • SWSS/Orchestration Agent • Use SAI with tunnel extension API SAI with tunnel extension • Provide tunnel support to upper applications ASIC SONiC Part: Achieving Scalability via DPDK

SONiC Switch • SWSS/Orchestration agent: manage multiple SAI instances SONiC Stack • Manage tunnel entry cache between DPDK and ASIC RestAPI Quagga ARP Server • Server: data plane scalability and programmability • 16M tunnels • 40G/100G line rate Server SWSS • 25 ~ 30 us forwarding latency

VXLAN Orchagent • ASIC: High port density and rich data plane Encap functionality SAI – DPDK SAI - ASIC DPDK • Tunnel entry cache • Underlay routing • Traffic policing/shaping ASIC CPU • ACL • Mirroring Demo: SONiC for Network Virtualization

SONIC-BMToR VM 1 192.168.3.1

VM 2 192.168.3.2 Port 4 BM1 Port 1

VM 3 192.168.3.3

Port Port

Port Port 2 Demo setup 3 Demo: SONiC on Chassis Switch Moving Forward: Enabling WAN Scenarios

• Global network is growing exponentially, requires • Agility for fast Time to Market feature release and defect remediation • To minimize hardware dependencies • To scale and grow the WAN efficiently while controlling costs

• Sonic is an integral element of our cloud SDN solutions for intelligent traffic management

• Two major roles • Edge Peering Router • Backbone Router More Demos in Microsoft (A11) and Partner Booths Pizza box and Chassis New ASIC Supported

Rich Hardware Platform Supported Virtualization Programmability Open Invitation

• OCP SONiC/SAI workshop on 3/22

• Inviting contributions in all areas • SONiC/SAI • Hardware platform • New features, applications and tools • Download it, test it and use it!

Website: https://azure.github.io/SONiC/ Mailing list: [email protected] Source code: https://github.com/Azure/SONiC/blob/gh-pages/sourcecode.md Wiki: https://github.com/Azure/SONiC/wiki/