Software Maintenance Upgrade (SMU)

This section contains the following:

Software Maintenance Upgrade (SMU)

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.


Note


SMU installation was supported in both bundle boot and install mode. From Cisco IOS XE Release 17.9.x, SMU installation will be stopped if the router is booted up in bundle mode. If the router is booted up in install mode, SMU installation will keep working as it is in previous releases.

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 ir1800-image_name.release_version.CSCxxyyyyy.SPA.smu.bin

SMU Example

This section shows an example of a patch created as a test. Your patch will have a name associated with a CDET to be installed as a fix.

Installing a Patch Image

Perform the following steps to install the patch image:

Procedure


Step 1

Show a standard command.

Router#show power
Main PSU :
    Total Power Consumed: 11.37 Watts
    Configured Mode : N/A
    Current runtime state same : N/A
    PowerSupplySource : External PS
POE Module :
    Configured Mode : N/A
    Current runtime state same : N/A
    Total power available : 30 Watts
Router#

Step 2

Add the image.


Router# install add file bootflash:ir1800-universalk9.2020-08-06_10.38.0.CSCxx12345.SSA.smu.bin
install_add: START Thu Aug  6 11:52:52 PDT 2020
cat: /tmp/patch/patch.sta: No such file or directory
install_add: Adding SMU
install_add: Checking whether new add is allowed ....

--- Starting SMU Add operation ---
Performing SMU_ADD on Active/Standby
  [1] SMU_ADD package(s) on R0
  [1] Finished SMU_ADD on R0
Checking status of SMU_ADD on [R0]
SMU_ADD: Passed on [R0]
Finished SMU Add operation

SUCCESS: install_add  Thu Aug  6 11:53:31 PDT 2020

Router#

Step 3

Activate the patch image.


Router# install activate file bootflash:ir1800-universalk9.2020-08-06_10.38.0.CSCxx12345.SSA.smu.bin
install_activate: START Thu Aug  6 11:53:59 PDT 2020

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
install_activate: Activating SMU
Executing pre scripts....
Executing pre sripts done.

--- Starting SMU Activate operation ---
Performing SMU_ACTIVATE on Active/Standby
/usr/sbin/kgv_update: kgv_update [ /flash1/ir1800-universalk9.2020-08-06_10.38.0.CSCxx12345.SSA.smu.bin, NOT slot local is ics ] continuing ....
/usr/sbin/kgv_update: Signature validated for /flash1/ir1800-universalk9.2020-08-06_10.38.0.CSCxx12345.SSA.smu.bin
/usr/sbin/kgv_update: TAM hash len:32 val:4407CBB447F0EEE3B12120D902F48FBA1C0D4900EED1FB614441198BE2302934
/usr/sbin/kgv_update: PCR8 before extend ctr:2 0817449B454BF036AF9D593D726D94D8942C50A9FFE93278FDA78EA62F2989F2
/usr/sbin/kgv_update: PCR8 after extend ctr:3 EF5F579FCDFA989D044296F0584B99F719F2B6215895524B5E8AD55DF5671560
/usr/sbin/kgv_update: PCR extend successful
/usr/sbin/kgv_update: Chasfs updated for name:ir1800-universalk9.2020-08-06_10.38.0.CSCxx12345.SSA.smu.bin hash:975352C1562A492D582D09D5BB91230863F6CC18E6F9C0EB512AF27CC0C77E2C05F29596AD34AD7808C9B39EC23D4412F0D3AFA707BC906FE03D554A845E42D4
/usr/sbin/kgv_update: Update successful for ir1800-universalk9.2020-08-06_10.38.0.CSCxx12345.SSA.smu.bin
  [1] SMU_ACTIVATE package(s) on R0
  [1] 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/ir1800-universalk9.2020-08-06_10.38.0.CSCxx12345.SSA.smu.bin Thu Aug  6 11:55:14 PDT 2020
Router#

Step 4

Commit the installation.


