IOS XR Upgrade Procedure – AS9K – 5.1.3 -> 5.3.3

Before putting our ASR 9001 into production I wanted to update it to the Cisco’s suggested firmware release. I also wanted to configure some LDP label allocation filtering and couldn’t find the commands in my current release so thought an upgrade would help (that turned out to be something else). It was a fairly small jump in terms of releases as I was just moving from 5.1.3. to 5.3.3. It was a fairly smooth process but I did get stuck at one point which I’ll explain later. Anyway here are the steps.

1.

Download tar from cisco.com and FTP/TFTP to the ASR. This was named ASR9K-iosxr-px-K9-5.3.3.tar and contains all the core software as well as the optional PIES (package installation envelopes) you can choose to activate. The file was 1.44 GB so you’re better off using FTP over TFTP. Put the kettle on as this will take a while! Once the TAR file has been successfully transferred to the router you’ll need to extract it with the following command:

RP/0/RSP0/CPU0:ios(admin)#install add tar disk0:/ASR9K-iosxr-px-K9-5.3.3.tar.

This will extract all the PIE files to your compact flash disk so make sure there is enough room before you run this!

2.

Once the TAR had been extracted I was ready to begin the installation process. Before I did this I ran the below command to see what PIEs were currently active and in use as these are the ones I’d need to update.

RP/0/RSP0/CPU0:ios(admin)#sh install active
Mon Aug 8 18:00:40.584 GMT
Secure Domain Router: Owner

Node 0/RSP0/CPU0 [RP] [SDR: Owner]
Boot Device: disk0:
Boot Image: /disk0/asr9k-os-mbi-5.1.3/0x100000/mbiasr9k-rp.vm
Active Packages:
disk0:asr9k-mini-px-5.1.3
disk0:asr9k-px-5.1.3.CSCut52232-1.0.0
disk0:asr9k-mpls-px-5.1.3
disk0:asr9k-k9sec-px-5.1.3

Node 0/0/CPU0 [LC] [SDR: Owner]
Boot Device: mem:
Boot Image: /disk0/asr9k-os-mbi-5.1.3/lc/mbiasr9k-lc.vm
Active Packages:
disk0:asr9k-mini-px-5.1.3
disk0:asr9k-px-5.1.3.CSCut52232-1.0.0
disk0:asr9k-mpls-px-5.1.3

3.

Now this is the point I ran into trouble. I’m documenting this here so that someone might stumble across this and save themselves some time trying to fix the problem. I assumed that you could just update the PIEs one by one, so mini followed by mpls, k9 etc. WRONG! Here’s what happens when you do that:

RP/0/RSP0/CPU0:ios(admin)#install activate disk0:asr9k-mini-px-5.3.3
Mon Aug  8 17:53:22.152 GMT
Install operation 43 ‘(admin) install activate disk0:asr9k-mini-px-5.3.3’ started by user ‘nick’ via CLI at 17:53:22 GMT Mon Aug 08 2016.
Error:    Cannot proceed with the activation because of the following package incompatibilities:
Error:      asr9k-k9sec-supp-5.1.3 needs iosxr-fwding-5.1.3, or equivalent, to be active on the same nodes.
Error:      asr9k-k9sec-supp-5.1.3 needs iosxr-infra-5.1.3, or equivalent, to be active on the same nodes.
Error:      asr9k-k9sec-supp-5.1.3 needs iosxr-os-5.1.3, or equivalent, to be active on the same nodes.
Error:      iosxr-mpls-5.1.3 needs iosxr-routing-5.1.3, or equivalent, to be active on the same nodes.
Error:      iosxr-mpls-5.1.3 needs iosxr-fwding-5.1.3, or equivalent, to be active on the same nodes.
Error:      iosxr-mpls-5.1.3 needs iosxr-infra-5.1.3, or equivalent, to be active on the same nodes.
Error:      iosxr-mpls-5.1.3 needs iosxr-os-5.1.3, or equivalent, to be active on the same nodes.
Error:      iosxr-security-5.1.3 needs iosxr-fwding-5.1.3, or equivalent, to be active on the same nodes.
Error:      iosxr-security-5.1.3 needs iosxr-infra-5.1.3, or equivalent, to be active on the same nodes.
Error:      iosxr-security-5.1.3 needs iosxr-os-5.1.3, or equivalent, to be active on the same nodes.
Error:    Suggested steps to resolve this:
Error:     – check the installation instructions.
Error:     – activate or deactivate the specified packages on the specified nodes.

