More Related Content
Similar to BRKSPG-2069-64bit-package.pdf
Similar to BRKSPG-2069-64bit-package.pdf (20)
BRKSPG-2069-64bit-package.pdf
- 3. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
Cisco Webex Teams
Questions?
Use Cisco Webex Teams (formerly Cisco Spark)
to chat with the speaker after the session
Find this session in the Cisco Events Mobile App
Click “Join the Discussion”
Install Webex Teams or go directly to the team space
Enter messages/questions in the team space
How
1
2
3
4
3
cs.co/ciscolivebot#BRKSPG-2069
BRKSPG-2069
- 4. Agenda
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public 4
• Introduction
• Software Architecture Overview
• Flexible Packaging
• Application Hosting
• Configuration, Monitoring and Troubleshooting
• Examples
• Conclusions
BRKSPG-2069
- 6. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
An Evolved Network
Operating System for a Rapidly
Changing Web and SP Landscape
6
BRKSPG-2069
- 7. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
Key Learning Objectives
• At the end of the session, you should be able to:
• Appreciate rapidly evolving network infrastructure landscape
• Understand how Cisco is evolving IOS-XR network operating systems to
meet customer needs
• Identify technical principles of Evolved IOS-XR
7
BRKSPG-2069
- 8. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
Automating Provisioning Down to Minutes
Network Operations Center
Day 0
INSTALL
Day 1
CONFIGURE
Day 2
CLI Script
Operating System
Upgrade (Manual)
Plug in new device
Configure new
device remotely
(Manual)
Device up and running
Manual staging
4 Hours to 3 Days
Plug in new device
Device up and running
Auto-provisioning
10 to 15 Minutes
Automated Boot
• Manual device onboarding
• Lengthy installation and
provisioning procedures
Traditional
Networking Operations
Cloud Scale
Networking Operations
• Reduced time to install and
provision new devices
• Faster disaster recovery
• Automated device onboarding
Operating
System
Operating
System
Configuration
Cloud Scale
Network Operations
Traditional
Network Operations
8
BRKSPG-2069
- 9. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
Traditional NetOps Upended by
Evolved Needs of SP Customers
* Source: Google
Evolved SP/Cloud Scale
Network Operations
SW
Modularity
&
Extensibility
Automation
Visibility &
Control
Day 1
CONFIGURE
Day 2
MANAGE
& OPTIMIZE
Day 0
INSTALL
Inflexible
SW
Manual
Provisioning
Fragmented
Topology
View and
Complex
Routing
DevOps
• Automated services
• Simple to scale
• Agile, open software
9
Traditional Network
Operations
BRKSPG-2069
- 10. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
Simplification
Better Customer
Experience
Software Modularity
and Extensibility
Service Agility
Open Innovation
Cisco Evolved IOS XR Innovations
Designed for Operational Fit
Application
Engineered Routing
Visibility
Control
Telemetry
Automation
Automated Boot and
Auto-provisioning
Data
Model
Driven
APIs
Third-
party
Agents
Support
Application
Hosting
Docker
Linux
Containers
Extensibility
Asynchronous Upgrade
Modularity
Granular Packaging
Operational Efficiency
Visibility and Control
10
BRKSPG-2069
- 11. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
Evolved IOS-XR Enablement across Platforms
NCS5508
NCS5001
NCS5002
NCS5502/SE
NCS5011 ASR9000 64-bit
NCS1002 with MACSec
NCS6000
NCS5501/SE
NCS5516
NCS5504
NCS-55A1-36H-S
NCS-55A1-24H
11
NCS-55A2-MOD
Now Shipping 6.5.1
NCS1002
BRKSPG-2069
- 12. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
Pillars of Evolved IOS-XR
Evolved
Programmability
Flexible Platform
and Packaging
Application
Hosting
• Data accessible via published model driven interfaces (Openconfig & Netconf)
• Machine friendly
• Enables automation @ scale
• Packages can be inspected on box using standard tool chain (RPM tools)
• Automated package installation with dependency checking
• Open Bootloaders (iPXE) and end-to-end auto-provision
• 64-bit Linux
• Ability to run 3rd party off the shelf applications built with Linux tool chains
• Run custom applications inside a separate LXC container
Visibility &
Telemetry
• Operational Data, Deep analytical hooks
• Model-based, flexible, Push Model
13
BRKSPG-2069
- 14. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
• 64-bit OpenEmbedded Linux
support.
• Processes containerization.
• Standard Linux toolchain.
• Third-Party applications.
• NCS5500, NCS5000 and
NCS1002 support 64-bit Linux.
• ASR 9000 supports 64-bit Linux
starting with 6.1.1.
• Will still have 32-bit QNX support.
IOS-XR 6.X: A New Software Infrastructure
X86 Hardware
64 bit Linux
Control Admin
NPU
System
Admin
System
Control
Classic XR XR 6.X
32 bit QNX
15
BRKSPG-2069
- 15. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
• With eXR, the Admin plane and the
Control Plane run in isolated
environment.
• ASR9K uses Virtual Machines (VMs)
• NCS5000 and NCS5500 use containers
(LXCs)
• Provide the same functionalities.
• Use same tools (libvirsh) to
Provide the virtualization services
• LXCs are lightweight no ISSU support.
• VMs are heavier but provide ISSU
support.
Introduction to Virtualization
X86 Hardware
Hypervisor
ASR9K
App
Lib
OS
…
App
Lib
OS
Operating System
…
App
Lib
App
Lib
X86 Hardware
Operating System
NCS5000-5500
16
BRKSPG-2069
- 16. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
IOS-XR Entities Roles: The Host
• The main functions of the host are:
• Interact directly with the underlying hardware.
• Provide kernel services for the LXCs/VMs
• Provide libraries, tools, and utilities to help launch, monitor, and
maintain containers.
• Provide the network infrastructure to allow containers to
communicate.
Routing Processor
64-bit Host OS
Control
Plane
Admin
Plane
Third
Party
19
• Runs Yocto based 64-bit Open Embedded Linux kernel.
• Built using Windriver 7.
BRKSPG-2069
- 17. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
Container Architecture NCS 5500 and NCS 5000
20
Routing Processor
64-bit Host OS
Control
Plane
Cisco developed
packages for core
network functions
(BGP, MPLS, etc.)
Yocto packages for
standard Linux tools
and libraries
(bash, python,
tcpdump, etc.).
Admin
Plane
Runs processes
responsible to perform
system diags, monitor
env. variables, and
manage hardware
components
First container to be
booted by the host,
responsible for the
start and maintenance
of the Control Plane
container
Third
Party
Runs any 64-bit Linux
distribution.
Launched from the XR
container using virsh
and libvirtd.
Access Network
Interface through the
Global VRF Network
Name Space.
BRKSPG-2069
- 18. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
Cisco developed
packages for core
network functions
(BGP, MPLS, etc.)
Yocto packages
for standard Linux
tools and libraries
(bash, python,
tcpdump, etc.).
Control
Plane
VM
Container Architecture (ASR9K)
Routing Processor
64-bit Host OS
Hypervisor
Runs any 64-bit
Linux distribution.
Launched from the
XR virtual machine
using virsh and
libvirtd.
Access Network
Interface through the
Global VRF Network
Name Space.
Third
Party
LXC Runs processes
responsible to perform
system diags, monitor env.
variables, and manage
hardware components
First VM to be booted by
the Hypervisor, responsible
for the start and
maintenance of the Control
Plane VM
Admin
Plane
VM
21
BRKSPG-2069
- 20. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public 23
DHCP Server
Route
r
Web Server
IOS-XR images
• Cisco Platforms:
ISO format for iPXE
• Supported Whitebox Platforms:
ONIE compatible installer
Automated Installation of IOS-XR images
BRKSPG-2069
- 21. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public 24
DHCP Server
IOS-XR
Web Server
ZTP Artifacts
• CLI Configuration
• ZTP script:
Native Python scripts
Native bash scripts,
Golang/c++/pyinstaller
binaries
Automated Provisioning using ZTP
Support for Data ports
Starting with Release 6.5.1!
BRKSPG-2069
- 22. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
Sample DHCP Server Configuration
option space cisco-vendor-id-vendor-class code width 1 length width 1;
option vendor-class.cisco-vendor-id-vendor-class code 9 = {string};
class "ncs5508" { match if (substring(option dhcp-client-identifier,0,11) = "FGE194714QS");}
pool {
allow members of "ncs5508";
range 11.11.11.47 11.11.11.50;
if exists user-class and option user-class = "iPXE" {
filename="http://11.11.11.2:9090/ncs5500-mini-x.iso";
}
if exists user-class and option user-class = "exr-config" {
if (substring(option vendor-class.cisco-vendor-id-vendor-class,3,11)="FGE194714QS")
{
if (substring(option vendor-class.cisco-vendor-id-vendor-class,19,99)="NCS-5508")
{
filename="http://11.11.11.2:9090/scripts/ztp_script.py";
} }}}
DHCP
option 77
DHCP
option 67
DHCP
option 77
DHCP
option 67
25
DHCP
option 124
DHCP
option 124
DHCP
option 124
https://xrdocs.io/device-
lifecycle/blogs/2017-09-21-
ios-xr-ztp-learning-through-
packet-captures/
BRKSPG-2069
- 23. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public 26
IP address
Next-server
Filename=http://<http-srv>/new-img.ISO
DHCP SERVER
IP address
Next-server
Filename=http://<http-srv>/script-SN.sh
or
Filename=http://<http-srv>/config-SN.txt
HTTP(S) SERVER
Image-new.ISO
script-SN.sh
config-SN.txt
Additional
Scripts
Packages, etc…
Apply
configuration Execute script
XR Boot
ZTP
execution
iPXE
boot
XR Install
N
iPXE
Y
1
2
3
GET script-SN.sh or config-SN.txt
4
GET addon scripts/packages/configuration
5
Retry Success
Success
config executable
Retry
IOS-XR Boot Process with iPXE and ZTP
BRKSPG-2069
- 24. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public 27
ZTP
Deploy Applications
(Containers, Binaries,
cron-jobs, etc.)
Provide on-box
automation libraries:
Cli, Yang-APIs etc.
Software
Upgrade/Downgrade
Apply Configuration
ZTP Functions
BRKSPG-2069
- 26. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public 29
IOS-XR CLI
• Introducing Yang-APIs using
on-box netconf client in Release
7.0.1
• On-box netconf client is
transport free - No SSH port to
connect to for ztp script/client.
• Localhost based GNMI
capability coming soon
Yang over
netconf
Yang over GNMI
ZTP Python
APIs
Yang based provisioning from Day 0!
BRKSPG-2069
- 27. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
ZTP Script: Available and Upcoming Options
30
ZTP Scripts
Python Library Bash Library Binaries
Pyinstaller
(ncclient, gNMI/gRPC)
golang
(gNMI/gRPC)
C++
(gNMI/gRPC)
IOS-XR CLI
• Show commands
• Exec commands
(Actions)
• Merge Config
• Replace config
IOS-XR CLI
• Show
commands
• Exec commands
(Actions)
• Merge Config
• Replace config
YANG-XML
• Ncclient
• Native
netconf
client
• gNMI/gRPC
* Local gNMI/gRPC support coming soon.
BRKSPG-2069
- 28. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
Want to know more?
31
• IOS-XR Documentation, blogs, tutorial, etc ..
• https://xrdocs.io/
• IPXE Deep Dive
• https://xrdocs.io/device-lifecycle/tutorials/2016-07-27-ipxe-deep-dive/
• Working with ZTP
• https://xrdocs.io/device-lifecycle/tutorials/2016-08-26-working-with-ztp/
• https://xrdocs.io/device-lifecycle/blogs/2017-09-21-ios-xr-ztp-learning-
through-packet-captures/
• https://github.com/ios-xr/iosxr-ztp-python
• Software Management blogs, tutorial, etc …
• https://xrdocs.io/device-lifecycle/
BRKSPG-2069
- 30. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
• Server-like Workflows
• Modular Disaggregated
• Update, Upgrade, Remove
• Dependency management
• Secure
• Repository Support
• Third Party Applications
Networking Software Delivery Direction
• RPM – RPM Package Manager
• YUM – Yellowdog Updater
Modified
• New Install Commands
33
BRKSPG-2069
- 31. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
RPM: IOS-XR New Package Format
• RPM Package Manager is the new Package format starting with IOS-XR 6.0.
• Packages are placed in a reachable repository and accessed via
FTP/SFTP/SCP/TFTP or HTTP or pre-staged on the box
• Third Party packages are installed with RPM or YUM inside the Shell.
• IOS-XR packages are installed with “install update/upgrade”.
• Both YUM and install commands provide dependency verification/resolution.
34
BRKSPG-2069
- 32. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
Anatomy of RPM Packages
Archive
MetaData
Scriptlet
RPM
Describe package contents
Install structure
Dependencies
Pre and Post install instructions
CPIO binary archive
/var/lib/rpm
Database of installed packages
35
BRKSPG-2069
- 33. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
XR Packages Naming Convention
<name>-<version>-<release>.<architecture>.rpm
ncs5500-mgbl-4.0.0.0-r632.x86_64.rpm
SMU <name>-<version>-<release>.<defect>.<architecture>.rpm
ncs5500-mgbl-4.0.0.1-r632.CSCab12345.x86_64.rpm
Package
Major.Minor.Build.SMU
36
BRKSPG-2069
- 34. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
Platform
Release
XR Software
Package Repository
XR SMUs
Mini ISO
+
Pkgs
Mini ISO
+
k9 pkg
+
Pkgs
Svc Pak
DDTS SMU
DDTS SMUs
ncs5500-mpls-te-rsvp-2.2.0.0-r632.x86_64.rpm
ncs5500-isis-1.3.0.0-r632.x86_64.rpm
ncs5500-mcast-2.1.0.0-r632.x86_64.rpm
ncs5500-k9sec-4.1.0.0-r632.x86_64.rpm
ncs5500-mgbl-4.0.0.0-r632.x86_64.rpm
ncs5500-mpls-2.1.0.0-r632.x86_64.rpm
ncs5500-ospf-2.0.0.0-r632.x86_64.rpm
6.3.2
<REPO_ROOT>
ncs5500-mini-x-6.3.2.iso
www.cisco.com Local Repository
ncs-5500-mgbl-4.0.0.1-r632.CSCab12345.x86_64.rpm
Full K9 ISO
Full ISO
TAR
ncs5500-li-1.0.0.0-r632.x86_64.rpm
37
BRKSPG-2069
- 35. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
Updating XR Packages
Command Line Behavior
install update source <repository> No package specified, update latest SMUs of all
installed packages
install update source <repository> ncs5500-mpls Package name specified, will install that package,
update all latest SMUs of that package(s) (along
with its dependencies).
install update source <repository> ncs5500-
mpls-2.0.0.0-r611.CSCab12345.x86_64.rpm
SMU installation: the SMU will be downloaded
and installed (along with its dependent SMUs).
install update source <repository> ncs5500-
mpls-2.1.0.0-r632.x86_64.rpm
Asynchronous package upgrade, that package
will be installed (along with its dependent SMUs).
Available since 6.1.1
38
BRKSPG-2069
- 36. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
Upgrading XR Packages
Command Line Behavior
install upgrade source <repository> version 6.5.1 Upgrade the base image to the specified version.
All installed packages will be upgraded to same
release as the base package.
install upgrade source <repository> version 6.5.1
ncs5500-mpls-2.2.0.0-r651.x86_64.rpm
Perform install upgrade and install update for a
specific package(s) in one operation.
39
BRKSPG-2069
- 37. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
• No dependency management
• Offline process required to copy
packages
• Require multiple operations
• install add
• install activate
• install commit
• Cisco Software Manager (CSM)
for package content
PIE Install
• Dependency management
• Online process over secure
transport
• Single operation
• install update or install upgrade
• On-box / Off-box package
inspection using rpm tool
• Description
• Dependencies
• Content
RPM Install
40
BRKSPG-2069
- 39. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public 42
Base ISO:
• Minimal Software image
• Use ZTP or day 1 operations
to install/apply:
Functionality
packages/RPMs
IOS-XR Configuration
Third-party applications
Golden ISO
Minimal Software image
+
Functionality packages/RPMs
+
Base Configuration
Third-party applications installed
during ZTP or Day-1 Ops
Golden ISO++
Minimal Software image
+
Functionality packages/RPMs
+
Base Configuration
Third-party applications
Creating Deployment-Ready Golden ISOs
BRKSPG-2069
- 40. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public 43
GISO tool
IOS-
XR
RPMs
RPM Repo
Base ISO
DHCP Server Web Server
Router
Build ISO
Deploy using iPXE
or XR install
Golden ISO Workflow
BRKSPG-2069
- 41. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
Installing and Updating Third Party Packages
• Third Party Packages are traditional Linux tools available from the Shell
• Communication: lighttpd ,openssh, wget, curl, etc.
• Programming: python, ruby, perl, etc.
• Utilities: sed, gawk, tar, gzip, vi, etc.
• Additional packages provided by vendors (No Cisco Support)
• Chef
• Puppet
• Installed using yum or rpm
yum-config-manager --add-repo=http://192.168.0.254/XR/6.X.0
yum install chef –y
44
BRKSPG-2069
- 42. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
Ansible, Puppet and Chef
• Open Source Software with Commercial Support or Add-Ons.
• Configuration management tools.
• Idempotent
• Describe infrastructure as code.
• Can then be managed from within a VCS such as git.
• Changes are attempted, shared, rolled forward and rolled back in a much more frictionless
way than traditionally.
• Agent based
• Uses Ruby based DSL for
configuration
• Agentless
• Uses Python 2.7
• Communicates over SSH
• Agent based
• Uses a subset of Ruby for
configuration
45
BRKSPG-2069
- 44. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
Application Hosting
• Visibility of all XR processes
• Visibility of all XR resources
• Run alongside XR Processes
• No isolation
• Must be built for WRL7
distribution
• No direct visibility of XR processes
• No direct visibility of XR resources
• Run in a separate namespace
• Isolation
• Must be built for the third
party LXC distribution
Inside the Control Plane
Inside the
Third Party LXC/Docker
Third
Party
LXC/
Docker
Third
Party
Control
Plane
Binary
VM/LXC
47
BRKSPG-2069
- 45. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public 48
• Create the Container archive on a Linux Server.
• Copy the archive file to /misc/app_host.
• Unarchive in a rootfs directory.
• Create XML file specifying LXC parameters.
• Run virsh command.
Routing Processor
64-bit Host OS
Control
Plane
Third
Party
virsh create <XML File>
virsh list
Deploy
2 Launch
3
TAR
1 Create
Server
Third Party Container Application Workflow
BRKSPG-2069
- 46. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public 49
• Create a docker image
• Pull down using docker client in XR control plane
• Spin up the docker container on host OS by
executing “docker run” in XR linux shell.
Routing Processor
64-bit Host OS
Control
Plane
docker pull <>
docker run <>
docker exec <>
Pull
2 Launch
3
1 Create
Server
Docker Container Workflow
BRKSPG-2069
- 49. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public 52
HW/Data Plane
NPU ASIC CPU
Fans, Sensors, Optics,
etc.
System OS + BSP
ASIC SDK
Network Infrastructure / Service Adaptation
RIB, Label Manager, BFD, Interface and more
Applications / Protocol Stack
BGP, ISIS, OSPF, LDP, SR, L2 Protocols
Management
CLI, Netconf, SNMP, Syslog, SSH
SAL
APL
NBI
3rd Party Agent + Telemetry OSS
Hardware
Consists of ASIC/Chipset from HW vendors + CPU, Fans,
Sensors
System OS - Linux Kernel
BSP(Board Support Package) - Boot Loader, Device Drivers,
etc.
ASIC SDK and drivers for the SDK
Network Infrastructure Layer / Service Adaptation Layer
• Acts as the bridge between the Application Layer and the HW
• Presents abstractions to the Application/Protocol Layer
Application/Protocol Layer
Provides APIs into the Routing Protocols (BGP, IGP, SR, etc.)
Management/Presentation Layer
Provides access to configure and manage the stack through
Network config/oper DB: Yang Models, CLI.
SL API
De-Layering The Network Stack
BRKSPG-2069
- 51. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public 54
Cisco IOS XR Device Programmability
Data Plane
Control Plane
Management Plane
App
Controller
Orchestrator
Controller
Orchestrator
Data Plane
Control Plane
App
Model-Driven Manageability Service Layer API
BRKSPG-2069
- 52. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public 55
Controller
Orchestrator
Network
Device
Model-Driven
Configuration
Model-Driven
Telemetry
Closed-loop
automation Encoding
Protocol
Models
SDK
Apps
XML JSON GPB
NETCONF gRPC
Model-Driven SDKs
YANG Development Kit (YDK)
YANG Models
(native, open)
App App App
SSH HTTP
Transport TCP
Model-Driven Manageability
BRKSPG-2069
- 53. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
Introduction to YANG
• Modeling language
(initially for NETCONF)
• Main node types
• Leaf – An end node of data
• Leaf list – A list of single items
• Container – Groups things together
• List – A collection of containers
56
Leaf
Node without a value
Node with a value
Leaf list
Container
(grouping)
Container
(presence)
List
key
BRKSPG-2069
- 54. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
Benefits of Model-Driven APIs
• Model based, structured, computer friendly.
• Multiple model types (native, OpenConfig, IETF, etc.).
• Models decoupled from transport, protocol end encoding.
• Choice of transport, protocol and encoding.
• Model-driven APIs for abstraction and simplification.
• Wide standard support while leveraging open source.
Reduce Operational Costs
57
BRKSPG-2069
- 55. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
YANG Model Example
container community-sets {
description “Container for community sets";
list community-set {
key community-set-name;
description "Definitions for community sets";
leaf community-set-name {
type string;
description "name of the community set";
}
leaf-list community-member {
type string {
pattern '([0-9]+:[0-9]+)';
}
description "members of the community set";
}
}
}
community-set CSET1
65172:1,
65172:2,
65172:3
end-set
!
community-set CSET10
65172:10,
65172:20,
65172:30
end-set
!
YANG CLI
58
BRKSPG-2069
- 56. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
Model Data Example
community-set CSET1
65172:1,
65172:2,
65172:3
end-set
!
community-set CSET10
65172:10,
65172:20,
65172:30
end-set
!
{ "community-sets": {
"community-set": [
{ "community-set-name": "CSET1",
"community-member": [
"65172:1",
"65172:2",
"65172:3" ]
},
{ "community-set-name": "CSET10",
"community-member": [
"65172:10",
"65172:20",
"65172:30" ]
}
]
}
}
JSON CLI
59
BRKSPG-2069
- 57. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
YANG Models (Github)
IOS XR Models
XR models
per release
60
BRKSPG-2069
- 58. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public 61
• SDK simplifying client
development for model-driven
programmability
• Rich protocol support (NETCONF,
RESTCONF, gNMI)
• Rich data model support (XR, XE,
NX-OS, OC, IETF)
• Rich language support (Python,
Go, C++)
• Built-in model data validation
• Open source
YANG Development Kit
ydk.io
YDK-Py YDK-Cpp YDK-Go
Model-driven
classes
NETCONF
RESTCONF
gNMI
BRKSPG-2069
- 59. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
Model-Driven APIs
• Simplify app development
• Abstract transport and encoding
• Generated from YANG model
• One-to-one correspondence between
model and class hierarchy
• Multi-language (Python, C++, Ruby, Go,
etc.)
62
YANG Model
Class Hierarchy
(Python, C++, Ruby, Go)
BRKSPG-2069
- 60. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public 63
• OpenConfig network management
protocol
• Supports configuration management
and telemetry
• Efficient data streaming over gRPC
• IOS XR 6.5.1 introduced support for
gNMI
• YDK 0.8.0 enables simple client
development
gNMI at a Glance (Introduced in IOS-XR 6.5.1)
Configuration Telemetry
BRKSPG-2069
- 62. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public 65
Service Adaptation
RIB, Label Manager, BFD, Interface and more
SAL
3rd Party Agent + Telemetry OSS
Network Infrastructure Layer /
Service Adaptation Layer
• Acts as the bridge between the Application Layer
and the HW
• Presents abstractions to the Application/Protocol
Layer
• Highly Performant API outside the Central
Config/Oper Database context
SL API
Locating the
Service-Layer API
BRKSPG-2069
- 63. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
Service Layer API Architecture
SL-API Functionality Verticals
Initialization
RPCs
RIB
RPCs
MPLS
RPCs
Interface
RPCs
BFD
RPCs
gRPC Server (Router)
Protobuf Schema/Model
……
gRPC
stub
On-Box Client
Request Response
gRPC
stub
Off-Box
Client
Python, C++, go
Python, C++, go
66
SYSDB
Manageability Layer
Network Infrastructure Layer (Service Layer)
CLI, Yang Models, Streaming Telemetry
Service Layer API
Service-Layer APIs bypass
SysDB giving higher
performance
BRKSPG-2069
- 64. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
SL-API Example Use Cases
Traffic Engineering and
Path Selection
Programmable Route
Downloads
Bring your own
Protocol/Agent
Controller
SL API
Engineering paths for
applications through
Route/label manipulation, all
based on user specific logic
Programmable route
downloads to CDN PoP routers
to optimize TCAM space
Controller
SL API
On-box agents and custom
protocols that co-exist with
standard protocols to influence
routing
67
BRKSPG-2069
- 65. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public 68
Cisco Service Layer APIs
• Github: Check out the Obj-model repository on
Github at
https://github.com/Cisco-Service-Layer/service-layer-
objmodel
Proto definitions
Exhaustive Unit Tests and tutorial apps
• @xrdocs: Blogs, Tutorials on Using Service Layer APIs
and associated Libraries:
https://xrdocs.io/cisco-service-layer/
• APIdocs: Doxygen based documentation, auto-generated
from the proto files:
https://xrdocs.io/cisco-service-layer/apidocs/
Github
APIdocs @xrdocs
BRKSPG-2069
- 67. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
Traditional Monitoring Concepts
No Longer suited for Cloud-Scale Network Operations
Sensing &
Measurement
Where Data Is Created Where Data Is Useful
syslog
SNMP
CLI
Storage & Analysis
Strong burden on back-end
Normalize different encodings,
transports, data models,
timestamps
70
BRKSPG-2069
- 68. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
Streaming Telemetry Concepts
Better suited for Cloud-Scale Network Operations
Sensing &
Measurement
Storage & Analysis
Analytics-Ready Data
Streaming Telemetry
Push paradigm
One consistent way to
access Statistics, Oper
state & Events @ all layers
High Performance: 10 sec
Multiple encodings &
Transport
Where Data Is Created Where Data Is Useful
71
BRKSPG-2069
- 69. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
How Do You See Telemetry?
72
1 2 3
1 2 3
1 2 3
Models
Encoding
Transport
BRKSPG-2069
- 70. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
“Pushing” More Data Really Does Work Better
7% 7% 8%
7%
14%
20%
0
10
20
30
1 2 3
CPU load
0
100
200
300
400
5s 10s 15s 20s
Thousands
Counters
0 5 10 15 20 25
MemAllocated
Interface counters
(In/Out pkts, In/Out Discards, In/Out Errors)
Time to collect all data
(NCS5516, 576х100GE)
Telemetry
SNMP
Destinations
Seconds
73
BRKSPG-2069
- 71. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
Cisco IOS XR Telemetry Support
74
Classic XR
ASR9k
Evolved XR
ASR9k
NCS5500 NCS6k/CRS
MDT support 6.1.1 6.1.1 6.1.1 6.1.3
Data models
YANG
(native, OC)
YANG
(native, OC)
YANG
(native, OC)
YANG
(native, OC)
Transport
(Control
protocols)
TCP,
UDP (6.2.1)
gRPC
(dial-in, dial-out),
TCP, UDP (6.2.1)
gRPC
(dial-in, dial-out),
TCP, UDP (6.2.1)
TCP,
UDP (6.2.1)
Encoding
GPB /
GPB-KV /
JSON (6.3.1)
GPB /
GPB-KV /
JSON (6.3.1)
GPB /
GPB-KV /
JSON (6.3.1)
GPB /
GPB-KV /
JSON (6.3.1)
BRKSPG-2069
- 72. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
If bored with manual, automate MDT configuration with YDK (http://ydk.io)!
Examples of Telemetry config with Native Models: https://goo.gl/Adjcgu, and with
Openconfig Models: https://goo.gl/Ubb2ZN
Model-Driven Telemetry Example
telemetry model-driven
destination-group DGroup1
address-family ipv4 10.30.110.38 port 5432
encoding self-describing-gpb
protocol tcp
!
!
address-family ipv6 2001::1 port 2345
encoding json
protocol grpc no-tls
!
sensor-group SGroup1
sensor-path Cisco-IOS-XR-infra-statsd-oper:infra-
statistics/interfaces/interface/latest/generic-counters
!
subscription Sub1
sensor-group-id SGroup1 sample-interval 1000
destination-id DGroup1
Where to Send and How
What Data to Collect
How Often
GRPC with GPB
encoding
76
GRPC with JSON
encoding
BRKSPG-2069
- 73. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
Model-Driven Telemetry
100 interfaces UP / 0 interfaces DOWN
100 interfaces UP / 0 interfaces DOWN
100 interfaces UP / 0 interfaces DOWN
99 interfaces UP / 1 interfaces DOWN
99 interfaces UP / 1 interfaces DOWN
99 interfaces UP / 1 interfaces DOWN
Event-Driven Telemetry
Router X
100 interfaces UP / 0 interfaces DOWN
interface X state DOWN
Time
Time
Router X
t0
t1
t1
t0
t1
t1
t0
t0
Event Driven Telemetry
To make telemetry even better
77
BRKSPG-2069
- 74. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
Event Driven Telemetry
Easy to configure
telemetry model-driven
subscription interface
sensor-group-id interface sample-interval 0
6.3.1 6.3.2 6.5.1*
Interface
RIB
Syslog
LLDP
OpenConfig
BGP, ISIS,
MPLS, etc.
78
* The full list will be available after XR 6.5.1 is published on CCO
BRKSPG-2069
- 76. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
iPerf Based Path Selection in OSPF
rtr1
iPerf Session
• Each router is running a Linux distribution (Debian, Red Hat, etc…) inside the 3rd Party LXC
• iPerf is running inside the container and a session is created between the two routers
• Link degradation is detected by iPerf inside the container
• Netconf client inside the container will update the OSPF cost of links based on iPerf result
3rd Party LXC
Control
Plane
Admin
Plane
3rd Party LXC
Control
Plane
Admin
Plane
rtr2
OSPF
80
BRKSPG-2069
- 77. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public 82
Host
Open/R
Packet
IO
IOS-XR RIB
Service Layer
APIs
IOS-XR
Interfaces
Hellos,
0MQ messages
IPv6
neighbors
Routes
Telemetry
Interface
Notifications
Open/R running
inside Docker on XR
https://github.com/akshshar/openr-xr
XR LXC
Open/R integration with IOS-XR
(using Service-Layer APIs)
Blog on xrdocs.io
BRKSPG-2069
- 79. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
Key Takeaways
• No Change in traditional CLI Operation with IOS-XR 6.X
• 6.X is available on NCS5500, NCS5000 and NCS1000 Platforms
• 6.1.1 is available on ASR9k (traditional 32-bit QNX offering will still be supported)
• Operational enhancement for Automated Operations
• Operating System change for Open Source tooling
84
BRKSPG-2069
- 80. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
IOS-XR 6.X Operational Enhancements
Visibility
&
Telemetry
Evolved
programmability
Application
Hosting
Flexible
Platform
&
Packaging
IOS-XR 6.X
85
BRKSPG-2069
- 81. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
References
• IOS-XR Documentation, Blogs Tutorials and more : https://xrdocs.github.io/
• IOS-XR Programmability Learning Labs on DevNet: https://learninglabs.cisco.com/tracks/iosxr-
programmability
• IOS-XR YANG Models: https://git.io/vg7fk
• YANG Developer Kit: http://ydk.cisco.com/py/docs/
• IOS-XR Ansible: https://github.com/ios-xr/iosxr-ansible
• IOS-XR Puppet: https://docs.puppet.com/pe/latest/install_iosxr.html
• IOS-XR Chef: https://downloads.chef.io/chef-client/iosxr/
• Cisco IOS XR 6.0 Software Management Lab v1:
https://dcloud-cms.cisco.com/demo/cisco-ios-xr-software-management-lab-v1
• Cisco IOS XR 6.0 Application Hosting Lab v1:
https://dcloud-cms.cisco.com/demo/cisco-ios-xr-6-0-application-hosting-lab-v1
• Cisco IOS XR 6.0 End-to-End Automation Lab v1:
https://dcloud-cms.cisco.com/demo/cisco-ios-xr-6-0-end-to-end-automation-lab-v1
86
BRKSPG-2069
- 82. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
Cisco Webex Teams
Questions?
Use Cisco Webex Teams (formerly Cisco Spark)
to chat with the speaker after the session
Find this session in the Cisco Events Mobile App
Click “Join the Discussion”
Install Webex Teams or go directly to the team space
Enter messages/questions in the team space
How
1
2
3
4
87
cs.co/ciscolivebot#BRKSPG-2069
BRKSPG-2069
- 83. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
Don’t forget: Cisco Live sessions will be available for viewing
on demand after the event at ciscolive.cisco.com
• Please complete your Online Session
Survey after each session
• Complete 4 Session Surveys & the Overall
Conference Survey (available from
Thursday) to receive your Cisco Live T-
shirt
• All surveys can be completed via the Cisco
Events Mobile App or the Communication
Stations
Complete your online
session survey
88
BRKSPG-2069
- 84. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
Demos in
the Cisco
Showcase
Walk-in
self-paced
labs
Meet the
engineer
1:1
meetings
Related
sessions
Continue Your Education
89
BRKSPG-2069