Professional Documents
Culture Documents
Sonic: Software For Open Networking in The Cloud
Sonic: Software For Open Networking in The Cloud
Lihua Yuan
Microsoft Azure Network Team
for
the SONiC Community
Application & Management
SONiC Community @ OCP Mar 2018
… … …
Tier 2 - Spine T2-1-1 T2-1-2 T2-1-8 T2-4-1 T2-4-2 T2-4-4
… … …
Tier 1 – Row Leaf T1-1
SONIC T1-2
SONIC T1-7
SONIC T1-8
SONIC
T1-1
SONIC T1-2
SONIC T1-7
SONIC T1-8
SONIC T1-1
SONIC T1-2
SONIC T1-7
SONIC T1-8
SONIC
… … …
Tier 0 - Rack T0-1
SONIC T0-2
SONIC T0-20
SONIC T0-1
SONIC T0-2
SONIC T0-20
SONIC T0-1
SONIC T0-2
SONIC T0-20
SONIC
Faster Reduce
Technology Operational
Evolution Burden
Disaggregation
with
SONiC
Open &
Choices of Vendors &
Modular
Platforms
Software
SONiC: Software for Open Networking in the Cloud
• Switch Abstraction Interface (SAI)
• Cross-ASIC portability
• Containerization of SONiC
• Serviceability
• Cross-platform portability
Network Applications
Network Applications Simple, consistent, and
Network Applications stable network
application stack
Hello
• Register SAI APIs to achieve specific functions and control logging separately
• Construct the right order to execute SAI function calls
• Refer to SAI Pipelines to create the right packet action flow
get_switch_attribute get_switch_attribute
create_route create_neighbor
create_host_interface create_host_interface
Next
Port RIF Route Neigh RIF Port
Hop
SONiC: Software for Open Networking in the Cloud
• Switch Abstraction Interface (SAI)
• Cross-ASIC portability
• Containerization of SONiC
• Serviceability
• Cross-platform portability
Object Library
SAI
ASIC SDK
Kernel
Various
OCP
Chassis Switch Hardware
Supplier
Object Library w/
Redis Backend
hardware Orchestration Agent
Orchestration Agent: translation between apps and
SAI objects, resolution of dependency and conflict SAI DB
SAI
ASIC
How SAI Objects are Stored in SAI Database
• APP DB:
• Application oriented SAI DB
• Human readable
• SAI DB:
• SAI oriented
• Query-able and machine parse-able KEY SAI_OBJECT_TYPE:SAI_OBJECT_ID
• Snapshot of the current SAI state SAI_OBJECT_ATTR VALUE
• APIs:
SAI_OBJECT_ATTR VALUE
SAI_OBJECT_ATTRSAI DB
VALUE
• sai_create_api SAI_OBJECT_TYPE_NEXT_HOP:00000001
• sai_set_api SAI_NEXT_HOP_ATTR_IP 10.0.0.1
• sai_get_api* SAI_NEXT_HOP_ATTR_TYPE SAI_NEXT_HOP_IP
• sai_remove_api
*Used only when querying ASIC settings and configurations
13
How Routing Works in SONiC
BGP BGPd Zebra fpmsyncd
Neighbor
APP
DB
Orchestration Agent
socket
Transceivers
How LAG Works in SONiC
LACP
teamD teamsyncd
Neighbor
APP
DB
Orchestration Agent
socket
teamD
SAI Redis SAI DB
netdev
Host Intf
netdev
SyncD
Transceivers
SONiC Containerization
• TEAMD
LLDP SNMP BGP
• LLDP
DHCP TEAMD
• BGP: Quagga or FRR
• SNMP: Net-SNMP + SNMP subagent
SYNCD SWSS Database • DHCP Relay: isc dhcp
• Platform: sensors
Utility Platform • SWSS: switch state service
• DB: Redis
SONiC Base Image
• Syncd: sairedis + syncd agent
SONiC Containerization
1 2 1
• Security patches, bug LEAF 6 Server:
SONiC SWARM
fixes need to be rolled
out in hours 1 2 1
6
SONiC Container
Soft Switch
25
Open Invitation
Website: https://azure.github.io/SONiC/
Mailing list: sonicproject@googlegroups.com
GitHub: https://github.com/Azure/SONiC
Wiki: https://github.com/Azure/SONiC/wiki/