...
OpenSwitch (OPX) – a network operating system (NOS) - was one the early adopters of these concepts and technologies. Architected Designed using a standard Debian Linux distribution with an unmodified Linux kernel, OpenSwitch provides a programmable high-level abstraction of network components, such a as switching ASICs (Network Processors) and optical transceivers.
Architected as a scalable, cloud-ready, agile solution, the open source OpenSwitch software implements a flexible infrastructure to enable both network operators and vendors to rapidly on-board open source Networking OS applications. OpenSwitch provides a YANG based programmatic interface, that can be accessed using Python, thus providing a an environment well-suited environment for DevOps.
OpenSwitch Features
...
- 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 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),
- QoS,
- ACL
- 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.
...
- Manages the high level abstraction of the switching ASIC
- NAS manages the middleware middle-ware that associates physical ports to Linux interfaces, and adapts Linux native API calls (e.g. netlink) to the switching ASIC
...
- Object centric framework
- Mediates between application software components and the platform
- Provides a pub/sub model and set/get/delete/create
- Provides a the framework defining YANG modeled API APIs - with Python and C/C++ bindings.
SAI – Switch Abstraction Interface
...