Sei sulla pagina 1di 25

Switch Abstraction Interface

(SAI)
SAI Contributors
Momentum, Timeline
• Supporting Companies (Dell, Mellanox, Microsoft, Broadcom, Facebook, Intel)
V0.9.0 • 1st proposal
December 2014

• Contributors (Dell, Mellanox, Microsoft)


• 7 proposals
V0.9.1 • Versioning, Upstreaming, Pull requests
• First Demo!
December 2015

• Contributors (Dell, Mellanox, Microsoft, Broadcom)


• 15+ proposals
V0.9.2
• Possible deployment
March 2015

• Contributors (Dell, Mellanox, Microsoft, Broadcom, Cavium, Barefoot, Metaswitch


• 20+ proposals covering a broad range of proprietary ASIC architecture.
V0.9.3
• Official acceptance into OCP, Official GitHub
October 2015
• Contributors (Dell, Mellanox, Microsoft, Broadcom, Cavium, Barefoot, Metaswitch, Centec)
• Proposals with QoS, Warm Reboot, and Unified Tunneling
V0.9.4 • Python Test Framework (PTF)
March 2015 • SAI logical pipeline
Momentum, Demos & Deployment
• March 2015 OCP Summit
• 4 contributors
1st Demo • Basic Router functionality

• August SIGCOMM
• 7 Contributors
2nd Demo • Extended functionality like QoS, ACL, etc.

• October Microsoft, SAI v.0.9.3


Prod

• March 2016 OCP Summit


• 8 contributors
• 4 different NOS, 5 different ASICs, 5 different switching platforms, 1 SAI implementation
3rd Demo
Technical Merit, Architectural philosophy
Does it define a pipeline/behavioral model?

Can we write a conformance test for it?

Can we run any generic application on it?

Do we need to read an ASIC user manual?

Feature IS SAI CONFORMANT


SAI keeps momentum
▪ Increasing in number of contributors

▪ Increasing in number of proposals

▪~ 3 releases a year

▪ Heading towards testing compliancy

▪ Working on a logical pipeline


Software for Open
Networking in the Cloud
(SONiC)
SONiC Contributors
OCP Networking Landscape
SONiC and the OCP Stack

IS NOT
Software
IS SONiC Switch State
Networking
Components Service

SW components for building network switch


A Linux distribution
functions

Open Network Linux SAI


100% Open Sourced
Hardware components
OCP community supported
OCP Hardware
Packet Forwarding
Hardware
Deployed in a Microsoft datacenter Just prototyped software
ONIE Chip
3/8/2016 Components
(ASIC)
OCP Ecosystem Enhanced with SONiC
SONiC framework
Network Switch SAI compatible
ASICs
OCP SW
Interoperability components
certified by
Network Switch
Hardware
OCP approved
OCP 3rd SONiC
Party SW
Solution components
Providers (SPs)

Base OS and BYO custom


ONIE, ONL SW components
installer

Fully Open Sourced switching platform - Increased choices for OCP end users
What Is SONiC

A collection of software components/tools

•Builds on the foundations of SAI


•Provides L2/L3 functionalities
•Loosely-coupled modular design
•Separation of states and logic

Community driven, open source effort

•Shared on GitHub, Apache License


•Believe in working code + quick iteration
What can SONiC enable?
Building complete and production-ready stack

Easy portability

•ASICs (through SAI)


•Platform (Arista 7050QX, Dell S6000, Mellanox Spectrum, ongoing with
ONL)
•Base Linux Distribution (Debian/Ubuntu/ONL)

Fast evolution

• for both prototype and production


SONiC High Level Architecture
Linux
Network Applications

Object Library

Switch State Service


User Space

Object Library SAI


PAS
ASIC SDK
SDI
Kernel

PAL - sysfs netdev


ASIC PCI driver
HW Peripheral Network
drivers device drivers

Various
OCP
Chassis Switch Hardware
Supplier
ASIC Fan/Power/LED Transceiver ASIC
Supplier
Linux
Switch State Service (SSS)

SAI DB: persist SAI objects


Network
Applications

App DB: persist App objects


DB backend: redis with object library APP
DB

Object Library w/
SyncD: sync SAI objects between software and

Redis Backend
hardware Orchestration Agent

Orchestration Agent: translation between apps and


SAI objects, resolution of dependency and conflict SAI DB

SyncD
Key Goal: Evolve components independently
SAI

ASIC
How Routing Works in SONiC

BGP BGPd Zebra teamsyncd


Neighbor

APP
DB

Orchestration Agent

SAI Redis SAI DB

socket

Host Intf SyncD


netdev

ASIC SAI Route

Transceivers
How LAG Works in SONiC
LACP
teamD teamsyncd
Neighbor

APP
DB

Orchestration Agent

socket
SAI Redis SAI DB
teamD
netdev
Host Intf SyncD
netdev

ASIC SAI lag

Transceivers
SONiC Platform Support
▪ PAS is implemented as daemon (PAS daemon)
▪ monitor system device health and raises failure events
Object Library API
▪ detects insertion/removal events (fan, PSU’s, transceivers)
PAS Daemon
▪ detects over-temperature events
▪ allows applications to control system devices (get/set) SDI API
User Space

▪ SDI encapsulates and aggregates system devices Device


Drivers
SDI Library
▪ For instance, the SDI API defines a “fan device entity” with attributes such as:
▪ fan unit presence: implemented in CPLD and accessed through “sysfs” sysfs

▪ fan speed: fan controller driver used to set/get fan speed (through I2C ioctl calls or sysfs calls, HW Peripheral drivers
depending on fan controller device implementation)
▪ Implementation details of how “fan device entity” attributes are accessed is encapsulated by
SDI API
▪ SDI library implementation can use either sysfs/kernel drivers or user space
drivers
SONiC Platform Applications
Thermal Control
(Cooling)
▪ Platform Applications
Transceiver
▪ use the PAS Object Library API to control Status and Control
(set/get) system devices
LED Control
▪ register for events published by PAS daemon
▪ Device Insertion / removal
▪ Other events (e.g. over-temperature events, device Object Library API

failures)
PAS Daemon

SDI API
For instance, a thermal control (cooling) application User Space
can register for “over-temperature Device
events and increase (set) fan speed values Drivers

accordingly. SDI Lib

sysfs

HW Peripheral drivers
Demo: SONiC Walk Through
EEPROM

Port Status

TCPDump

Redis

Quagga and FIB


Demo: Hitless Quagga to GoBGP Migration
▪ What is the real scenario?
Server 1
▪ Hot patching
▪ Rollout new features, e.g. BMP

Neighbor
▪ How is this achieved?
1. Neighbor supports graceful restart
2. DUT request OA to freeze FIB
3. DUT uninstalls Quagga
4. DUT installs GoBGP DUT

5. DUT wait for route convergence


6. DUT request OA to unfreeze FIB
Server 2
Demo at the Microsoft Booth
24 U
1U DIGI
1U Mgmt Switch 48x1G

1U AALF (DELL S6000)


1U BBLF (MLNX 2700)
1U CCLF (CAVIUM)
1U DDLF (BAREFOOT)
1U EELF (CENTEC)
1U FFLF (ARISTA)
1U 01ToR (DELL S6000)
1U 02ToR (MLNX 2700)
1U Host_A (400W)
1U Host_B (400 W)
1U Host_C (400 W)

1U PTF Controller (400 W)


1U DELL S6000
1U MNLX S2700
1U CAVIUM
1U CENTEC
1U BAREFOOT
2U DELL S6100
Feature Functionality Demo
mgmt: mgmt: mgmt: mgmt: mgmt: mgmt:
192.168.200.12 192.168.200.13 192.168.200.14 192.168.200.15 192.168.200.16 192.168.200.17
lo0: 100.0.0.3 lo0: 100.0.0.4 lo0: 100.0.0.5 lo0: 100.0.0.6 lo0: 100.0.0.7 lo0: 100.0.0.8

AALF
AALF BBLF
BBLF CCLF
CCLF DDLF
DDLF EELF
EELF EELF
EELF
Protocol
Protocol Protocol
Protocol Protocol
Protocol Protocol
Protocol Protocol
Protocol Protocol
Protocol
Stack
Stack Stack
Stack Stack
Stack Stack
Stack Stack
Stack Stack
Stack

SAI
SAI SAI
SAI SAI
SAI SAI
SAI SAI
SAI SAI
SAI

.17
.17 .21
.1
.1 .17
.17 .17
.21
.1
.1 .5
.5 .5
.5 .9
.9 .9
.9 .13
.13 .13
.13
.17

.18
.2
.2 .6
.6 .10
.10 .14
.14 .2
.2 .6
.6 .10
.10 .14
.14
.22
.22 .22
.18
.18
01ToR
01ToR 02ToR
02ToR
Protocol
Protocol Protocol
Protocol
Stack
Stack 10.10.1.0 ((/30s
10.10.1.0 /30s)) Stack
Stack

SAI
SAI 10.10.2.0 ((/30s
10.10.2.0 /30s)) SAI
SAI
10.20.1/24 10.20.2/24
VLAN 851 VLAN 852

Host_C
Host_A
mgmt: mgmt:
mgmt:
192.168.200.10 192.168.200.11
192.168.200.42
lo0: 100.0.0.1 lo0: 100.0.0.2
mgmt:
192.168.200.40
Python Test Framework Demo

▪ Python based test framework mgmt:


192.168.200.20
mgmt:
192.168.200.22
mgmt:
192.168.200.21
mgmt:
192.168.200.23
mgmt:
192.168.200.24

▪ 20+ test cases


DELL S6000 CAVIUM MLNX CENTEC BAREFOOT

SAI SAI SAI SAI SAI

▪ Working towards compliancy

▪ Looking for community 4X40G 4x40G 4x40G 4x40G 4x40G

participation FANOUT
DELL S6100

▪ Future proposals accepted only


40G PTF_controller
mgmt:
192.168.200.1

with PTF test cases mgmt:


192.168.200.25
Open Invitation
▪ Inviting contributions in all areas
▪ SAI
▪ Hardware platform

▪ Base OS platform (Ubuntu/ONL happening)

▪ New features and applications

▪ Use it!

▪ Starting Point: http://azure.github.io/SONiC/

Potrebbero piacerti anche