-- *****************************************************************
-- CISCO-L2-CONTROL-MIB
--
-- August 2003, Frank Chao
--              Seth Wang
-- December 2003, Frank Chao
--
-- Copyright (c) 2003, 2005, 2006, 2007, 2013 by Cisco Systems, Inc.
-- All rights reserved.
-- *****************************************************************
--

CISCO-L2-CONTROL-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY,
    OBJECT-TYPE,
    NOTIFICATION-TYPE,
    Unsigned32
        FROM SNMPv2-SMI
    MODULE-COMPLIANCE,
    OBJECT-GROUP,
    NOTIFICATION-GROUP
        FROM SNMPv2-CONF
    TruthValue,
    RowStatus,
    TEXTUAL-CONVENTION
        FROM SNMPv2-TC
    ciscoMgmt
        FROM CISCO-SMI
    entPhysicalIndex
        FROM ENTITY-MIB
    VlanIndex
        FROM Q-BRIDGE-MIB
    InterfaceIndex,
    ifIndex
        FROM IF-MIB;

ciscoL2ControlMIB MODULE-IDENTITY
        LAST-UPDATED "201307030000Z"
        ORGANIZATION "Cisco Systems, Inc."
        CONTACT-INFO
         "Postal: Cisco Systems, Inc.
             170 West Tasman Drive
             San Jose, CA 95134-1706
             USA

             Tel: +1 408 526 4000

             E-mail: cs-lan-switch-snmp@cisco.com"
        DESCRIPTION
            "The CISCO-L2-CONTROL-MIB is used to control some layer 2
             functions, including MAC limit function and unicast
             flooding.  This device could be a router or a switch."
        REVISION "201307030000Z"
        DESCRIPTION
            "Added ClcMacAddressStatsType and clcMacAddressStatsGroup."
        REVISION "200701100000Z"
        DESCRIPTION
            "Added 'vlanMacLimitHigh' and 
             'vlanLimitHighExceededAction' enum values to 
             clcVlanMacLimitGlobalConfig.  Added       
             clcMacAddressLimitIntervalGroup,clcMacAddressLimitGroup1,
             clcVlanMacAddressLimitGroup1,clcVlanMacLimitEnableGroup,
             clcVlanMacLimitNotifControlGroup,
             clcVlanMacLimitNotifControlGroup1,
             clcVlanMacLimitNotifsGroup1,clcIfMacAddressLimitGroup,
             clcIfMacLimitEnableGroup, clcIfMacLimitNotifControlGroup, 
             clcIfMacLimitNotifsGroup, clcIfVlanMacAddressLimitGroup, 
             clcIfVlanMacLimitEnableGroup,clcIfVlanMacLimitNotifControlGroup,
             clcIfVlanMacLimitNotifsGroup." 

        REVISION "200312010000Z"
        DESCRIPTION
            "Initial revision of this MIB module."
        ::= { ciscoMgmt 313 }

-- L2 control MIB objects.

ciscoL2ControlMIBNotifs
        OBJECT IDENTIFIER ::= { ciscoL2ControlMIB 0 }

ciscoL2ControlMIBObjects
        OBJECT IDENTIFIER ::= { ciscoL2ControlMIB 1 }

ciscoL2ControlMIBConformance
        OBJECT IDENTIFIER ::= { ciscoL2ControlMIB 2 }

--  MAC limit function 

clcMacAddressLimitObjects
        OBJECT IDENTIFIER ::= { ciscoL2ControlMIBObjects 1 }

-- Unicast flood

clcUnicastFloodObjects
        OBJECT IDENTIFIER ::= { ciscoL2ControlMIBObjects 2 }

-- Per interface MAC limit function 

clcIfMacAddressLimitObjects
        OBJECT IDENTIFIER ::= { ciscoL2ControlMIBObjects 3 }

-- Per interface per Vlan MAC limit function 

clcIfVlanMacAddressLimitObjects
        OBJECT IDENTIFIER ::= { ciscoL2ControlMIBObjects 4 }

clcMacAddressStatsObjects
        OBJECT IDENTIFIER ::= { ciscoL2ControlMIBObjects 5 }

-- TEXTUAL-CONVENTION

MacLimitExceededAction ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "The action that will be taken by the system on an entity,
         when the system detects the current learned number of MAC 
         addresses in the forwarding table has exceeded the limit 
         number of MAC addresses which is configured by the users. 
         The entities that will be affected by the action are VLAN, 
         interface or interface-VLAN pair.

         warning : The violation will only generate the notification
         and no further action will be taken.

         limit : The notification will be generated as the 'warning'
         action and also the MAC limit is enforced for the entity.
         It means that the new address will not be learned in the entity
         and the traffic with new addresses will be flooded in the entity. 
         The learning will be re-enabled in the entity  
         if the number of MAC addresses falls below the limit.

         limitNoFlood : The notification will be generated as the
         'warning' action and also the MAC limit is enforced for the
         entity but no flooding traffic for unknown unicast MAC address 
         packets.  It means that the new addresses will not be learned 
         in the entity and also the traffic with new addresses will not
         be flooded in the entity.  The learning will be re-enabled in the 
         entity if the number of MAC addresses falls below the limit.

         shutdown : The notification will be generated as the 'warning'
         action and the system will move the corresponding entity to 
         blocked state, no traffic in the entity. The traffic will be
         re-enabled in the entity if the number of MAC addresses falls 
         below the limit."

    SYNTAX        INTEGER {
                      warning(1),
                      limit(2),
                      limitNoFlood(3),
                      shutdown(4)
                  }

ClcMacAddressStatsType ::= TEXTUAL-CONVENTION
    STATUS  current
    DESCRIPTION
        "The type of MAC address statistics.
        
        'allMac'        - All MAC addresses
        'dynamicMac'    - dynamic MAC addresses
        'staticMac'     - static MAC addresses
        'mcastMac'      - multicast MAC addresses
        'pvlanCloneMac' - PVLAN clone MAC addresses
        'overlayMac'    - overlay MAC addresses
        'secureMac'     - secure MAC addresses
        "
    SYNTAX INTEGER {
                       allMac(1),
                       dynamicMac(2),
                       staticMac(3),
                       mcastMac(4),
                       pvlanCloneMac(5),
                       overlayMac(6),
                       secureMac(7)
                   }

-- MAC limit global configuration

clcMacLimitEnable   OBJECT-TYPE
    SYNTAX        TruthValue
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
        "This object is to enable or disable the limit of number
         of MAC addresses function globally.

         MAC limit function is to try to control the number of MAC
         addresses for each VLAN or interface or interface-VLAN pair in 
         the forwarding tables for a network device.  It is possible that 
         one VLAN or one interface or interface-VLAN pair can exhaust
         all available MAC entries because of Denial-of-Service
         and cause users' traffic on the other VLANS or interfaces flooded.  
         To prevent this situation, the MAC limit for each VLAN or interface 
         or interface-VLAN pair is needed.  The major function of this 
         feature is to protect the layer 2 forwarding table."
    ::= { clcMacAddressLimitObjects 1 }

clcMaxMacLimitDefault   OBJECT-TYPE
    SYNTAX        Unsigned32 
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
        "The global default value for low threshold 
         limit number of MAC addresses in the system."

    ::= { clcMacAddressLimitObjects 2 }

clcMacLimitExceededActionDefault  OBJECT-TYPE
    SYNTAX        MacLimitExceededAction
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
        "The global default action to be taken by the system
         when the number of MAC addresses in the forwarding
         table has exceeded the low threshold number of MAC address 
         limit for a VLAN or an interface or for interface-VLAN pair."

    ::= { clcMacAddressLimitObjects 3 }

