-- *********************************************************************
-- CISCO-LICENSE-MGR-MIB.my: Cisco mib to manage license file 
--                             
-- August 2003, Arul Mozhi 
--
-- Copyright (c) 2003,2004 by cisco Systems, Inc.
-- All rights reserved.
-- 
-- *********************************************************************

CISCO-LICENSE-MGR-MIB DEFINITIONS ::= BEGIN
 
IMPORTS
    OBJECT-TYPE,
    MODULE-IDENTITY,
    Integer32,
    Unsigned32, NOTIFICATION-TYPE          FROM SNMPv2-SMI
    SnmpAdminString                        FROM SNMP-FRAMEWORK-MIB   
    DateAndTime ,TruthValue,
                       TestAndIncr         FROM SNMPv2-TC
    MODULE-COMPLIANCE,OBJECT-GROUP,
                NOTIFICATION-GROUP         FROM SNMPv2-CONF
    ciscoMgmt                              FROM CISCO-SMI;
 
ciscoLicenseMgrMIB MODULE-IDENTITY
    LAST-UPDATED "200407200000Z"
    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-san@cisco.com"

    DESCRIPTION 
         "The MIB module for a method of managing license files on 
         the system. 
         Licensing mechanism provides more flexibility in supporting 
         various features in the system. Feature License is the 
         specification of the permission to use a particular feature,
         indicated through  license file. The permissions can also
         specify the limit on the number of concurrent usages of the 
         feature, the limit on time period of the feature usage and 
         the device where the feature has to be used. License files 
         will be given to customers when they buy the licenses. User 
         should copy the license file to some location on the system,
         for installing." 
    REVISION    "200407200000Z"
    DESCRIPTION
         "Added a new object for detecting the license violation in 
          the system."
    REVISION    "200311270000Z"
    DESCRIPTION
         "Updated the description of 'clmLicenseFileURI',
         'clmLicenseFileTargetName' and 'clmLicenseConfigCommand' to 
         include the 'update' license operation.
         Added one more new error code 'invalidPlatform' into the
         'clmLicenseConfigCommandStatus' object." 
    REVISION    "200310300000Z"
    DESCRIPTION
         "New objects for checkin/checkout a licensed feature 
         have been added. 
         New table 'clmFeatureUsageDetailsTable' has been added to 
         show the list of applications, which are checked out the
         licensed features." 
    REVISION    "200309120000Z"
    DESCRIPTION
         "Initial version of this MIB module."
    ::= { ciscoMgmt 369 } 
 
ciscoLicenseMgrMIBObjects      OBJECT IDENTIFIER 
                                   ::= { ciscoLicenseMgrMIB 1 }
ciscoLicenseMgrMIBConform      OBJECT IDENTIFIER 
                                   ::= { ciscoLicenseMgrMIB 2 }

ciscoLicenseMgrMIBNotifs       OBJECT IDENTIFIER
                                   ::= { ciscoLicenseMgrMIB 3 }
 
ciscoLicenseMgrConfig          OBJECT IDENTIFIER
                                  ::= { ciscoLicenseMgrMIBObjects 1 }
clmLicenseConfiguration        OBJECT IDENTIFIER
                                  ::= { ciscoLicenseMgrMIBObjects 2 }
clmLicenseInformation        OBJECT IDENTIFIER
                                  ::= { ciscoLicenseMgrMIBObjects 3 }
ciscoLicenseMgrNotifications OBJECT IDENTIFIER
                                  ::= { ciscoLicenseMgrMIBNotifs 0 }

 
clmHostId OBJECT-TYPE
        SYNTAX           SnmpAdminString (SIZE (40)) 
        MAX-ACCESS       read-only
        STATUS           current
        DESCRIPTION
            "This object contains the 'License hostid' of the
            local system. Its value is an opaque string, and is used
            to identify the local system when requesting license(s) 
            for this system."
        ::= { ciscoLicenseMgrConfig 1 }

