Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

OpenSwitch (OPX) – a network operating system (NOS) - was one the an early adopters adopter of these concepts and technologies. Designed using a standard Debian Linux distribution with an unmodified Linux kernel, OpenSwitch provides a programmable high-level abstraction of network components, such as switching ASICs (Network Processors) and optical transceivers.

...

OpenSwitch Features

OpenSwitch (or OPX) is an open source project that provides an abstraction of hardware network devices in a Linux OS environment, and . It has been designed from its inception in order to support the newest technologies and concepts in the networking industry:

  • Software disaggregated from hardware, and disaggregated software components.
    • OpenSwitch can be deployed/ported on any networking hardware – only the low-level software layers SAI (Switch Abstraction Interface) and System Device Interface (SDI) are hardware specific and may need to be adapted.

  • Makes extensive use of Uses standard open source software, such as the for instance:, is based on the
    • Linux Debian distribution with an unmodified Linux
    kernel .
  • Integrates Linux native APIs to ASIC functionality. In OpenSwitch, networking features are also accessible using the Linux standard API’s (“netlink”). Thus standard open source network packages (such as FRR) can be installed and supported in binary format.
  • Containers and support for NFV. The Docker container environment (Docker CE), or any other Linux container environment,  can be installed on any OpenSwitch device - in this environment, users can deploy their own containerized virtualized network functions (VNF).
  • Support for programmability, automation and DevOps:
    • A robust and flexible programmatic interface – namely the Control Plane Services (CPS). The API is defined using YANG models and is accessible through Python (and C/C++).
    The YANG models are converted into a CPS binary encoding.
    •  
    • The availability of a programmatic interface facilitates OpenSwitch integration with SDN controllers
  • Use of the open source Switch Abstraction Interface (SAI) defined in Open Compute Project for interfacing with the switching ASIC.
  • Provides a rich set of networking features including full access to the ASIC ACL and QoS functionality using CPS API/YANG models.
  • Integrates Linux native APIs to ASIC functionality - networking features are also accessible using the Linux standard API’s (“netlink”). Thus standard open source network packages (such as FRR) can be installed and supported in binary format.

OpenSwitch provides support for:

  • L2 protocols: LLDP, LACP (link aggregation interfaces), 802.1q (VLAN interfaces), STP and bridge interfaces
  • L3 protocols (e.g. BGP)
  • ACL and QoS (only through CPS / YANG API's)
  • Instrumentation: sFlow, telemetry

...

Programmability and Automation

OpenSwitch supports a rich ecosystem for automated deployment:

...

In addition, a set of OpenSwitch specific commands are available and can be invoked from a Linux shell (e.g. display the current software version, hardware inventory etc.).

Container Support

Since OpenSwitch is developed using a standard Debian distribution, the Docker container environment (Docker CE), or any other Linux container environment,  can be installed on any OpenSwitch device.   

OpenSwitch Architecture

The figure below illustrates the main areas of the OpenSwitch architecture:

...

  • Object centric framework
  • Mediates between application software components and the platform
  • Provides a pub/sub model and set/get/delete/create
  • Provides the framework defining YANG modeled APIs - with Python and C/C++ bindings.  The YANG models are converted into a CPS binary encoding.

SAI – Switch Abstraction Interface

...