Programming Nokia's SR Linux
Course Number: OP00087
Course Duration: 4 days (including lectures and hands-on lab exercises)
Price: $3,125 US
This hands-on instructor-led course describes the programmability of SR Linux networking features using gNMI or JSON-RPC, and the programming of SR Linux itself by adding third-party applications with the NDK and developing customized CLI commands.
Nokia Service Router Linux (SR Linux) is an open, extensible and programmable network operating system (NOS) based on the Linux kernel. It implements from the ground up a model-driven architecture combined with a field-proven routing protocol stack.
SR Linux provides three key components to enable network automation and meet growing DevOps and agility requirements for a modern data center:
- A comprehensive programmatic API with scalable streaming telemetry: Every SR Linux feature can be configured and monitored using a gNMI or JSON-RPC Application Programming Interface (API).
- A Netops Development Kit (NDK) that allows third-party applications to be fully integrated into SR Linux using generic Remote Procedure Call (gRPC) services.
- A customizable Command Line Interface (CLI): a python-based plugin framework lets operators develop your own show and tools CLI commands, with full access to the state/configuration datastore.
- Nokia Data Center Fabric Fundamentals (OP00493)
- Basic Linux and Python understanding
No exam available at this time.
Get access to the same course materials you would receive in class. Course materials are a great way to learn and prepare for exams at your own pace.
After completing the course, participants should be able to:
Describe the high-level architecture of SR Linux and its network automation tool-set
Explain the structure of the SR Linux YANG data model
Understand gRPC and protocol buffers and how they provide the foundations of SR Linux's programmatic capabilities
Write Python programs to configure and monitor SR Linux using its gNMI and/or JSON-RPC APIs, including streaming telemetry.
Design and onboard their own python-written application into the SR Linux platform
Code their own customized CLI commands, using the SR Linux CLI plugin-framework
Module 1 – Model-Driven Network Automation
- Network Automation and the SR Linux programmability tool-set
- YANG and Model-Driven Management
- Define a configuration and state data model with YANG
- The pyang multi-purpose YANG tool
- Overview of the SR Linux YANG Data Model
- Hands-on: Explore the SR Linux Data Model, use pyang to validate and visualize models
Module 2 - Python and SR Linux
- Some elements of Python in the context of SR Linux network programmability
- Hands-on: Python and SR Linux programming
Module 3 – gNMI and JSON-RPC APIs
- What is an API?
- Explain gRPC and protocol buffers
- Hands-on: gRPC programmation example
- gRPC Network Management Interface (gNMI) configuration and telemetry services
- Enable gNMI on SR Linux
- Review examples of gNMI clients - gnmic and python libraries
- Hands-on: The gnmic command-line tool and python-based gNMI programming
- gNMI Telemetry
- Hands-on: Configure and run a telemetry TIG-stack (Telegraf-InfluxDB-Grafana)
- JSON-RPC introduction
- Review the SR Linux JSON RPC methods and params
- Enable JSON RPC on SR Linux
- Overview of JSON-RPC tools
- Hands-on: JSON-RPC command-line example and JSON-RPC python Programmation
Module 4 – NDK and SR Linux Custom Applications
Overview of the SR Linux modular architecture
A few 3rd party application examples
Onboarding SR Linux 3rd-party applications
Review the NDK gRPC services
Hands-on: Implement your own SR Linux application with NDK
Module 5 – SR Linux CLI plugins
The need for CLI customization
Introduction to the CLI plugin python modules
Hands-on: explore native CLI plugins, an overview of a CLI plugin
Define the custom CLI syntax
Create a CLI schema
Retrieve the config and state data from the SR Linux datastore
Use SR Linux formatter and decorator functions to display data
Hands-on: Write your own python-based CLI show command