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 SR Linux delivers:
-
An open and extensible system that is fully programmable and scalable
-
Model-driven management for simplified operations, integrations, and visibility
-
Plug-and-play hardware integration
-
Superior support for integrating community and customer-driven applications
-
Customizable Command Line Interface (CLI) and on-demand CLI commands
What is SR Linux?
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. SR Linux management framework shows the SR Linux management framework.
![](graphics/sw4047.png)
Features overview
SR Linux supports a robust set of features. The sections that follow highlight major functionality.
Modular network applications
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.
Model-driven architecture
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).
Data models support
The SR Linux model-driven management interfaces are based on a common infrastructure that uses YANG models as the core definition for network element configuration, state, and operational actions. The model-driven interfaces take the underlying YANG modules and render them for the particular management interface.
SR Linux supports the following YANG data models:
• Nokia vendor-specific data models
• OpenConfig vendor-neutral data models
SR Linux YANG data models
Each application that SR Linux supports has a Nokia vendor-specific YANG model that defines the application's configuration and state. SR Linux exposes the YANG models to supported management APIs; for example, the CLI command trees derived from the SR Linux YANG models loaded into the system. A gNMI client can use Set RPCs to configure an application based on the YANG model. When you commit a configuration, the SR Linux management server validates the YANG models and translates them into protocol buffers for the impart database (IDB).
OpenConfig data models
OpenConfig is an informal working group that provides structured, vendor-neutral YANG data models to address the use requirements of networking applications and technologies by the community. The OpenConfig data models use standards-based, YANG data-modeling language, support Remote Procedure Calls (RPCs), and allow network operators to use a single set of data models to configure and manage commonly-used network protocols, services, and devices that support the OpenConfig initiative.
Data models interaction
The SR Linux vendor-specific and OpenConfig vendor-neutral data models can be used together to configure and manage network elements. SR Linux data models include vendor-specific features and functions that OpenConfig data models do not describe, and therefore offer a more complete representation of the capabilities of the SR Linux network elements. The SR Linux configuration and operational statements map to path statements in the supported OpenConfig modules. The mappings are exposed in JSON files delivered with the software package.
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.
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 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 SR Linux infrastructure).
![](graphics/sw4050.png)
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.
CLI plug-ins
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.
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 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 for the control plane and any non-ASIC interfaces.
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, 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 SR Linux software extensibility).
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.
![](graphics/sw4048.png)
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.
SR Linux documentation
The SR Linux documentation set consists of the documents listed in SR Linux documentation set. 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 Chassis Installation Guide SR Linux 7250 IXR-6e and 7250 IXR-10e Chassis Installation Guide SR Linux 7250 IXR-Xb Chassis Installation Guide SR Linux 7220 IXR-D1, D2, D3 Chassis Installation Guide SR Linux 7220 IXR-D4 Chassis Installation Guide SR Linux 7220 IXR-D5 Chassis Installation Guide SR Linux 7220 IXR-H2, H3 Chassis Installation Guide SR Linux 7220 IXR-H4 Chassis Installation Guide SR Linux 7220 IXR-DL Chassis Installation Guide |
Site preparation, chassis and component installation procedures, and hardware component configuration procedures for hardware platforms that support SR Linux. |
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 Routing Protocols Guide | Supported protocols and examples of how configure and implement them. |
SR Linux Interfaces Guide | Supported interfaces and naming conventions. Provides examples to configure and implement supported interfaces. |
SR Linux ACL and Policy-Based Routing Guide | Supported access control list types, actions, match conditions, and packet capture filters. Also describes how to configure policy-based forwarding. |
SR Linux EVPN 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 Quality of Service Guide | Basic configuration concepts for Quality of Service (QoS) functionality. Provides examples to configure QoS features and classifier policies. |
SR Linux Segment Routing Guide | Basic configuration concepts for segment routing functionality. Provides examples to configure segment routing and use of tools that provide operational information about segment routing. |
SR Linux MPLS Guide | Basic configuration concepts for the Multiprotocol Label Switching (MPLS) protocol. Provides examples to configure MPLS and LDP. |
SR Linux gRIBI Guide | Basic configuration concepts for the gRPC Routing Information Base Interface (gRIBI) protocol. Provides configuration examples. |
SR Linux P4RT Guide | Basic configuration concepts for the P4Runtime client. Provides configuration examples. |
SR Linux Event Handler Guide | Basic configuration concepts for event handler Provides configuration examples. |
SR Linux Network Synchronization Guide | Basic configuration for the implementation of Synchronous Ethernet and the Precision Time Protocol on SR Linux. |
SR Linux Data Model Reference |
Descriptions of the configuration and state data models available for the SR Linux. |
SR Linux System Management 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 Troubleshooting Toolkit |
How to use and configure diagnostic tools for SR Linux, including 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 OAM and Diagnostics Guide |
How to configure features such as mirroring and sFlow, and how to use the Operations, Administration, and Maintenance (OAM) and diagnostics tools |
SR Linux Release Notes |
The most up-to-date information about supported features, supported hardware, known limitations, and resolved issues. |