clmLicenseConfigSpinLock OBJECT-TYPE
        SYNTAX       TestAndIncr
        MAX-ACCESS   read-write
        STATUS       current
        DESCRIPTION
            "This object is used to facilitate modification 
            of clmLicenseFileURI,clmLicenseFileTargetName and
            clmLicenseConfigCommand  objects by multiple managers.
            The procedure for modifying the above three objects are 
            as follows:
            1. Determine new values for clmLicenseFileURI, 
            clmLicenseFileTargetName and clmLicenseConfigCommand.

            2. Retrieve the value of clmLicenseConfigSpinLock.

            3. Set the value of clmLicenseConfigSpinLock to the
            retrieved value, and (in the same PDU) the value of
            clmLicenseFileURI to the new value. If the set fails for 
            the clmLicenseConfigSpinLock object, go back to step 2.

            4. Set the value of clmLicenseConfigSpinLock to the
            retrieved value incremented by one, and (in the same PDU) 
            the value of clmLicenseFileTargetName to its new value. If 
            the set fails for clmLicenseConfigSpinLock, go back to 
            step 2.

            5. Set the value of clmLicenseConfigSpinLock to the
            retrieved value incremented by two, and (in the same PDU) 
            the value of clmLicenseConfigCommand to 'install' or 
            'uninstall' or 'update'. If the set fails for 
            clmLicenseConfigSpinLock, go back to step 2.

            Note that if it's possible to include 
            clmLicenseFileTargetName and/or clmLicenseConfigCommand in 
            the (Set Request) PDU of an earlier step, then step 4 
            and/or 5, can be eliminated."
        ::= { clmLicenseConfiguration 1 }

clmLicenseFileURI          OBJECT-TYPE
        SYNTAX          SnmpAdminString (SIZE (0..255))
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
            "This object represents the location on the local system, 
            from which the license file will be picked for installation 
            or updating.
            User should have copied the license file provided by  
            CISCO-CCO , by some other means ( for example, thru CLI) 
            to this location. For example, the value of this object 
            could be 'bootflash:licfile1.lic'. This object MUST be 
            set to a valid value before or concurrently with setting 
            the value of the clmLicenseConfigCommand object 
            to 'install' or 'update'.
            For uninstall operation the value of this object is not
            considered, it is irrelevant."
        ::= { clmLicenseConfiguration 2 }    


clmLicenseFileTargetName          OBJECT-TYPE
        SYNTAX          SnmpAdminString (SIZE (0..31))
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
            "This object represents the name with which the 
            license file will be installed, or the name of the license 
            file for uninstall, or the name of the license file to be 
            updated.

            For 'uninstall' operation, this object must be set to the
            appropriate value, i.e., a non-zero length string, before 
            or concurrently with setting the value of 
            clmLicenseConfigCommand object to 'uninstall'.

            For 'install' operation, this object is set either to the
	    file name with which the license will be installed, or to
	    the zero-length string.  In the latter case, the filename
	    specified through clmLicenseFileURI will be used for 
            installing the license.
            For example, if the value of clmLicenseFileURI object is 
            set to 'bootflash:licfile1.lic' and this object is set to
            'target1.lic', then the license will be installed  
            with the filename 'target1.lic'. 
            If this object contains zero length string then license 
            will be installed with the filename 'licfile1.lic'.

            For 'update' operation, this object is set either to the
	    file name which is to be updated (overwritten), or to
	    the zero-length string.  In the latter case, the filename
            specified through clmLicenseFileURI, will be updated.
            For example, if the value of clmLicenseFileURI object is 
            set to 'bootflash:licfile2.lic' and this object is set to
            'target2.lic', then the already installed license file  
            'target2.lic' will be updated by the contents of 
            'bootflash:licfile2.lic'.
            If this object contains zero length string then the 
            already installed license file 'licfile2.lic' will be
            updated with the contents of 'bootflash:licfile2.lic'." 
        DEFVAL { "" } 
        ::= { clmLicenseConfiguration 3 }    
        
        
clmLicenseConfigCommand OBJECT-TYPE
        SYNTAX INTEGER {
             install(1),
             uninstall(2),
             noOp(3),
             update (4)             
        }
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
            "The command to be executed. 
            Command                 Remarks

            install   Installs the license file specified thru the
                      clmLicenseFileURI on the system, also performs 
                      some verification on the license file before 
                      installing. 

            uninstall Uninstalls the license file specified in the  
                      clmLicenseFileTargetName object. 

            noOp      no operation will be performed. 

            update    Updates (Overwrites) an already installed license 
                      file.
 
            The value of this object when read is always 'noOp'." 
        DEFVAL { noOp }
        ::= { clmLicenseConfiguration 4 }

