-- *****************************************************************
-- CISCO-L4L7MODULE-RESOURCE-LIMIT-MIB: MIB for limiting resources
--   
-- August 2005, Subrahmanya Hegde
--   
-- Copyright (c) 2005, 2006, 2008 by cisco Systems Inc.
-- All rights reserved.
-- *****************************************************************

CISCO-L4L7MODULE-RESOURCE-LIMIT-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY,
    OBJECT-TYPE,
    Unsigned32,
    Gauge32,
    Counter32,
    Counter64,
    NOTIFICATION-TYPE
        FROM SNMPv2-SMI
    MODULE-COMPLIANCE,
    OBJECT-GROUP,
    NOTIFICATION-GROUP
        FROM SNMPv2-CONF
    TruthValue,
    TEXTUAL-CONVENTION,
    RowStatus,
    StorageType,
    TimeStamp
        FROM SNMPv2-TC
    entPhysicalIndex
        FROM ENTITY-MIB
    ciscoMgmt
        FROM CISCO-SMI;


ciscoL4L7moduleResourceLimitMIB MODULE-IDENTITY
    LAST-UPDATED    "200803070000Z"
    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-l4l7security@cisco.com"
    DESCRIPTION
        "The MIB module for managing resource classes
        and configuring limits(max/min) to different
        resources.  The resource referenced in this MIB 
        are in addition to resource information availale 
        in other MIBs.  This MIB is applicable to
        L4-L7 modules which supports managing
        resource limits using a centralized approach.
        The resources (but not limited to) configured are 
        of following categories:
        - TCP/IP Connections
        - MAC Addresses
        - syslog buffer, ACL Memmory
        - NAT Translations etc

        ciscoL4L7ResourceClassTable is used for adding/deleting
        resource classes.  Resource class is identified
        by a name to which limits of multiple resources can
        be configured.

        ciscoL4L7ResourceLimitTable is used for adding/deleting
        limits to resources in a resource class.  This limit
        is either maximum value and/or minimum value.

        ciscoL4L7ResourceRateLimitTable is used for adding/deleting
        rate limits to resources in a resource class.

        Terminologies used:
          ARP - Address Resolution Protocol.
          ACL - Access Control List.
          NAT - Network Address Translation.
          NBAR - Network Based Application Recognition.
          BPDU - Bridge Protocol Data Unit."
    REVISION        "200803070000Z"
    DESCRIPTION
        "- Added TEXTUAL-CONVENTION CiscoResourceType.

        - Added table ciscoL4L7ResourceUsageSummaryTable.

        - Added an OBJECT-GROUP 
        ciscoL4L7ResourceUsageSummaryGroup.

        - Deprecated MODULE-COMPLIANCE
        ciscoL4L7ResourceLimitComplianceRev1.

        - Added MODULE-COMPLIANCE
        ciscoL4L7ResourceLimitComplianceRev2."
    REVISION        "200802070000Z"
    DESCRIPTION
        "- Added following enumerations in CiscoRateLimitResourceType
        sslConnections     (9)
        mgmtBandwidth      (10)
        throughput         (11)
        missedMac          (12)
        httpCompression    (13)

        - Updated the description of bandwidth(4) enumeration in
        CiscoRateLimitResourceType."
    REVISION        "200606190000Z"
    DESCRIPTION
        "- Added following enumerations in CiscoResourceLimitType
        hosts           (15)
        ipsecSessions   (16)
        asdmSessions    (17)
        sshSessions     (18)
        telnetSessions  (19)

        - Added following objects in ciscoL4L7ResourceLimitTable
        crlResourceLimitCurrentUsage
        crlResourceLimitPeakUsage
        crlResourceLimitReqsDeniedCount

        - Added following objects in ciscoL4L7RateLimitTable
        crlRateLimitResourceCurrentUsage
        crlRateLimitResourcePeakUsage
        crlRateLimitResourceReqsDeniedCount

        - Added following objects:
        clrResourceLimitReachedNotifEnabled
        clrResourceRateLimitReachedNotifEnabled

        - Added following Notification objects     
        clrResourceLimitReached
        clrResourceRateLimitReached

        - Added following in Compliance/Conformance
        ciscoL4L7ResourceLimitComplianceRev1."
    REVISION        "200508050000Z"
    DESCRIPTION
        "Initial version of the MIB module."
    ::= { ciscoMgmt 480 }


ciscoL4L7ResourceLimitNotifs  OBJECT IDENTIFIER
    ::= { ciscoL4L7moduleResourceLimitMIB 0 }

ciscoL4L7ResourceLimitMIBObjects  OBJECT IDENTIFIER
    ::= { ciscoL4L7moduleResourceLimitMIB 1 }

