-- ********************************************************************* -- CISCO-IMAGE-LICENSE-MGMT-MIB.my: Cisco MIB to manage image level on -- Cisco devices. -- -- August 2007, Ganesan Rajam -- -- Copyright (c) 2006-2007 by Cisco Systems Inc. -- All rights reserved. -- -- ******************************************************************** CISCO-IMAGE-LICENSE-MGMT-MIB DEFINITIONS ::= BEGIN IMPORTS OBJECT-TYPE, MODULE-IDENTITY, Unsigned32, NOTIFICATION-TYPE FROM SNMPv2-SMI MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP FROM SNMPv2-CONF TEXTUAL-CONVENTION, TruthValue FROM SNMPv2-TC SnmpAdminString FROM SNMP-FRAMEWORK-MIB entPhysicalIndex FROM ENTITY-MIB ciscoMgmt FROM CISCO-SMI; ciscoImageLicenseMgmtMIB MODULE-IDENTITY LAST-UPDATED "200710160000Z" ORGANIZATION "Cisco Systems Inc." CONTACT-INFO "Cisco Systems Customer Service Postal: 170 W Tasman Drive San Jose, CA 95134 USA Tel: +1 800 553 -NETS E-mail: cs-snmp@cisco.com" DESCRIPTION "The MIB module for managing the running image level of a Cisco device. Cisco's licensing mechanism provides flexibility to run a device on a chosen image level. This mechanism is referred to as image level licensing. Image level licensing leverages the universal image based licensing solution. The image level licensing mechanism works as follows - A universal image that contains all levels of software packages is loaded on to the device. At boot time, the device determines the highest level of license and brings up the appropriate software features or subsystems. The user can configure the image level with which the device has to boot. The system will verify whether the appropriate license is available for the configured image level. The image level for the next boot will be determined based on the availability of the license. The following scenarios explains some use-cases of image level licensing: Scenario 1: - Customer selects advsecurityk9 based image. - Manufacturing installs advsecurity license on the device. - This device will run all features that are part of the base advsecurity license. - Customer upgrades to advipservicesk9 license. - The next boot level is set to advipservicesk9. - The device will run advsecurityk9 feature until the next reboot. After reboot the device will run advipservicesk9 features. Scenario 2: - Customer selects advipservicesk9 based image. - Manufacturing installs advipservices and advsecurity license on the device. - This device will run all features that are part of the base advipservices license. - No upgrades available for advipservices license. The user has to accept the End User License Agreement(EULA) before using this MIB to configure the image level. This MIB should be used in conjuntion with CISCO-LICENSE-MGMT-MIB module to achieve the image level licensing functionality. This MIB module defines objects which provides the different image levels supported by the device and the license required to enable a particular image level. It also defines objects to let the user configure the required image level. The MIB module contains notification which will be triggered when the user changes the image level for next boot. The CISCO-LICENSE-MGMT-MIB module should be used to export the EULA and to configure the required license. This MIB module is defined generically so it can be used for both stand-alone as well as stackable devices. The entPhysicalIndex imported from ENTITY-MIB is used to identify the device uniquely." REVISION "200710160000Z" DESCRIPTION "Initial version of this MIB module." ::= { ciscoMgmt 640 } ciscoImageLicenseMgmtMIBNotifs OBJECT IDENTIFIER ::= { ciscoImageLicenseMgmtMIB 0 } ciscoImageLicenseMgmtMIBObjects OBJECT IDENTIFIER ::= { ciscoImageLicenseMgmtMIB 1 } ciscoImageLicenseMgmtMIBConform OBJECT IDENTIFIER ::= { ciscoImageLicenseMgmtMIB 2 } BootImageLevel ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "This textual convention is used to define the image level. If the device is running at advipservices image level, then the boot image level will be 'advipservices'." SYNTAX OCTET STRING (SIZE (0..255)) LicenseNameList ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "This textual convention is used to define the list of license names. If multiple licenses are present then this string will contain all the licenses seperated by the ',' character. If the license required to run a device at advipservices image level is advipservices and advsecurity, then the license name list will be 'advipservices,advsecurity'." SYNTAX OCTET STRING (SIZE (0..255)) -- Table for executing license management actions. cilmBootImageLevelTable OBJECT-TYPE SYNTAX SEQUENCE OF CilmBootImageLevelEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A table that contains the configuration information of current and next boot image level. This table contains entries for each software module running in an image loaded in the device. The software module is identified by cilmModuleName and the device is identified by entPhysicalIndex." ::= { ciscoImageLicenseMgmtMIBObjects 1 } cilmBootImageLevelEntry OBJECT-TYPE SYNTAX CilmBootImageLevelEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry in the table for each module containing the list of objects that define the configuration of next boot level. The following information is specified by the objects present in the table. - Current image level. - Configured image level for the next boot. - Actual image level for the next boot. - License store index for the current license. - License index of the current license. - License store index for the next boot license. - License index of the next boot license." INDEX { entPhysicalIndex, cilmModuleName } ::= { cilmBootImageLevelTable 1 } CilmBootImageLevelEntry ::= SEQUENCE { cilmModuleName SnmpAdminString, cilmCurrentImageLevel BootImageLevel, cilmConfiguredBootImageLevel BootImageLevel, cilmNextBootImageLevel BootImageLevel, cilmCurrentLicenseStoreIndex Unsigned32, cilmCurrentLicenseIndex Unsigned32, cilmNextBootLicenseStoreIndex Unsigned32, cilmNextBootLicenseIndex Unsigned32 } cilmModuleName OBJECT-TYPE SYNTAX SnmpAdminString MAX-ACCESS not-accessible STATUS current DESCRIPTION "This object is used as one of the two indices in cilmBootImageLevelTable. This object indicates the module name of the software package. There can be multiple modules in an image performing specific functionality. For example, in a wireless image there can be two modules - a base image module and a wireless module." ::= { cilmBootImageLevelEntry 1 } cilmCurrentImageLevel OBJECT-TYPE SYNTAX BootImageLevel MAX-ACCESS read-only STATUS current DESCRIPTION "This object indicates the current image level that the module is running." ::= { cilmBootImageLevelEntry 2 } cilmConfiguredBootImageLevel OBJECT-TYPE SYNTAX BootImageLevel MAX-ACCESS read-write STATUS current DESCRIPTION "This object indicates the configured image level of the module for the next boot. Note: The configured next boot image level may not be the actual next boot image level. The actual next boot image level is denoted by cilmNextBootImageLevel which is determined based on the license availability." ::= { cilmBootImageLevelEntry 3 } cilmNextBootImageLevel OBJECT-TYPE SYNTAX BootImageLevel MAX-ACCESS read-only STATUS current DESCRIPTION "This object indicates the next boot image level. The next boot image level can be different from configured level. The next boot image level is determined based on the availability of required license." ::= { cilmBootImageLevelEntry 4 } cilmCurrentLicenseStoreIndex OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "This object indicates the license store index where the currently used license is stored. This object has the same value as clmgmtLicenseStoreIndex object and uniquely identifies an entry in clmgmtLicenseStoreInfoTable in CISCO-LICENSE-MGMT-MIB. Note: The license store index can be '0' if no license is installed and device is running base image." ::= { cilmBootImageLevelEntry 5 } cilmCurrentLicenseIndex OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "This object indicates the license index of the currently used license. This object has the same value as clmgmtLicenseIndex and uniquely identifies an entry in clmgmtLicenseInfoTable in CISCO-LICENSE-MGMT-MIB. Note: The license index can be '0' if no license is installed and device is running base image." ::= { cilmBootImageLevelEntry 6 } cilmNextBootLicenseStoreIndex OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "This object indicates the license store index where the next boot license is stored. This object has the same value as clmgmtLicenseStoreIndex object and uniquely identifies an entry in clmgmtLicenseStoreInfoTable in CISCO-LICENSE-MGMT-MIB. Note: The license store index can be '0' if no license is installed for the next boot." ::= { cilmBootImageLevelEntry 7 } cilmNextBootLicenseIndex OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "This object indicates the license index of the next boot license. This object has the same value as clmgmtLicenseIndex and uniquely identifies an entry in clmgmtLicenseInfoTable in CISCO-LICENSE-MGMT-MIB. Note: The license index can be '0' if no license is installed for the next boot." ::= { cilmBootImageLevelEntry 8 } cilmImageLevelToLicenseMapTable OBJECT-TYPE SYNTAX SEQUENCE OF CilmImageLevelToLicenseMapEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table contains the mapping between different image levels of each modules in the image and the license required to run the modules at a particular image level. This table can be used to identify the different image levels and the appropriate licenses required for each." ::= { ciscoImageLicenseMgmtMIBObjects 2 } cilmImageLevelToLicenseMapEntry OBJECT-TYPE SYNTAX CilmImageLevelToLicenseMapEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry in the table containing the following information. - The image levels at the which the modules can be run. - The license required to the run a module at a particular image level. - The priority of the license." INDEX { entPhysicalIndex, cilmModuleName, cilmImageLicenseMapIndex } ::= { cilmImageLevelToLicenseMapTable 1 } CilmImageLevelToLicenseMapEntry ::= SEQUENCE { cilmImageLicenseMapIndex Unsigned32, cilmImageLicenseImageLevel BootImageLevel, cilmImageLicenseName LicenseNameList, cilmImageLicensePriority Unsigned32 } cilmImageLicenseMapIndex OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS not-accessible STATUS current DESCRIPTION "This is a running index used to identify an entry of this table." ::= { cilmImageLevelToLicenseMapEntry 1 } cilmImageLicenseImageLevel OBJECT-TYPE SYNTAX BootImageLevel MAX-ACCESS read-only STATUS current DESCRIPTION "This object indicates the image level at which a module can be run. A module can be run at different image levels. An entry will be created in this table for every module and image level combination." ::= { cilmImageLevelToLicenseMapEntry 2 } cilmImageLicenseName OBJECT-TYPE SYNTAX LicenseNameList MAX-ACCESS read-only STATUS current DESCRIPTION "This object indicates the list of licenses needed to be installed for the module to run at the image level mentioned by cilmImageLicenseImageLevel object of this entry." ::= { cilmImageLevelToLicenseMapEntry 3 } cilmImageLicensePriority OBJECT-TYPE SYNTAX Unsigned32 (1..255) MAX-ACCESS read-only STATUS current DESCRIPTION "This object indicates the priority of the image level mentioned by cilmImageLicenseImageLevel object of this entry. The image level with the highest priority license will be considered as the default level in the absense of next boot image level configuration. For example if there are three licenses l1, l2 and l3 in the ascending order of priority, then by default l1 will be the level at which the module will be running. If the next boot level is configured then the configuration will override the priority. The highest priority license supports a feature set which is a super set of all other licenses." ::= { cilmImageLevelToLicenseMapEntry 4 } -- Global Objects cilmEULAAccepted OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-write STATUS current DESCRIPTION "This object when set to TRUE means that the user has accepted the END USER LICENSE AGREEMENT. This object has to be set to TRUE by the user before using the objects in the cilmBootImageLevelTable to configure the license." DEFVAL { false } ::= { ciscoImageLicenseMgmtMIBObjects 3 } -- Notification control cilmNotifCntl OBJECT IDENTIFIER ::= { ciscoImageLicenseMgmtMIBObjects 4 } cilmImageLevelChangedNotif OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-write STATUS current DESCRIPTION "Specify whether or not a notification should be generated on the detection of change in next boot image level. If set to TRUE, cilmBootImageLevelChanged notification will be generated. It is the responsibility of the management entity to ensure that the SNMP administrative model is configured in such a way as to allow the notification to be delivered." REFERENCE "See also RFC3413 for explanation that notifications are under the ultimate control of the MIB module in this document." DEFVAL { false } ::= { cilmNotifCntl 1 } -- Notifications cilmBootImageLevelChanged NOTIFICATION-TYPE OBJECTS { cilmCurrentImageLevel, cilmConfiguredBootImageLevel } STATUS current DESCRIPTION "This notification is triggered when next boot image level is changed in the management entity. The current and configured image level are indicated by cilmCurrentImageLevel and cilmConfiguredBootImageLevel objects respectively." ::= { ciscoImageLicenseMgmtMIBNotifs 1 } -- Conformance cilmModuleCompliances OBJECT IDENTIFIER ::= { ciscoImageLicenseMgmtMIBConform 1 } cilmModuleGroups OBJECT IDENTIFIER ::= { ciscoImageLicenseMgmtMIBConform 2 } cilmModuleCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "Compliance statement for Cisco Image level license mgmt MIB." MODULE -- this module MANDATORY-GROUPS { cilmAdminGroup, cilmNotifGroup } GROUP cilmOperGroup DESCRIPTION "This group is mandatory for all devices where multiple license are supported." ::= { cilmModuleCompliances 1 } -- Units of Conformance cilmAdminGroup OBJECT-GROUP OBJECTS { cilmCurrentImageLevel, cilmConfiguredBootImageLevel, cilmNextBootImageLevel, cilmCurrentLicenseStoreIndex, cilmCurrentLicenseIndex, cilmNextBootLicenseStoreIndex, cilmNextBootLicenseIndex, cilmEULAAccepted, cilmImageLevelChangedNotif } STATUS current DESCRIPTION "Objects for performing license set operation for setting next boot level." ::= { cilmModuleGroups 1 } cilmOperGroup OBJECT-GROUP OBJECTS { cilmImageLicenseImageLevel, cilmImageLicenseName, cilmImageLicensePriority } STATUS current DESCRIPTION "Objects for getting current image level configuration data." ::= { cilmModuleGroups 2 } cilmNotifGroup NOTIFICATION-GROUP NOTIFICATIONS { cilmBootImageLevelChanged } STATUS current DESCRIPTION "Objects for getting current image level configuration data." ::= { cilmModuleGroups 3 } END