SR Linux is a key component of a Nokia data center focused networking solution that delivers scalability, flexibility, and ease of operations for data centers and across hybrid- and multi-cloud environments. The SR Linux delivers:
SR Linux is a Network Operating System (NOS) that leverages its routing protocol stack from Nokia SR OS, while also using Linux as its underlying operating system, allowing operators to use debugging and configuration tools that they are familiar with, even if they have no experience with SR OS.
Routing functions on SR Linux run as modular, lightweight applications, configurable via external APIs. These applications use gRPC and APIs to communicate with each other and external systems over TCP. The Nokia-supplied applications can be augmented by third-party developed applications, which plug into the SR Linux framework. Application-based functions allow for modular upgrades and easy fault isolation. Figure 1 shows the SR Linux management framework.
As a Linux-based NOS, SR Linux uses modular applications that are isolated in their own failure domains. A central application manager is responsible for the lifecycle of each application and provides full control of the protocols running on the system.
On SR Linux, each protocol (BGP, IS-IS, and so on) runs as its own application. These applications may be configured using external APIs, including CLI, gNMI, and JSON-RPC. The applications run like any others do in Linux. As well, users can integrate their own applications into SR Linux.
SR Linux uses an unmodified Linux kernel as its foundation to build a suite of network applications. This provides benefits such as reliability, portability, and ease of application development. Using an unmodified kernel also speeds the availability of non-Nokia applications (for example, OpenSSH) and security patches for operating system components.
SR Linux makes extensive use of structured data models. Each application has a YANG model that defines its configuration and state. SR Linux exposes the YANG models to the supported management APIs. For example, the command tree in the CLI is derived from the SR Linux YANG models loaded into the system, and a gNMI client can use Set RPCs to configure an application based on its YANG model. When a configuration is committed, the SR Linux management server validates the YANG models and translates them into protocol buffers for the impart database (IDB).
See the SR Linux architecture overview chapter for more information about the relationship between IDB and SR Linux components).
IDB is a lightweight database that controls messaging between SR Linux applications, using a publish/subscribe (pub/sub) model. To do this, the IDB database is split up into topics. Each application owns a set of topics, to which it publishes information, and can subscribe to topics published by other applications. Applications subscribe to topics when they open a session to the IDB, and publish messages to their own topics for other applications to consume.
IDB stores data as protocol buffers (protobufs). Protobufs are a language-neutral, platform-neutral mechanism for serializing structured data. Each protocol buffer message is a small logical record of information, containing a series of name-value pairs.
SR Linux uses gRPC for inter-process communication. gRPC is a client application that can directly call methods on a server application on a different machine as if it was a local object. The supported external APIs (CLI, gNMI, and JSON-RPC) communicate with the SR Linux and retrieve state information using gRPC.
SR Linux applications share state details with each other using the pub/sub model (see Figure 2).
Third-party applications can be fully integrated into the SR Linux with the same functionality as Nokia applications. This includes configuration using YANG, telemetry support, and life-cycle management. Because third-party applications are not managed independently, it allows a reduction in operational overhead.
The SR Linux CLI is itself an application that can load dynamic plugins from other applications. You can develop custom show commands and run them from the SR Linux CLI. The CLI plugins allow for integration with remote systems, supporting retrieval of state information.
SR Linux supports a variety of network chipsets through the Nokia eXtensible Data Path (XDP). XDP serves as a hardware abstraction layer that facilitates adoption of new or non-Nokia network chipsets. It provides a common set of software instructions that northbound applications use so that they are not directly dependent on ASIC vendor SDKs. XDP borrows from the development experience for high-performance VNFs and makes use of user space acceleration for traffic destined to the control plane and any non-ASIC interfaces.
Every SR Linux application, including third-party applications, supports its own YANG model, which can be loaded into the system. Operators can see and define the syntax and semantics of their application in a simple and standardized form. With this design, the YANG data model is defined first, then the CLI, APIs, and show output formats are derived from it.
SR Linux handles management and operations using the gRPC Network Management Interface (gNMI). Because SR Linux is natively model-driven, it can stream telemetry without requiring any translation layers. Telemetry is supported using POLL, ON_CHANGE, and ONCE streaming.
Third-party applications have access to the full streaming telemetry framework. This allows these applications to operate and be monitored, configured, and debugged the same as any other application on the system (see Figure 3).
In addition to the gNMI interface, SR Linux includes a CLI and a JSON-RPC API for management. The CLI provides a framework for accessing the underlying data models of the system. The JSON-RPC API interface supports requests against the data models, as well as allowing a programmable interface access to the extensible plugin framework in the CLI.
SR Linux provides the NetOps Development Kit (NDK), a software development kit with a suite of libraries to assist operators with developing alongside SR Linux applications. The NDK is provided in the form of header files written in C++. This allows the operator to add SR Linux functionality to their own applications, by using these header files and the methods they provide to interact directly with the SR Linux the IDB server.
See the SR Linux NDK API Guide for reference information about the gPRC APIs used with the NDK.
The SR Linux documentation set consists of the documents listed in Table 3. These documents are available in PDF and HTML formats.
Document | Description |
SR Linux Product Overview | High-level description of SR Linux functionality, including key components, and where it fits into the network. |
SR Linux 7250 IXR-6 and 7250 IXR-10 Hardware Installation Guide 7220 IXR-D Chassis InstallationGuide 7220 IXR-H Chassis InstallationGuide | SR Linux supports the following hardware platforms.
Each document describes site preparation, chassis and component installation procedures, and hardware component configuration procedures. |
SR Linux Software Installation Guide | Basic concepts behind Linux kernel operation on SR Linux, and provides procedures for upgrading the software and provisioning SR Linux using Zero Touch Provisioning (ZTP). |
SR Linux Configuration Basics Guide | Basic configuration concepts for the SR Linux, including accessing and using the CLI, and how to manage the system. Descriptions and examples of how to configure key features are provided. |
SR Linux EVPN-VXLAN User Guide | Basic configuration concepts for EVPN Layer 2 (L2) and Layer 3 ((L3) functionality. Provides examples to configure and implement various protocols and services. |
SR Linux Data Model Reference | Descriptions of the configuration and state data models available for the SR Linux. |
SR Linux Interface Configuration Guide | Descriptions of the interfaces used with the SR Linux, which include the CLI, gNMI, and JSON. This document also provides an overview to CLI plug-ins and describes Nokia-defined general, operation, and show commands. |
SR Linux CLI Quick Reference | Commonly used CLI commands for displaying information, viewing logs, and troubleshooting. |
SR Linux Troubleshooting Toolkit | How to use and configure diagnostic tools for SR Linux, including sFlow, interactive traffic monitoring, and packet tracing. |
SR Linux CLI Plug-in Guide | How to create custom show routines for SR Linux, as well as how to install, modify, and remove them. |
SR Linux NDK API Guide | Reference information for gPRC APIs used with the SR Linux NDK. The NDK provides a way to program high-performance, integrated agents to run alongside SR Linux. |
SR Linux Log Event Guide | Contents of the log messages generated by the SR Linux. |
SR Linux Advanced Solutions Guide | Scenarios for configuring complex network-level configurations where additional guidance and more detailed procedures may be required. |
SR Linux Release Notes | The most up-to-date information about supported features, supported hardware, known limitations, and resolved issues. |