Open Source Full Featured Network Operating System: OpenSwitch

2017-06-15T05:14:20
ID N0WHERE:58543
Type n0where
Reporter N0where
Modified 2017-06-15T05:14:20

Description

Open Source Full Featured Network Operating System

OpenSwitch provides a fully-featured L2/L3 control plane stack, traditional and programmatic, declarative control plane. The 24×7 nature of global digital economy and the explosion of data have changed how we think about data center networking. It’s time for the separation of switch hardware and software—delivered through an open environment based on open source established practices and true community involvement from developers and users.

The OpenSwitch Platform is an open source, Linux-based network operating system (NOS) platform. Built under the open source model, OpenSwitch offers the freedom of innovation while maintaining stability and limiting vulnerability. OPX Base uses an unmodified Linux kernel and standard distribution to take advantage of rich ecosystem, and also provide flexibility in customizing your Base system according to your network needs.

OpenSwitch is a network operating system for disaggregated switches that are built around OCP compliant hardware and that utilizes the ONIE boot loader to install and uninstall network operating systems. It is aimed at accelerating the transition to open networking as well as the adoption of disaggregated data center networks. OpenSwitch provides a fully-featured control plane stack with support for layer 2 and layer 3 networking protocols. The NOS is built around a reliable architecture focusing on modularity and a central state repository.

OpenSwitch is an extensible NOS that utilizes modern development tools and offers extensive APIs and management interfaces. Developers can build on the reliable and modern architecture to create unique networking features and applications using an agile development approach for faster development and more stable applications with fewer post-release defects

Features

  • Provides an abstraction of hardware devices of network switch platforms in a Linux OS environment
  • Uses standard open source software including an ONIE installer, and an unmodified Linux kernel based on Debian Jessie distribution
  • Provides a robust and flexible programmatic API — control plane services (CPS)
  • Accesses OpenSwitch networking features using either the Linux standard API or the CPS
  • Provides a rich set of networking features including full access to the NPU ACL and QoS functionality using the CPS

Application programming

Provides an object-centric API for application development to implement custom applications using a well-defined object model, and set of programmatic APIs. The object model is defined using YANG modeling, and the APIs support Python and C/C++ programming languages. See Application programming for more information.

Hardware virtualization

OPX Base software supports hardware virtualization (or simulation). Software simulation of basic hardware functionality is also provided (“white board”), and the higher layer software functionality can be developed and tested on generic PC/server hardware. See Hardware virtualization for more information.

Repositories

The repository structure is organized around the main architecture components:

  • NAS and SAI
  • PAS and SDI
  • Infrastructure

Build System Requirements

A GNU/Linux machine running a recent distribution is recommended:

  • It is recommended to use an Ubuntu recent distribution.
  • OpenSwitch is developed on Ubuntu. However, Debian, Fedora, SuSe should work fine.

At least 30GB of disk available for each OpenSwitch build directory (usually takes way less, but this is the worst-case scenario).

Minimum Hardware Recommended

  • 2 cores
  • 4GB of memory
  • 30GB of hard disk

Suggested Hardware

  • 4 cores
  • 8 GB of memory
  • 50 GB of hard disk

Installing the required packages

In order to be able to build an OpenSwitch image, use the following instructions to configure your Linux based system:

Ubuntu

$ sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib  build-essential chrpath screen curl device-tree-compiler libsdl1.2-dev xterm

If you encounter an error using libsdl1.2, the following commands can be used instead:

$ sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib  build-essential chrpath screen curl device-tree-compiler xterm aptitude
$ sudo aptitude install libsdl1.2-dev

Debian

$ sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib  build-essential chrpath screen curl device-tree-compiler libsdl1.2-dev xterm gperf quilt

Command Reference


ARP
Authentication (AAA CLI)
BGP
Configuration Persistence
DHCP/TFTP Server
ECMP

L3 Interfaces
Link Aggregation
LLDP
Log Rotation
Management Interface
Phy Interfaces

Static Routes
System
VLANs
VRF
Zero Touch
REST APIs

Open Source Full Featured Network Operating System: OpenSwitch wiki

Open Source Full Featured Network Operating System: OpenSwitch Download