sonic extension infrastructure… · an application running in sonic nos, solving specific use case...

16
SONIC Extension Infrastructure Matty Kadosh Mellanox

Upload: others

Post on 09-Jun-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SONIC Extension Infrastructure… · An application running in SONiC NOS, solving specific use case Integrate with SONiC infrastructure i.e. SAI, Redis DB No impact on SONiC - Using

SONIC Extension Infrastructure

Matty Kadosh

Mellanox

Page 2: SONIC Extension Infrastructure… · An application running in SONiC NOS, solving specific use case Integrate with SONiC infrastructure i.e. SAI, Redis DB No impact on SONiC - Using

Adding Application Logic to Open NOS

SONiC Extensions

Page 3: SONIC Extension Infrastructure… · An application running in SONiC NOS, solving specific use case Integrate with SONiC infrastructure i.e. SAI, Redis DB No impact on SONiC - Using

An application running in SONiC NOS, solving specific use case

Integrate with SONiC infrastructure i.e. SAI, Redis DB▪ No impact on SONiC - Using SAI flex interface + REDIS DB

▪ All enhancements over SONiC are automated & auto generated

Combination of application needs and dataplane capabilities

A ‘plus’ application should be containerized for modularity

What is SONiC+?

Specifications

Page 4: SONIC Extension Infrastructure… · An application running in SONiC NOS, solving specific use case Integrate with SONiC infrastructure i.e. SAI, Redis DB No impact on SONiC - Using

SONiC+ Telemetry

Telemetry Collector

Match : marker

Action : Collect telemetry

Match : marker

Action : Collect telemetry

Match : marker

Action : Collect telemetry Flow + marker Flow + marker

Telemetry summary

Telemetry summary

Flow + marker Flow + marker

Telemetry Agent

Telemetry Agent

Telemetry Agent

Telemetry summary

SONiC+ Flow base telemetry

Page 5: SONIC Extension Infrastructure… · An application running in SONiC NOS, solving specific use case Integrate with SONiC infrastructure i.e. SAI, Redis DB No impact on SONiC - Using

▪ Stateful Load balancing @ switch line rate

▪ Can run on existing ToR switch excluding the extra load balancer servers hop

▪ Can run in addition to all SONiC functionality

Making use of the SAI Flex APIs

SONiC+ Load Balancer

SONiC+ Load Balancer

Specifications

Page 6: SONIC Extension Infrastructure… · An application running in SONiC NOS, solving specific use case Integrate with SONiC infrastructure i.e. SAI, Redis DB No impact on SONiC - Using

SONiC+ – Components

SONiC+ Application extension

SONiC+ Orch Agent extension

SONiC+ syncD extension

SONiC+ SAI extension

Page 7: SONIC Extension Infrastructure… · An application running in SONiC NOS, solving specific use case Integrate with SONiC infrastructure i.e. SAI, Redis DB No impact on SONiC - Using

SONiC+ Application Extension

APP DB

FRR

TeamD

User App

SWSS

API

Page 8: SONIC Extension Infrastructure… · An application running in SONiC NOS, solving specific use case Integrate with SONiC infrastructure i.e. SAI, Redis DB No impact on SONiC - Using

SONiC+ SAI Extension

Mellanox P4 Compiler

user.p4

SAI pipeline

Mellanox SDK

Auto generated FLEX SAI API

User app

Userpipeline

Ability to add changes to data plane according to costumer needs

https://githubcom/opencomputeproject/SAI/tree/master/flexsai/p4

Page 9: SONIC Extension Infrastructure… · An application running in SONiC NOS, solving specific use case Integrate with SONiC infrastructure i.e. SAI, Redis DB No impact on SONiC - Using

Making use of the SAI Flex APIs

SONiC+ Tunnel

▪ Support tunnel mapping to overlay networks▪ Support VRF peering to increase routing scale▪ Use case:▪ Connect bare metal servers to overlay networks

SONiC+ Tunnel

Tunnel encap cache

Tunnel decap

Underlay routing Tunnel encap

VM

VM

VM

Bare Metal Host

SONIC

Bare Metal Host

Page 10: SONIC Extension Infrastructure… · An application running in SONiC NOS, solving specific use case Integrate with SONiC infrastructure i.e. SAI, Redis DB No impact on SONiC - Using

SONiC+ Tunnel

▪ VNET-virtual network

▪ VNET peering -Peering between virtual networks

Implementation:

▪ VNET -> VRF

▪ VNET1 peering with VNET2 -> copy route from VNET1 to VNET2 and vice versa

