25

Switch Abstraction Interface (SAI)

  • Upload
    others

  • View
    15

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Switch Abstraction Interface (SAI)
Page 2: Switch Abstraction Interface (SAI)

Switch Abstraction Interface (SAI)

Page 3: Switch Abstraction Interface (SAI)

SAI Contributors

Page 4: Switch Abstraction Interface (SAI)

Momentum, Timeline

V0.9.0

December 2014

• Supporting Companies (Dell, Mellanox, Microsoft, Broadcom, Facebook, Intel)

• 1st proposal

V0.9.1

December 2015

• Contributors (Dell, Mellanox, Microsoft)

• 7 proposals

• Versioning, Upstreaming, Pull requests

• First Demo!

V0.9.2

March 2015

• Contributors (Dell, Mellanox, Microsoft, Broadcom)

• 15+ proposals

• Possible deployment

V0.9.3

October 2015

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

• 20+ proposals covering a broad range of proprietary ASIC architecture.

• Official acceptance into OCP, Official GitHub

V0.9.4

March 2015

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

• Proposals with QoS, Warm Reboot, and Unified Tunneling

• Python Test Framework (PTF)

• SAI logical pipeline

Page 5: Switch Abstraction Interface (SAI)

Momentum, Demos & Deployment

1st Demo

• March 2015 OCP Summit

• 4 contributors

• Basic Router functionality

2nd Demo

• August SIGCOMM

• 7 Contributors

• Extended functionality like QoS, ACL, etc.

Prod• October Microsoft, SAI v.0.9.3

3rd Demo

• March 2016 OCP Summit

• 8 contributors

• 4 different NOS, 5 different ASICs, 5 different switching platforms, 1 SAI implementation

Page 6: Switch Abstraction Interface (SAI)

Technical Merit, Architectural philosophy

Does it define a pipeline/behavioral model?

Do we need to read an ASIC user manual?

Feature IS SAI CONFORMANT

Can we write a conformance test for it?

Can we run any generic application on it?

Page 7: Switch Abstraction Interface (SAI)

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

Page 8: Switch Abstraction Interface (SAI)

Software for Open Networking in the Cloud (SONiC)

Page 9: Switch Abstraction Interface (SAI)

SONiC Contributors

Page 10: Switch Abstraction Interface (SAI)

3/8/2016

OCP Networking Landscape

SAI

Hardware

Components

Packet Forwarding

Chip

(ASIC)

SONiC

OCP Hardware

Open Network Linux

ONIE

Software

Networking

Components

Switch State

Service

SONiC and the OCP Stack

IS

SW components for building network switch

functions

100% Open Sourced

OCP community supported

Deployed in a Microsoft datacenter

IS NOT

A Linux distribution

Hardware components

Just prototyped software

Page 11: Switch Abstraction Interface (SAI)

SONiC

Network Switch

ASICs

Network Switch

Hardware

Base OS and

installer

Interoperability

certified by

OCP

Solution

Providers (SPs)

OCP SW

components

3rd Party SW

components

BYO custom

SW components

SAI compatible

OCP approved

ONIE, ONL

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

SONiC framework

OCP Ecosystem Enhanced with SONiC

Page 12: Switch Abstraction Interface (SAI)

What Is SONiC

•Builds on the foundations of SAI

•Provides L2/L3 functionalities

•Loosely-coupled modular design

•Separation of states and logic

A collection of software components/tools

•Shared on GitHub, Apache License

•Believe in working code + quick iteration

Community driven, open source effort

Page 13: Switch Abstraction Interface (SAI)

What can SONiC enable?

Building complete and production-ready stack

•ASICs (through SAI)

•Platform (Arista 7050QX, Dell S6000, Mellanox Spectrum, ongoing with

ONL)

•Base Linux Distribution (Debian/Ubuntu/ONL)

Easy portability

• for both prototype and production

Fast evolution

Page 14: Switch Abstraction Interface (SAI)

SONiC High Level Architecture

Chassis

Supplier

ASIC

Supplier

Linux

OCP

Various

ASIC

Switch Hardware

TransceiverFan/Power/LED

Network Applications

ASIC SDK

SAI

Ke

rne

lU

se

r S

pace

Switch State Service

Network

device drivers

netdevASIC PCI driver

HW Peripheral

drivers

PAL - sysfs

SDI

PAS

Object Library

Object Library

Linux

Page 15: Switch Abstraction Interface (SAI)

Switch State Service (SSS)

APP

DB

SAI DB Obje

ct

Lib

rary

w/

Redis

Backen

d

ASIC

SAI

Network

Applications

SyncD

Orchestration Agent

SAI DB: persist SAI objects

App DB: persist App objects

DB backend: redis with object library

SyncD: sync SAI objects between software and hardware

Orchestration Agent: translation between apps and SAI objects, resolution of dependency and conflict

Key Goal: Evolve components independently

Page 16: Switch Abstraction Interface (SAI)

How Routing Works in SONiC

APP

DB

SAI DB

SyncD

Orchestration Agent

ASIC

Transceivers

Host Intf

netdev

BGP

NeighborZebraBGPd

socket

SAI Route

SAI Redis

teamsyncd

Page 17: Switch Abstraction Interface (SAI)

APP

DB

SAI DB

SyncD

Orchestration Agent

ASIC

Transceivers

Host Intf

netdev

LACP

NeighborteamD

socket

SAI lag

How LAG Works in SONiC

teamD

netdev

SAI Redis

teamsyncd