clmLicenseConfigCommandStatus OBJECT-TYPE
        SYNTAX INTEGER {
             success (1),
             inProgress (2),
             corruptedLicenseFile (3),
             targetLicenseFileAlreadyExist (4),
             invalidLicenseFileName (5),
             duplicateLicense (6) ,
             licenseInUse (7),
             generalLicensingFailure (8), 
             none (9),
             licenseExpiryConflict (10),  
             invalidLicenseCount (11) ,
             notThisHost (12) ,
             licenseInGraceMore (13),
             licenseFileNotFound (14),
             licenseFileMissing (15),
             invalidLicenseFileExtension (16),
             invalidURI (17),
             noDemoLicenseSupport (18),
             invalidPlatform (19) 
        }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The status of the license install / uninstall / update 
             operation.
             success (1) - install/uninstall/update operation completed 
                            successfully. 
             inProgress (2) - License install/uninstall/update operation
                              is in progress.
             corruptedLicenseFile (3) - License file content is 
                                        Invalid/Corrupted.
             targetLicenseFileAlreadyExist (4) - Target license file 
                                                 name already exist.
             invalidLicenseFileName (5) - Invalid license file target
                                          name for install / uninstall 
                                          operation.
             duplicateLicense (6) - License file is already installed.
             licenseInUse (7) - Can't uninstall a license file which is 
                                in use.
             generalLicensingFailure (8) - General error from license 
                                           Manager.
             none (9) - no install/uninstall/update operation is 
                        performed. 
             licenseExpiryConflict(10) - License exist with a different
                                         expiry date for the feature.
             invalidLicenseCount(11) - License count is invalid for 
                                       the feature. 
             notThisHost (12) - License host-id in the license file
                                doesn't match.
             licenseInGraceMore (13) - Number of licenses in grace 
                                       period is more than the number 
                                       in install license file.
             licenseFileNotFound (14) - License file not found, for 
                                        install / uninstall / update 
                                        operation.
             licenseFileMissing (15) - A previously installed license 
                                       file is found missing.

             invalidLicenseFileExtension (16) - License file does not 
                                                have a .lic extension.
             invalidURI (17) - Invalid license file URI, specified for 
                               install operation.
             noDemoLicenseSupport (18)  - Demo License Not Supported.

             invalidPlatform (19) - Invalid Platform." 
        ::= { clmLicenseConfiguration 5 }


clmLicenseRequestSpinLock OBJECT-TYPE
        SYNTAX       TestAndIncr
        MAX-ACCESS   read-write
        STATUS       current
        DESCRIPTION
            "This object is used to facilitate modification 
            of clmLicenseRequestFeatureName , clmLicenseRequestAppName
            and clmLicenseRequestCommand  objects by multiple managers.
            The procedure for modifying the above three objects are 
            as follows:
            1. Determine new values for clmLicenseRequestFeatureName, 
               clmLicenseRequestAppName and clmLicenseConfigCommand.

            2. Retrieve the value of clmLicenseRequestSpinLock.

            3. Set the value of clmLicenseRequestSpinLock to the
            retrieved value, and (in the same PDU) the value of
            clmLicenseRequestFeatureName to the new value. If the set 
            fails for the clmLicenseRequestSpinLock object, 
            go back to step 2.

            4. Set the value of clmLicenseRequestSpinLock to the
            retrieved value incremented by one, and (in the same PDU)
            the value of clmLicenseRequestAppName to its new value. If
            the set fails for clmLicenseRequestSpinLock, go back to
            step 2.
 
            5. Set the value of clmLicenseRequestSpinLock to the
            retrieved value incremented by two, and (in the same PDU) 
            the value of clmLicenseRequestCommand to 'checkIn' or 
            'checkOut'. If the set fails for clmLicenseRequestSpinLock, 
            go back to step 2.

            Note that if it's possible to include 
            clmLicenseRequestAppName and/or clmLicenseRequestCommand
            in the (Set Request) PDU of an earlier step, then 
            step 4 and/or 5, can be eliminated."
        ::= { clmLicenseConfiguration 6 }

clmLicenseRequestFeatureName          OBJECT-TYPE
        SYNTAX          SnmpAdminString (SIZE (0..30))
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
            "This object represents the licensed feature name, 
            requested for checkin / checkout a license. 
            This object MUST be set to a valid value before or 
            concurrently with setting the value of the 
            clmLicenseRequestCommand object to 'checkIn' or
            'checkOut'."
        DEFVAL { "" } 
        ::= { clmLicenseConfiguration 7 }    

