Introduction to IOS-XR 6.0 Sai Gopalakrishnan, Manager, Product Management Patrick Warichet, Technical Marketing Engineer Agenda

• Introduction

• Software Architecture Overview

• Flexible Packaging

• Application Hosting

• Configuration, Monitoring and Troubleshooting

• Conclusions

3 Introduction

4 30% Growth is Forcing Web Providers in Two Directions

“Scale breaks hardware. Speed Speed breaks software. Speed at scale breaks Scale everything” Adrian Cockroft, Technical Fellow, Battery Ventures (formerly Cloud Architect at Netflix)

5 Examples of Speed @ Scale

• Deploy services 300 times an hour to an average 10,000 servers

• 15K engineers working 4K projects with 5500 commits and 75M test cases run every day

• Build, test and deploy new code in ~60 min

• Deploy bug fixes and internal changes twice a day, and new features once a week Source: NANOG ‘15 AWS re:invent ’15 GCPNext ’15

6 Integrating network into operational workflow still the sticking point

… “working in network operations is the equivalent of working in the boiler room” … --Cameron Haight, Gartner research vice president, at the Gartner Data Center Conference

“I’ve hugged a lot of routers in my life, and believe me, they do not hug you back. They hate you.” --Amazon CTO Werner Vogels in his keynote speech at AWS re: Invent

7 Networking Operations to Adapt to Cloud Scale

Traditional Cloud Scale Networking Operations Networking Operations

Manual + Total some Automation Automation Modular and Closed Extensible SW SW with open interfaces Fragmented Topology Visibility & View and Control Complex Routing

8 … coming to a platform closer to you In development More in CLUS 2016

Fixed 1 RU 40x10G SFP+ 4x100G QSFP28

NCS5001

Fixed 2 RU Modular 8 Slot 80x10G SFP+ 288x100GE QSFP28 4x100G QSFP28

NCS5002 Fixed 2RU 2Tbps DWDM capacity 2Tbps client capacity 8 CFP2 trunks and 20 QSFP clients

NCS5508 NCS1002 ASR9000(*)

Q4 CY15 Q2 CY16 Q4 CY16

* On ASR9k, 32-bit QNX images and 64-bit images will be supported 9 Guiding Principles for IOS-XR operational enhancements Bring Your own Application • Provide a platform on which customers can host their apps • Customer apps, Third party apps, Cisco apps

Automatable interfaces • Provide visibility into the device through machine friendly interfaces

Open architecture  Decrease tool chain variance • Fit into customer’s operational workflow

10 Pillars of IOS-XR operational enhancements

Visibility & • Operational Data, Deep analytical hooks Telemetry • Policy-based, flexible, Push Model

Evolved • Data accessible via published model driven interfaces • Machine friendly Programmability • Enables automation @ scale

Application • Ability to run 3rd party off the shelf applications built with Linux tool chains Hosting • Run custom applications inside an LXC container on the 64-bit Linux host

Flexible Platform • Packages can be inspected on box using standard tool chain (RPM tools) • Automated package dependency checkers and Packaging • Open Bootloaders (iPXE) and end-to-end auto-provision

11 Why is this relevant beyond Web and OTT space?

 Continuous iteration of business “Market leaders will out-experiment their services and offerings in real-time peers.”  Need matching infrastructure that Gene Kim, The Phoenix Project supports continuous deployment and rapid innovation

 Workflow automation is the secret sauce; Reduces operational “Many operators will be cautious about expenses by an order of magnitude transforming their networks because  Cisco is committed to providing transformation is risky … But the 100% operational fit to make you companies that do, are likely to be the successful. winners.” Alex Clauberg, DT

9 Software Architecture

13 IOS-XR 6.0: A New Software Infrastructure

• 64-bit OpenEmbedded Linux support.  Processes containerization.  Brings in standard Linux toolchain.  Third-Party applications support. Classic XR XR 6.0

System • NCS5500, NCS5000 and NCS1002 System Control Admin will support only 64-bit Linux Control Admin

32 bit QNX 64 bit Linux • ASR 9000 will still have 32-bit QNX NPU X86 Hardware support

14 Traditional Virtualization Introduction to Containers App App