clcMacLimitExceedNotifOption  OBJECT-TYPE
    SYNTAX        INTEGER {
                      sysLog(1),
                      snmpNotif(2),
                      both(3)
                  }
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
        "This MIB object provides the choices of generating MAC limit
         exceeded notification to the users.

         When the system detects the current learned number of MAC
         addresses in the forwarding table which has exceeded the limit
         number of MAC addresses, the system will generate the
         following notifications.
         
         syslog(1) : An syslog message will be generated to users.

         snmpNotif(2) : An SNMP notification message will be generated
         to users.

         both(3) : Both a syslog message and an SNMP notification
         message will be generated to users."

    ::= { clcMacAddressLimitObjects 4 }

clcMacLimitNotifEnable  OBJECT-TYPE
    SYNTAX        TruthValue
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
        "The MIB object controls generation of SNMP notification
         for MAC Limit feature.

         When this object is 'true', generation of
         clcVlanMacLimitNotif is enabled. When this object is
         'false', generation of clcVlanMacLimitNotif is disabled."
    ::= { clcMacAddressLimitObjects 5 }


-- per VLAN information

clcVlanMacLimitTable        OBJECT-TYPE
    SYNTAX        SEQUENCE OF ClcVlanMacLimitEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "The table contains information on Vlan MAC address limit
         feature for each VLAN capable of this feature."
    ::= { clcMacAddressLimitObjects 6 }

clcVlanMacLimitEntry        OBJECT-TYPE
    SYNTAX        ClcVlanMacLimitEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "An entry contains Vlan MAC address limit feature 
         configuration for the VLAN"
    INDEX { clcVlanMacLimitIndex }
    ::= { clcVlanMacLimitTable 1 }

ClcVlanMacLimitEntry ::= SEQUENCE {
    clcVlanMacLimitIndex            Unsigned32,
    clcVlanMacLimitGlobalConfig     BITS,
    clcVlanMaxMacLimit              Unsigned32,
    clcVlanMacLimitExceededAction   MacLimitExceededAction,
    clcVlanMacLimitStatus           RowStatus,
    clcVlanMacLimitEnable           TruthValue,
    clcVlanMacLimitHigh             Unsigned32,
    clcVlanMacLimitHighExceedAction MacLimitExceededAction
}

clcVlanMacLimitIndex              OBJECT-TYPE
    SYNTAX        Unsigned32 (1..4096)
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "The VLAN ID for each VLAN's configuration of MAC
         address limit function in the system."
    ::= { clcVlanMacLimitEntry 1 }

clcVlanMacLimitGlobalConfig       OBJECT-TYPE
    SYNTAX        BITS { 
                          vlanMaxMacLimit(0), 
                          vlanLimitExceededAction(1), 
                          vlanMacLimitHigh(2),
                          vlanLimitHighExceededAction(3)
                       }
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "This object indicates whether the configurations for this
         VLAN are based on the corresponding global default 
         configurations or not. 

         vlanMaxMacLimit(0) : indicates that the value of 
                 clcVlanMaxMacLimit is based on the value of 
                 clcMaxMacLimitDefault if this bit is set.

         vlanLimitExceededAction(1) : indicates that the value of
                 clcVlanMacLimitExceededAction is based on the 
                 value of clcMacLimitExceededActionDefault if this 
                 bit is set.

         vlanMacLimitHigh(2) : indicates that the value of
                 clcVlanMacLimitHigh is based on the value of
                 clcMacLimitHighDefault if this bit is set.

         vlanLimitHighExceededAction(3) : indicates that the value of
                 clcVlanMacLimitHighExceedAction is based on the
                 value of clcMacLimitHighExceedActionDef if this
                 bit is set."
 
    ::= { clcVlanMacLimitEntry 2 }

clcVlanMaxMacLimit   OBJECT-TYPE
    SYNTAX        Unsigned32 
    MAX-ACCESS    read-create
    STATUS        current
    DESCRIPTION
        "The lower threshold limit number of MAC addresses entries for 
         this VLAN. 

         When the instance value of this object is set to 0, no lower 
         threshold limit will be applied for this Vlan and the 
         corresponding instance value of clcVlanMacLimitExceededAction 
         of the same row has no effect.

         The default value of this object is the value of 
         clcMaxMacLimitDefault."
    ::= { clcVlanMacLimitEntry 3 }

clcVlanMacLimitExceededAction  OBJECT-TYPE
    SYNTAX        MacLimitExceededAction
    MAX-ACCESS    read-create
    STATUS        current
    DESCRIPTION
        "The action to be taken by the system for this VLAN while the
         number of MAC addresses has exceeded the value of  
         clcVlanMaxMacLimit.

         This object value is only effective when the corresponding 
         instance value of clcVlanMaxMacLimit is not set to 0.

         The default value of this MIB object is the value of 
         clcMacLimitExceededActionDefault."
    ::= { clcVlanMacLimitEntry 4 }

clcVlanMacLimitStatus    OBJECT-TYPE
    SYNTAX        RowStatus
    MAX-ACCESS    read-create
    STATUS        current
    DESCRIPTION
        "This object is a conceptual row entry that allows to add
         or delete entries to or from the clcVlanMacLimitTable.

         1. When creating an entry in this table 'createAndGo'
         method is used and the value of this object is set to
         'active'. Deactivation of an 'active' entry is not
         allowed.

         2. When deleting an entry in this table 'destroy' method
         is used.
         The value of clcVlanMaxMacLimit, clcVlanMacLimitExceededAction,
         clcVlanMacLimitEnable, clcVlanMacLimitHigh and 
         clcVlanMacLimitHighExceedAction object can be modified when the 
         value of this RowStatus object is 'active'."
    ::= { clcVlanMacLimitEntry 5 }

clcVlanMacLimitEnable OBJECT-TYPE
    SYNTAX        TruthValue
    MAX-ACCESS    read-create
    STATUS        current
    DESCRIPTION
         "This object indicates whether the Mac Limit feature is
          enabled on this Vlan or not." 
    DEFVAL { false }
    ::= { clcVlanMacLimitEntry 6 }

clcVlanMacLimitHigh OBJECT-TYPE
    SYNTAX        Unsigned32
    MAX-ACCESS    read-create
    STATUS        current
    DESCRIPTION
          "The higher threshold limit for the number of MAC addresses entries 
           on this VLAN. The instance value of this clcVlanMacLimitHigh 
           must be greater than the instance value of the clcVlanMaxMacLimit 
           of the same row, only when the  value is not zero. 

           When the instance value of this object is set to 0, no higher
           threshold limit will be applied for this Vlan and the 
           corresponding instance value of clcVlanMacLimitHighExceededAction 
           of the same row has no effect.

           The default value of this MIB object is the value of 
           clcMacLimitHighDefault."
    ::= { clcVlanMacLimitEntry 7 }

clcVlanMacLimitHighExceedAction OBJECT-TYPE
    SYNTAX        MacLimitExceededAction
    MAX-ACCESS    read-create
    STATUS        current
    DESCRIPTION
         "The action to be taken by the system for this Vlan while the
          number of MAC addresses has exceeded the value of
          clcVlanMacLimitHigh.
 
          This object value is only effective when the corresponding instance
          value of clcVlanMacLimitHigh is not set to 0.

          The default value of this MIB object is the value of 
          clcMacLimitHighExceedActionDef."
    ::= { clcVlanMacLimitEntry 8 }


