Software Maintenance Upgrade

This chapter contains the following sections:

Software Maintenance Upgrade (SMU) Overview

The Software Maintenance Upgrade (SMU) is a package that can be installed on a system to provide a patch fix or security resolution to a released image for a specific defect in order to respond to immediate issues. It does not contain new features.

Some of the caveats of the SMU are:

  • Provided on a per release, per component basis and is specific to the platform. SMU versions are synchronized to the package major, minor, and maintenance versions they upgrade.

  • SMUs are not an alternative to maintenance releases. All defects fixed by SMUs are then automatically integrated into the upcoming maintenance releases.

  • The Cisco IOS XE platform internally validates the SMU compatibility and does not allow you to install non-compatible SMUs. This is based on rules/limitations for a SMU change-set.

  • An SMU provides a significant benefit over classic IOS software as it allows you to address the network issue quickly while reducing the time and scope of the testing required.

  • SMU is a method to fix bugs in an existing release, and allows the application of a PSIRT fix in an existing release

  • SMU is NOT an upgrade path from release X to maintenance release X.1

  • SMU is NOT an upgrade path from release X to release Y

The device only supports “Hot Patching”. This means:

  • The running image is modified in-place or in-service

  • This avoids downtime and interruption of service

  • The updated code to fix the defect is written in a different location, and where the patch redirects the program run

SMU Work-flow and Basic Requirements

The work-flow for the patch requires that you complete the following sequence of operation in exec mode:

  1. Addition of the SMU to the file system

  2. Activation of the SMU onto the system

  3. Committing the SMU change

  4. Removal and Uninstallation of the SMU

The basic requirements for SMU are:

  • The image where the defect was discovered

  • The patch file that contains the fix for the defect must be formatted as ir1101-image_name.release_version.CSCxxyyyyy.SPA.smu.bin

SMU Example

This section shows an example of a patch for the CDET CSCvk58743.

Command example:


Router# config t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# interface g0/0/0
Router(config-if)# ipv6 nd cache expire 770
Router(config-if)# end
Router#
 *Sep 25 12:00:29.978: %SYS-5-CONFIG_I: Configured from console by console

As the following CDET states, the ND Cache expire timer did not appear in the command output of show ipv6 neighbors g0/0/0


  • CSCvk58743

Summary : Show ipv6 interface does not display "ND Cache expire timer"

Component : ipv6

Defective Image : ir1101-universalk9.16.11.01.SPA.bin

Patch Image : ir1101-universalk9.16.11.01.CSCvk58743.SPA.smu.bin

The following is what the required configuration output should look like:


Interface GigabitEthernet0/0/0
 no switchport
 no ip address
 ipv6 address FE80::1 link-local
 ipv6 address 2001::1/64
 ipv6 nd na glean
 
ipv6 nd cache expire 770
 
 end

In the above output, the blue text configures the length of time before an IPv6 neighbor discovery cache entry expires. The range is from 1 to 65536 seconds.

Installing a Patch Image

Perform the following steps to install the patch image:

Procedure


Step 1

Add the image.


Router# install add file flash:ir1101-universalk9.16.11.01.CSCvk58743.SPA.smu.bin
install_add: START Mon Dec 17 21:11:23 UTC 2018
install_add: Adding SMU
*Dec 17 21:11:26.241: %INSTALL-5-INSTALL_START_INFO: R0/0: install_engine: Started install add flash:ir1101-universalk9.16.11.01.CSCvk58743.SPA.smu.bin--- Starting SMU Add operation ---
Performing SMU_ADD on Active/Standby
  [R0] SMU_ADD package(s) on R0
  [R0] Finished SMU_ADD on R0
Checking status of SMU_ADD on [R0]
SMU_ADD: Passed on [R0]
Finished SMU Add operation
SUCCESS: install_add  Mon Dec 17 21:11:39 UTC 2018

Step 2

Activate the patch image.