• LXC (LinuX Containers) let you run a Linux Lib Lib … system within another Linux system. OS OS • A container is a group of processes on a Linux machine. Hypervisor • These processes form an isolated environment. X86 Hardware • Inside the container, it looks like a Virtual Machine. Containers App App • Outside the container, it looks like normal processes running on the system. Lib Lib … • Containers look like Virtual Machines, but are more efficient. OS OS Operating System

X86 Hardware 15 Why Containers?

• They are Fast Deploy and Boot in less than one Second vs Minutes for Virtual Machines • They are Lightweight Only a few MB of Disk Space per Container vs several hundred MB for traditional Virtual Machines. • They provide Similar Services as VMs Each container has:

• Its own network interfaces LXC1 - Can be bridged, routed... just like with KVM. LXC2 App App • Its own filesystem - e.g.: RedHat host can run Debian container. Lib Lib … • Isolation (security) OS OS - Two containers can't harm (or even see) each other.

• Isolation (resource usage) Operating System - Soft & Hard quotas for RAM, CPU, I/O. X86 Hardware 16 Linux Containers – Kernel Requirements

• To create a virtual environment, containers use the following kernel features.

1. Namespaces: Partition essential kernel App App structures to create virtual environments: … • pid (processes) Lib Lib • net (network interfaces, routing...) OS OS 2. Control Groups: Limit, account, and isolate Operating System resource usage: • Exposed through a virtual filesystem X86 Hardware 3. Chroot: operation that changes the apparent root directory of the container process.

17 IOS-XR Container Architecture Modular Fixed Router

LXC LXC LXC Control Admin Third Control Admin Third Plane Plane Party Plane Plane Party

64-bit Host OS 64-bit Host OS

Routing Processor Routing Processor

Control

64

Plane

LXC

FrontPanel

- Line Card Line

Fabric Hostbit OS Fabric

Admin Admin

Plane LXC

19 IOS-XR Container Roles: The Host

• Runs Yocto based 64-bit Open Embedded Linux kernel. • Built using Windriver 7

• The main functions of the host are: Control Admin Third • Interact directly with the underlying hardware. Plane Plane Party • Provide kernel services for the containers. • Provide libraries, tools, and utilities to 64-bit Host OS help launch, monitor, and maintain containers. Routing Processor • Provide the network infrastructure to allow containers to communicate.

20 IOS-XR Container Roles: The Control Plane

• The heart of IOS-XR 6.0

• Runs a Yocto based 64-bit OELinux composed of 2 types of packages: 1. Cisco developed packages for core network functions (BGP, MPLS, etc.) Control Admin Third 2. Yocto packages for standard Linux Plane Plane Party tools and libraries (bash, python, tcpdump, etc.).

64-bit Host OS Routing Processor

21 IOS-XR Container Roles: The Admin Plane

• Runs a Yocto based 64-bit Linux.

• Provides services that were originally provided by the admin mode of XR.

• Runs processes responsible to Control Admin Third perform system diagnostics, monitor Plane Plane Party environmental variables, and manage hardware components.

• First container to be booted by the 64-bit Host OS host, and is responsible for the start and maintenance of all the other Routing Processor containers in the system.

22 IOS-XR Container Roles: Third Party

• Runs any 64-bit Linux distribution.

• Launched from the XR container using virsh and libvirtd.

Control Admin Third • Access Network Interface through the Plane Plane Party Third Party Network Name Space (TPNNS).

64-bit Host OS Routing Processor

23 XR Boot Process

• XR 6.0 image will be released in the form of bootable self-extracting ISOs • Similar to any Linux distribution. • NCS 5000 and 5500 possess a BIOS that offers NetBooting using iPXE. • iPXE is an open-source network boot firmware that supports: 1. Booting from HTTP/HTTPS. 2. Controlling the boot process via scripts. 3. Performing image validation.

• XR 6.0 comes with an Auto-Provision process • Executed at the end of the control-plane boot sequence. • Executed inside the Shell. • Can execute Scripts or apply Static Configuration.

25 DHCP SERVER

IOS-XR Boot Process with iPXE IP address Next-server iPXE Filename=http:///image-new.ISO N boot 1 Y IP address Next-server iPXE 2 Filename=http:///AutoProv-SN.sh or Filename=http:///Config-SN.txt XR Install HTTP SERVER