-- The forwarding table usage information 

clcFdbVlanInfoTable     OBJECT-TYPE
    SYNTAX        SEQUENCE OF ClcFdbVlanInfoEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
         "The table contains VLAN information of forwarding tables in
         the system."

    ::= { clcMacAddressLimitObjects 7 }

clcFdbVlanInfoEntry        OBJECT-TYPE
    SYNTAX        ClcFdbVlanInfoEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "An entry contains the information of a VLAN in a specific
         forwarding table.  Each forwarding table will be identified by
         the entity physical index."
    INDEX { entPhysicalIndex, clcVlanMacLimitIndex }
    ::= { clcFdbVlanInfoTable 1 }

ClcFdbVlanInfoEntry ::= SEQUENCE {
    clcFdbVlanMacUsage              Unsigned32
}

clcFdbVlanMacUsage   OBJECT-TYPE
    SYNTAX        Unsigned32
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "The usage of the MAC addresses in the specific forwarding
         table for this VLAN.  It indicates the number of MAC
         addresses in this VLAN for a forwarding table."
    ::= { clcFdbVlanInfoEntry 1 }

clcMacLimitInterval   OBJECT-TYPE
    SYNTAX      Unsigned32
    UNITS       "seconds"
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "Specifies the interval at which forwarding table 
             is monitored."
    ::= { clcMacAddressLimitObjects 8 }

clcMacLimitHighDefault  OBJECT-TYPE
    SYNTAX        Unsigned32 
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
        "The global default value for high threshold limit number of 
         MAC addresses in the system.

         The value of clcMacLimitHighDefault must be greater 
         than the value of clcMaxMacLimitDefault."

    ::= { clcMacAddressLimitObjects 9 }

clcMacLimitHighExceedActionDef  OBJECT-TYPE
    SYNTAX        MacLimitExceededAction
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
        "The global default action to be taken by the system
         when the number of MAC addresses in the forwarding
         table has exceeded the high threshold number of MAC address 
         limit for a VLAN or for a interface or for interface-VLAN pair."

    ::= { clcMacAddressLimitObjects 10 }

clcMacLimitHighNotifEnable  OBJECT-TYPE
    SYNTAX        TruthValue
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
        "The MIB object controls generation of SNMP notification
         for Vlan MAC Limit feature.

         When this object is 'true', generation of
         clcVlanMacLimitHighNotif is enabled. When this object is
         'false', generation of clcVlanMacLimitHighNotif is disabled."
    ::= { clcMacAddressLimitObjects 11 }

-- Unicast Flood Table

clcUnicastFloodTable     OBJECT-TYPE
    SYNTAX        SEQUENCE OF ClcUnicastFloodEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "This table contains information about the unicast flooding
         on the system. The number of entries is determined by the
         number of interfaces in the system that can support the
         unicast flooding feature. Only L2 interfaces can support
         unicast flooding."
    ::= { clcUnicastFloodObjects 1 }

clcUnicastFloodEntry     OBJECT-TYPE
    SYNTAX        ClcUnicastFloodEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "An entry contains the information about the unicast flooding
         for a particular interface."
    INDEX { ifIndex }
    ::= { clcUnicastFloodTable 1 }

ClcUnicastFloodEntry ::= SEQUENCE {
    clcUnicastFloodAdminEnable    TruthValue,
    clcUnicastFloodOperEnable     TruthValue
}

clcUnicastFloodAdminEnable    OBJECT-TYPE
    SYNTAX        TruthValue
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
        "This object indicates whether the configuration of the unicast
         flooding is  enabled or disabled on a particular interface. If
         this object is 'true', then the unicast flooding has been
         configured to enabled. If this object is 'false', then the
         unicast flooding has been configured to disabled."
    ::= { clcUnicastFloodEntry 1 }

clcUnicastFloodOperEnable    OBJECT-TYPE
    SYNTAX        TruthValue
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "This object indicates the operational status of the unicast
         flooding on an interface, whether it is enabled or not. If
         this object is 'true', then the interface is unicast flooding.
         If this object is 'false', then the interface is not unicast
         flooding."
    ::= { clcUnicastFloodEntry 2 }

-- per interface MAC Limit information

clcIfMacLimitTable        OBJECT-TYPE
    SYNTAX        SEQUENCE OF ClcIfMacLimitEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "The table contains information on Interface MAC address limit 
         feature for each interface capable of this feature."
    ::= { clcIfMacAddressLimitObjects 1 }

clcIfMacLimitEntry        OBJECT-TYPE
    SYNTAX        ClcIfMacLimitEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "An entry contains Interface MAC address limit feature 
         configuration for the Interface."
    INDEX { clcIfMacLimitIfIndex  }
    ::= { clcIfMacLimitTable 1 }

ClcIfMacLimitEntry ::= SEQUENCE {
    clcIfMacLimitIfIndex          InterfaceIndex,
    clcIfMacLimitEnable           TruthValue,
    clcIfMacLimitGlobalConfig     BITS,
    clcIfMacLimitLow              Unsigned32,
    clcIfMacLimitLowExceedAction  MacLimitExceededAction,
    clcIfMacLimitHigh             Unsigned32,
    clcIfMacLimitHighExceedAction MacLimitExceededAction,
    clcIfMacLimitStatus           RowStatus
}
clcIfMacLimitIfIndex    OBJECT-TYPE
    SYNTAX        InterfaceIndex
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "The value of ifIndex for the configuration of MAC address limit
         function on an interface."
    ::= { clcIfMacLimitEntry 1 }

clcIfMacLimitEnable OBJECT-TYPE
    SYNTAX        TruthValue
    MAX-ACCESS    read-create
    STATUS        current
    DESCRIPTION
         "This object indicates whether the Mac Limit feature is
          enabled on this interface or not." 
    DEFVAL { false }
    ::= { clcIfMacLimitEntry 2 }

clcIfMacLimitGlobalConfig       OBJECT-TYPE
    SYNTAX        BITS {
                          ifMacLimitLow(0),
                          ifLimitLowExceededAction(1),
                          ifMacLimitHigh(2),
                          ifLimitHighExceededAction(3)
                       }
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "This object indicates whether the configurations for this
         interface are based on the corresponding global default
         configurations or not.

         ifMacLimitLow(0) : indicates that the value of
                 clcIfMacLimitLow is based on the value of
                 clcMaxMacLimitDefault if this bit is set.

         ifLimitLowExceededAction(1) : indicates that the value of
                 clcIfMacLimitLowExceedAction is based on the
                 value of clcMacLimitExceededActionDefault if this
                 bit is set.

         ifMacLimitHigh(2) : indicates that the value of
                 clcIfMacLimitHigh is based on the value of
                 clcMacLimitHighDefault if this bit is set.

         ifLimitHighExceededAction(3) : indicates that the value of
                 clcIfMacLimitHighExceedAction is based on the
                 value of clcMacLimitHighExceedActionDef if this
                 bit is set."
    ::= { clcIfMacLimitEntry 3 }

clcIfMacLimitLow OBJECT-TYPE
    SYNTAX        Unsigned32
    MAX-ACCESS    read-create
    STATUS        current
    DESCRIPTION
          "The lower threshold limit for the number of MAC addresses 
           entries on this interface. 

           When the instance value of this object is set to 0, no lower
           threshold limit will be applied for this Vlan and the 
           corresponding instance value of clcIfMacLimitLowExceedAction 
           of the same row has no effect.

           The default value of this MIB object is the value of 
           clcMaxMacLimitDefault."
    ::= { clcIfMacLimitEntry 4 }

