2. About SR Linux

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 Nokia SR Linux delivers:

  1. An open and extensible system that is fully programmable and scalable
  2. Model-driven management for simplified operations, integrations, and visibility
  3. Plug-and-play hardware integration
  4. Superior support for integrating community and customer driven applications
  5. Customizable command-line interface (CLI) and on-demand CLI commands

2.1. What is SR Linux?

SR Linux is a network operating system (NOS) that leverages its routing protocol stack from Nokia SR OS, while also making use of 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. See Figure 1.

Figure 1:  SR Linux management framework 

2.2. Feature highlights

2.2.1. Modular network applications

As a Linux-based NOS, SR Linux uses modular applications that are isolated into 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.

2.2.2. Model-driven architecture

SR Linux makes extensive use of structured data models. Each application has a YANG model that drives 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).

Figure 2:  SR Linux infrastructure 

See the SR Linux architecture overview chapter for details about the relationship between IDB and SR Linux components).

2.2.3. IDB publish/subscribe model for messaging

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.

2.2.4. Protocol buffers and gRPC for inter-process communication

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

2.2.5. Third-party application support

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.

2.2.6. CLI plugins

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.

2.2.7. Hardware extensibility

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 different network chipsets. It provides a common set of software instructions that northbound applications use so 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.

2.2.8. Software extensibility

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, and 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 system’s underlying data models. 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.

Figure 3:  SR Linux software extensibility 

2.3. SR Linux NDK

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.

2.4. SR Linux documentation

The SR Linux documentation set consists of the documents listed in Table 2 These documents are available in PDF and HTML formats.

Table 2:  SR Linux documentation set  

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

SR Linux supports two hardware platforms.

  1. Nokia 7250 IXR-6 chassis and the 7250 IXR-10 chassis
  2. Nokia 7220 IXR-D Chassis

Both documents provide 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 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 plugins and details Nokia definedgeneral, 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 well as how to install, modify, and remove them.

SR Linux NDK API Guide

Reference information for gPRC APIs used with the SR Linux NetOps Development Kit (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.