ciscoResourceLimitMIBConform  OBJECT IDENTIFIER
    ::= { ciscoL4L7moduleResourceLimitMIB 2 }

crlResource  OBJECT IDENTIFIER
    ::= { ciscoL4L7ResourceLimitMIBObjects 1 }

crlNotificationObjects  OBJECT IDENTIFIER
    ::= { ciscoL4L7ResourceLimitMIBObjects 2 }


CiscoResourceClass ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "This textual convention is used for representing
        resource classes.  A resource class is identified by
        a name preferably in human readable form.  This resource 
        class is used for identifying different type of resources.
        The resource class can represent single resource type or 
        multiple resource type.
        Resource category examples:
            memory, connections 
            NAT(network address translation) translations,
            number of syslog messages etc."
    SYNTAX          OCTET STRING (SIZE (0..64))

CiscoResourceLimitType ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "This object represents the resource type.
        The possible values are :
        all         (1)    : This is not a resource. However
                             this value acts as the wild card
                             value to set all the resources
                             at the same time.  If an entry
                             exists with this value, then
                             for all the resources that are 
                             not configured in this table will
                             have the value specified in this
                             entry.
        macAddresses(2)     : The number of MAC addresses allowed in
                              the MAC address table.
        concurrentConns (3) : Concurrent TCP/UDP connections that are
                              supported.  Connections exist between 
                              any two hosts.  This is applicable
                              for through the box connections only.
        mgmtConnections (4) : This is applicable for to-the-box
                              traffic only.
        proxyConns      (5) : Sticky connections limit traffic to 
                              the individual real servers by allowing 
                              multiple connections from the same client 
                              to stick (or attach) to the same real 
                              server using source IP addresses, 
                              source IP subnets, cookies, and the 
                              secure socket layer (SSL) or
                              by redirecting these connections using 
                              Hypertext Transfer Protocol (HTTP) 
                              redirect messages.
        probes          (6)  : the number of health probes.
        stickyEntries   (7)  : the number of sticky entries.
                               This refers to statically configured
                               entries and dynamically created ones.
                               It represents the pool of entries
                               available for use/re-use.
        natTranslations (8)  : the number of NAT Translations.
        regexState      (9)  : Regular expression state.
                               Regex states are nodes in the
                               regular expression state graph, 
                               used for matching and sticking on HTTP 
                               fields such as URL, header, cookies.
        aclMemory       (10) : Memory that is allocated for managing 
                               ACLs.
        ipReassemBuffer (11) : buffer that is allocated for IP 
                               Reassembly.
        syslogBuffer    (12) : buffer that is allocated for syslog 
                               messages that can be logged in the
                               system.
        tcpOOOBuffer   (13) : buffer that is allocated for TCP Out Of 
                               Order packets.
        sslConnections  (14) : The number of SSL Connections.
        hosts           (15) : Number of hosts allowed through the system.
        ipsecSessions   (16) : Number of IPSec management sessions.
        asdmSessions    (17) : Number of ASDM management sessions.
        sshSessions     (18) : Number of SSH management sessions.
        telnetSessions  (19) : Number of Telnet management sessions."
    SYNTAX          INTEGER  {
                        all(1),
                        macAddresses(2),
                        concurrentConns(3),
                        mgmtConnections(4),
                        proxyConns(5),
                        probes(6),
                        stickyEntries(7),
                        natTranslations(8),
                        regexState(9),
                        aclMemory(10),
                        syslogBuffer(11),
                        ipReassemBuffer(12),
                        tcpOOOBuffer(13),
                        sslConnections(14),
                        hosts(15),
                        ipsecSessions(16),
                        asdmSessions(17),
                        sshSessions(18),
                        telnetSessions(19)
                    }

CiscoRateLimitResourceType ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "This object represents the resource type
        for which rate limiting needs to be done.
        The value for rate limiting is specified
        in crlRateLimitResourceMin and
        crlRateLimitResourceMax.

        The possible value(s) are :
        all             (1) : This value represents a wildcard
                              value to mean all the resources.
        arpRequestsXmt  (2) : ARP requests generated per second
        arpResponses    (3) : ARP responses to received ARP requests
                              per second.
        bandwidth       (4) : Bandwidth of the card in bytes
                              per second.
        connections     (5) : connections per second.
        appInspections  (6) : application inspections per second.
        syslog          (7) : syslog messages per second.
        sslBandwidth    (8) : SSL bandwidth in bytes per second.
        sslConnections  (9) : SSL connections per second.
        mgmtBandwidth   (10): Management (to-the-ACE) traffic
                              in bytes per second.
        throughput      (11): User (through-the-ACE) traffic
                              in bytes per second.
        missedMac       (12): Number of ARP resolution requests
                              in packets per second.
        httpCompression (13): Compression rate for HTTP traffic
                              in bytes per second."
    SYNTAX          INTEGER  {
                        all(1),
                        arpRequestsXmt(2),
                        arpResponses(3),
                        bandwidth(4),
                        connections(5),
                        appInspections(6),
                        syslog(7),
                        sslBandwidth(8),
                        sslConnections(9),
                        mgmtBandwidth(10),
                        throughput(11),
                        missedMac(12),
                        httpCompression(13)
                    }