clcIfMacLimitLowExceedAction OBJECT-TYPE
    SYNTAX        MacLimitExceededAction
    MAX-ACCESS    read-create
    STATUS        current
    DESCRIPTION
         "The action to be taken by the system for this interface while the
          number of MAC addresses has exceeded the value of
          clcMaxIfMacLimitLow.

          This object value is only effective when the corresponding instance
          value of clcIfMacLimitLow is not set to 0.

          The default value of this MIB object is the value of 
          clcMacLimitExceededActionDefault."
    ::= { clcIfMacLimitEntry 5 }

clcIfMacLimitHigh OBJECT-TYPE
    SYNTAX        Unsigned32
    MAX-ACCESS    read-create
    STATUS        current
    DESCRIPTION
          "The higher threshold limit for the number of MAC addresses 
           entries on this interface. The instance value of this 
           clcIfMacLimitHigh must be greater than the instance value 
           of the clcIfMacLimitLow of the same row, only when the  
           value is not zero. 

           When the instance value of this object is set to 0, no higher
           threshold limit will be applied for this Vlan and the 
           corresponding instance value of clcIfMacLimitHighExceedAction 
           of the same row has no effect.

           The default value of this MIB object is the value of 
           clcMacLimitHighDefault."
    ::= { clcIfMacLimitEntry 6 }

clcIfMacLimitHighExceedAction OBJECT-TYPE
    SYNTAX        MacLimitExceededAction
    MAX-ACCESS    read-create
    STATUS        current
    DESCRIPTION
         "The action to be taken by the system for this interface while the
          number of MAC addresses has exceeded the value of
          clcIfMacLimitHigh.

          This object value is only effective when the corresponding instance
          value of clcIfMacLimitHigh is not set to 0.

          The default value of this MIB object is the value of 
          clcMacLimitHighExceedActionDef."
    ::= { clcIfMacLimitEntry 7 }

clcIfMacLimitStatus    OBJECT-TYPE
    SYNTAX        RowStatus
    MAX-ACCESS    read-create
    STATUS        current
    DESCRIPTION
        "This object is a conceptual row entry that allows to add
         or delete entries to or from the clcIfMacLimitTable.

         1. When creating an entry in this table 'createAndGo'
         method is used and the value of this object is set to
         'active'. Deactivation of an 'active' entry is not
         allowed.

         2. When deleting an entry in this table 'destroy' method
         is used.
         The value of clcIfMacLimitEnable , clcIfMacLimitLow,
         clcIfMacLimitLowExceedAction, clcIfMacLimitHigh and 
         clcIfMacLimitHighExceedAction object can be modified when the 
         value of this RowStatus object is 'active'."
    ::= { clcIfMacLimitEntry 8 }

clcFdbIfInfoTable     OBJECT-TYPE
    SYNTAX        SEQUENCE OF ClcFdbIfInfoEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
         "The table contains interface information of forwarding tables in
          the system."

    ::= { clcIfMacAddressLimitObjects 2 }

clcFdbIfInfoEntry        OBJECT-TYPE
    SYNTAX        ClcFdbIfInfoEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "An entry contains the information of a interface in a specific
         forwarding table.  Each forwarding table will be identified by
         the entity physical index."
    INDEX { entPhysicalIndex, clcIfMacLimitIfIndex }
    ::= { clcFdbIfInfoTable 1 }

ClcFdbIfInfoEntry ::= SEQUENCE {
    clcFdbIfMacUsage              Unsigned32
}

clcFdbIfMacUsage   OBJECT-TYPE
    SYNTAX        Unsigned32
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "The usage of the MAC addresses in the specific forwarding
         table for this interface.  It indicates the number of MAC
         addresses learnt or configured on this interface for a forwarding 
         table."
    ::= { clcFdbIfInfoEntry 1 }

clcIfMacLimitLowNotifEnable  OBJECT-TYPE
    SYNTAX        TruthValue 
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
         "Specifies whether the generation of a specified
          notification for interface MAC Limit feature is
          enabled or not. 

          When this object is 'true', generation of
          clcIfMacLimitLowNotif is enabled. When this object is
          'false', generation of clcIfMacLimitLowNotif is disabled."
    ::= { clcIfMacAddressLimitObjects 3 }

clcIfMacLimitHighNotifEnable  OBJECT-TYPE
    SYNTAX        TruthValue 
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
         "Specifies whether the generation of a specified
          notification for interface MAC Limit feature is
          enabled or not. 

          When this object is 'true', generation of
          clcIfMacLimitHighNotif is enabled. When this object is
          'false', generation of clcIfMacLimitHighNotif is disabled."
    ::= { clcIfMacAddressLimitObjects 4 }


-- per interface/vlan MAC Limit information

clcIfVlanMacLimitTable        OBJECT-TYPE
    SYNTAX        SEQUENCE OF ClcIfVlanMacLimitEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "The table contains information on Interface Vlan MAC address limit 
         feature for each interface-VLAN pair capable of this feature."
    ::= { clcIfVlanMacAddressLimitObjects 1 }

clcIfVlanMacLimitEntry        OBJECT-TYPE
    SYNTAX        ClcIfVlanMacLimitEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "An entry contains Interface Vlan MAC address limit feature 
         configuration for the Interface and Vlan."
    INDEX { clcIfVlanMacLimitIfIndex , clcIfVlanMacLimitVlanIndex}
    ::= { clcIfVlanMacLimitTable 1 }

ClcIfVlanMacLimitEntry ::= SEQUENCE {
    clcIfVlanMacLimitIfIndex          InterfaceIndex,
    clcIfVlanMacLimitVlanIndex        VlanIndex,
    clcIfVlanMacLimitEnable           TruthValue,
    clcIfVlanMacLimitGlobalConfig     BITS,
    clcIfVlanMacLimitLow              Unsigned32,
    clcIfVlanMacLimitLowExceedAction  MacLimitExceededAction,
    clcIfVlanMacLimitHigh             Unsigned32,
    clcIfVlanMacLimitHiExceedAction   MacLimitExceededAction,
    clcIfVlanMacLimitStatus           RowStatus
}
clcIfVlanMacLimitIfIndex    OBJECT-TYPE
    SYNTAX        InterfaceIndex
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "The value of ifIndex for the configuration of MAC address limit
         function on an interface."
    ::= { clcIfVlanMacLimitEntry 1 }

clcIfVlanMacLimitVlanIndex              OBJECT-TYPE
    SYNTAX        VlanIndex
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "The VLAN ID for each VLAN's configuration of MAC
         address limit function in the system."
    ::= { clcIfVlanMacLimitEntry 2 }

clcIfVlanMacLimitEnable OBJECT-TYPE
    SYNTAX        TruthValue
    MAX-ACCESS    read-create
    STATUS        current
    DESCRIPTION
         "This object indicates whether the Mac Limit feature is 
          enabled on this interface-Vlan pair or not." 
    DEFVAL { false }
    ::= { clcIfVlanMacLimitEntry 3 }