VNET peering in Legacy network

VMs

1.1 VMs

1.1 VMs

1.1 VMs 2.1

VNET 1

VMs

1.1 VMs

1.1 VMs

1.1 VMs 1.1

VNET 3

VMs

1.1 VMs

1.1 VMs

1.1 VMs 3.1

Peerin

g

Peerin

g

VNET 2

SONIC-BMToR

BM B

BM C

VRF 1 router

VNET1 routers

VRF 2 router

VNET2 routers

VNET2 routers

VNET1 routers

VNET3 routers

VRF 3 router

VNET3 routers

VNET2 routers

Scalable Port 2

BM A Port 1

Port 3

1K VMs and 100 VNETs will

require up to 10M routes !!!

Page 11: SONIC Extension Infrastructure… · An application running in SONiC NOS, solving specific use case Integrate with SONiC infrastructure i.e. SAI, Redis DB No impact on SONiC - Using

SONiC+ Tunnel

▪ Two match action tables

▪ Port to VNET ▪ Key: Port

▪ Action Set metadata

▪ metadata = VNET ID

▪ VNET routing ▪ Key: metadata , prefix

▪ metadata vector of VNET peers

▪ Action: next hop

▪ VNET1 peering with VNET2 -> turn on VNET1 VNET ID in VNET routing metadata of all routes originated by VNET2▪ A single route per VM

▪ Single update per VM route

VNET peering in programmable network

VMs

1.1 VMs

1.1 VMs

1.1 2.2.2.2

VNET 1

VMs

1.1 VMs

1.1 VMs

1.1 1.1.1.1

VNET 3

VMs

1.1 VMs

1.1 VMs

1.1 3.3.3.3

VNET 2

SONIC-BMToR

BM B

BM C

Port 2

BM A Port 1

Port 3

key action

port matadata

VNET ID

1 0x1

2 0x2

3 0x4

Key action

Allowed

VNET ID

Prefix Next

hop

0x1 1.1.1.1 VM ..

0x2 2.2.2.2 VM …

0x4 3.3.3.3 VM ..

Key action

Allowed

VNET ID

Prefix Next

hop

0x3 1.1.1.1 VM ..

0x7 2.2.2.2 VM …

0x6 3.3.3.3 VM ..

Peerin

g

Peerin

g

Page 12: SONIC Extension Infrastructure… · An application running in SONiC NOS, solving specific use case Integrate with SONiC infrastructure i.e. SAI, Redis DB No impact on SONiC - Using

SONiC+ Tunnel

SAI pipeline

Mellanox SDK

Auto generated API

Pars

er

port BMToR

PipeLine

Bridg

e

rou

ter

tun

ne

l

depars

er

Current

SONiC+ Tunnel

syncD

Orch Agent

syncD

Orch Agent

Page 13: SONIC Extension Infrastructure… · An application running in SONiC NOS, solving specific use case Integrate with SONiC infrastructure i.e. SAI, Redis DB No impact on SONiC - Using

SONiC+ Tunnel

SAI pipeline

Mellanox SDK

Auto generated API

Pars

er

port BMToR

PipeLine

Bridg

e

rou

ter

tun

ne

l

depars

er

Desired

SONiC+ Tunnel

syncD

Orch Agent

syncD

Orch Agent

Page 14: SONIC Extension Infrastructure… · An application running in SONiC NOS, solving specific use case Integrate with SONiC infrastructure i.e. SAI, Redis DB No impact on SONiC - Using

SAI lib

SONiC+ - syncD extension

▪ Auto generate SAI API

▪ Dynamic link new SAI API

ASIC DBsyncd

SAI lib

Page 15: SONIC Extension Infrastructure… · An application running in SONiC NOS, solving specific use case Integrate with SONiC infrastructure i.e. SAI, Redis DB No impact on SONiC - Using

SONiC+ - Orch Agent extension

▪ Auto gen SAI Redis API

▪ Create APP DB abject ID in order to be able to correlate ASIC DB entry to APP DB entry

APP DB

ASIC DB

orchagent

my agent

Abject ID

Abject ID

Page 16: SONIC Extension Infrastructure… · An application running in SONiC NOS, solving specific use case Integrate with SONiC infrastructure i.e. SAI, Redis DB No impact on SONiC - Using

Application resource monitoring

▪ Use Abject id in order to map between ASIC resources to App resources

▪ ACRM generic code

▪ APP Abject id to ASIC may be vendor specific

APP DB

ASIC DB

orchagent

ACRM

Abject ID

Abject ID