Flexible packaging is
a method of breaking down the Cisco IOS XR operating system into modules and
providing them as RPMs (packages). Delivering packages as RPMs enables easier
and faster system updates.
The lean base
software contains only the required packages, while the optional packages are
provided separately as installable RPMs. You can select and install the
services you want by selecting the required RPMs.
feature also supports automatic dependency management, whereby, while the user
is updating an RPM, the system automatically identifies all relevant dependent
packages and updates them. The system uses standard LINUX tools to manage
dependency during upgrades.
The base software is
the minimum mandatory package (with utilities), required for the basic
functioning of the router. This is also called the mini.iso file. This base
(OS)—Kernel, file system, memory management, and other OS utilities
components—Interface manager, system database, checkpoint services,
configuration management utilities
protocols—mandatory routing protocols (such as BGP)
components—FIB, ARP, QoS, ACL
Line card drivers
Mandatory RPMs (such as, BGP) which are a part of the base software, cannot be removed and can only be upgraded.
This section also
describes the following:
This image shows the
overall workflow for Flexible Packaging.
The format of an RPM
name - of the platform
the software supports
version - the version of
release - the number of
times this version of the software has been delivered
- the node's processor architecture
Consider the following
Platform-Package Name : ncs5500-mpls
Version : 184.108.40.206
Release : r611
Architecture : x86_64
Upgrades (SMUs) are delivered as RPMs. RPMs have a four-digit version number.
The first three digits represent major, minor, and build numbers respectively.
The fourth digit is incremented with each SMU release.
This table lists the
reasons when each digit of the version gets incremented.
(Digit from left)
compatible API(s) change(s)
compatible change occurs to a public API
an RPM is
built without any API change
a new SMU is
SMUs are identified
with a defect-ID. In this example, note that, for the first SMU release of the
package, the fourth digit starts at 1 and for the second SMU release of the
package, the fourth digit is incremented to 2.
First SMU of the mpls package: ncs5500-mpls-220.127.116.11-r611.CSCus12345.x86_64.rpm
Second SMU of the mpls package: ncs5500-mpls-18.104.22.168-r611.CSCus12322.x86_64.rpm