Anda di halaman 1dari 13

OpenSwitch

Introduction to Architecture and Development

Diego Dompe,
Michael Zayats

Agenda
OpenSwitch Project motivation and goals
Open Community Enablement
Design Principles
Architecture
Status
Getting your hands dirty

Motivation for a New NOS


Open and community driven
Support common network use-cases - HA, L2, L3, OpenFlow
Consistent configuration, monitoring, troubleshooting
Declarative, programmatic interfaces and CLI / GUI
Aligned to and an extension of OVS

Open Community Enablement


Active mailing list with an average of 25 mails per day
Weekly + frequent on-demand IRC chats
All code/design reviews are public using Gerrit
New code is mostly Apache 2.0, hosted on git.openswitch.net and mirrored
to GitHub
Defined releases and schedules
Yocto for image building and development environment
Advanced virtual/physical test framework

Corporate Participants

Quattro

Networks

Main Architectural Principles


Aggressive modularization / high availability
OVSDB for configuration, statistics, status and all inter-module communications
No direct messaging between modules pub/sub through the database only
Isolated fault domains modules wouldnt know about other modules failures

Portability
Keep all hardware specific code separate and replaceable

Extensibility
Users and third-parties should be able to extend the system

Good open source citizenship


Reuse and contribute
Minimize forking, stay on the edge
Enable upstreaming by providing value to other projects Linux, OCP, OVS, Quagga, etc.

Architectural View
Single OpenSwitch Instance
Management daemons
CLI, Rest,Chef,

Collectors

Monitoring daemons
pmacct, hsflowd,broadview
System daemons
sysd, intfd, vland,
L2/3 protocol daemons
bgpd, lldpd, lacpd,

Legend
OPS
code
OPS
adapted
External
code

RFC 7047 protocol for integrations

OVSDB-server

Mgmt
systems

HW Support Daemons
tempd, fand, powerd, pmd,
Virtual L2/3
interfaces
Kernel

I2 C and other drivers

ops-switchd
Derivation of ovs-vswitchd
DB and Openflow layers
ASIC specific driver

ASIC user space SDK

ASIC kernel SDK

Openflow
controllers
sFlow
collectors

Current Status
Almost all the basics are in place vlans, lags, routing, ECMP, BGP, OSPF, sFlow, NTP, DHCP, SVI,
CLI, REST etc.
ACLs, QoS, mirroring, MSTP and many others are coming in the next couple of months.
Broadcom Trident II is supported (Accton 5712/6712), Tomahawk (Accton 7712) is on the way.
Broadcom contributes Broadview monitoring support and develops OpenFlow support in its
plugin.
Barefoot contributes P4 plugin and emulator which runs inside VM and Docker containers.
Cavium enables OPS on XPliant platforms.
Additional ASIC vendors are working to enable their platforms.
Code is in Alpha quality - features are being rapidly added
Most developers will switch from feature development to hardening by end of March, with the
goal of having operational system in June/July timeframe.

Development Tools and Processes


Development environment
Based on Yocto
Provides the developer environment and build system
Fast build times thanks to tight couple of infrastructure with build system
Systemd based
Full feature debug tools

Component design enables porting to other Linux Distros

DEMO
Building an image
Deploying an image to hardware or virtual environment
Modifying the code

Development Tools and Processes


Development workflow
Inspired on OpenStack development workflow
Gerrit
Jenkins
Continuous Integration
Virtual testing environment

Q&A

Thanks!
http://www.openswitch.net

Anda mungkin juga menyukai