clmLicenseRequestAppName         OBJECT-TYPE
        SYNTAX          SnmpAdminString (SIZE (0..31))
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
            "This object is used to optionally associate an id with 
            a license checkin/checkout request for the feature name 
            specified in the 'clmLicenseRequestFeatureName' object. 
            The application can choose to set a meaningful name for 
            this object. If 2 requests have the same value for appName
            then they are treated as same requests. If this object is
            not set or contains zero length string then each 
            checkin/checkout request is treated as a distinct request."
        DEFVAL { "" } 
        ::= { clmLicenseConfiguration 8 }    

clmLicenseRequestCommand OBJECT-TYPE
        SYNTAX INTEGER {
             checkIn(1),
             checkOut(2),
             noOp(3)             
        }
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
            "The command to be executed. 
            Command                 Remarks

            checkIn   checkin a license for the feature name specified 
                      thru 'clmLicenseRequestFeatureName' object.

            checkOut  checkout a license for the feature name specified 
                      thru 'clmLicenseRequestFeatureName' object. 

            noOp      no operation will be performed. 
 
            The value of this object when read is always 'noOp'." 
        DEFVAL { noOp }
        ::= { clmLicenseConfiguration 9 }

clmLicenseRequestCommandStatus OBJECT-TYPE
        SYNTAX INTEGER {
             success (1),
             none (2),
             licenseDenied(3),
             licenseTooMany(4),
             generalLicensingFailure (5),
             invalidFeature (6), 
             licenseExpired (7),
             licenseServerDown (8)
        }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The status of the license checkin/checkout operation.
             success (1) - license checkin/checkout operation completed 
                            successfully. 
             none (2) - no license checkin/checkout operation is 
                        performed. 
             licenseDenied (3)  - No license available for the requested
                                  feature. 
             licenseTooMany (4) - license count exceed for counted 
                                  license.
             generalLicensingFailure (5) - General error from license 
                                           Manager.
             invalidFeature (6) - Invalid license feature.
             licenseExpired (7) - License expired.
             licenseServerDown (8) - License server down.
             ." 
        ::= { clmLicenseConfiguration 10 }

--
-- No.of License files installed 
--

clmNoOfLicenseFilesInstalled OBJECT-TYPE
        SYNTAX         Integer32 (0..4095)
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
            "This object represents the number of license files
            currently installed on this system."  
        ::= { clmLicenseInformation 1 }

--
-- license file contents table
--  
                                                
clmLicenseFileContentsTable  OBJECT-TYPE
        SYNTAX SEQUENCE OF ClmLicenseFileContentsEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "Contains information about all the license files installed
            on the system. 
            License file is a 'textual file' provided by the CISCO-CCO,
            when the user buys the license. This file contains licensing
            details for one or more 'Feature License'.
            'Feature License' is the specification of the permission to 
            use a particular feature. The following attributes are 
            specified in the 'Feature License'
            FEATURE - specifies the license feature name.
            
            HOSTID  - specifies the hostid of the system, where the
                      feature has to be used. For Demo license, 
                      'HOSTID' is specified as 'HOSTID=DEMO'.
            permanent - specifies permanent license. 
            uncounted- specifies the uncounted license for this feature.
                        For counted license, instead of the attribute 
                        'uncounted' , a number indicating the 'maximum 
                        number of concurrent usages' of this license 
                        feature is specified. 
                
            The date specified in the 'Feature License', indicates the 
            expiry date of this license feature.
            Other attributes in the license file are irrelevant to the 
            user.
            Example: 1 - A Demo license file contents
            # An example ficon license
            FEATURE ficon cisco 1.00 31-aug-2003 uncounted HOSTID=DEMO\
            SIGN=95D7C8860EE0

            Example: 2 - A Permanent license file contents
            SERVER this_host ANY
            VENDOR cisco
            # An example fcports license
            FEATURE fcports cisco 1.00 permanent 30 HOSTID=VDH=4C0A3364\
            SIGN=C3ACA6D831D6
            ."
        ::= { clmLicenseInformation 2 }

clmLicenseFileContentsEntry  OBJECT-TYPE
        SYNTAX         ClmLicenseFileContentsEntry
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION
            "A license file contains one or more 'rows' containing ASCII
            character strings, where each occurrence of an LF character
            terminates the 'row' containing it. A string of 255 
            characters after one LF character (or at the beginning of 
            the file) which does not contain another LF character is 
            also treated as a 'row' of the license file. 
            This object represents information about a particular 'row'
            in the license file contents." 
        INDEX   { clmLicenseFileName , clmLicenseFileRowNumber }
        ::= { clmLicenseFileContentsTable 1 }

