The post covering Smart Fabric Services mentioned some of the features and context of Dell EMC’s Next Gen OS10. I thought it would be useful to have an overview of OS10 in this post – the first of hopefully a few, dedicated to OS10.
Dell EMC’s traditional OS offering in the DC has been OS9, the legacy FTOS or Force10 operating system. It was based on a NetBSD Kernel.
Dell EMC’s next gen OS offering for the DC is OS10, based on Debian Jesse Linux Kernel. It is unmodified , binary compatible with Debian Linux packages. it uses a stadard Linux ext4 file system.
The base Module of OS10 is the Open Edition. It includes the Linux distribution, as well as SAI (Open Compute project) and CPS APIs, providing Abstraction for NPU as well as the Control Plane. we will discuss these, in a bit. Open Edition is also Dell EMC’s contribution to Open Source Community, via the Open Switch Project & Sonic Project.
OS10 Enterprise Edition adds Dell EMC Networking’s premium protocol Stack, CLI/ management to the package, fully integrated into the base.
- Linux Standardization:
There is no longer a lock into a vendor’s proprietary Linux. The unmodified Kernel allows standardization on Linux, across Compute & Networking. In parallel, Linux tools like Puppet and Nagios can be used to configure & Manage the platforms.
- Software dis-aggregation, Modularity, Programmability
OS10 employs a dis-aggregated software architecture. It fits seamlessly with the thrust and focus of Dell EMC Networking’s initiatives around Open Networking & Dis aggregation. Phase 1 of that initiative was focused around de-coupling the hardware from the software. The result has been Dell EMC Networking’s -ON enabled switches, and a rich Ecosystem built on the lines of Big Switch, Pluribus, Cumulus etc. Phase 2 of that initiative focuses on dis-aggregating the software itself – Services, Modules, functions etc. This is where OS10 comes in, poised to be the flagship in Dell EMC Networking’s next wave of disruption in the networking landscape.
OS10 is built from the grounds up to be Modular & programmable. It is partitioned into sub-components, organized as Linux packages which attend to their specific functionality. OS10’s Control Plane Services component provides an Object-Centric API, which is the intermediary for interaction between OS10 Software Modules & User Applications.
OS10’s Open Edition, which is Dell EMC’s contribution to the Linux Community, is Free. The path to Custom Applications and build, is open to the customers with Open Edition.
- Hardware abstraction
All the modules apart from Switch Abstraction Interface, system Device Interface & Startup scripts, are platform independent.
Platform Abstraction is achieved via Platform Adaptation Service. The Switch Abstraction Interface (SAI), part of the base edition, abstracts the NPU so it can be programmed [alongside Network Adaptation Service (NAS) and Network Device Interface (NDI)] . It enables ASIC independence, which we will discuss more, below.
Some of the Key OS10 Components are covered below
- Control Plane Services
CPS is a Core component of OS10. It provides an object-centric framework that facilitates interactions between applications and OS10 software components. i.e. the API provided by CPS is used by applications, to interface with OS10 software components as well as with each other. CPS classifies applications as Client or Server. Server Applications respond to requests by client apps by executing needed operations. Clients request operations such as get, set etc. on various objects.
CPS has an embedded distributed database, which is internal to it and not accessible externally. It utilizes a publish/subscribe mechanism to facilitate production & consumption of information. Applications classed as Server would publish events taking place on objects, for e.g. their creation or modification. The “Client” applications can subscribe to these events so they get notified whenever there is a change.
It provides C/C++ and Python programming interfaces for CPS.
- Switch Abstraction Interface
SAI provides an abstraction of the Switch ASIC/NPU so it can be programmed by the operating system software. It would enable standard API calls into the ASIC itself, for configuring entities like forwarding tables etc. A good parallel is considering how Open Network Install Environment (ONIE) has enabled abstraction of underlying hardware, to provide an install environment for the NOS.
SAI will implement APIs for NPUs supported on Dell EMC switches. If the platforms move from one silicon to the other, the only OS10 component that will need to change is the SAI. Hence, one can start to appreciate the incredible benefits OS10 brings, courtesy its focus on Abstraction, modularity etc. As Dell EMC Networking portfolio starts to expand beyond the traditional Broadcom Chipset families like Starta XGS (Trident, Tomahawk) & DNX (Qumran), into Cavium, Barefoot etc., SAI would be the key enabler of ASIC/NPU independence.
- Network Adaptation Service
NAS integrates Linux network APIs with NPU hardware functionality. The abstraction enabled by NAS focuses on Layer 1-3 Network Access, Monitoring, QoS and ACL functionality. It manages the middleware that associates physical ports to Linux interfaces – OS10 uses internal Linux tap devices to associate physical ports with Linux interfaces.
It also provides packet I/O services using the Linux kernel IP stack – Packet I/O in OS10 is implemented as a standalone thread of the NAS daemon.
- Common Management Services
Another abstraction, this provides an API for consumption by External Management systems, allowing configuration of the device subsysetms.
With time, the configuration focused posts in this blog will be based more on OS10 then OS9. It is a worthy successor to OS9, and enables much more flexibility & innovation because of its architecture. It is easy to see how it fits seamlessly into the model of Open Networking 2.0. The next logical step in the journey of dis-aggregation is indeed, the software stack itself.