Router# install commit
install_commit: START Thu Aug  6 11:55:29 PDT 2020
install_commit: Committing SMU
Executing pre scripts....
Executing pre sripts done.
--- Starting SMU Commit operation ---
Performing SMU_COMMIT on Active/Standby
  [1] SMU_COMMIT package(s) on R0
  [1] 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/ir1800-universalk9.2020-08-06_10.38.0.CSCxx12345.SSA.smu.bin Thu Aug  6 11:56:08 PDT 2020
Router#

Step 5

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
--------------------------------------------------------------------------------
IMG   C    17.04.01.0.118999
SMU   C    flash:ir1800-universalk9.2020-08-06_10.38.0.CSCxx12345.SSA.smu.bin

--------------------------------------------------------------------------------
Auto abort timer: inactive
--------------------------------------------------------------------------------
Router#

Step 6

Verify the result of the patch by showing the same command.

Router#show power
Main PSU :
    Total Power Consumed: 11.04 Watts
Device HOT SMU works!

    Configured Mode : N/A
    Current runtime state same : N/A
    PowerSupplySource : External PS
POE Module :
    Configured Mode : N/A
    Current runtime state same : N/A
    Total power available : 0 Watts
Router#

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:<file>

    • install commit

    • install remove file flash:<file>

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
--------------------------------------------------------------------------------
IMG   C    17.04.01.0.118999
SMU   C    flash:ir1800-universalk9.2020-08-06_10.38.0.CSCxx12345.SSA.smu.bin

--------------------------------------------------------------------------------
Auto abort timer: inactive
--------------------------------------------------------------------------------
Router#

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 Thu Aug  6 12:04:04 PDT 2020
install_rollback: Rolling back SMU
Executing pre scripts....
Executing pre sripts done.

--- Starting SMU Rollback operation ---
Performing SMU_ROLLBACK on Active/Standby
  [1] SMU_ROLLBACK package(s) on R0
  [1] Finished SMU_ROLLBACK on R0
Checking status of SMU_ROLLBACK on [R0]
SMU_ROLLBACK: Passed on [R0]
Finished SMU Rollback operation

CSCxx12345:SUCCESS
SUCCESS: install_rollback /flash1/ir1800-universalk9.2020-08-06_10.38_shchang2.0.CSCxx12345.SSA.smu.bin Thu Aug  6 12:04:57 PDT 2020
Router#

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    17.04.01.0.118999

--------------------------------------------------------------------------------
Auto abort timer: inactive
--------------------------------------------------------------------------------
Router#

Note


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

Verify the result of the patch by showing the same command.

Router#show power
Main PSU :
    Total Power Consumed: 11.98 Watts
    Configured Mode : N/A
    Current runtime state same : N/A
    PowerSupplySource : External PS
POE Module :
    Configured Mode : N/A
    Current runtime state same : N/A
    Total power available : 30 Watts
Router#

Uninstalling the Patch Image Using Deactivate, Commit, and Remove

In the following sequence, there are two patches installed on the device. CSCvq11111 and CSCvt22222 Only CSCvt22222 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/ir1800-universalk9.<release>.CSCvq11111.SPA.smu.bin
SMU   C    /flash1/ir1800-universalk9.<release>.CSCvt22222.SPA.smu.bin
IMG   C    17.04.1

Procedure


Step 1

Deactivate the patch.


Router# install deactivate file flash:ir1800-universalk9.<release>.CSCvt22222.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/ir1800-universalk9.<release>.CSCvt22222.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/ir1800-universalk9.<release>.CSCvt11111.SPA.smu.bin
SMU   D    /flash1/ir1800-universalk9.<release>.CSCvt22222.SPA.smu.bin
IMG   C    17.01.1 

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/ir1800-universalk9.<release>.CSCvt22222.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/ir1800-universalk9.<release>.CSCvt11111.SPA.smu.bin
SMU   I    /flash1/ir1800-universalk9.<release>.CSCvt22222.SPA.smu.bin
IMG   C    <release>

Step 3

Remove the patch.


Router# install remove file flash:ir1800-universalk9.<release>.CSCvt22222.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:ir1800-universalk9.<release>.CSCvt22222.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/ir1800-universalk9.<release>.CSCvt22222.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:ir1800-universalk9.<release>.CSCvt22222.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/ir1800-universalk9.<release>.CSCvt11111.SPA.smu.bin
IMG   C    <release>