ClmLicenseFileContentsEntry ::= SEQUENCE {
        clmLicenseFileName       SnmpAdminString,
        clmLicenseFileRowNumber   Unsigned32,
        clmLicenseFileTimeStamp   DateAndTime,
        clmLicenseFileNoOfRows    Unsigned32,
        clmLicenseFileRowContents   SnmpAdminString 
}

clmLicenseFileName OBJECT-TYPE
        SYNTAX         SnmpAdminString (SIZE (1..64)) 
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION
            "Specifies the the installed License file name."
        ::= { clmLicenseFileContentsEntry 1 }

clmLicenseFileRowNumber OBJECT-TYPE
        SYNTAX         Unsigned32 
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION
            "Represents the row number. For example, 1 for the first 
            row, two for the second, ..., N for the last (N-th) row."
        ::= { clmLicenseFileContentsEntry 2 }

clmLicenseFileTimeStamp OBJECT-TYPE
        SYNTAX         DateAndTime 
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
            "Represents the time when the license file contents 
            was last modified." 
        ::= { clmLicenseFileContentsEntry 3 }

clmLicenseFileNoOfRows OBJECT-TYPE
        SYNTAX         Unsigned32 
        MAX-ACCESS     read-only 
        STATUS         current
        DESCRIPTION
            "This object represents the number of 'rows'
            in the license file named by the the value of the
            corresponding instance of 'clmLicenseFileName'."
        ::= { clmLicenseFileContentsEntry 4 }

clmLicenseFileRowContents OBJECT-TYPE
        SYNTAX         SnmpAdminString (SIZE (1..255))  
        MAX-ACCESS     read-only 
        STATUS         current
        DESCRIPTION
            "This object represents the contents of the 'row' 
            for which the row number is given by the value of the 
            corresponding instance of 'clmLicenseFileRowNumber' 
            in the license file named by the the value of the 
            corresponding instance of 'clmLicenseFileName'."
        ::= { clmLicenseFileContentsEntry 5 }

--
--  license feature usage
--

clmNoOfLicensedFeatures OBJECT-TYPE
        SYNTAX         Integer32 (0..4095)
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
            "This object represents the current number of entries  
            in the clmLicenseFeatureUsageTable. Indicates the 
            number of licensed features in the local system."
        ::= { clmLicenseInformation 3 }
       
clmLicenseFeatureUsageTable  OBJECT-TYPE
        SYNTAX SEQUENCE OF ClmLicenseFeatureUsageEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "Represents the current license usage on the system.
            Contains one entry for each licensed feature in system." 
        ::= { clmLicenseInformation 4 }

clmLicenseFeatureUsageEntry  OBJECT-TYPE
        SYNTAX         ClmLicenseFeatureUsageEntry
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION
            "Licensing information for a particular feature can 
            appear in multiple license files.
            This object contains the consolidated licensing
            information for the particular feature from all the
            installed license files."
              
        INDEX   { clmLicenseFeatureName }
        ::= { clmLicenseFeatureUsageTable 1 }

ClmLicenseFeatureUsageEntry ::= SEQUENCE {
        clmLicenseFeatureName        SnmpAdminString ,
        clmLicenseFlag               BITS,
        clmNoOfLicenseMaxUsages      Integer32,
        clmNoOfMissingUsageLicenses  Integer32,
        clmNoOfLicenseCurrentUsages  Integer32,
        clmLicenseExpiryDate         DateAndTime,
        clmLicenseGracePeriod        Integer32 
}

clmLicenseFeatureName OBJECT-TYPE
        SYNTAX         SnmpAdminString (SIZE (1..30)) 
        MAX-ACCESS     not-accessible 
        STATUS         current
        DESCRIPTION
            "This object represents the name of the licensed 
            feature." 
        ::= { clmLicenseFeatureUsageEntry 1 }

clmLicenseFlag OBJECT-TYPE
        SYNTAX         BITS {
                           demo (0),
                           permanent (1),
                           counted (2),
                           unlicensed (3),
                           inGracePeriod (4)
                       } 
        MAX-ACCESS     read-only 
        STATUS         current
        DESCRIPTION
            "Information about the license type.
             bit positions,
             0 - demo license, if bit is set. 
             1 - permanent license, if bit is set. permanent means, 
                  the license for the feature has no expiry date.
                  if bit is reset, then the license for the feature 
                  has expiry date.  
             2 - counted license, if bit is set.
                 uncounted license, if bit is reset.
             3 - unlicensed, if bit is set, means no license 
                 for this feature is installed.
             4 - feature is in grace period, if bit is set. 
                 This means that applications are allowed to
                 to use this feature license till the expiry
                 of the grace period, mentioned in the  
                 corresponding instance of 'clmLicenseGracePeriod' 
                 object.
                 Feature is not in grace period, if bit is reset.  
             when 'unlicensed' (ie.) bit '3' is set, then the value 
             of bit 0,1 and 2 are irrelevant.
             Whether or not this value can have 'demo' and 'permanent'
             set at the same time is a policy issue, and some
             implementations will prohibit such usage."
        ::= { clmLicenseFeatureUsageEntry 2 }