CiscoResourceType ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "This object represents a resource type.

        The possible values for this object are:

        lMacAddresses     (1)  : Refer to 'macAddresses' in 
                                 CiscoResourceLimitType.
        lConcurrentConns  (2)  : Refer to 'concurrentConns' in 
                                 CiscoResourceLimitType.
        lMgmtConnections  (3)  : Refer to 'mgmtConnections' in 
                                 CiscoResourceLimitType.
        lProxyConns       (4)  : Refer to 'proxyConns' in 
                                 CiscoResourceLimitType.
        lProbes           (5)  : Refer to 'probes' in 
                                 CiscoResourceLimitType.
        lStickyEntries    (6)  : Refer to 'stickyEntries' in 
                                 CiscoResourceLimitType.
        lNatTranslations  (7)  : Refer to 'natTranslations' in 
                                 CiscoResourceLimitType.
        lRegexState       (8)  : Refer to 'regexState' in 
                                 CiscoResourceLimitType.
        lAclMemory        (9)  : Refer to 'aclMemory' in 
                                 CiscoResourceLimitType.
        lIpReassemBuffer  (10) : Refer to 'ipReassemBuffer' in 
                                 CiscoResourceLimitType.
        lSyslogBuffer     (11) : Refer to 'syslogBuffer' in 
                                 CiscoResourceLimitType.
        lTcpOOOBuffer     (12) : Refer to 'tcpOOOBuffer' in 
                                 CiscoResourceLimitType.
        lSslConnections   (13) : Refer to 'sslConnections' in 
                                 CiscoResourceLimitType.
        lHosts            (14) : Refer to 'hosts' in 
                                 CiscoResourceLimitType.
        lIpsecSessions    (15) : Refer to 'ipsecSessions' in 
                                 CiscoResourceLimitType.
        lAsdmSessions     (16) : Refer to 'asdmSessions' in 
                                 CiscoResourceLimitType.
        lSshSessions      (17) : Refer to 'sshSessions' in 
                                 CiscoResourceLimitType.
        lTelnetSessions   (18) : Refer to 'telnetSessions' in 
                                 CiscoResourceLimitType.
        rlArpRequestsXmt  (19) : Refer to 'arpRequestsXmt' in 
                                 CiscoRateLimitResourceType.
        rlArpResponses    (20) : Refer to 'arpResponses' in 
                                 CiscoRateLimitResourceType.
        rlBandwidth       (21) : Refer to 'bandwidth' in 
                                 CiscoRateLimitResourceType.
        rlConnections     (22) : Refer to 'connections' in 
                                 CiscoRateLimitResourceType.
        rlAppInspections  (23) : Refer to 'appInspections' in 
                                 CiscoRateLimitResourceType.
        rlSyslog          (24) : Refer to 'syslog' in 
                                 CiscoRateLimitResourceType.
        rlSslBandwidth    (25) : Refer to 'sslBandwidth' in 
                                 CiscoRateLimitResourceType.
        rlSslConnections  (26) : Refer to 'sslConnections' in 
                                 CiscoRateLimitResourceType.
        rlMgmtBandwidth   (27) : Refer to 'mgmtBandwidth' in 
                                 CiscoRateLimitResourceType.
        rlThroughput      (28) : Refer to 'throughput' in 
                                 CiscoRateLimitResourceType.
        rlMissedMac       (29) : Refer to 'missedMac' in 
                                 CiscoRateLimitResourceType.
        rlHttpCompression (30) : Refer to 'httpCompression' in 
                                 CiscoRateLimitResourceType."
    SYNTAX          INTEGER  {
                        lMacAddresses(1),
                        lConcurrentConns(2),
                        lMgmtConnections(3),
                        lProxyConns(4),
                        lProbes(5),
                        lStickyEntries(6),
                        lNatTranslations(7),
                        lRegexState(8),
                        lAclMemory(9),
                        lIpReassemBuffer(10),
                        lSyslogBuffer(11),
                        lTcpOOOBuffer(12),
                        lSslConnections(13),
                        lHosts(14),
                        lIpsecSessions(15),
                        lAsdmSessions(16),
                        lSshSessions(17),
                        lTelnetSessions(18),
                        rlArpRequestsXmt(19),
                        rlArpResponses(20),
                        rlBandwidth(21),
                        rlConnections(22),
                        rlAppInspections(23),
                        rlSyslog(24),
                        rlSslBandwidth(25),
                        rlSslConnections(26),
                        rlMgmtBandwidth(27),
                        rlThroughput(28),
                        rlMissedMac(29),
                        rlHttpCompression(30)
                    }