Router# install activate file flash:ir1101-universalk9.16.11.01.CSCvk58743.SPA.smu.bin
install_activate: START Mon Dec 17 21:11:57 UTC 2018
System configuration has been modified.
Press Yes(y) to save the configuration and proceed.
Press No(n) for proceeding without saving the configuration.
Press Quit(q) to exit, you may save configuration and re-enter the command. [y/n/q]y Building configuration...
 [OK]Modified configuration has been saved
*Dec 17 21:12:02.086: %SYS-2-PRIVCFG_ENCRYPT: Successfully encrypted private config fileinstall_activate: Activating SMU
*Dec 17 21:12:05.339: %INSTALL-5-INSTALL_START_INFO: R0/0: install_engine: Started install activate flash:ir1101-universalk9.16.11.01.CSCvk58743.SPA.smu.bin
Executing pre scripts....
Executing pre scripts done.
--- Starting SMU Activate operation ---
Performing SMU_ACTIVATE on Active/Standby
 [R0] SMU_ACTIVATE package(s) on R0
  [R0] Finished SMU_ACTIVATE on R0
Checking status of SMU_ACTIVATE on [R0]
SMU_ACTIVATE: Passed on [R0]
Finished SMU Activate operation
SUCCESS: install_activate /flash1/ir1101-universalk9.16.11.01.CSCvk58743.SPA.smu.bin Mon Dec 17 21:12:26 UTC 2018
*Dec 17 21:12:25.463: %INSTALL-5-INSTALL_AUTO_ABORT_TIMER_PROGRESS: R0/0: rollback_timer: Install auto abort timer will expire in 7200 seconds
*Dec 17 21:12:27.358: %INSTALL-5-INSTALL_COMPLETED_INFO: R0/0: install_engine: Completed install activate SMU flash:ir1101-universalk9.16.11.01.CSCvk58743.SPA.smu.bin

Step 3

Commit the installation.


Router# install commit
install_commit: START Mon Dec 17 21:13:28 UTC 2018
install_commit: Committing SMU
 
*Dec 17 21:13:31.516: %INSTALL-5-INSTALL_START_INFO: R0/0: install_engine: Started install commit
Executing pre scripts....
Executing pre scripts done.
--- Starting SMU Commit operation ---
Performing SMU_COMMIT on Active/Standby
  [R0] SMU_COMMIT package(s) on R0
  [R0] Finished SMU_COMMIT on R0
Checking status of SMU_COMMIT on [R0]
SMU_COMMIT: Passed on [R0]
Finished SMU Commit operation
 
SUCCESS: install_commit /flash1/ir1101-universalk9.16.11.01.CSCvk58743.SPA.smu.bin Mon Dec 17 21:13:47 UTC 2018

Step 4

Show the status summary of the installation procedure.


Router# show install summary
[ R0 ] Installed Package(s) Information:
State (St): I - Inactive, U - Activated & Uncommitted,
            
C - Activated
 & Committed, D - Deactivated & Uncommitted
--------------------------------------------------------------------------------
Type  St   Filename/Version
--------------------------------------------------------------------------------
SMU   C    /flash1/ir1101-universalk9.16.11.01.CSCvk58743.SPA.smu.bin
IMG   C    16.11.1.0.4
 
--------------------------------------------------------------------------------
Auto abort timer: inactive
--------------------------------------------------------------------------------

Uninstalling the Patch Image

There are two methods to remove or uninstall the patch image.

  • Restoring the image to its original version by using the following command:

    • install rollback to base

  • Specific removal of a patch by using the following commands in sequence:

    • install deactivate file flash:ir1101-image_name.release_version.CSCxxyyyyy.SPA.smu.bin

    • install commit

    • install remove file flash:ir1101-image_name.release_version.CSCxxyyyyy.SPA.smu.bin

Uninstalling the Patch Image Using Rollback

This section shows an example of using the rollback method.

Show what patches are installed:


Router# show install summary
[ R0 ] Installed Package(s) Information:
State (St): I - Inactive, U - Activated & Uncommitted,
            C - Activated & Committed, D - Deactivated & Uncommitted