OK then I’ll install those dependent packages first then. eg: iosxr-fwding-5.1.3

RP/0/RSP0/CPU0:ios(admin)#install activate disk0:iosxr-fwding-5.1.3

Mon Aug  8 17:54:13.431 GMT
Install operation 44 ‘(admin) install activate disk0:iosxr-fwding-5.1.3’ started by user ‘nick’ via CLI at 17:54:13 GMT Mon Aug 08 2016.
Error:    Cannot activate the following packages as they are already active on the router:
Error:
Error:        disk0:iosxr-fwding-5.1.3
Error:        disk0:asr9k-mini-px-5.1.3

This PIE is already active! What gives?!

After re-reading the instructions and a bit of Google-Fu I tried to install them all at once rather than one at a time as follows:

RP/0/RSP0/CPU0:ios(admin)#install activate disk0:asr9k-mini-px-5.3.3 disk0:asr9k-mpls-px-5.3.3 disk0:asr9k-k9sec-px-5.3.3
Mon Aug 8 18:02:05.277 GMT
Install operation 46 ‘(admin) install activate disk0:asr9k-mini-px-5.3.3 disk0:asr9k-mpls-px-5.3.3 disk0:asr9k-k9sec-px-5.3.3’ started by user ‘nick’ via
CLI at 18:02:05 GMT Mon Aug 08 2016.
Info: This operation will reload the following nodes in parallel:
Info: 0/RSP0/CPU0 (RP) (SDR: Owner)
Info: 0/0/CPU0 (LC) (SDR: Owner)
Proceed with this install operation (y/n)? [y]
Info: Install Method: Parallel Reload
The install operation will continue asynchronously.

Success!! After a reload the router was back up and operational.

4.

Once I was back on the router I checked to make sure the new software was active and running:

RP/0/RSP0/CPU0:ios(admin)#sh install active
Tue Aug 9 09:09:55.698 GMT
Secure Domain Router: Owner

Node 0/RSP0/CPU0 [RP] [SDR: Owner]
Boot Device: disk0:
Boot Image: /disk0/asr9k-os-mbi-5.3.3/0x100000/mbiasr9k-rp.vm
Active Packages:
disk0:asr9k-mpls-px-5.3.3
disk0:asr9k-mini-px-5.3.3
disk0:asr9k-k9sec-px-5.3.3

Node 0/0/CPU0 [LC] [SDR: Owner]
Boot Device: mem:
Boot Image: /disk0/asr9k-os-mbi-5.3.3/lc/mbiasr9k-lc.vm
Active Packages:
disk0:asr9k-mpls-px-5.3.3
disk0:asr9k-mini-px-5.3.3
disk0:asr9k-k9sec-px-5.3.3

Looking good….

5.

The final step is to commit the install so that it is persistent across reloads. We could also in theory at this point rollback the installation (another reboot would be required though) 

RP/0/RSP0/CPU0:ios(admin)#install commit

and verify:

RP/0/RSP0/CPU0:ios(admin)#sh install committed
Tue Aug 9 09:16:40.044 GMT
Secure Domain Router: Owner

Node 0/RSP0/CPU0 [RP] [SDR: Owner]
Boot Device: disk0:
Boot Image: /disk0/asr9k-os-mbi-5.3.3/0x100000/mbiasr9k-rp.vm
Committed Packages:
disk0:asr9k-mpls-px-5.3.3
disk0:asr9k-mini-px-5.3.3
disk0:asr9k-k9sec-px-5.3.3

Node 0/0/CPU0 [LC] [SDR: Owner]
Boot Device: mem:
Boot Image: /disk0/asr9k-os-mbi-5.3.3/lc/mbiasr9k-lc.vm
Committed Packages:
disk0:asr9k-mpls-px-5.3.3
disk0:asr9k-mini-px-5.3.3
disk0:asr9k-k9sec-px-5.3.3

So all in all a relatively painless process. I’m looking forward to working with IOS XR more as it looks like there are some cool features (which I hope to cover in other entries).

A good FAQ for this procedure can be found at:

https://supportforums.cisco.com/document/12117081/ios-xr-install-faq