XR Boot 3 Image-new.ISO

4 GET script-SN.sh or config-SN.txt AutoProvision script-SN.sh execution config-SN.txt

5 Additional Apply GET addon scripts/packages/configuration Scripts Execute script 26 configuration Packages, etc… Flexible Packaging

28 Networking Software Delivery Direction

• Server-like Workflows

• Modular Disaggregated

• Update, Upgrade, Remove • RPM

• Dependency management • YUM

• Secure • New Install Commands

• Repository Support

• Third Party Applications

29 RPM: 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”.

• Install commands are a wrapper around YUM to provide multi-arch support.

• Both YUM and install commands provide dependency verification/resolution.

30 Anatomy of RPM Packages

RPM

Archive CPIO binary Archive

Describe package contents MetaData Install structure /var/lib/rpm Dependencies

Scriptlet Pre and Post Install Instructions Database of installed packages

31 XR Packages Naming Convention

Package --..rpm

ncs5500-mgbl-1.0.0.0-r600.x86_64.rpm

SMU --...rpm

ncs5500-mgbl-1.0.0.1-r600.CSCab12345.x86_64.rpm

32 Package Repository www.cisco.com Local Repository

Mini ISO Platform + Pkgs 6.0.0.17L Release Mini ISO ncs-5500-mini-x.iso-6.0.0.17L.iso + k9 pkg ncs-5500-mpls-te-rsvp-1.1.0.0-r60017L.x86_64.rpm XR Software + Pkgs ncs-5500-bgp-1.0.0.0-r60017L.x86_64.rpm

Full K9 ISO ncs-5500-eigrp-1.0.0.0-r60017L.x86_64.rpm ncs-5500-k9sec-1.0.0.0-r60017L.x86_64.rpm Full ISO ncs-5500-mgbl-2.0.0.0-r60017L.x86_64.rpm

XR SMUs DDTS SMU ncs-5500-mpls-1.1.0.0-r60017L.x86_64.rpm ncs-5500-li-1.0.0.0-r60017L.x86_64.rpm

Svc Pak DDTS SMUs ncs-5500-mgbl-2.0.0.1-r60017L.CSCab12345.x86_64.rpm

33 Updating XR Packages

Command Line Behavior install update source No package specified, update latest SMUs of all installed packages install update source ncs5500-mpls Package name specified, will install that package, update all latest SMUs of that package(s) (along with its dependencies). install update source ncs5500-mpls- SMU installation: the SMU will be downloaded and 1.0.0.1-r622.CSCab12345.x86_64.rpm installed (along with its dependent SMUs). install update source ncs5500-mpls- Asynchronous package upgrade, that package will be 1.0.2.0-r622.x86_64.rpm installed (along with its dependent SMUs). Available in future release

34 Upgrading XR Packages

Command Line Behavior install upgrade source version 6.1.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 version 6.1.1 Perform install upgrade and install update for a ncs5500-mpls-1.0.2.0-r623.x86_64.rpm specific package(s) in one operation.

35 PIE Install RPM Install

• No dependency management • Dependency management

• Offline process required to copy packages • Online process over secure transport

• Require multiple operations • Single operation • install add • install update or install upgrade • install activate • install commit

• CSM for package content • On-box / Off-box package inspection using rpm tool • Description • Dependencies • Content

36 Installing and Updating Third Party Packages

• Third Party Packages are traditional Linux tools available from the Shell • Communication: lighttpd ,openssh, wget, curl, etc. • Programing: 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.0.0 yum install chef –y

37 Application Hosting

38 Third Party Network Name Space

• Provide visibility of fabric Control Plane Admin Plane Third Party attached interfaces outside of XR CLI. TPNNS TPNNS Mgmt Mgmt Internal • Available to processes in the Gig Gig IPC XR containers or Third Party TenGig TenGig containers. Interfaces HunGig HunGig • Requires that the interface is Up with a valid IP address.

• Routing handled by XR. TPNNS 64-bit Host OS Routing Processor [xr-vm_node0_RP0_CPU0:~]$ip netns exec tpnns bash

40 Third Party Container Application Workflow