ciscoL4L7ResourceClassTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CiscoL4L7ResourceClassEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This table contains one row per resource class.
        This table is used for adding/deleting the resource 
        class in the system.  A resource class can contain
        limits for different category of resources and
        these resources can be configured using other tables."
    ::= { crlResource 1 }

ciscoL4L7ResourceClassEntry OBJECT-TYPE
    SYNTAX          CiscoL4L7ResourceClassEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "Information about a particular resource class.
        Each entry provides the name of class.
        The entPhysicalIndex refers to resource manageable
        component in entPhysicalTable with 
        entPhysicalClass -> 'module'."
    INDEX           {
                        entPhysicalIndex,
                        crlResourceClassName
                    } 
    ::= { ciscoL4L7ResourceClassTable 1 }

CiscoL4L7ResourceClassEntry ::= SEQUENCE {
        crlResourceClassName        CiscoResourceClass,
        crlResourceClassStorageType StorageType,
        crlResourceClassRowStatus   RowStatus
}

crlResourceClassName OBJECT-TYPE
    SYNTAX          CiscoResourceClass
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object identifies a unique resource class
        in a resource manageable component identified
        by entPhysicalIndex." 
    ::= { ciscoL4L7ResourceClassEntry 1 }

crlResourceClassStorageType OBJECT-TYPE
    SYNTAX          StorageType
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "The storage type for this conceptual row.
        Conceptual rows having the value 'permanent' need not
        allow write-access to any columnar objects in the row.
        This object can not be modified when the value of
        crlResourceClassRowStatus is 'active'."
    DEFVAL          { nonVolatile } 
    ::= { ciscoL4L7ResourceClassEntry 2 }

crlResourceClassRowStatus OBJECT-TYPE
    SYNTAX          RowStatus
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object is used for adding/deleting
        resource classes in a system." 
    ::= { ciscoL4L7ResourceClassEntry 3 }
 


ciscoL4L7ResourceLimitTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CiscoL4L7ResourceLimitEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This table is used for adding resource limits
        to resources in a resource class."
    ::= { crlResource 2 }

ciscoL4L7ResourceLimitEntry OBJECT-TYPE
    SYNTAX          CiscoL4L7ResourceLimitEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "Information about a particular resource in a resource
        class.  Each entry provides the type of resource,
        the limit that is supported for that resource
        and type of the limit value."
    INDEX           {
                        crlResourceClassName,
                        crlResourceLimitType
                    } 
    ::= { ciscoL4L7ResourceLimitTable 1 }

CiscoL4L7ResourceLimitEntry ::= SEQUENCE {
        crlResourceLimitType            CiscoResourceLimitType,
        crlResourceLimitValueType       INTEGER,
        crlResourceLimitMin             Unsigned32,
        crlResourceLimitMax             Unsigned32,
        crlResourceLimitStorageType     StorageType,
        crlResourceLimitRowStatus       RowStatus,
        crlResourceLimitCurrentUsage    Gauge32,
        crlResourceLimitPeakUsage       Gauge32,
        crlResourceLimitReqsDeniedCount Counter32
}

crlResourceLimitType OBJECT-TYPE
    SYNTAX          CiscoResourceLimitType
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object represents the type of
        resource in a resource class identified
        by crlResourceClassName." 
    ::= { ciscoL4L7ResourceLimitEntry 2 }

crlResourceLimitValueType OBJECT-TYPE
    SYNTAX          INTEGER  {
                        absolute(1),
                        percentage(2)
                    }
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object represents the type of value specified
        in crlResourceLimitMax and crlResourceLimitMin objects.
         The possible values are :
         absolute    (1) : the value represents an absolute number.
         percentage  (2) : the value represents the % of the total
                           available for the system.  In this case
                           only crlResourceLimitMax object is
                           applicable."
    DEFVAL          { percentage } 
    ::= { ciscoL4L7ResourceLimitEntry 3 }

crlResourceLimitMin OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object represents the rate limit allowed for
        the resource identified by 'ciscoResourceLimitType'.
        This value cannot be greater than the value
        specified in ciscoResourceLimitMax.
        The value zero signifies that this object is 
        not applicable to the resource."
    DEFVAL          { 0 } 
    ::= { ciscoL4L7ResourceLimitEntry 4 }

crlResourceLimitMax OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object represents the limit allowed for
        the resource identified by 'ciscoResourceLimitType'.
        The value zero specifies that this resource
        can be used until the system limit reached."
    DEFVAL          { 0 } 
    ::= { ciscoL4L7ResourceLimitEntry 5 }

