Versions Compared

Key

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

...

Operators need to deploy new services in order to grow their revenue, and time to market, thus rapid network deployment, is crucial. Rapid deployment is significantly helped by automation and programmability. In this environment, the CLI is no longer the norm: since it cannot be easily used as a programmatic interface, the CLI is not suitable for automation. Network engineers have adapted to an industry where the only constant is change, by combining Development and Operations into DevOps: a practice that aims to unify software development and operations. DevOps combines programming and network administration, and allows rapid prototyping and network build, generally often using the Python programming language.

...

  • Software disaggregated from hardware, and disaggregated software components.
  • Uses standard open source software, such as the ONIE installer and an unmodified Linux kernel based on the Debian distribution.
  • A robust and flexible programmatic interface – namely the Control Plane Services (CPS). The API is defined using YANG models and 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/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.

...

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

OpenSwitch can be deployed/ported on any networking hardware – only the low-level software layers such as SAI and SDI are hardware specific and may need to be adapted.

...

  • Ansible – various modules are already defined for OPX
  • Zero-touch provisioning (ZTP) allows provisioning of new ONIE-enabled devices a network automatically, without manual intervention
  • Puppet

The CPS API defined using YANG models, in combination with Python, provides support for programming the network functions of the OpenSwitch devices, automation and DevOps.

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.).

...

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

...


OPX Base

The key components of OPX Base are:

...