clcIfVlanMacLimitGlobalConfig       OBJECT-TYPE
    SYNTAX        BITS {
                          ifVlanMacLimitLow(0),
                          ifVlanLimitLowExceededAction(1),
                          ifVlanMacLimitHigh(2),
                          ifVlanLimitHighExceededAction(3)
                       }
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "This object indicates whether the configurations for this
         interface are based on the corresponding global default
         configurations or not.

         ifVlanMacLimitLow(0) : indicates that the value of
                 clcIfVlanMacLimitLow is based on the value of
                 clcMaxMacLimitDefault if this bit is set.

         ifVlanLimitLowExceededAction(1) : indicates that the value of
                 clcIfVlanMacLimitLowExceedAction is based on the
                 value of clcMacLimitExceededActionDefault if this
                 bit is set.
         ifVlanMacLimitHigh(2) : indicates that the value of
                 clcIfVlanMacLimitHigh is based on the value of
                 clcMacLimitHighDefault if this bit is set.

         ifVlanLimitHighExceededAction(3) : indicates that the value of
                 clcIfVlanMacLimitHiExceedAction is based on the
                 value of clcMacLimitHighExceedActionDef if this
                 bit is set."
    ::= { clcIfVlanMacLimitEntry 4 }

clcIfVlanMacLimitLow OBJECT-TYPE
    SYNTAX        Unsigned32
    MAX-ACCESS    read-create
    STATUS        current
    DESCRIPTION
          "The lower threshold limit for the number of MAC addresses entries 
           on this interface and Vlan. 

           When the instance value of this object is set to 0, no lower
           threshold limit will be applied for this Vlan and the 
           corresponding instance value of clcIfVlanMacLimitLowExceedAction 
           of the same row has no effect.

           The default value of this MIB object is the value of 
           clcMaxMacLimitDefault."
    ::= { clcIfVlanMacLimitEntry 5 }

clcIfVlanMacLimitLowExceedAction  OBJECT-TYPE
    SYNTAX        MacLimitExceededAction
    MAX-ACCESS    read-create
    STATUS        current
    DESCRIPTION
         "The action to be taken by the system for this interface Vlan while 
          the number of MAC addresses has exceeded the value of
          clcIfVlanMacLimitLow.

          This object value is only effective when the corresponding instance
          value of clcIfVlanMacLimitLow is not set to 0.

          The default value of this MIB object is the value of
          clcMacLimitExceededActionDefault."
    ::= { clcIfVlanMacLimitEntry 6 }

clcIfVlanMacLimitHigh OBJECT-TYPE
    SYNTAX        Unsigned32
    MAX-ACCESS    read-create
    STATUS        current
    DESCRIPTION
          "The higher threshold limit for the number of MAC addresses entries 
           on this interface and Vlan. The instance value of this 
           clcIfVlanMacLimitHigh must be greater than the instance value 
           of the clcIfVlanMacLimitLow of the same row, only when the 
           value is not zero.

           When the instance value of this object is set to 0, no higher
           threshold limit will be applied for this Vlan and the 
           corresponding instance value of clcIfVlanMacLimitHiExceedAction 
           of the same row has no effect.

           The default value of this MIB object is the value of
           clcMacLimitHighDefault."
    ::= { clcIfVlanMacLimitEntry 7 }

clcIfVlanMacLimitHiExceedAction OBJECT-TYPE
    SYNTAX        MacLimitExceededAction
    MAX-ACCESS    read-create
    STATUS        current
    DESCRIPTION
         "The action to be taken by the system for this interface and Vlan 
          while the number of MAC addresses has exceeded the value of
          clcIfVlanMacLimitHigh.

          This object value is only effective when the corresponding instance
          value of clcIfVlanMacLimitHigh is not set to 0.

          The default value of this MIB object is the value of
          clcMacLimitHighExceedActionDef."
    ::= { clcIfVlanMacLimitEntry 8 }

clcIfVlanMacLimitStatus    OBJECT-TYPE
    SYNTAX        RowStatus
    MAX-ACCESS    read-create
    STATUS        current
    DESCRIPTION
        "This object is a conceptual row entry that allows to add
         or delete entries to or from the clcIfVlanMacLimitTable.

         1. When creating an entry in this table 'createAndGo'
         method is used and the value of this object is set to
         'active'. Deactivation of an 'active' entry is not
         allowed.

         2. When deleting an entry in this table 'destroy' method
         is used.
         The value of clcIfVlanMacLimitEnable , clcIfVlanMacLimitLow,
         clcIfVlanMacLimitLowExceedAction, clcIfVlanMacLimitHigh and 
         clcIfVlanMacLimitHiExceedAction object can be modified when the 
         value of this RowStatus object is 'active'."
    ::= { clcIfVlanMacLimitEntry 9 }

clcFdbIfVlanInfoTable     OBJECT-TYPE
    SYNTAX        SEQUENCE OF ClcFdbIfVlanInfoEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
         "The table contains interface information of forwarding tables in
          the system."

    ::= { clcIfVlanMacAddressLimitObjects 2 }

clcFdbIfVlanInfoEntry        OBJECT-TYPE
    SYNTAX        ClcFdbIfVlanInfoEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "An entry contains the information of a interface-VLAN  pair in a 
         specific forwarding table.  Each forwarding table will be 
         identified by the entity physical index."
    INDEX { entPhysicalIndex, clcIfVlanMacLimitIfIndex, 
                           clcIfVlanMacLimitVlanIndex }
    ::= { clcFdbIfVlanInfoTable 1 }

ClcFdbIfVlanInfoEntry ::= SEQUENCE {
    clcFdbIfVlanMacUsage              Unsigned32
}

clcFdbIfVlanMacUsage   OBJECT-TYPE
    SYNTAX        Unsigned32
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "The usage of the MAC addresses in the specific forwarding
         table for this interface and Vlan.  It indicates the number of MAC
         addresses learnt or configured on this interface and VLAN for a 
         forwarding table."
    ::= { clcFdbIfVlanInfoEntry 1 }

clcIfVlanMacLimitLowNotifEnable  OBJECT-TYPE
    SYNTAX        TruthValue
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
         "Spcifies whether the generation of a specified
          notification for interface Vlan MAC Limit feature is
          enabled or not. 

          When this object is 'true', generation of
          clcIfVlanMacLimitLowNotif is enabled. When this object is
          'false', generation of clcIfVlanMacLimitLowNotif is disabled."
    ::= { clcIfVlanMacAddressLimitObjects 3 }

clcIfVlanMacLimitHighNotifEnable  OBJECT-TYPE
    SYNTAX        TruthValue
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
         "Spcifies whether the generation of a specified
          notification for interface Vlan MAC Limit feature is
          enabled or not. 

          When this object is 'true', generation of
          clcIfVlanMacLimitHighNotif is enabled. When this object is
          'false', generation of clcIfVlanMacLimitHighNotif is disabled."
    ::= { clcIfVlanMacAddressLimitObjects 4 }

clcFdbMacAddressStatsTable  OBJECT-TYPE
    SYNTAX        SEQUENCE OF ClcFdbMacAddressStatsEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
         "The table contains statistics information for different
         type of MAC addresses in the forwarding table of the system."
    ::= { clcMacAddressStatsObjects 1 }

clcFdbMacAddressStatsEntry  OBJECT-TYPE
    SYNTAX        ClcFdbMacAddressStatsEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "An entry contains statistics information for a specific
        MAC addresse type in the forwarding table of the system."
    INDEX { clcFdbMacAddressStatsType }
    ::= { clcFdbMacAddressStatsTable 1 } 

ClcFdbMacAddressStatsEntry ::= SEQUENCE {
    clcFdbMacAddressStatsType        ClcMacAddressStatsType,
    clcFdbMacAddressStatsNumber      Unsigned32
}