crlResourceLimitStorageType OBJECT-TYPE
    SYNTAX          StorageType
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "The storage type for this conceptual row.
        Conceptual rows having the value 'permanent' need not
        allow write-access to any columnar objects in the row.
        This object cannot be modified when the value of
        crlResourceLimitRowStatus is 'active'."
    DEFVAL          { nonVolatile } 
    ::= { ciscoL4L7ResourceLimitEntry 6 }

crlResourceLimitRowStatus OBJECT-TYPE
    SYNTAX          RowStatus
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object is used for adding/deleting
        entries in this table." 
    ::= { ciscoL4L7ResourceLimitEntry 7 }

crlResourceLimitCurrentUsage OBJECT-TYPE
    SYNTAX          Gauge32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the number of resources identified by
        'ciscoResourceLimitType', that are currently being used in 
        the system." 
    ::= { ciscoL4L7ResourceLimitEntry 8 }

crlResourceLimitPeakUsage OBJECT-TYPE
    SYNTAX          Gauge32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object represents the peak usage of the resource
        identified by 'ciscoResourceLimitType' since the statistics
        were last cleared either through the command line interface or
        bacause of the system reboot." 
    ::= { ciscoL4L7ResourceLimitEntry 9 }

crlResourceLimitReqsDeniedCount OBJECT-TYPE
    SYNTAX          Counter32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object represents the number of resource requests that
        were denied when the configured resource limit is exceeded
        for the resource identified by 'ciscoResourceLimitType'.

        The value for resource limiting is specified
        in 'crlResourceLimitMax'." 
    ::= { ciscoL4L7ResourceLimitEntry 10 }
 


ciscoL4L7ResourceRateLimitTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CiscoL4L7ResourceRateLimitEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This table is used for adding/deleting
        the rate limiting of the resources in a
        resource class."
    ::= { crlResource 4 }

ciscoL4L7ResourceRateLimitEntry OBJECT-TYPE
    SYNTAX          CiscoL4L7ResourceRateLimitEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "Information about an entry in the table
        Each entry provides the name of group, the rate
        configured for a resource."
    INDEX           {
                        crlResourceClassName,
                        crlRateLimitResourceType
                    } 
    ::= { ciscoL4L7ResourceRateLimitTable 1 }

CiscoL4L7ResourceRateLimitEntry ::= SEQUENCE {
        crlRateLimitResourceType            CiscoRateLimitResourceType,
        crlRateLimitResourceMin             Unsigned32,
        crlRateLimitResourceMax             Unsigned32,
        crlRateLimitResourceStorageType     StorageType,
        crlRateLimitResourceRowStatus       RowStatus,
        crlRateLimitResourceCurrentUsage    Gauge32,
        crlRateLimitResourcePeakUsage       Gauge32,
        crlRateLimitResourceReqsDeniedCount Counter32
}

crlRateLimitResourceType OBJECT-TYPE
    SYNTAX          CiscoRateLimitResourceType
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object represents the resource type
        for which rate limiting needs to be done.
        The value for rate limiting is specified
        in crlRateLimitResourceMin and 
        crlRateLimitResourceMax." 
    ::= { ciscoL4L7ResourceRateLimitEntry 1 }

crlRateLimitResourceMin OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object represents the rate limit allowed for
        the resource identified by 'crlRateLimitResourceType'.
        This value cannot be greater than the value
        specified in crlRateLimitResourceMax.
        The value zero signifies that this object is 
        not applicable to the resource."
    DEFVAL          { 0 } 
    ::= { ciscoL4L7ResourceRateLimitEntry 2 }

crlRateLimitResourceMax OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object represents the limit allowed for
        the resource identified by 'crlRateLimitResourceType'.
        The value zero specifies that this resource
        can be used until the system limit reached."
    DEFVAL          { 0 } 
    ::= { ciscoL4L7ResourceRateLimitEntry 3 }

crlRateLimitResourceStorageType OBJECT-TYPE
    SYNTAX          StorageType
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "The storage type for this conceptual row.
        Conceptual rows having the value 'permanent' need not
        allow write-access to any columnar objects in the row.
        This object cannot be modified when the value of
        crlRateLimitResourceRowStatus is 'active'."
    DEFVAL          { nonVolatile } 
    ::= { ciscoL4L7ResourceRateLimitEntry 4 }

crlRateLimitResourceRowStatus OBJECT-TYPE
    SYNTAX          RowStatus
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object is used for adding/deleting
        entries in this table.  This object cannot
        be set to 'active' until all the mandatory
        objects have valid value." 
    ::= { ciscoL4L7ResourceRateLimitEntry 5 }