Page 18: Switch Abstraction Interface (SAI)

▪ PAS is implemented as daemon (PAS daemon)▪ monitor system device health and raises failure events

▪ detects insertion/removal events (fan, PSU’s, transceivers)

▪ detects over-temperature events

▪ allows applications to control system devices (get/set)

▪ SDI encapsulates and aggregates system devices▪ For instance, the SDI API defines a “fan device entity” with attributes such as:

▪ fan unit presence: implemented in CPLD and accessed through “sysfs”

▪ fan speed: fan controller driver used to set/get fan speed (through I2C ioctl calls or sysfs calls, 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 Support

SDI Library

HW Peripheral drivers

sysfs

SDI API

PAS Daemon

Object Library API

User Space

Device

Drivers

Page 19: Switch Abstraction Interface (SAI)

SONiC Platform Applications

▪ Platform Applications ▪ use the PAS Object Library API to control

(set/get) system devices

▪ register for events published by PAS daemon

▪ Device Insertion / removal

▪ Other events (e.g. over-temperature events, device failures)

For instance, a thermal control (cooling) application can register for “over-temperatureevents and increase (set) fan speed values accordingly. SDI Lib

HW Peripheral drivers

sysfs

SDI API

PAS Daemon

Object Library API

User Space

Device

Drivers

Thermal Control

(Cooling)

Transceiver

Status and Control

LED Control

Page 20: Switch Abstraction Interface (SAI)

Demo: SONiC Walk Through

EEPROM

Port Status

TCPDump

Redis

Quagga and FIB

Page 21: Switch Abstraction Interface (SAI)

▪ What is the real scenario?▪ Hot patching

▪ Rollout new features, e.g. BMP

▪ How is this achieved?1. Neighbor supports graceful restart

2. DUT request OA to freeze FIB

3. DUT uninstalls Quagga

4. DUT installs GoBGP

5. DUT wait for route convergence

6. DUT request OA to unfreeze FIB

Demo: Hitless Quagga to GoBGP Migration

Neighbor

Server 1

Server 2

DUT

Page 22: Switch Abstraction Interface (SAI)

Demo at the Microsoft Booth24 U

1 U AALF (DELL S6000)1 U BBLF (MLNX 2700)1 U CCLF (CAVIUM)1 U DDLF (BAREFOOT)1 U EELF (CENTEC)

1 U 01ToR (DELL S6000)1 U 02ToR (MLNX 2700)

1 U Mgmt Switch 48x1G

1 U Host_A (400W)1 U Host_B (400 W)1 U Host_C (400 W)

1 U PTF Controller (400 W)1 U DELL S60001 U MNLX S27001 U CAVIUM1 U CENTEC

2 U DELL S6100

1 U DIGI

1 U BAREFOOT

1 U FFLF (ARISTA)

Page 23: Switch Abstraction Interface (SAI)

Feature Functionality Demo

mgmt: 192.168.200.12lo0: 100.0.0.3

mgmt: 192.168.200.13lo0: 100.0.0.4

mgmt: 192.168.200.14lo0: 100.0.0.5

mgmt: 192.168.200.15lo0: 100.0.0.6

.2 .6 .10 .14 .14.10.6.2

10.10.1.0 (/30s)

10.10.2.0 (/30s)

.1.1

.5 .5 .9 .9 .13 .13

Host_A

Host_C

ProtocolStack

SAI

01ToR

mgmt: 192.168.200.10lo0: 100.0.0.1

ProtocolStack

SAI

02ToR

mgmt: 192.168.200.11lo0: 100.0.0.2

10.20.1/24VLAN 851

10.20.2/24VLAN 852

ProtocolStack

SAI

AALFProtocol

Stack

SAI

BBLFProtocol

Stack

SAI

CCLFProtocol

Stack

SAI

DDLF

mgmt: 192.168.200.16lo0: 100.0.0.7

ProtocolStack

SAI

EELF

.17

.17

.18.22 .22

mgmt: 192.168.200.40

mgmt: 192.168.200.42

.2 .6 .10 .14 .14.10.6.2

10.10.1.0 (/30s)

10.10.2.0 (/30s)

.1.1

.5 .5 .9 .9 .13 .13

ProtocolStack

SAI

01ToRProtocol

Stack

SAI

02ToR

ProtocolStack

SAI

AALFProtocol

Stack

SAI

BBLFProtocol

Stack

SAI

CCLFProtocol

Stack

SAI

DDLFProtocol

Stack

SAI

EELF

.17

.17

.18.22

.18

mgmt: 192.168.200.17lo0: 100.0.0.8

ProtocolStack

SAI

EELF

.17

ProtocolStack

SAI

EELF

.21

.17

.21

Page 24: Switch Abstraction Interface (SAI)

▪ Python based test framework

▪ 20+ test cases

▪ Working towards compliancy

▪ Looking for community participation

▪ Future proposals accepted only with PTF test cases

Python Test Framework Demo

4X40G 4x40G 4x40G 4x40G

mgmt: 192.168.200.20

mgmt: 192.168.200.22

mgmt: 192.168.200.21

mgmt: 192.168.200.23

FANOUTDELL S6100

mgmt: 192.168.200.25

SAI

DELL S6000

SAI

CAVIUM

SAI

MLNX

SAI

CENTEC

PTF_controller40G

mgmt: 192.168.200.24

SAI

BAREFOOT

4x40G

mgmt: 192.168.200.1

Page 25: Switch Abstraction Interface (SAI)

▪ 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/

Open Invitation