--------------------------------------------------------------------------------
Type  St   Filename/Version
--------------------------------------------------------------------------------
SMU   C    /flash1/ir1101-universalk9.16.12.02.CSCvq74407.SPA.smu.bin
IMG   C    16.12.02.0.6

The following commands are available:


Router# install ?
  abort             Abort the current install operation
  activate          Activate an installed package
  add               Install a package file to the system
  auto-abort-timer  Install auto-abort-timer
  commit            Commit the changes to the loadpath
  deactivate        Deactivate an install package
  label             Add a label name to any installation point
  prepare           Prepare package for operation
  remove            Remove installed packages
  rollback          Rollback to a previous installation point
Router# install rollback to ?
  base       Rollback to the base image
  committed  Rollback to the last committed installation point
  id         Rollback to a specific install point id
  label      Rollback to a specific install point label

The install rollback to base command removes the entire patch and returns to the base image version with the found defect.


Router# install rollback to base
install_rollback: START Fri Apr 24 22:58:25 UTC 2020
 
*Apr 24 22:58:28.375: %INSTALL-5-INSTALL_START_INFO: R0/0: install_engine: Started install rollbackinstall_rollback: Rolling back SMU
Executing pre scripts....
Executing pre sripts done.
 
--- Starting SMU Rollback operation ---
Performing SMU_ROLLBACK on Active/Standby
  [R0] SMU_ROLLBACK package(s) on R0
  [R0] Finished SMU_ROLLBACK on R0
Checking status of SMU_ROLLBACK on [R0]
SMU_ROLLBACK: Passed on [R0]
Finished SMU Rollback operation
 
SUCCESS: install_rollback /flash1/ir1101-universalk9.16.12.02.CSCvq74407.SPA.smu.bin Fri Apr 24 22:58:54 UTC 2020
 
*Apr 24 22:58:55.368: %INSTALL-5-INSTALL_COMPLETED_INFO: R0/0: install_engine: Completed install rollback

Show what patches are installed:


Router# show install summary
[ R0 ] Installed Package(s) Information:
State (St): I - Inactive, U - Activated & Uncommitted,
            C - Activated & Committed, D - Deactivated & Uncommitted
--------------------------------------------------------------------------------
Type  St   Filename/Version
--------------------------------------------------------------------------------
IMG   C    16.12.02.0.6

Note


In the above command output, the patch has been removed and the device returns to the base image version prior to the upgrade.

Uninstalling the Patch Image Using Deactivate, Commit, and Remove

In the following sequence, there are two patches installed on the device. Only one will be removed.

Show what patches are installed.


Router# show install summary
[ R0 ] Installed Package(s) Information:
State (St): I - Inactive, U - Activated & Uncommitted,
            C - Activated & Committed, D - Deactivated & Uncommitted
--------------------------------------------------------------------------------
Type  St   Filename/Version
--------------------------------------------------------------------------------
SMU   C    /flash1/ir1101-universalk9.16.12.02.CSCvq74407.SPA.smu.bin
SMU   C    /flash1/ir1101-universalk9.16.12.02.CSCvt63576.SPA.smu.bin
IMG   C    16.12.02.0.6

Procedure


Step 1

Deactivate the patch.


Router# install deactivate file flash:ir1101-universalk9.16.12.02.CSCvt63576.SPA.smu.bin
install_deactivate: START Fri Apr 24 22:54:10 UTC 2020
install_deactivate: Deactivating SMU
Executing pre scripts....
Executing pre sripts done.
 
--- Starting SMU Deactivate operation ---
Performing SMU_DEACTIVATE on Active/Standby
  [R0] SMU_DEACTIVATE package(s) on R0
  [R0] Finished SMU_DEACTIVATE on R0
Checking status of SMU_DEACTIVATE on [R0]
SMU_DEACTIVATE: Passed on [R0]
Finished SMU Deactivate operation

SUCCESS: install_deactivate /flash1/ir1101-universalk9.16.12.02.CSCvt63576.SPA.smu.bin Fri Apr 24 22:54:49 UTC 2020

Show what patches are installed:


Router# show install summary
[ R0 ] Installed Package(s) Information:
State (St): I - Inactive, U - Activated & Uncommitted,
            C - Activated & Committed, D - Deactivated & Uncommitted
--------------------------------------------------------------------------------
Type  St   Filename/Version
--------------------------------------------------------------------------------
SMU   C    /flash1/ir1101-universalk9.16.12.02.CSCvq74407.SPA.smu.bin
SMU   D    /flash1/ir1101-universalk9.16.12.02.CSCvt63576.SPA.smu.bin
IMG   C    16.12.02.0.6 

Step 2

Commit the action.


Router# install commit
install_commit: START Fri Apr 24 22:56:11 UTC 2020
install_commit: Committing SMU
 
*Apr 24 22:56:15.169: %INSTALL-5-INSTALL_START_INFO: R0/0: install_engine: Started install commitExecuting pre scripts....
Executing pre sripts done.
--- Starting SMU Commit operation ---
Performing SMU_COMMIT on Active/Standby
  [R0] SMU_COMMIT package(s) on R0
  [R0] Finished SMU_COMMIT on R0
Checking status of SMU_COMMIT on [R0]
SMU_COMMIT: Passed on [R0]
Finished SMU Commit operation
 
SUCCESS: install_commit /flash1/ir1101-universalk9.16.12.02.CSCvt63576.SPA.smu.bin Fri Apr 24 22:56:32 UTC 2020
 
*Apr 24 22:56:33.342: %INSTALL-5-INSTALL_COMPLETED_INFO: R0/0: install_engine: Completed install commit SMU
Show what patches are installed:

Router# show install summary
[ R0 ] Installed Package(s) Information:
State (St): I - Inactive, U - Activated & Uncommitted,
            C - Activated & Committed, D - Deactivated & Uncommitted
--------------------------------------------------------------------------------
Type  St   Filename/Version
--------------------------------------------------------------------------------
SMU   C    /flash1/ir1101-universalk9.16.12.02.CSCvq74407.SPA.smu.bin
SMU   I    /flash1/ir1101-universalk9.16.12.02.CSCvt63576.SPA.smu.bin
IMG   C    16.12.02.0.6

Step 3

Remove the patch.


Router# install remove file flash:ir1101-universalk9.16.12.02.CSCvt63576.SPA.smu.bin
install_remove: START Fri Apr 24 22:57:17 UTC 2020
 
*Apr 24 22:57:20.775: %INSTALL-5-INSTALL_START_INFO: R0/0: install_engine: Started install remove flash:ir1101-universalk9.16.12.02.CSCvt63576.SPA.smu.bininstall_remove: Removing SMU
Executing pre scripts....
Executing pre scripts done.
 
--- Starting SMU Remove operation ---
Performing SMU_REMOVE on Active/Standby
  [R0] SMU_REMOVE package(s) on R0
  [R0] Finished SMU_REMOVE on R0
Checking status of SMU_REMOVE on [R0]
SMU_REMOVE: Passed on [R0]
Finished SMU Remove operation
 
SUCCESS: install_remove /flash1/ir1101-universalk9.16.12.02.CSCvt63576.SPA.smu.bin Fri Apr 24 22:57:34 UTC 2020
 
*Apr 24 22:57:34.902: %INSTALL-5-INSTALL_COMPLETED_INFO: R0/0: install_engine: Completed install remove flash:ir1101-universalk9.16.12.02.CSCvt63576.SPA.smu.bin

Show what patches are installed:


Router# show install summary
[ R0 ] Installed Package(s) Information:
State (St): I - Inactive, U - Activated & Uncommitted,
            C - Activated & Committed, D - Deactivated & Uncommitted
--------------------------------------------------------------------------------
Type  St   Filename/Version
--------------------------------------------------------------------------------
SMU   C    /flash1/ir1101-universalk9.16.12.02.CSCvq74407.SPA.smu.bin
IMG   C    16.12.02.0.6

Note in the above command output the patch for CDET CSCvt63576 has been removed, while the patch for CDET CSCvq74407 remains.