crlRateLimitResourceCurrentUsage OBJECT-TYPE
    SYNTAX          Gauge32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the number of resources identified by
        'crlRateLimitResourceType', that are currently being used in 
        the system." 
    ::= { ciscoL4L7ResourceRateLimitEntry 6 }

crlRateLimitResourcePeakUsage OBJECT-TYPE
    SYNTAX          Gauge32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object represents the peak usage of the resource
        identified by 'crlRateLimitResourceType' since the statistics
        were last cleared either through the command line interface or
        bacause of the system reboot." 
    ::= { ciscoL4L7ResourceRateLimitEntry 7 }

crlRateLimitResourceReqsDeniedCount OBJECT-TYPE
    SYNTAX          Counter32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object represents the number of resource requests that
        were denied when the configured rate limit is exceeded
        for the resource identified by 'crlRateLimitResourceType'.

        The value for rate limiting is specified in
        'crlRateLimitResourceMax'." 
    ::= { ciscoL4L7ResourceRateLimitEntry 8 }
 


ciscoL4L7ResourceUsageSummaryTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CiscoL4L7ResourceUsageSummaryEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This table provides the statistics for each resource type
        in a system.
        The resource usage statistics can be: 
        - current usage for the resource. 
        - peak usage for the resource. 
        - Number of times the resource request were denied when the
        configured limit or rate-limit is exceeded for the resource."
    ::= { crlResource 5 }

ciscoL4L7ResourceUsageSummaryEntry OBJECT-TYPE
    SYNTAX          CiscoL4L7ResourceUsageSummaryEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "An entry in ciscoL4L7ResourceUsageSummaryTable. Each entry
        provides the resource usage parameters in a system.

        An entry is created when an entry is created in
        either 'ciscoL4L7ResourceLimitTable' or
        'ciscoL4L7ResourceRateLimitTable'.

        An entry is deleted when an entry is deleted
        from either 'ciscoL4L7ResourceLimitTable' or
        'ciscoL4L7ResourceRateLimitTable'."
    INDEX           { crlResourceSummaryType } 
    ::= { ciscoL4L7ResourceUsageSummaryTable 1 }

CiscoL4L7ResourceUsageSummaryEntry ::= SEQUENCE {
        crlResourceSummaryType            CiscoResourceType,
        crlResourceSummaryCurrentUsage    Gauge32,
        crlResourceSummaryPeakUsage       Gauge32,
        crlResourceSummaryReqsDeniedCount Counter64,
        crlResourceSummaryLastClearedTime TimeStamp,
        crlResourceSummaryStorageType     StorageType,
        crlResourceSummaryRowStatus       RowStatus
}

crlResourceSummaryType OBJECT-TYPE
    SYNTAX          CiscoResourceType
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object represents a type of resource in the system." 
    ::= { ciscoL4L7ResourceUsageSummaryEntry 1 }

crlResourceSummaryCurrentUsage OBJECT-TYPE
    SYNTAX          Gauge32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the current usage of the resource
        in the system." 
    ::= { ciscoL4L7ResourceUsageSummaryEntry 2 }

crlResourceSummaryPeakUsage OBJECT-TYPE
    SYNTAX          Gauge32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object represents the peak usage of the resource
        in the system." 
    ::= { ciscoL4L7ResourceUsageSummaryEntry 3 }

crlResourceSummaryReqsDeniedCount OBJECT-TYPE
    SYNTAX          Counter64
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object represents the number of resource requests
        that were denied in the system when the configured
        limit is exceeded for the resource.

        The value for limiting is specified in 'crlResourceLimitMax'
        and the value for rate limiting is specified in
        'crlRateLimitResourceMax'." 
    ::= { ciscoL4L7ResourceUsageSummaryEntry 4 }

crlResourceSummaryLastClearedTime OBJECT-TYPE
    SYNTAX          TimeStamp
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object represents the time when the value of the
        object identified by 'crlResourceSummaryPeakUsage' is
        last cleared or reset. A value of 0 (zero) signifies
        that the value has not been cleared since the last
        system reboot." 
    ::= { ciscoL4L7ResourceUsageSummaryEntry 5 }

crlResourceSummaryStorageType OBJECT-TYPE
    SYNTAX          StorageType
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "The storage type for this conceptual row.
        Conceptual rows having the value 'permanent' need not
        allow write-access to any columnar objects in the row.
        This object cannot be modified when the value of
        'crlResourceSummaryRowStatus' is 'active'."
    DEFVAL          { nonVolatile } 
    ::= { ciscoL4L7ResourceUsageSummaryEntry 6 }

crlResourceSummaryRowStatus OBJECT-TYPE
    SYNTAX          RowStatus
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object is used for adding/deleting
        entries in this table.  This object cannot
        be set to 'active' until all the mandatory
        objects have valid value." 
    ::= { ciscoL4L7ResourceUsageSummaryEntry 7 }
 