clcFdbMacAddressStatsType   OBJECT-TYPE
    SYNTAX        ClcMacAddressStatsType
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "This object indicates a specific MAC address statistics type."
    ::= { clcFdbMacAddressStatsEntry 1 }

clcFdbMacAddressStatsNumber   OBJECT-TYPE
    SYNTAX        Unsigned32
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "This object indicates the number of a particular type of MAC
        address in the forwarding table."
    ::= { clcFdbMacAddressStatsEntry 2 }

-- Notifications objects
clcVlanMacLimitNotif NOTIFICATION-TYPE
    OBJECTS { clcFdbVlanMacUsage, clcVlanMaxMacLimit }
    STATUS current
    DESCRIPTION
        "Notification is sent when the number of MAC addresses  
         (the value of clcFdbVlanMacUsage) has crossed the 
         configured limit of MAC addresses(clcVlanMaxMacLimit)
         either rising above or falling below it."
    ::= { ciscoL2ControlMIBNotifs 1 }

clcVlanMacLimitHighNotif NOTIFICATION-TYPE
    OBJECTS { clcFdbVlanMacUsage, clcVlanMacLimitHigh }
    STATUS current
    DESCRIPTION
        "Notification is sent when the number of MAC addresses  
         (the value of clcFdbVlanMacUsage) has crossed the 
         configured higher threshold limit of MAC 
         addresses(clcVlanMacLimitHigh)
         either rising above or falling below it." 
    ::= { ciscoL2ControlMIBNotifs 2 }

clcIfMacLimitLowNotif NOTIFICATION-TYPE
    OBJECTS { clcFdbIfMacUsage, clcIfMacLimitLow }
    STATUS current
    DESCRIPTION
        "Notification is sent when the number of MAC addresses  
         (the value of clcFdbIfMacUsage) has crossed the 
         configured lower threshold limit of MAC 
         addresses(clcIfMacLimitLow) either rising above or falling 
         below it." 
    ::= { ciscoL2ControlMIBNotifs 3 }

clcIfMacLimitHighNotif NOTIFICATION-TYPE
    OBJECTS { clcFdbIfMacUsage, clcIfMacLimitHigh }
    STATUS current
    DESCRIPTION
        "Notification is sent when the number of MAC addresses  
         (the value of clcFdbIfMacUsage) has crossed the 
         configured higher threshold limit of MAC 
         addresses(clcIfMacLimitHigh)
         either rising above or falling below it." 
    ::= { ciscoL2ControlMIBNotifs 4 }

clcIfVlanMacLimitLowNotif NOTIFICATION-TYPE
    OBJECTS { clcFdbIfVlanMacUsage, clcIfVlanMacLimitLow }
    STATUS current
    DESCRIPTION
        "Notification is sent when the number of MAC addresses  
         (the value of clcFdbIfVlanMacUsage) has crossed the 
         configured lower threshold limit of MAC 
         addresses(clcIfVlanMacLimitLow)
         either rising above or falling below it." 
    ::= { ciscoL2ControlMIBNotifs 5 }

clcIfVlanMacLimitHighNotif NOTIFICATION-TYPE
    OBJECTS { clcFdbIfVlanMacUsage, clcIfVlanMacLimitHigh }
    STATUS current
    DESCRIPTION
        "Notification is sent when the number of MAC addresses  
         (the value of clcFdbIfVlanMacUsage) has crossed the 
         configured higher threshold limit of MAC 
         addresses(clcIfVlanMacLimitHigh)
         either rising above or falling below it." 
    ::= { ciscoL2ControlMIBNotifs 6 }
--
--
-- Conformance
--

ciscoL2ControlMIBCompliances  OBJECT IDENTIFIER ::=
    { ciscoL2ControlMIBConformance 1 }

ciscoL2ControlMIBGroups  OBJECT IDENTIFIER ::=
    { ciscoL2ControlMIBConformance 2 }

-- Compliance

ciscoL2ControlMIBCompliance MODULE-COMPLIANCE
    STATUS deprecated
    DESCRIPTION
        "The compliance statement for entities which implement
         the L2 Control MIB."
    MODULE  -- this module
        GROUP    clcMacAddressLimitGroup
        DESCRIPTION
            "This is the group to control MAC address limit
             function. This is group is mandatory only in devices
             which support MAC address limit control."

        GROUP    clcVlanMacAddressLimitGroup
        DESCRIPTION
            "This is the group to control VLAN MAC address limit
             function. This is group is mandatory only in devices
             which support VLAN MAC address limit control."

        GROUP    clcVlanMacLimitNotifsGroup
        DESCRIPTION
            "The collection of notifications used to indicate that the
             number of MAC addresses has crossed  the configured limit
             of MAC addresses either rising above or falling below it.
             This group is mandatory only in devices which support
             VLAN MAC address limit control."

        GROUP    clcUnicastFloodGroup
        DESCRIPTION
            "This is the group to control unicast flooding. This group
             is mandatory only in devices which support unicast flood
             control."

        OBJECT clcMaxMacLimitDefault
        SYNTAX    Unsigned32 (5..32768)
        DESCRIPTION
            "The configurable range for the global default
             VLAN MAC limit."

        OBJECT clcMacLimitExceededActionDefault
        SYNTAX    INTEGER {
                            warning(1),
                            limit(2),
                            shutdown(4)
                  }
        DESCRIPTION
            "The option limitNoFlood(3) cannot be applied to
             this object since this option is not supported
             in the global default configuration."

        OBJECT clcVlanMaxMacLimit
        SYNTAX    Unsigned32 (5..32768)
        DESCRIPTION
            "The configurable VLAN MAC limit range for a VLAN."

    ::= { ciscoL2ControlMIBCompliances 1 }