clmNoOfLicenseMaxUsages OBJECT-TYPE
        SYNTAX         Integer32 (0..65535) 
        MAX-ACCESS     read-only 
        STATUS         current
        DESCRIPTION
            "Maximum number of concurrent usages of this license 
            feature.
            This is the cumulative license usage count for this
            feature from  all the installed license files,
            containing this feature's license information. 
            If the clmLicenseFlag object has value of bit 2 'reset', 
            ( means uncounted license), then the value of this object 
            is irrelevant."
        ::= { clmLicenseFeatureUsageEntry 3 }


clmNoOfMissingUsageLicenses OBJECT-TYPE
        SYNTAX         Integer32 (0..65535) 
        MAX-ACCESS     read-only 
        STATUS         current
        DESCRIPTION
            "This object represents the number of missing usage 
            licenses of this feature, when one or more installed 
            license files containing this feature's license, are 
            missing in the local system.
            Under normal condition, the value of this object is '0'."
        ::= { clmLicenseFeatureUsageEntry 4 }

clmNoOfLicenseCurrentUsages OBJECT-TYPE
        SYNTAX         Integer32 (0..65535)
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
            "Represents the number of current usages of this 
            licensed feature."
        ::= { clmLicenseFeatureUsageEntry 5 }
                
clmLicenseExpiryDate OBJECT-TYPE
        SYNTAX      DateAndTime
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Expiry date of the licensed feature.
            If the corresponding instances of clmLicenseFlag indicates 
            'permanent' or 'unlicensed' , then the value of this 
              object is irrelevant."
        ::= { clmLicenseFeatureUsageEntry 6 } 

clmLicenseGracePeriod OBJECT-TYPE
    SYNTAX      Integer32 (0..5184000) 
    UNITS       "seconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "This object represents the grace period left for this
            feature, in seconds.
            Grace period is the no.of seconds either an 
            unlicensed feature or a feature whose license 
            has expired is allowed to run.

            The value of this object is relevant only when the
            corresponding instances of clmLicenseFlag indicates
            'ingraceperiod'."
    ::= { clmLicenseFeatureUsageEntry 7 } 

clmFeatureUsageDetailsTable  OBJECT-TYPE
        SYNTAX SEQUENCE OF ClmFeatureUsageDetailsEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "Represents the list of applications which have  
             checked out the licensed features."
        ::= { clmLicenseInformation 5 }

clmFeatureUsageDetailsEntry  OBJECT-TYPE
        SYNTAX         ClmFeatureUsageDetailsEntry
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION
            "An Entry represents an application instance which 
            has checked out a license for the feature."
        INDEX   { clmLicenseFeatureName,
                  clmLicensedAppIndex }
        ::= { clmFeatureUsageDetailsTable 1 }

ClmFeatureUsageDetailsEntry ::= SEQUENCE {
        clmLicensedAppIndex   Unsigned32, 
        clmLicensedAppName     SnmpAdminString
}

clmLicensedAppIndex OBJECT-TYPE
        SYNTAX         Unsigned32 
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION
            "This is an index to the applications for a 
            licensed feature."  
        ::= { clmFeatureUsageDetailsEntry 1 }

clmLicensedAppName OBJECT-TYPE
        SYNTAX         SnmpAdminString (SIZE (1..31))
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
            "Represents the name of the application instance, 
            which has checked out the feature. It is the
            value of 'clmLicenseRequestAppName' object set
            while checking out the license." 
        ::= { clmFeatureUsageDetailsEntry 2 }


clmLicenseViolationWarnFlag OBJECT-TYPE
        SYNTAX        TruthValue 
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
            "If one or more application instance has checked out 
            any feature, without a valid license file installed 
            for that feature in the system, is termed as 
            'License Violation'. 

            This object indicates whether any license violation 
            has been detected in the system and the grace period 
            left for the corresponding feature is less than '30' 
            days. 
            
            The value of this object set to 'true' indicates a
            'License Violation' detected in the system , and the 
            grace period left for the corresponding feature is 
            less than 30 days.
   
            The value of this object set to 'false' indicates 
            eithor there is 'NO License Violation' detected in 
            the system, 
            or a 'License Violation' is detected, but the grace
            period left for the corresponding feature is more 
            than 30 days."
        ::= { clmLicenseInformation 6 }