-- notification control objects

clrResourceLimitReachedNotifEnabled OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "This object controls the generation of
        'clrResourceLimitReached' notification.

        'true'  Indicates that clrResourceLimitReached
                notification is to be generated when the 
                configured resource limit is reached. 
                The value for resource limiting is specified
                in 'crlResourceLimitMax'.

        'false' Indicates that clrResourceLimitReached
                notification generation is disabled."
    DEFVAL          { false } 
    ::= { crlNotificationObjects 1 }

clrResourceRateLimitReachedNotifEnabled OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "This object controls the generation of
        'clrResourceRateLimitReached' notification.

        'true'  Indicates that clrResourceRateLimitReached
                notification is to be generated when the 
                configured resource rate limit is reached.
                The value for rate limiting is specified in
                'crlRateLimitResourceMax'.

        'false' Indicates that clrResourceRateLimitReached
                notification generation is disabled."
    DEFVAL          { false } 
    ::= { crlNotificationObjects 2 }

-- notifications

clrResourceLimitReached NOTIFICATION-TYPE
    OBJECTS         {
                        crlResourceLimitValueType,
                        crlResourceLimitMax
                    }
    STATUS          current
    DESCRIPTION
        "This notification is generated when the configured resource
        limit value specified in 'crlResourceLimitMax' is reached
        for a particular resource. This resource is identified by
        'crlResourceLimitType' in ciscoL4L7ResourceLimitTable."
   ::= { ciscoL4L7ResourceLimitNotifs 1 }

clrResourceRateLimitReached NOTIFICATION-TYPE
    OBJECTS         { crlRateLimitResourceMax }
    STATUS          current
    DESCRIPTION
        "This notification is generated when the configured rate
        limit value specified in 'crlRateLimitResourceMax' is reached
        for a particular resource. This resource is identified by
        'crlRateLimitResourceType' in ciscoL4L7ResourceRateLimitTable."
   ::= { ciscoL4L7ResourceLimitNotifs 2 }
-- conformance information

ciscoL4L7ResourceLimitConformance  OBJECT IDENTIFIER
    ::= { ciscoL4L7moduleResourceLimitMIB 3 }

ciscoL4L7ResourceLimitCompliances  OBJECT IDENTIFIER
    ::= { ciscoL4L7ResourceLimitConformance 1 }

ciscoL4L7ResourceLimitGroups  OBJECT IDENTIFIER
    ::= { ciscoL4L7ResourceLimitConformance 2 }


-- compliance statements

ciscoL4L7ResourceLimitCompliance MODULE-COMPLIANCE
    STATUS          deprecated
    DESCRIPTION
        "The compliance statement for SNMP entities which implement
        CISCO-L4L7MODULE-RESOURCE-LIMIT-MIB."
    MODULE          -- this module
    MANDATORY-GROUPS {
                        ciscoL4L7ResourceClassGroup,
                        ciscoL4L7ResourceLimitGroup
                    }

    GROUP           ciscoL4L7ResourceRateLimitGroup
    DESCRIPTION
        "This group is mandatory for those systems where
        rate limiting is supported."
    ::= { ciscoL4L7ResourceLimitCompliances 1 }

ciscoL4L7ResourceLimitComplianceRev1 MODULE-COMPLIANCE
    STATUS          deprecated
    DESCRIPTION
        "The compliance statement for SNMP entities which implement
        CISCO-L4L7MODULE-RESOURCE-LIMIT-MIB."
    MODULE          -- this module
    MANDATORY-GROUPS {
                        ciscoL4L7ResourceClassGroup,
                        ciscoL4L7ResourceLimitGroup,
                        ciscoL4L7ResourceLimitUsageGroup
                    }

    GROUP           ciscoL4L7ResourceRateLimitGroup
    DESCRIPTION
        "This group is mandatory for those systems where
        rate limiting is supported."

    GROUP           ciscoL4L7ResourceRateLimitUsageGroup
    DESCRIPTION
        "This group is mandatory for those systems where
        rate limiting is supported."

    GROUP           ciscoL4L7ResourceNotifEnabledGroup
    DESCRIPTION
        "This group is mandatory for those systems which
        implement resource limit notifications."

    GROUP           ciscoL4L7ResourceNotifGroup
    DESCRIPTION
        "This group is mandatory for those systems which
        implement resource limit notifications."
    ::= { ciscoL4L7ResourceLimitCompliances 2 }