2 Deploy 3 Launch • Create the Container archive on a Linux Server. Server • Copy the archive file to /misc/app_host.

• Unarchive in a rootfs directory. • Create XML file specifying LXC Control Admin Third TAR parameters. Plane Plane Party • Run virsh command. 1 Create 64-bit Host OS Routing Processor virsh –c lxc+tcp://10.11.12.15:16509 create

41 Configuration, Monitoring and Troubleshooting

42 Streaming Telemetry: Introduction

Where Data Is Created Where Data Is Useful

SNMP

syslog sensing & measurement storage & CLI analysis

43 Streaming Telemetry Design Vision

• Get as much data off the box as quickly Performance as possible

• Grant full access to all operational data Coverage on the box*

• Serialize the data in a flexible, efficient Automation way that fits customers automated tools

*User needs to have the correct privileges 44 Telemetry

• Common modeling language • Describes monitoring data structure and attributes • Goal is YANG (experimental SysDB name space in IOS-XR 6.0) • Push Model • Stream data continuously with incremental updates based on subscriptions • Data delivery • JSON (compressed) inside TCP • Google Protocol Buffer inside UDP • Google Protocol Buffer inside gRPC • Observe network state through a time-series data stream

45 Streaming Telemetry Model • Telemetry Configuration XR Control Plane • Described in JSON. Telemetry • Define one or multiple collection Configuration Namespace group(s). • Each group contains a rate and a pointer to one or multiple objects in the experimental SysDB path (6.0 only) Telemetry Policy • Telemetry Policy Telemetry • Define the encoder, transport and the receiver(s) for each policy. Receiver Telemetry • Telemetry Agent Agent • XR process that runs automatically and looks for registered policies to act on. Host OS

46 Streaming Telemetry Example

{ "Name": "GenericCounters", "Metadata": { "Version": 25, "Description": "This is a sample policy to demonstrate the syntax", "Comment": "This is the first draft", "Identifier": "" }, "CollectionGroups": { "FirstGroup":{ Cadence "Period": 30, SysDB "Paths":["RootOper.InfraStatistics.Interface([*]).Latest.GenericCounters"] Path } }

} 47 Network Configuration Protocol (NETCONF)

• NETCONF provides mechanisms to install, manipulate, and delete device configuration.

• It uses an XML based data encoding for the configuration data as well as the protocol messages.

• NETCONF protocol operations are realized as remote procedure calls (RPCs) over SSH. SSH Clients Networking Device SSH Retrieve, Configure, Copy, and Delete

RPC calls are divided in 4 groups of methods: Retrieve, Configure, Copy, and Delete. Additional methods can be supported 48 Programmatic Interface

Secure Connection Negotiate RPC-based Configuration Manager Transport Oriented Capabilities communication model

Backend Apps XR SSH NETCONF YANG SSHd Programmatic Proxy Agent Framework SysDB Interface Server Client SysDB Library

49 Conclusions

50 Key Takeaways

• No Change in traditional CLI Operation with IOS-XR 6.0 • 6.0 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

51 IOS-XR 6.0 Operational Enhancements

IOS-XR 6.0

& Packaging &

Application Hosting Application

Visibility Telemetry & Visibility

Evolved programmability Evolved Flexible PlatformFlexible

52 Call to Action

• DevNet zone related sessions • DevNet-1086 Extending Streaming Telemetry • DevNet-1088 Developing on IOS XR • DevNet-1089 Bringing DevOps to Routing with Evolved XR.

• Related Labs • LTRSPG-2517 IOS-XR 6.0 hands-on lab • LABRST-2332 Cisco IOS XR Programmability for cloud-scale networking

• Related Sessions • PSOSPG-4006 Software Innovations for Cloud Scale Networking • BRKSDN-1119 Hitchhiker's Guide to Device APIs • BRKSPG-2404 IOS-XR Platforms Hardware Architectures

53 Complete Your Online Session Evaluation

• Please complete your online session evaluations after each session. Complete 4 session evaluations & the Overall Conference Evaluation (available from Thursday) to receive your Cisco Live T-shirt.

• All surveys can be completed via the Cisco Live Mobile App or the Communication Stations

54 Thank you

55