When IOS XR Licenses Don’t Activate, What Then?

I came across a small but irritating issue with ASR / IOS XR licensing today, and since I found a way to fix it, I’m sharing my results.

Cisco ASR9006/ IOS XR

Licensing IOS XR on the ASR9k

I have an ASR9006 with two A9K-MOD160-TR linecards on which I need to run VRFs, so I purchased two of the A9K-IVRF-LIC linecard-based VRF licenses. I got the PAK keys from my reseller, and went to Cisco’s licensing portal to fulfill both of them following the usual process with the PID and S/N information taken from admin show license udi. I downloaded the license file and transferred it to an accessible jump server, then from the regular privileged exec mode (rather than the admin exec mode), I used sftp to transfer the file to the router.

Why not use the admin exec to transfer the licenses?

Simple: to transfer the license file within the admin exec means using tftp or ftp:

There is no other mechanism offered by which to copy the file over. However, exiting the admin exec opens up other options:

I care about this because:

  • I despise TFTP;
  • I don’t run an FTP server;
  • I despise TFTP;
  • I have servers accepting SSH connections;
  • I despite TFTP.

And did I mention that I’m not totally in favor of TFTP? Any of the above methods will work, but SCP and SFTP are in my opinion wildly preferable to FTP and TFTP. Quite why SCP/SFTP don’t appear as an option within the IOS XR (5.3.4 in this case) copy command is a mystery, but there it is. It’s even more frustrating when comparing with NXOS (7.3(1)N1(1)):

At least somebody cares.

Next, the license file needs to be added within IOS XR via the admin mode. Either enter admin mode (admin) then use the license add command, or from the regular exec mode use the admin license add command:

The output from show license confirms that my two licenses were installed. Interestingly, one license is already activated and assigned to 0/0/CPU0, and the other is listed as available for use. This is slightly odd because normally licenses have to be manually assigned, but I’ll proceed and make the assignments anyway and hopefully it will fix things. The two locations needing a license are 0/0/CPU0 and 0/1/CPU0:

And next validate that the licenses have been applied:

Apparently, the licenses have not been applied to 0/1/CPU0 despite my configuration. Comparing this to another reference source such as Jeff Fry’s IOS XR guide, this seems a bit odd. Jeff’s guide shows IOS XR behaving the way I would have expected, with the licenses applied to 0/0/CPU0 and 0/1/CPU0 after issuing the sequence of commands above.

The solution

The solution to this problem appears to be to ask IOS XR to move one of the licenses:

One might assume based on the previous output from show license that this would remove the previously-applied license from 0/0/CPU0 and re-apply it to 0/1/CPU0, and I’d have the same problem but in a different location. I was indeed concerned that this is what would happen. Instead, verifying the license showed a different result:

By some miracle, this worked and now I show both licenses active and assigned to the two line cards. Confusing? Yes. It is to me at least; thankfully I don’t have to apply IOS XR licenses very often, and this result encourages me that I have made the right choice in that matter!


Why did the licensing do what it did, and why did moving a license fix it? I have no idea. If you can tell me—and I have a suspicion the answer will be blindingly obvious to somebody out there—I would be grateful. Meanwhile this will be a useful reference for me next time I get confused about license installation on IOS XR!

Be the first to comment

Leave a Reply

Your email address will not be published.



This site uses Akismet to reduce spam. Learn how your comment data is processed.