Software Maintenance Upgrade (SMU)


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.


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.

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 Workflow and Basic Requirements

The workflow 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 ir8340-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 sdcard:ir8340-universalk9.2021-06-14_14.55_suraiyer.0.cold.SSA.smu.bininstall_add: START Wed Aug 11 17:05:59 UTC 2021
Copying sdcard:ir8340-universalk9.2021-06-14_14.55_suraiyer.0.cold.SSA.smu.bin to bootflash:ir8340-universalk9.2021-06-14_14.55_suraiyer.0.cold.SSA.smu.bin
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 Wed Aug 11 17:06:22 UTC 2021

Router#

Step 3

Activate the patch image.


Router# install activate file bootflash:ir8340-universalk9.2021-06-14_14.55_suraiyer.0.cold.SSA.smu.bininstall_activate: START Thu Aug  6 11:53:59 PDT 2020
install_activate: START Wed Aug 11 17:06:35 UTC 2021

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]
167: +++ SLE_Sumatra: receive +++
y

Building configuration...
[OK]Modified configuration has been saved
install_activate: Activating SMU

This operation may require a reload of the system. Do you want to proceed? [y/n]

Step 4

Commit the installation.

Router# install commitinstall_commit: START Wed Aug 11 17:12:40 UTC 2021
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 /bootflash/ir8340-universalk9.2021-06-14_14.55_suraiyer.0.cold.SSA.smu.bin Wed Aug 11 17:13:24 UTC 2021
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
--------------------------------------------------------------------------------
SMU C bootflash:ir8340-universalk9.2021-06-14_14.55_suraiyer.0.cold.SSA.smu.bin
IMG C 17.07.01.0.139972

--------------------------------------------------------------------------------
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
--------------------------------------------------------------------------------
SMU C bootflash:ir8340-universalk9.2021-06-14_14.55_suraiyer.0.cold.SSA.smu.bin
IMG C 17.07.01.0.139972

--------------------------------------------------------------------------------
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/ir8300-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
--------------------------------------------------------------------------------
SMU C bootflash:ir8340-universalk9.2021-06-14_14.55_suraiyer.0.cold.SSA.smu.bin
IMG C 17.07.01.0.139972

--------------------------------------------------------------------------------
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.

Uninstalling the Patch Image Using Deactivate, Commit, and Remove

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 bootflash:ir8340-universalk9.2021-06-14_14.55_suraiyer.0.cold.SSA.smu.bin
IMG C 17.07.01.0.139972

--------------------------------------------------------------------------------
Auto abort timer: inactive
--------------------------------------------------------------------------------

Procedure


Step 1

Deactivate the patch.

Router# install deactivate file bootflash:ir8340-universalk9.2021-06-14_14.55_suraiyer.0.cold.SSA.smu.bin
install_deactivate: START Wed Aug 11 17:14:35 UTC 2021

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]
332: +++ SLE_Sumatra: receive +++
y

Building configuration...
[OK]Modified configuration has been saved
install_deactivate: Deactivating SMU

This operation may require a reload of the system. Do you want to proceed? [y/n]

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 D bootflash:ir8340-universalk9.2021-06-14_14.55_suraiyer.0.cold.SSA.smu.bin
IMG C 17.07.01.0.139972

--------------------------------------------------------------------------------
Auto abort timer: active on install_deactivate, time before rollback - 01:55:21
--------------------------------------------------------------------------------

Step 2

Commit the action.

Router# install commit
install_commit: START Wed Aug 11 17:21:23 UTC 2021
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 /bootflash/ir8340-universalk9.2021-06-14_14.55_suraiyer.0.cold.SSA.smu.bin Wed Aug 11 17:21:53 UTC 2021
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 I bootflash:ir8340-universalk9.2021-06-14_14.55_suraiyer.0.cold.SSA.smu.bin
IMG C 17.07.01.0.139972

--------------------------------------------------------------------------------
Auto abort timer: inactive
--------------------------------------------------------------------------------

Step 3

Remove the patch.

Router# install remove file bootflash:ir8340-universalk9.2021-06-14_14.55_suraiyer.0.cold.SSA.smu.bininstall_remove: START Wed Aug 11 17:22:03 UTC 2021
install_remove: Removing SMU
Executing pre scripts....
Executing pre sripts done.

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

SUCCESS: install_remove /bootflash/ir8340-universalk9.2021-06-14_14.55_suraiyer.0.cold.SSA.smu.bin Wed Aug 11 17:22:20 UTC 2021

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.07.01.0.139972

--------------------------------------------------------------------------------
Auto abort timer: inactive
--------------------------------------------------------------------------------