ciscoL2ControlMIBCompliance2  MODULE-COMPLIANCE
    STATUS deprecated
    DESCRIPTION
        "The compliance statement for entities which implement
         the L2 Control MIB."
    MODULE  -- this module
        GROUP    clcMacAddressLimitGroup
        DESCRIPTION
            "This is the group to control MAC address limit
             function. This is group is mandatory only in devices
             which support MAC address limit control."

        GROUP    clcMacAddressLimitGroup1
        DESCRIPTION
            "This group is to control MAC address limit
             function. This group is mandatory only in devices
             which support additional MAC address limit control."

        GROUP    clcVlanMacAddressLimitGroup
        DESCRIPTION
            "This is the group to control VLAN MAC address limit
             function. This is group is mandatory only in devices
             which support VLAN MAC address limit control."

        GROUP    clcVlanMacAddressLimitGroup1
        DESCRIPTION
            "This group is to control VLAN MAC address limit
             function. This group is mandatory only in devices
             which support additional VLAN MAC address limit control."

        GROUP    clcVlanMacLimitNotifControlGroup
        DESCRIPTION
             "This group is mandatory only in devices
             which support VLAN MAC address limit control notification."

        GROUP    clcVlanMacLimitNotifControlGroup1
        DESCRIPTION
             "This group is mandatory only in devices
             which support additional VLAN MAC address limit 
             control notification."

        GROUP    clcUnicastFloodGroup
        DESCRIPTION
            "This is the group to control unicast flooding. This group
             is mandatory only in devices which support unicast flood
             control."

        OBJECT clcMacLimitExceededActionDefault
        SYNTAX    INTEGER {
                            warning(1),
                            limit(2)
                           }
        DESCRIPTION
            "The option limitNoFlood(3), shutdown(4) may not be 
             applied to this object since this option is not supported
             in the global default configuration."


        OBJECT    clcMacLimitHighExceedActionDef 
        SYNTAX    INTEGER {
                            warning(1),
                            limit(2),
                            shutdown(4)
                  }
        DESCRIPTION
            "The option limitNoFlood(3) may not be applied to this
             object since this option is not supported in the global
             default configuration."

        GROUP    clcMacAddressLimitIntervalGroup
        DESCRIPTION
            "This group is to control MAC address limit
             interval. This group is mandatory only in devices
             which support interval on  MAC address limit control."

        GROUP    clcVlanMacLimitNotifsGroup
        DESCRIPTION
            "The collection of notifications used to indicate that the
             number of MAC addresses has crossed the configured limit
             of MAC addresses either rising above or falling below it.
             This group is mandatory only in devices which support
             VLAN MAC address limit control."

        GROUP    clcVlanMacLimitNotifsGroup1
        DESCRIPTION
             "This group is mandatory only for platforms which support
              the notification of crossing the MAC address limit high 
              threshold for the Vlan."

        GROUP    clcVlanMacLimitEnableGroup
        DESCRIPTION
            "This group is mandatory on those platforms that support
             per vlan MAC limit enable/disable configuration."

        GROUP    clcIfMacAddressLimitGroup
        DESCRIPTION
            "This group is mandatory only for platforms which support
             the MAC address limit feature for the interface."

        GROUP    clcIfMacLimitEnableGroup
        DESCRIPTION
            "This group is mandatory on those platforms that support
             per interface MAC limit enable/disable configuration."

        GROUP    clcIfMacLimitNotifControlGroup
        DESCRIPTION
             "This group is mandatory only in devices
             which support interface MAC address limit control 
             notification."

        GROUP    clcIfMacLimitNotifsGroup
        DESCRIPTION
             "This group is mandatory only for platforms which support
              the notification of crossing the MAC address limit for 
              the interface."

        GROUP    clcIfVlanMacAddressLimitGroup
        DESCRIPTION
             "This group is mandatory only for platforms which support
              the MAC address limit feature for the interface and Vlan."

        GROUP    clcIfVlanMacLimitEnableGroup
        DESCRIPTION
            "This group is mandatory on those platforms that support
             per interface Vlan MAC limit enable/disable configuration."

        GROUP    clcIfVlanMacLimitNotifControlGroup
        DESCRIPTION
             "This group is mandatory only in devices
             which support per interface Vlan MAC address limit control 
             notification."

        GROUP    clcIfVlanMacLimitNotifsGroup
        DESCRIPTION
            "This group is mandatory only for platforms which support
             the notification of crossing the MAC address limit for 
             the interface and Vlan."


    ::= { ciscoL2ControlMIBCompliances 2 }

ciscoL2ControlMIBCompliance3  MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION
        "The compliance statement for entities which implement
         the L2 Control MIB."
    MODULE  -- this module
        GROUP    clcMacAddressLimitGroup
        DESCRIPTION
            "This is the group to control MAC address limit
             function. This is group is mandatory only in devices
             which support MAC address limit control."

        GROUP    clcMacAddressLimitGroup1
        DESCRIPTION
            "This group is to control MAC address limit
             function. This group is mandatory only in devices
             which support additional MAC address limit control."

        GROUP    clcVlanMacAddressLimitGroup
        DESCRIPTION
            "This is the group to control VLAN MAC address limit
             function. This is group is mandatory only in devices
             which support VLAN MAC address limit control."

        GROUP    clcVlanMacAddressLimitGroup1
        DESCRIPTION
            "This group is to control VLAN MAC address limit
             function. This group is mandatory only in devices
             which support additional VLAN MAC address limit control."

        GROUP    clcVlanMacLimitNotifControlGroup
        DESCRIPTION
             "This group is mandatory only in devices
             which support VLAN MAC address limit control notification."

        GROUP    clcVlanMacLimitNotifControlGroup1
        DESCRIPTION
             "This group is mandatory only in devices
             which support additional VLAN MAC address limit 
             control notification."

        GROUP    clcUnicastFloodGroup
        DESCRIPTION
            "This is the group to control unicast flooding. This group
             is mandatory only in devices which support unicast flood
             control."

        OBJECT clcMacLimitExceededActionDefault
        SYNTAX    INTEGER {
                            warning(1),
                            limit(2)
                           }
        DESCRIPTION
            "The option limitNoFlood(3), shutdown(4) may not be 
             applied to this object since this option is not supported
             in the global default configuration."


        OBJECT    clcMacLimitHighExceedActionDef 
        SYNTAX    INTEGER {
                            warning(1),
                            limit(2),
                            shutdown(4)
                  }
        DESCRIPTION
            "The option limitNoFlood(3) may not be applied to this
             object since this option is not supported in the global
             default configuration."

        GROUP    clcMacAddressLimitIntervalGroup
        DESCRIPTION
            "This group is to control MAC address limit
             interval. This group is mandatory only in devices
             which support interval on  MAC address limit control."

        GROUP    clcVlanMacLimitNotifsGroup
        DESCRIPTION
            "The collection of notifications used to indicate that the
             number of MAC addresses has crossed the configured limit
             of MAC addresses either rising above or falling below it.
             This group is mandatory only in devices which support
             VLAN MAC address limit control."

        GROUP    clcVlanMacLimitNotifsGroup1
        DESCRIPTION
             "This group is mandatory only for platforms which support
              the notification of crossing the MAC address limit high 
              threshold for the Vlan."

        GROUP    clcVlanMacLimitEnableGroup
        DESCRIPTION
            "This group is mandatory on those platforms that support
             per vlan MAC limit enable/disable configuration."

        GROUP    clcIfMacAddressLimitGroup
        DESCRIPTION
            "This group is mandatory only for platforms which support
             the MAC address limit feature for the interface."

        GROUP    clcIfMacLimitEnableGroup
        DESCRIPTION
            "This group is mandatory on those platforms that support
             per interface MAC limit enable/disable configuration."

        GROUP    clcIfMacLimitNotifControlGroup
        DESCRIPTION
             "This group is mandatory only in devices
             which support interface MAC address limit control 
             notification."

        GROUP    clcIfMacLimitNotifsGroup
        DESCRIPTION
             "This group is mandatory only for platforms which support
              the notification of crossing the MAC address limit for 
              the interface."

        GROUP    clcIfVlanMacAddressLimitGroup
        DESCRIPTION
             "This group is mandatory only for platforms which support
              the MAC address limit feature for the interface and Vlan."

        GROUP    clcIfVlanMacLimitEnableGroup
        DESCRIPTION
            "This group is mandatory on those platforms that support
             per interface Vlan MAC limit enable/disable configuration."

        GROUP    clcIfVlanMacLimitNotifControlGroup
        DESCRIPTION
             "This group is mandatory only in devices
             which support per interface Vlan MAC address limit control 
             notification."

        GROUP    clcIfVlanMacLimitNotifsGroup
        DESCRIPTION
            "This group is mandatory only for platforms which support
             the notification of crossing the MAC address limit for 
             the interface and Vlan."

        GROUP    clcMacAddressStatsGroup
        DESCRIPTION
            "This group is mandatory only for platforms which support
            MAC address statistics."

    ::= { ciscoL2ControlMIBCompliances 3 }
    
-- Units of Conformance

clcMacAddressLimitGroup OBJECT-GROUP
    OBJECTS {
        clcMacLimitEnable,
        clcMaxMacLimitDefault,
        clcMacLimitExceededActionDefault,
        clcMacLimitExceedNotifOption
    }
    STATUS current
    DESCRIPTION
        "This is the group to control MAC address limit function."
    ::= { ciscoL2ControlMIBGroups 1 }