ciscoL4L7ResourceLimitComplianceRev2 MODULE-COMPLIANCE
    STATUS          current
    DESCRIPTION
        "The compliance statement for SNMP entities which implement
        CISCO-L4L7MODULE-RESOURCE-LIMIT-MIB."
    MODULE          -- this module
    MANDATORY-GROUPS {
                        ciscoL4L7ResourceClassGroup,
                        ciscoL4L7ResourceLimitGroup,
                        ciscoL4L7ResourceLimitUsageGroup
                    }

    GROUP           ciscoL4L7ResourceRateLimitGroup
    DESCRIPTION
        "This group is mandatory for those systems where
        rate limiting is supported."

    GROUP           ciscoL4L7ResourceRateLimitUsageGroup
    DESCRIPTION
        "This group is mandatory for those systems where
        rate limiting is supported."

    GROUP           ciscoL4L7ResourceNotifEnabledGroup
    DESCRIPTION
        "This group is mandatory for those systems which
        implement resource limit notifications."

    GROUP           ciscoL4L7ResourceNotifGroup
    DESCRIPTION
        "This group is mandatory for those systems which
        implement resource limit notifications."

    GROUP           ciscoL4L7ResourceUsageSummaryGroup
    DESCRIPTION
        "This group is mandatory for those systems which
        implement resource limiting and/or rate limiting
        of resource."
    ::= { ciscoL4L7ResourceLimitCompliances 3 }

-- MIB groupings

ciscoL4L7ResourceClassGroup OBJECT-GROUP
    OBJECTS         {
                        crlResourceClassStorageType,
                        crlResourceClassRowStatus
                    }
    STATUS          current
    DESCRIPTION
        "The collection of objects which are used to represent
        resource class in a system."
    ::= { ciscoL4L7ResourceLimitGroups 1 }

ciscoL4L7ResourceLimitGroup OBJECT-GROUP
    OBJECTS         {
                        crlResourceLimitValueType,
                        crlResourceLimitMin,
                        crlResourceLimitMax,
                        crlResourceLimitStorageType,
                        crlResourceLimitRowStatus
                    }
    STATUS          current
    DESCRIPTION
        "The collection of objects which are used to represent
        limits of resources in a resource class."
    ::= { ciscoL4L7ResourceLimitGroups 2 }

ciscoL4L7ResourceRateLimitGroup OBJECT-GROUP
    OBJECTS         {
                        crlRateLimitResourceMin,
                        crlRateLimitResourceMax,
                        crlRateLimitResourceStorageType,
                        crlRateLimitResourceRowStatus
                    }
    STATUS          current
    DESCRIPTION
        "The collection of objects which are used to represent
        rate limits for resources."
    ::= { ciscoL4L7ResourceLimitGroups 3 }

ciscoL4L7ResourceLimitUsageGroup OBJECT-GROUP
    OBJECTS         {
                        crlResourceLimitCurrentUsage,
                        crlResourceLimitPeakUsage,
                        crlResourceLimitReqsDeniedCount
                    }
    STATUS          current
    DESCRIPTION
        "The collection of objects which are used to represent
        limit usage for resources."
    ::= { ciscoL4L7ResourceLimitGroups 4 }

ciscoL4L7ResourceRateLimitUsageGroup OBJECT-GROUP
    OBJECTS         {
                        crlRateLimitResourceCurrentUsage,
                        crlRateLimitResourcePeakUsage,
                        crlRateLimitResourceReqsDeniedCount
                    }
    STATUS          current
    DESCRIPTION
        "The collection of objects which are used to represent
        rate limit usage for resources."
    ::= { ciscoL4L7ResourceLimitGroups 5 }

ciscoL4L7ResourceNotifEnabledGroup OBJECT-GROUP
    OBJECTS         {
                        clrResourceLimitReachedNotifEnabled,
                        clrResourceRateLimitReachedNotifEnabled
                    }
    STATUS          current
    DESCRIPTION
        "The collection of objects which are used to represent
        limit usage for resources."
    ::= { ciscoL4L7ResourceLimitGroups 6 }

ciscoL4L7ResourceNotifGroup NOTIFICATION-GROUP
   NOTIFICATIONS    {
                        clrResourceLimitReached,
                        clrResourceRateLimitReached
                    }
    STATUS          current
    DESCRIPTION
        "The collection of objects which are used to represent
        rate limit usage for resources."
    ::= { ciscoL4L7ResourceLimitGroups 7 }

ciscoL4L7ResourceUsageSummaryGroup OBJECT-GROUP
    OBJECTS         {
                        crlResourceSummaryCurrentUsage,
                        crlResourceSummaryPeakUsage,
                        crlResourceSummaryReqsDeniedCount,
                        crlResourceSummaryLastClearedTime,
                        crlResourceSummaryStorageType,
                        crlResourceSummaryRowStatus
                    }
    STATUS          current
    DESCRIPTION
        "The collection of objects which are used to represent
        usage summary for resources across the system."
    ::= { ciscoL4L7ResourceLimitGroups 8 }

END