--
-- Enable notifications
--

clmNotificationsEnable OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "This object indicates whether the system should generate
            notifications specified in 'clmNotificationGroup' 
            or not." 
    DEFVAL { true }
    ::= { ciscoLicenseMgrConfig 2 }

--
-- Notifications
--        

clmLicenseExpiryNotify NOTIFICATION-TYPE
        OBJECTS	{
          clmLicenseExpiryDate 
        }
        STATUS current
        DESCRIPTION
            "A clmLicenseCountExpiryNotify is sent, when a 
            feature license expires."
        ::= { ciscoLicenseMgrNotifications 1 }


clmNoLicenseForFeatureNotify NOTIFICATION-TYPE
        OBJECTS	{
          clmLicenseGracePeriod 
        }
        STATUS current
        DESCRIPTION
            "A 'clmNoLicenseForFeatureNotify' is sent, when an 
            license is issued for a feature which does 
            not have license. The license will expire after
            a grace period, which is mentioned in the 
            'clmLicenseGracePeriod' object of this
            notification. This notification is also sent once
            every 24 hours from the start of the grace period.
            In the last 7 days before grace period expiry this
            notification is sent once every hour."   
        ::= { ciscoLicenseMgrNotifications 2 }


clmLicenseFileMissingNotify NOTIFICATION-TYPE
        OBJECTS	{
          clmNoOfMissingUsageLicenses 
        }
        STATUS current
        DESCRIPTION
            "A clmLicenseFileMissingNotify is generated when the
            system detects that one or more installed license
            files are missing.  To correct this fault, any
            files which might be missing should be reinstalled,
            e.g., if it's unknown which ones are missing, then 
            all files can be re-installed, ignoring any 'duplicate
            license' messages."
        ::= { ciscoLicenseMgrNotifications 3 }


clmLicenseExpiryWarningNotify NOTIFICATION-TYPE
        OBJECTS	{
          clmLicenseExpiryDate 
        }
        STATUS current
        DESCRIPTION
            "A 'clmLicenseExpiryWarningNotify' is sent, 
            when an license issued for a feature is 
            going to expire, and the feature is use. This
            notification is sent once in a day starting 30
            days before license expiry. In the last 7 days
            before expiry this notification is sent once 
            every hour.
            The license will expire on the date and time, 
            mentioned in the 'clmLicenseExpiryDate' object of 
            this notification."   
        ::= { ciscoLicenseMgrNotifications 4 }

-- 
-- Conformance 
--

ciscoLicenseMgrCompliances  OBJECT IDENTIFIER 
                              ::= { ciscoLicenseMgrMIBConform 1 }
ciscoLicenseMgrGroups       OBJECT IDENTIFIER 
                              ::= { ciscoLicenseMgrMIBConform 2 }
 
ciscoLicenseMgrCompliance MODULE-COMPLIANCE
     STATUS deprecated
     DESCRIPTION
         "Compliance statement for License Mgr MIB."
     MODULE       -- this module
     MANDATORY-GROUPS {
         clmLicenseInstallGroup,
         clmNoOfInstalledLicensesGroup,
         clmLicenseInformationGroup,
         clmNotificationsEnableGroup,
         clmNotificationGroup
     } 
     ::= { ciscoLicenseMgrCompliances 1 }
 

ciscoLicenseMgrCompliance1 MODULE-COMPLIANCE
     STATUS deprecated 
     DESCRIPTION
         "Compliance statement for License Mgr MIB."
     MODULE       -- this module
     MANDATORY-GROUPS {
         clmLicenseInstallGroup,
         clmLicenseRequestGroup,
         clmNoOfInstalledLicensesGroup,
         clmLicenseInformationGroup1,
         clmNotificationsEnableGroup,
         clmNotificationGroup
     } 
     ::= { ciscoLicenseMgrCompliances 2 }

