Cisco 8000 software manageability: how to add a package
Introduction
This blog post aims to describe IOS XR7 software operation details to add optional packages on a Cisco 8000 router.
History
Cisco IOS-XR is a modular Network Operating System created in 2004 for CRS. It was originally built using a 32-bit QNX based micro kernel architecture. It then evolved toward a 64-bit Linux-based kernel with IOS-XR 6 introduced with NCS 5500. Those 2 versions are referenced as classic IOS-XR (cXR) and IOS-XR 64bit (or enhanced IOS-XR or eXR).
Both of those IOS-XR flavors rely on packages concept. There are 3 types of packages:
- Cisco IOS XR Unicast Routing Core Bundle (also referred as mini.pie or mini.iso). It contains:
- Operating system (OS) and minimum boot image (MBI)—Kernel, file system, memory management, and other slow changing core components.
- Base—Interface manager, system database, checkpoint services, configuration management, other slow-changing components.
- Infra—Resource management: rack, fabric.
- Routing - RIB, BGP, ISIS, OSPF, EIGRP, RIP, RPL, and other routing protocols.
- Forwarding - FIB, ARP, QoS, ACL, and other components.
- LC — Line card drivers.
Individually-Installable Optional Package. It contains software for specific features such multicast, MPLS or manageability.
- Software Maintenance Upgrades (SMU). It contains fixes for a specific defect.
Cisco 8000 and IOS XR7
Cisco 8000 runs IOS XR7 software. IOS XR7 is built on top of the WindRiver Linux 9 distribution. One major change is the complete removal of the admin plane. In addition, IOS XR control plane processes now run natively on the host.
Info: IOS XR7 (also referred as Lindt) is a XR software architecture evolution. It’s currently applicable to Cisco 8000, NCS 540 and NCS-57B1 series. A software release can contain the number 7 but still follows cXR or eXR software architecture (e.g ASR 9000 XR 7.5.2 release is not XR7 architecture) See datasheet here for more information.
Cisco IOS XR7 is composed of a base image (ISO) that provides the XR infrastructure. The ISO image is made up of a set of packages (also called RPMs). These packages are of two types:
- A mandatory package that is included in the ISO
RP/0/RP0/CPU0:8201-32FH-1#sh install active all
Tue Aug 24 17:03:27.152 UTC
Package Version
---------------------------------------------------- ---------------------------
8000-boot-scripts 7.3.15v1.0.0-r0
8000-cpa-setup-x86 7.3.15v1.0.0-r0
8101-32h-cpa-sb-x86 7.3.15v1.0.0-r0
8102-64h-cpa-sb-x86 7.3.15v1.0.0-r0
8201-32fh-cpa-sb-x86 7.3.15v1.0.0-r0
8201-cpa-sb-x86 7.3.15v1.0.0-r0
8202-cpa-sb-x86 7.3.15v1.0.0-r0
8804-fc-data-cpa-sb-x86 7.3.15v1.0.0-r0
acl 2.2.52-r0.23.38.0
snip
- An optional package that is included in the ISO
RP/0/RP0/CPU0:8201-32FH-1#sh install active ?
all Show all user-installable packages
summary Show a summary of active packages - optional and bugfix packages only
RP/0/RP0/CPU0:8201-32FH-1#sh install active summary
Tue Aug 24 12:19:30.076 UTC
Active Packages: XR: 178 All: 1274
Label: 7.3.15
Software Hash: 9149973e08793c3f44e84a4a5b385c8a
Optional Packages Version
---------------------------------------------------- ---------------------------
xr-8000-mcast 7.3.15v1.0.0-1
xr-8000-netflow 7.3.15v1.0.0-1
xr-bgp 7.3.15v1.0.0-1
xr-ipsla 7.3.15v1.0.0-1
xr-is-is 7.3.15v1.0.0-1
xr-lldp 7.3.15v1.0.0-1
xr-mcast 7.3.15v1.0.0-1
xr-mpls-oam 7.3.15v1.0.0-1
xr-netflow 7.3.15v1.0.0-1
xr-ospf 7.3.15v1.0.0-1
xr-perfmgmt 7.3.15v1.0.0-1
xr-track 7.3.15v1.0.0-1
Last type of package is optional package that is not included in the ISO. They can be downloaded on cisco.com website.
For IOS-XR 7.3.15, those optional packages are:
- cdp
- telnet
- healthcheck
- k9 (crypto dataplane)
Info: telnet is now optional because ssh is part of the default image. Starting IOS XR 7.0.1, k9sec package is no more required for ssh/sftp features. This is applicable for XR 32bits, XR 64bits and XR7. Fore more information, please check “SSH and SFTP in Baseline Cisco IOS XR Software Image” section in System Security Configuration Guide
k9 package is still required for crypto dataplane features such MACsec.
Adding optional packages
After USB or PXE boot, network operator might need to add optional packages to implement features not covered in the Core Bundle (or mini.iso). telnet package for IOS-XR 7.3.15 will be used as an example.
After downloading and extracting 8000-optional-rpms.7.3.15.tar file from CCO, individual packages files can be found in their respective folders:
{25/08/21 14:51}dhcp-10-61-108-172:~/Downloads/IOS/8000 fcuiller% tree optional-rpms/
optional-rpms
├── cdp
│ ├── xr-cdp-3692251fac396a2d-7.3.15v1.0.0-1.x86_64.rpm
│ ├── xr-cdp-7.3.15v1.0.0-1.x86_64.rpm
│ ├── xr-cdp-78bb1e1f26c2908f-7.3.15v1.0.0-1.x86_64.rpm
│ ├── xr-cdp-8101-32h-7.3.15v1.0.0-1.x86_64.rpm
│ ├── xr-cdp-8102-64h-7.3.15v1.0.0-1.x86_64.rpm
│ ├── xr-cdp-8201-32fh-7.3.15v1.0.0-1.x86_64.rpm
│ ├── xr-cdp-8201-7.3.15v1.0.0-1.x86_64.rpm
│ ├── xr-cdp-8202-7.3.15v1.0.0-1.x86_64.rpm
│ ├── xr-cdp-8608-rp1-7.3.15v1.0.0-1.x86_64.rpm
│ ├── xr-cdp-88-lc0-34h14fh-7.3.15v1.0.0-1.x86_64.rpm
│ ├── xr-cdp-88-lc0-36fh-7.3.15v1.0.0-1.x86_64.rpm
│ ├── xr-cdp-88-lc0-36fh-m-7.3.15v1.0.0-1.x86_64.rpm
│ ├── xr-cdp-8800-lc-36fh-7.3.15v1.0.0-1.x86_64.rpm
│ ├── xr-cdp-8800-lc-48h-7.3.15v1.0.0-1.x86_64.rpm
│ ├── xr-cdp-8800-rp-7.3.15v1.0.0-1.x86_64.rpm
│ └── xr-cdp-d17f630e9aaec8a3-7.3.15v1.0.0-1.x86_64.rpm
├── healthcheck
│ ├── xr-healthcheck-3692251fac396a2d-7.3.15v1.0.0-1.x86_64.rpm
│ ├── xr-healthcheck-7.3.15v1.0.0-1.x86_64.rpm
│ ├── xr-healthcheck-8101-32h-7.3.15v1.0.0-1.x86_64.rpm
│ ├── xr-healthcheck-8102-64h-7.3.15v1.0.0-1.x86_64.rpm
│ ├── xr-healthcheck-8201-32fh-7.3.15v1.0.0-1.x86_64.rpm
│ ├── xr-healthcheck-8201-7.3.15v1.0.0-1.x86_64.rpm
│ ├── xr-healthcheck-8202-7.3.15v1.0.0-1.x86_64.rpm
│ ├── xr-healthcheck-8608-rp1-7.3.15v1.0.0-1.x86_64.rpm
│ ├── xr-healthcheck-88-lc0-34h14fh-7.3.15v1.0.0-1.x86_64.rpm
│ ├── xr-healthcheck-88-lc0-36fh-7.3.15v1.0.0-1.x86_64.rpm
│ ├── xr-healthcheck-88-lc0-36fh-m-7.3.15v1.0.0-1.x86_64.rpm
│ ├── xr-healthcheck-8800-lc-36fh-7.3.15v1.0.0-1.x86_64.rpm
│ ├── xr-healthcheck-8800-lc-48h-7.3.15v1.0.0-1.x86_64.rpm
│ ├── xr-healthcheck-8800-rp-7.3.15v1.0.0-1.x86_64.rpm
│ └── xr-healthcheck-d17f630e9aaec8a3-7.3.15v1.0.0-1.x86_64.rpm
└── telnet
├── xr-telnet-3692251fac396a2d-7.3.15v1.0.0-1.x86_64.rpm
├── xr-telnet-7.3.15v1.0.0-1.x86_64.rpm
├── xr-telnet-8101-32h-7.3.15v1.0.0-1.x86_64.rpm
├── xr-telnet-8102-64h-7.3.15v1.0.0-1.x86_64.rpm
├── xr-telnet-8201-32fh-7.3.15v1.0.0-1.x86_64.rpm
├── xr-telnet-8201-7.3.15v1.0.0-1.x86_64.rpm
├── xr-telnet-8202-7.3.15v1.0.0-1.x86_64.rpm
├── xr-telnet-8608-rp1-7.3.15v1.0.0-1.x86_64.rpm
├── xr-telnet-88-lc0-34h14fh-7.3.15v1.0.0-1.x86_64.rpm
├── xr-telnet-88-lc0-36fh-7.3.15v1.0.0-1.x86_64.rpm
├── xr-telnet-88-lc0-36fh-m-7.3.15v1.0.0-1.x86_64.rpm
├── xr-telnet-8800-lc-36fh-7.3.15v1.0.0-1.x86_64.rpm
├── xr-telnet-8800-lc-48h-7.3.15v1.0.0-1.x86_64.rpm
├── xr-telnet-8800-rp-7.3.15v1.0.0-1.x86_64.rpm
└── xr-telnet-d17f630e9aaec8a3-7.3.15v1.0.0-1.x86_64.rpm
3 directories, 47 files
Several files can be found:
- xr-telnet-7.3.15v1.0.0-1.x86_64.rpm is top-level package for telnet
- xr-telnet-3692251fac396a2d-7.3.15v1.0.0-1.x86_64.rpm and xr-telnet-d17f630e9aaec8a3-7.3.15v1.0.0-1.x86_64.rpm are partition packages for telnet
- all others are PID-specific packages for telnet
To install telnet specifically, a new TAR archive must be created with those files only:
25/08/21 12:11}dhcp-10-61-108-172:~/Downloads/IOS/8000/optional-rpms fcuiller% tar cvf 8000-telnet-rpms.7.3.15.tar telnet/
a telnet
a telnet/xr-telnet-88-lc0-36fh-m-7.3.15v1.0.0-1.x86_64.rpm
a telnet/xr-telnet-8608-rp1-7.3.15v1.0.0-1.x86_64.rpm
a telnet/xr-telnet-7.3.15v1.0.0-1.x86_64.rpm
a telnet/xr-telnet-8800-lc-36fh-7.3.15v1.0.0-1.x86_64.rpm
a telnet/xr-telnet-8800-rp-7.3.15v1.0.0-1.x86_64.rpm
a telnet/xr-telnet-8202-7.3.15v1.0.0-1.x86_64.rpm
a telnet/xr-telnet-8102-64h-7.3.15v1.0.0-1.x86_64.rpm
a telnet/xr-telnet-88-lc0-36fh-7.3.15v1.0.0-1.x86_64.rpm
a telnet/xr-telnet-8800-lc-48h-7.3.15v1.0.0-1.x86_64.rpm
a telnet/xr-telnet-3692251fac396a2d-7.3.15v1.0.0-1.x86_64.rpm
a telnet/xr-telnet-8101-32h-7.3.15v1.0.0-1.x86_64.rpm
a telnet/xr-telnet-88-lc0-34h14fh-7.3.15v1.0.0-1.x86_64.rpm
a telnet/xr-telnet-8201-32fh-7.3.15v1.0.0-1.x86_64.rpm
a telnet/xr-telnet-d17f630e9aaec8a3-7.3.15v1.0.0-1.x86_64.rpm
a telnet/xr-telnet-8201-7.3.15v1.0.0-1.x86_64.rpm
TAR archive must be transferred on the Cisco 8000 harddisk. SCP is used here:
RP/0/RP0/CPU0:8201-32FH-1#scp [email protected]:~/8000-telnet-rpms.7.3.15.tar /harddisk:/
Wed Aug 25 10:13:52.323 UTC
Connecting to 192.168.122.1...
Password:
Transferred 235520 Bytes
235520 bytes copied in 0 sec (6365405)bytes/sec
RP/0/RP0/CPU0:8201-32FH-1#dir harddisk:
Wed Aug 25 10:14:04.704 UTC
Directory of harddisk:
655361 drwx------. 3 4096 Aug 25 09:49 ima
1441793 drwxr-xr-x. 2 4096 Aug 25 09:51 showtech
1310721 drwxrwxrwx. 2 4096 Aug 25 09:51 dumper
13 -rw-rw-rw-. 1 127 Aug 25 09:54 feature_list
3932161 drwxrwxrwx. 2 4096 May 17 22:58 .sppdc_new
2883585 drwxrwxrwx. 3 4096 May 17 22:59 ztp
3145729 drwxr-xr-x. 3 4096 Aug 25 09:51 pam
786433 drwxrwxrwx. 5 4096 Aug 25 09:51 cisco_support
262145 drwxrwxrwx. 3 4096 May 17 22:59 mirror
11 drwx------. 2 16384 May 17 22:51 lost+found
524289 drwxrwxrwx. 2 4096 May 17 22:56 nvram
1048577 drwxrwxrwx. 2 4096 May 17 22:56 shutdown
12 -rw-r--r--. 1 235520 Aug 25 10:13 8000-telnet-rpms.7.3.15.tar
1835009 drwxrwxrwx. 2 4096 Aug 25 09:46 npu_sdk_logs
393217 drwxrwxrwx. 2 4096 Aug 25 09:47 .sppdc
Installation can start.
Current active software configuration doesn’t contain telnet package:
RP/0/RP0/CPU0:8201-32FH-1#sh install active summary
Wed Aug 25 10:14:10.028 UTC
Active Packages: XR: 178 All: 1274
Label: 7.3.15
Software Hash: 9149973e08793c3f44e84a4a5b385c8a
Optional Packages Version
---------------------------------------------------- ---------------------------
xr-8000-mcast 7.3.15v1.0.0-1
xr-8000-netflow 7.3.15v1.0.0-1
xr-bgp 7.3.15v1.0.0-1
xr-ipsla 7.3.15v1.0.0-1
xr-is-is 7.3.15v1.0.0-1
xr-lldp 7.3.15v1.0.0-1
xr-mcast 7.3.15v1.0.0-1
xr-mpls-oam 7.3.15v1.0.0-1
xr-netflow 7.3.15v1.0.0-1
xr-ospf 7.3.15v1.0.0-1
xr-perfmgmt 7.3.15v1.0.0-1
xr-track 7.3.15v1.0.0-1
First step is to add the package. This is accomplished with install package add command:
RP/0/RP0/CPU0:8201-32FH-1#install package add source ?
WORD Configured DNF repository name to use as the source
WORD Full path to a local directory to use as the source - must be a subdirectory of /var/xr/disk1/, /harddisk:/, or /misc/disk1/
WORD Full path to a local tar file to use as the source - must be located in or under /var/xr/disk1/, /harddisk:/, or /misc/disk1/
any-configured Use any configured repository to obtain packages
ftp: Remote repo ftp://server[;vrf]/remote_path
http: Remote repo http://server[;vrf]/remote_path
https: Remote repo https://server[;vrf]/remote_path
Info: This install method doesn’t use local or remote repository feature, only a local TAR file copied on the router’s harddisk.
RP/0/RP0/CPU0:8201-32FH-1#install package add source //harddisk:/8000-telnet-rpms.7.3.15.tar synchronous
Wed Aug 25 10:14:41.851 UTC
RP/0/RP0/CPU0:Aug 25 10:14:42.333 UTC: instorch[168]: %INFRA-INSTALL-6-ACTION_BEGIN : Packaging operation 1.1.1 started - add
Starting:
install package add source /harddisk:/8000-telnet-rpms.7.3.15.tar
Packaging operation 1.1.1
Press Ctrl-C to return to the exec prompt. This will not cancel the install operation
Current activity: Initializing ..
Current activity: Veto check ..
Current activity: Package add or other package operation .^@.RP/0/RP0/CPU0:Aug 25 10:15:54.941 UTC: instorch[168]: %INFRA-INSTALL-6-ACTION_COMPLETE : Packaging operation 1.1.1 complete. More packaging operations can be performed, or any current changes can be applied by restart
Packaging operation 1.1.1: 'install package add source /harddisk:/8000-telnet-rpms.7.3.15.tar' completed without error
Package is not active until it has been applied:
RP/0/RP0/CPU0:8201-32FH-1#sh install active summary
Wed Aug 25 10:16:33.691 UTC
Active Packages: XR: 178 All: 1274
Label: 7.3.15
Software Hash: 9149973e08793c3f44e84a4a5b385c8a
Optional Packages Version
---------------------------------------------------- ---------------------------
xr-8000-mcast 7.3.15v1.0.0-1
xr-8000-netflow 7.3.15v1.0.0-1
xr-bgp 7.3.15v1.0.0-1
xr-ipsla 7.3.15v1.0.0-1
xr-is-is 7.3.15v1.0.0-1
xr-lldp 7.3.15v1.0.0-1
xr-mcast 7.3.15v1.0.0-1
xr-mpls-oam 7.3.15v1.0.0-1
xr-netflow 7.3.15v1.0.0-1
xr-ospf 7.3.15v1.0.0-1
xr-perfmgmt 7.3.15v1.0.0-1
xr-track 7.3.15v1.0.0-1
Second step is to apply the package. This is accomplished with install apply command:
RP/0/RP0/CPU0:8201-32FH-1#install apply synchronous
Wed Aug 25 10:17:35.066 UTC
Once the packaging dependencies have been determined, the install operation may have to reload the system.
If you want more control of the operation, then explicitly use 'install apply restart' or 'install apply reload' as reported by 'show install request'.
Continue? [yes/no]:[yes] yes
RP/0/RP0/CPU0:Aug 25 10:17:38.343 UTC: instorch[168]: %INFRA-INSTALL-6-ACTION_BEGIN : Apply by process restart 1.1 started
Starting:
install apply restart
Atomic change 1.1
Press Ctrl-C to return to the exec prompt. This will not cancel the install operation
Current activity: Initializing
Current activity: Apply by restarting processes
RP/0/RP0/CPU0:Aug 25 10:17:42.502 UTC: schema_server[1183]: %INFRA-INSTALL-6-RESTART_DUE_TO_INSTALL : Process restarted due to install operation
.....
RP/0/RP0/CPU0:Aug 25 10:18:35.618 UTC: instorch[168]: %INFRA-INSTALL-6-ACTION_COMPLETE : Apply by process restart 1.1 complete
RP/0/RP0/CPU0:Aug 25 10:18:35.621 UTC: instorch[168]: %INFRA-INSTALL-6-TRANSACTION_NOT_COMMITTED : The transaction is not committed. If the system reboots then the fallback software will be used. Use 'install commit' to commit the transaction and commit the active software.
Atomic change 1.1: 'install apply restart' completed without error
After this step, telnet package is active:
RP/0/RP0/CPU0:8201-32FH-1#sh install active summary
Wed Aug 25 10:18:44.681 UTC
Active Packages: XR: 179 All: 1275
Label: 7.3.15
Software Hash: d1072f4ad983408a49f6b99b37140998
Optional Packages Version
---------------------------------------------------- ---------------------------
xr-8000-mcast 7.3.15v1.0.0-1
xr-8000-netflow 7.3.15v1.0.0-1
xr-bgp 7.3.15v1.0.0-1
xr-ipsla 7.3.15v1.0.0-1
xr-is-is 7.3.15v1.0.0-1
xr-lldp 7.3.15v1.0.0-1
xr-mcast 7.3.15v1.0.0-1
xr-mpls-oam 7.3.15v1.0.0-1
xr-netflow 7.3.15v1.0.0-1
xr-ospf 7.3.15v1.0.0-1
xr-perfmgmt 7.3.15v1.0.0-1
xr-telnet 7.3.15v1.0.0-1
xr-track 7.3.15v1.0.0-1
The last step is to commit current software configuration with install commit command. After this stage, active and committed packages match:
RP/0/RP0/CPU0:8201-32FH-1#install commit synchronous
Wed Aug 25 10:19:31.849 UTC
RP/0/RP0/CPU0:Aug 25 10:19:32.394 UTC: instorch[168]: %INFRA-INSTALL-6-ACTION_BEGIN : Commit 1 started
Starting:
install commit
Transaction 1
Press Ctrl-C to return to the exec prompt. This will not cancel the install operation
Current activity: Initializing
Current activity: Commit transaction .RP/0/RP0/CPU0:Aug 25 10:19:48.190 UTC: instorch[168]: %INFRA-INSTALL-6-ACTION_COMPLETE : Commit 1 complete
Transaction 1: 'install commit' completed without error
RP/0/RP0/CPU0:8201-32FH-1#sh install committed summary
Wed Aug 25 10:20:10.960 UTC
Committed Packages: XR: 179 All: 1275
Label: 7.3.15
Software Hash: d1072f4ad983408a49f6b99b37140998
Optional Packages Version
---------------------------------------------------- ---------------------------
xr-8000-mcast 7.3.15v1.0.0-1
xr-8000-netflow 7.3.15v1.0.0-1
xr-bgp 7.3.15v1.0.0-1
xr-ipsla 7.3.15v1.0.0-1
xr-is-is 7.3.15v1.0.0-1
xr-lldp 7.3.15v1.0.0-1
xr-mcast 7.3.15v1.0.0-1
xr-mpls-oam 7.3.15v1.0.0-1
xr-netflow 7.3.15v1.0.0-1
xr-ospf 7.3.15v1.0.0-1
xr-perfmgmt 7.3.15v1.0.0-1
xr-telnet 7.3.15v1.0.0-1
xr-track 7.3.15v1.0.0-1
telnet package is now active and ready to use:
RP/0/RP0/CPU0:8201-32FH-1#conf t
Wed Aug 25 10:24:05.131 UTC
RP/0/RP0/CPU0:8201-32FH-1(config)#tel
telemetry telnet
RP/0/RP0/CPU0:8201-32FH-1(config)#telnet ?
ipv4 IPv4 configuration
ipv6 IPv6 configuration
vrf VRF name for telnet server
Conclusion
This article covered how to add a package on a Cisco 8000 running IOS XR7 architecture. While philosophy remains identical between classic IOS-XR, IOS-XR64bit and IOS XR7 (modular Network Operating Systems, ability to add and remove packages or software patches), few operational differences exist to add and activate a package.
Leave a Comment