clcVlanMacAddressLimitGroup OBJECT-GROUP
    OBJECTS {
        clcVlanMacLimitGlobalConfig,
        clcVlanMaxMacLimit,
        clcVlanMacLimitExceededAction,
        clcVlanMacLimitStatus,
        clcFdbVlanMacUsage
    }
    STATUS current
    DESCRIPTION
        "This is the group to control VLAN MAC address limit function."
    ::= { ciscoL2ControlMIBGroups 2 }

clcVlanMacLimitNotifsGroup NOTIFICATION-GROUP
    NOTIFICATIONS { clcVlanMacLimitNotif }
    STATUS        current
    DESCRIPTION
        "The collection of notifications used to indicate that the
         number of MAC addresses has crossed  the configured limit
         of MAC addresses either rising above or falling below it."
    ::= { ciscoL2ControlMIBGroups 3 }

clcUnicastFloodGroup OBJECT-GROUP
    OBJECTS {
        clcUnicastFloodAdminEnable,
        clcUnicastFloodOperEnable
    }
    STATUS current
    DESCRIPTION
        "This is the group to control unicast flooding."
    ::= { ciscoL2ControlMIBGroups 4 }

clcMacAddressLimitIntervalGroup OBJECT-GROUP
    OBJECTS {
        clcMacLimitInterval
    }
    STATUS current
    DESCRIPTION
        "This is the group to control MAC address limit interval."
    ::= { ciscoL2ControlMIBGroups 5 }

clcMacAddressLimitGroup1 OBJECT-GROUP
    OBJECTS {
        clcMacLimitHighDefault,
        clcMacLimitHighExceedActionDef
    }
    STATUS current
    DESCRIPTION
        "This group is to control additional global MAC address limit 
         function."
    ::= { ciscoL2ControlMIBGroups 6 }

clcVlanMacAddressLimitGroup1 OBJECT-GROUP
    OBJECTS {
        clcVlanMacLimitHigh,
        clcVlanMacLimitHighExceedAction
    }
    STATUS current
    DESCRIPTION
        "This is the group to control additional VLAN MAC address 
         limit function."
    ::= { ciscoL2ControlMIBGroups 7 }

clcVlanMacLimitEnableGroup OBJECT-GROUP
    OBJECTS {
        clcVlanMacLimitEnable
    }
    STATUS current
    DESCRIPTION
        "This is the group to control per vlan MAC limit enable/disable 
         configuration."
    ::= { ciscoL2ControlMIBGroups 8 }

clcVlanMacLimitNotifControlGroup OBJECT-GROUP
    OBJECTS {
        clcMacLimitNotifEnable
    }
    STATUS current
    DESCRIPTION
        "This is the group to control vlan MAC limit notification
         configuration."
    ::= { ciscoL2ControlMIBGroups 9 }


clcVlanMacLimitNotifControlGroup1 OBJECT-GROUP
    OBJECTS {
        clcMacLimitHighNotifEnable
    }
    STATUS current
    DESCRIPTION
        "This is the group to control high vlan MAC limit notification
         configuration."
    ::= { ciscoL2ControlMIBGroups 10 }

clcVlanMacLimitNotifsGroup1 NOTIFICATION-GROUP
    NOTIFICATIONS { clcVlanMacLimitHighNotif}
    STATUS        current
    DESCRIPTION
        "The collection of notifications used to indicate that the
         number of MAC addresses has crossed  the configured high limit
         of MAC addresses for the VLAN either rising above or falling 
         below it."
    ::= { ciscoL2ControlMIBGroups 11 }

clcIfMacAddressLimitGroup OBJECT-GROUP
    OBJECTS {
        clcIfMacLimitGlobalConfig,
        clcIfMacLimitLow,
        clcIfMacLimitLowExceedAction,
        clcIfMacLimitHigh,
        clcIfMacLimitHighExceedAction,
        clcIfMacLimitStatus,
        clcFdbIfMacUsage
    }
    STATUS current
    DESCRIPTION
        "This is the group to control Interface MAC address 
         limit function."
    ::= { ciscoL2ControlMIBGroups 12 }
        
clcIfMacLimitEnableGroup OBJECT-GROUP
    OBJECTS {
        clcIfMacLimitEnable
    }
    STATUS current
    DESCRIPTION
        "This is the group to control per interface MAC limit enable/disable 
         configuration."
    ::= { ciscoL2ControlMIBGroups 13 }

clcIfMacLimitNotifControlGroup OBJECT-GROUP
    OBJECTS {
        clcIfMacLimitLowNotifEnable,
        clcIfMacLimitHighNotifEnable
    }
    STATUS current
    DESCRIPTION
        "This is the group to control interface MAC limit notification
         configuration."
    ::= { ciscoL2ControlMIBGroups 14 }

clcIfMacLimitNotifsGroup NOTIFICATION-GROUP
    NOTIFICATIONS { clcIfMacLimitLowNotif,
                    clcIfMacLimitHighNotif }
    STATUS        current
    DESCRIPTION
        "The collection of notifications used to indicate that the
         number of MAC addresses has crossed  the configured limit
         of MAC addresses for an interface either rising above or 
         falling below it."
    ::= { ciscoL2ControlMIBGroups 15 }

clcIfVlanMacAddressLimitGroup OBJECT-GROUP
    OBJECTS {
        clcIfVlanMacLimitGlobalConfig,
        clcIfVlanMacLimitLow,
        clcIfVlanMacLimitLowExceedAction,
        clcIfVlanMacLimitHigh,
        clcIfVlanMacLimitHiExceedAction,
        clcIfVlanMacLimitStatus,
        clcFdbIfVlanMacUsage
    }
    STATUS current
    DESCRIPTION
        "This is the group to control Interfcae and Vlan MAC address 
         limit function."
    ::= { ciscoL2ControlMIBGroups 16 }
        
clcIfVlanMacLimitEnableGroup OBJECT-GROUP
    OBJECTS {
        clcIfVlanMacLimitEnable
    }
    STATUS current
    DESCRIPTION
        "This is the group to control per interface Vlan MAC limit 
         enable/disable configuration."
    ::= { ciscoL2ControlMIBGroups 17 }

clcIfVlanMacLimitNotifControlGroup OBJECT-GROUP
    OBJECTS {
        clcIfVlanMacLimitLowNotifEnable,
        clcIfVlanMacLimitHighNotifEnable
    }
    STATUS current
    DESCRIPTION
        "This is the group to control per interface Vlan MAC limit 
         notification configuration."
    ::= { ciscoL2ControlMIBGroups 18 }

clcIfVlanMacLimitNotifsGroup NOTIFICATION-GROUP
    NOTIFICATIONS { clcIfVlanMacLimitLowNotif,
                    clcIfVlanMacLimitHighNotif }
    STATUS        current
    DESCRIPTION
        "The collection of notifications used to indicate that the
         number of MAC addresses has crossed  the configured limit
         of MAC addresses for a given VLAN and interface either rising 
         above or falling below it."
    ::= { ciscoL2ControlMIBGroups 19 }

clcMacAddressStatsGroup OBJECT-GROUP
    OBJECTS { clcFdbMacAddressStatsNumber }
    STATUS        current
    DESCRIPTION
        "A collection of objects that provides the MAC address
        statistics based on the type of MAC addresses."
    ::= { ciscoL2ControlMIBGroups 20 }
END