ciscoLicenseMgrCompliance2 MODULE-COMPLIANCE
     STATUS current
     DESCRIPTION
         "Compliance statement for License Mgr MIB."
     MODULE       -- this module
     MANDATORY-GROUPS {
         clmLicenseInstallGroup,
         clmLicenseRequestGroup,
         clmNoOfInstalledLicensesGroup,
         clmLicenseInformationGroup2,
         clmNotificationsEnableGroup,
         clmNotificationGroup
     } 
     ::= { ciscoLicenseMgrCompliances 3 }

-- Units of Conformance


clmLicenseInstallGroup OBJECT-GROUP
     OBJECTS { 
               clmHostId,
               clmLicenseConfigSpinLock ,                
               clmLicenseFileURI,                
               clmLicenseFileTargetName,                
               clmLicenseConfigCommand,                
               clmLicenseConfigCommandStatus                
     }
     STATUS current
     DESCRIPTION
         "A collection of objects for license file installation or 
          uninstallation or updating."
     ::= { ciscoLicenseMgrGroups 1 }

clmNoOfInstalledLicensesGroup OBJECT-GROUP
     OBJECTS { 
               clmNoOfLicenseFilesInstalled,                
               clmNoOfLicensedFeatures               
     }
     STATUS current
     DESCRIPTION
         "Objects indicating the number of licenses files & the number 
         of licensed features installed on the system."
     ::= { ciscoLicenseMgrGroups 2 }

clmLicenseInformationGroup OBJECT-GROUP
     OBJECTS { 
               clmLicenseFileTimeStamp,
               clmLicenseFileNoOfRows,
               clmLicenseFileRowContents,
               clmLicenseFlag,
               clmNoOfLicenseMaxUsages,
               clmNoOfMissingUsageLicenses,
               clmNoOfLicenseCurrentUsages,
               clmLicenseExpiryDate,            
               clmLicenseGracePeriod
     }
     STATUS deprecated
     DESCRIPTION
         "A group containing objects providing information about the
         license file contents and the licensed features on the system."
     ::= { ciscoLicenseMgrGroups 3 }
     
clmNotificationsEnableGroup OBJECT-GROUP
     OBJECTS { clmNotificationsEnable }
     STATUS current
     DESCRIPTION
         "Object for enabling the notifications specified in
         clmNotificationGroup. "
     ::= { ciscoLicenseMgrGroups 4 }

clmNotificationGroup NOTIFICATION-GROUP
     NOTIFICATIONS { 
                 clmLicenseExpiryNotify ,
                 clmNoLicenseForFeatureNotify ,
                 clmLicenseFileMissingNotify ,
                 clmLicenseExpiryWarningNotify 
                 }
     STATUS current
     DESCRIPTION
         "A collection of notifications for license manager."
     ::= { ciscoLicenseMgrGroups 5 }

clmLicenseRequestGroup OBJECT-GROUP
     OBJECTS { 
               clmLicenseRequestSpinLock ,                
               clmLicenseRequestFeatureName,                
               clmLicenseRequestAppName,                
               clmLicenseRequestCommand,                
               clmLicenseRequestCommandStatus                
     }
     STATUS current
     DESCRIPTION
         "A collection of objects for the license checkin (or) 
         checkout for the licensed feature."
     ::= { ciscoLicenseMgrGroups 6 }

clmLicenseInformationGroup1 OBJECT-GROUP
     OBJECTS { 
               clmLicenseFileTimeStamp,
               clmLicenseFileNoOfRows,
               clmLicenseFileRowContents,
               clmLicenseFlag,
               clmNoOfLicenseMaxUsages,
               clmNoOfMissingUsageLicenses,
               clmNoOfLicenseCurrentUsages,
               clmLicenseExpiryDate,            
               clmLicenseGracePeriod,
               clmLicensedAppName
     }
     STATUS deprecated 
     DESCRIPTION
         "A group containing objects providing information about the
         license file contents and the licensed features on the system."
     ::= { ciscoLicenseMgrGroups 7 }

clmLicenseInformationGroup2 OBJECT-GROUP
     OBJECTS { 
               clmLicenseFileTimeStamp,
               clmLicenseFileNoOfRows,
               clmLicenseFileRowContents,
               clmLicenseFlag,
               clmNoOfLicenseMaxUsages,
               clmNoOfMissingUsageLicenses,
               clmNoOfLicenseCurrentUsages,
               clmLicenseExpiryDate,            
               clmLicenseGracePeriod,
               clmLicensedAppName,
               clmLicenseViolationWarnFlag
     }
     STATUS current
     DESCRIPTION
         "A group containing objects providing information about the
         license file contents and the licensed features on the system."
     ::= { ciscoLicenseMgrGroups 8 }
END





