-- *****************************************************************
-- CISCO-LAG-MIB.my: Cisco LAG MIB
--   
-- October 2001,  Liwei Lue
--   
-- Copyright (c) 2001-2003, 2004, 2006, 2008-2010, 2014 by cisco 
-- Systems Inc.
-- All rights reserved.
--   
-- *****************************************************************

CISCO-LAG-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY,
    OBJECT-TYPE,
    Unsigned32
        FROM SNMPv2-SMI
    MODULE-COMPLIANCE,
    OBJECT-GROUP
        FROM SNMPv2-CONF
    TEXTUAL-CONVENTION,
    TruthValue
        FROM SNMPv2-TC
    dot3adAggPortEntry,
    dot3adAggPortListEntry
        FROM IEEE8023-LAG-MIB
    CiscoInterfaceIndexList
      FROM CISCO-TC
    ifIndex
        FROM IF-MIB
    ciscoMgmt
        FROM CISCO-SMI;


ciscoLagMIB MODULE-IDENTITY
    LAST-UPDATED    "201401140000Z"
    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-etherchan@cisco.com
             cs-lan-switch-snmp@cisco.com"
    DESCRIPTION
        "Cisco Link Aggregation module for managing IEEE Std
        802.3ad.

        This MIB provides Link Aggregation information that are
        either excluded by IEEE Std 802.3ad (IEEE8023-LAG-MIB)
        or specific to Cisco products."
    REVISION     "201401140000Z"
    DESCRIPTION
        "Added clagAggPortListInterfaceIndexGroup."
    REVISION     "201010200000Z"
    DESCRIPTION
        "Added new enum values vlanIp(5) and ipPort(6) to
         ClagDistributionProtocol textual convention."
    REVISION        "200911190000Z"
    DESCRIPTION
        "Added clagAggRateGroup, clagAggChannelIfLacpGroup,
        clagAggChannelIfHashDistMethodGroup, clagAggChannelIfMinLinkGroup
        and clagAggHashDistGlobalGroup."
    REVISION        "200801080000Z"
    DESCRIPTION
        "Modified the description of clagAggPortListPorts."
    REVISION        "200606210000Z"
    DESCRIPTION
        "Added clagAggMaxAggregatorsGroup and modified the
        description of clagAggPortListPorts."
    REVISION        "200406110000Z"
    DESCRIPTION
        "Added clagAggPortListTable."
    REVISION        "200212130000Z"
    DESCRIPTION
        "Added a new value vlanIpPort(4) in TEXTUAL-CONVENTION
        ClagDistributionProtocol.
        Added a new object clagAggDistributionMplsProtocol."
    REVISION        "200201020000Z"
    DESCRIPTION
        "Modified Description of clagAggDistributionProtocol."
    REVISION        "200110230000Z"
    DESCRIPTION
        "Initial version of this MIB module.
        Support Distribution configuration for LACP, Aggregation 
        protocol control, and  Administrative status for LACP."
    ::= { ciscoMgmt 225 }


clagMIBObjects  OBJECT IDENTIFIER
    ::= { ciscoLagMIB 1 }


-- -------------------------------------------------------------
-- Textual Conventions
-- -------------------------------------------------------------

ClagDistributionProtocol ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "An enumerated type for all the supported load balancing
        algorithms used on the port channel interface to distribute 
        outgoing data frames among its component interaces, such 
        as IP address.  

        ip(1)               IP address
        mac(2)              MAC address 
        port(3)             port number
        vlanIpPort(4)       vlan number, IP address and
                            port number
        vlanIp(5)           VLAN number and IP address
        ipPort(6)           IP address and port number"
    SYNTAX          INTEGER  {
                        ip(1),
                        mac(2),
                        port(3),
                        vlanIpPort(4),
                        vlanIp(5),
                        ipPort(6)
                    }

ClagDistributionAddressMode ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "An enumerated type for all the supported load
        balancing address modes to distribute traffic
        across multiple links.  The address mode can be 
        source, destination, or both used on this port 
        channel interface to distribute outgoing data frames 
        among its component interfaces. 

        source(1)         Source address.
        destination(2)    Destination address.
        both(3)           both, Source and Destination."
    SYNTAX          INTEGER  {
                        source(1),
                        destination(2),
                        both(3)
                    }

ClagDistributionMplsProtocol ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "An enumerated type for all the supported load balancing
        algorithms used on the port channel interface to distribute 
        outgoing MPLS (Multi-Protocol Label Switching) data 
        frames among its component interfaces, such as 
        MPLS label.

        label(1)            MPLS label
        labelIp(2)          MPLS label or IP address"
    SYNTAX          INTEGER  {
                        label(1),
                        labelIp(2)
                    }

ClagAggregationProtocol ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "An enumerated type for all the supported aggregation
        protocols.

        lacp(1)     Link Aggregation Control Protocol(LACP),
                    IEEE 802.3ad
        pagp(2)     Port Aggregation Protocol"
    SYNTAX          INTEGER  {
                        lacp(1),
                        pagp(2)
                    }

ClagPortAdminStatus ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "An enumerated type for all the LACP administrative states on
        a particular aggregation port.

        off(1)          No LACP involved on the aggregation port.

        on(2)           The aggregation port always join link
                        aggregation whithout any LACP protocol
                        involved.

        active(3)       Active LACP indicates the port's preference
                        to participate in the protocol regardless of
                        Partner's control value.

        passive(4)      Passive indicates the port's preference for
                        not transmitting LACP PDU unless its Partner's
                        control value is Active LACP."
    SYNTAX          INTEGER  {
                        off(1),
                        on(2),
                        active(3),
                        passive(4)
                    }
-- -------------------------------------------------------------
--   
-- -------------------------------------------------------------
-- groups in the LAG MIB
-- -------------------------------------------------------------

clagGlobalConfigObjects  OBJECT IDENTIFIER
    ::= { clagMIBObjects 1 }

clagAgg  OBJECT IDENTIFIER
    ::= { clagMIBObjects 2 }

clagAggPort  OBJECT IDENTIFIER
    ::= { clagMIBObjects 3 }

clagAggPortList  OBJECT IDENTIFIER
    ::= { clagMIBObjects 4 }

clagAggChannelIntf  OBJECT IDENTIFIER
    ::= { clagMIBObjects 5 }


-- -------------------------------------------------------------
--   
-- -------------------------------------------------------------
-- The Aggregation Global Configuration
-- -------------------------------------------------------------

clagAggDistributionProtocol OBJECT-TYPE
    SYNTAX          ClagDistributionProtocol
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "This object controls the load balancing algorithms
        used on this port channel interface to distribute outgoing 
        data frames among its component interfaces." 
    ::= { clagGlobalConfigObjects 1 }

clagAggDistributionAddressMode OBJECT-TYPE
    SYNTAX          ClagDistributionAddressMode
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "The load balancing address mode for the device." 
    ::= { clagGlobalConfigObjects 2 }

clagAggDistributionMplsProtocol OBJECT-TYPE
    SYNTAX          ClagDistributionMplsProtocol
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "This object controls the load balancing algorithms
        used on this port channel interface to distribute 
        outgoing MPLS data frames among its component interfaces.

        This object is only instantiated on platforms which 
        support aggregation load balancing for MPLS packets." 
    ::= { clagGlobalConfigObjects 3 }

clagAggMaxAggregators OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the maximum number of aggregators
        supported by the device." 
    ::= { clagGlobalConfigObjects 4 }

clagAggHashDistMethodGlobalConfig OBJECT-TYPE
    SYNTAX          INTEGER  {
                        adaptive(1),
                        fixed(2)
                    }
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "Specifies the global configuration for hash
        distribution method applied on a port channel 
        interface among its channel members.

        adaptive(1)  :  Adaptive hash distribution for the bundle
                        among port channel members.
        fixed(2)     :  Fixed hash distribution for the bundle
                        among port channel members." 
    ::= { clagGlobalConfigObjects 5 }
-- -------------------------------------------------------------
-- The Aggregation Protocol Table
-- -------------------------------------------------------------

clagAggProtocolTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF ClagAggProtocolEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "A table that contains protocol information about every
        interface which supports link aggregation."
    ::= { clagAgg 1 }

clagAggProtocolEntry OBJECT-TYPE
    SYNTAX          ClagAggProtocolEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "Entry containing aggregation protocol type for a
        particular interface.  An entry is created in this
        table when its associated ifEntry is created and that 
        interface supports link aggregation.  The entry of this
        table is deleted when the associated ifEntry is removed."
    INDEX           { ifIndex } 
    ::= { clagAggProtocolTable 1 }

ClagAggProtocolEntry ::= SEQUENCE {
        clagAggProtocolType ClagAggregationProtocol
}

clagAggProtocolType OBJECT-TYPE
    SYNTAX          ClagAggregationProtocol
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "The aggregation protocol type for the interface.

        On some platforms, aggregation protocol may be assigned per
        group.  The group can be a collection of the ports which belong
        to a module or system.  If the aggregation protocol is assigned
        to any of the ports in such group then the aggregation protocol
        will apply to all ports in the same group.

        On some platforms, aggregation protocol type  can be assigned
        per aggregator.  If multiple ports belong to a aggregator,
        the aggregation protocol assigned to any of the ports in such
        aggregator will apply to all ports in the same." 
    ::= { clagAggProtocolEntry 1 }
 

-- -------------------------------------------------------------
-- The Aggregation Port Configuration Table
-- -------------------------------------------------------------

clagAggPortTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF ClagAggPortEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "A table that contains information about every
        aggregation port that is associated with this system.
        This table contains additional objects for the
        dot3adAggPortTable."
    REFERENCE       "IEEE 802.3 Subclause 30.7.2"
    ::= { clagAggPort 1 }

clagAggPortEntry OBJECT-TYPE
    SYNTAX          ClagAggPortEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "An entry containing additional management information
        applicable to a particular aggregation port."
    AUGMENTS           { dot3adAggPortEntry  } 
    ::= { clagAggPortTable 1 }

ClagAggPortEntry ::= SEQUENCE {
        clagAggPortAdminStatus ClagPortAdminStatus,
        clagAggPortRate        INTEGER
}

clagAggPortAdminStatus OBJECT-TYPE
    SYNTAX          ClagPortAdminStatus
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "The administrative status of the LACP protocol on this
        aggregation port." 
    ::= { clagAggPortEntry 1 }

clagAggPortRate OBJECT-TYPE
    SYNTAX          INTEGER  {
                        fast(1),
                        normal(2)
                    }
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "Specifies the requested exchange rate of LACP packets
        on this interface.
        fast(1)  :    The device requests its peers to send LACP packets 
                      at fast rate to this interface.
        normal(2):    The decice requests its peers to send LACP packets
                      at normal rate to this interface." 
    ::= { clagAggPortEntry 2 }
 

-- -------------------------------------------------------------
-- The Port List Table
-- -------------------------------------------------------------

clagAggPortListTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF ClagAggPortListEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This table augments the dot3adAggPortListTable and
        provides the complete list of ports associated with
        each Aggregator."
    REFERENCE       "IEEE 802.3 Subclause 30.7.1.1.30"
    ::= { clagAggPortList 1 }

clagAggPortListEntry OBJECT-TYPE
    SYNTAX          ClagAggPortListEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "A list of the ports associated with a given Aggregator."
    AUGMENTS           { dot3adAggPortListEntry  } 
    ::= { clagAggPortListTable 1 }

ClagAggPortListEntry ::= SEQUENCE {
        clagAggPortListPorts              OCTET STRING,
        clagAggPortListInterfaceIndexList CiscoInterfaceIndexList
}

clagAggPortListPorts OBJECT-TYPE
    SYNTAX          OCTET STRING (SIZE  (2..256))
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object contains a list of ports currently associated
        with this Aggregator in the format of
        '[number_of_ports][cieIfDot1dBaseMappingPort1][...]
         [cieIfDot1dBaseMappingPortn]'

        where
        [number_of_ports] is of size 2 octet and indicates
        the number of ports contains in this object. It
        also indicates the number of cieIfDot1dBaseMappingPort field
        following this field. 

        [cieIfDot1dBaseMappingPort'n'] is the value of 
        cieIfDot1dBaseMappingPort of the 'n' port associated with this
        Aggregation and has size of 2 octets where n is up to
        [number_of_ports]."
    REFERENCE       "IEEE 802.3 Subclause 30.7.1.1.30" 
    ::= { clagAggPortListEntry 1 }
 
clagAggPortListInterfaceIndexList OBJECT-TYPE
    SYNTAX          CiscoInterfaceIndexList
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION     
        "This object contains a list of ports currently associated
        with this Aggregator in the format of CiscoInterfaceIndexList."
    REFERENCE       "IEEE 802.3 Subclause 30.7.1.1.30" 
    ::= { clagAggPortListEntry 2}


-- -------------------------------------------------------------
-- The Aggregation Channel Interface Table
-- -------------------------------------------------------------

clagAggChannelIfTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF ClagAggChannelIfEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "A table providing port channel
        configuration information for port channel
        interfaces identified by ifIndex."
    ::= { clagAggChannelIntf 1 }

clagAggChannelIfEntry OBJECT-TYPE
    SYNTAX          ClagAggChannelIfEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "An entry containing port channel
        configuration information for port 
        channel interfaces."
    INDEX           { ifIndex } 
    ::= { clagAggChannelIfTable 1 }

ClagAggChannelIfEntry ::= SEQUENCE {
        clagAggChannelIfFastSwitchOver      TruthValue,
        clagAggChannelIfMaxBundle           Unsigned32,
        clagAggChannelIfMinLink             Unsigned32,
        clagAggChannelIfHashDistAdminMethod INTEGER,
        clagAggChannelIfHashDistOperMethod  INTEGER
}

clagAggChannelIfFastSwitchOver OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "Specifies whether LACP protocol fast switchover
        mode is enabled on this port channel interface
        or not." 
    ::= { clagAggChannelIfEntry 1 }

clagAggChannelIfMaxBundle OBJECT-TYPE
    SYNTAX          Unsigned32 (1..4294967295)
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "Specifies the maximum number of member
        ports that can be bundled on this port
        channel interface for LACP protocol." 
    ::= { clagAggChannelIfEntry 2 }

clagAggChannelIfMinLink OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "Specifies the minimum number of bundled member ports that are
        needed in order for this port channel interface to be
        operational.
        A value of zero for this object indicates that no minimum
        number of bundled member ports are required for this port
        channel interface to be operational." 
    ::= { clagAggChannelIfEntry 3 }

clagAggChannelIfHashDistAdminMethod OBJECT-TYPE
    SYNTAX          INTEGER  {
                        none(1),
                        adaptive(2),
                        fixed(3)
                    }
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "Specifies the hash distribution method that is administratively
        configured on this port channel interface upon its channel 
        membership transition event. 

        none(1)      :  Hash distribution algorithm on this 
                        port channel interface is not specifically 
                        configured and global configuration of 
                        clagAggHashDistMethodGlobalConfig will
                        be applied on this port channel interface.
        adaptive(2)  :  Adaptive hash distribution for this port 
                        channel interface among its channel members.
        fixed(3)     :  Fixed hash distribution for this port channel
                        interface among its channel members." 
    ::= { clagAggChannelIfEntry 4 }

clagAggChannelIfHashDistOperMethod OBJECT-TYPE
    SYNTAX          INTEGER  {
                        other(1),
                        adaptive(2),
                        fixed(3)
                    }
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "Specifies the operational hash distribution method
        for this port channel interface among the port channel members.

        other(1)        : None of the following. 
        adaptive(2)     : Adaptive hash distribution for the 
                          port channel interface among its 
                          channel members.
        fixed(3)        : Fixed hash distribution for the port
                          channel among channel members." 
    ::= { clagAggChannelIfEntry 5 }
 

-- -------------------------------------------------------------
-- Notifications
-- -------------------------------------------------------------

clagMIBNotifications  OBJECT IDENTIFIER
    ::= { ciscoLagMIB 2 }

-- no notifications defined
--   
-- -------------------------------------------------------------
-- Conformance
-- -------------------------------------------------------------

clagMIBConformance  OBJECT IDENTIFIER
    ::= { ciscoLagMIB 3 }

clagMIBCompliances  OBJECT IDENTIFIER
    ::= { clagMIBConformance 1 }

clagMIBGroups  OBJECT IDENTIFIER
    ::= { clagMIBConformance 2 }


-- -------------------------------------------------------------
--   
-- -------------------------------------------------------------
-- Compliance
-- -------------------------------------------------------------

clagMIBCompliance MODULE-COMPLIANCE
    STATUS          deprecated
    DESCRIPTION
        "The compliance statement for entities which implement
        the Cisco Link Aggregation MIB"
    MODULE          -- this module
    MANDATORY-GROUPS {
                        clagAggProtocolGroup,
                        clagAggPortGroup
                    }

    GROUP           clagAggDistributionGroup
    DESCRIPTION
        "This group is mandatory for the devices which
        supported aggregation load balancing."

    OBJECT          clagAggProtocolType
    MIN-ACCESS      read-only
    DESCRIPTION
        "Write access is not required."

    OBJECT          clagAggPortAdminStatus
    MIN-ACCESS      read-only
    DESCRIPTION
        "Write access is not required."
    ::= { clagMIBCompliances 1 }

clagMIBCompliance2 MODULE-COMPLIANCE
    STATUS          deprecated
    DESCRIPTION
        "The compliance statement for entities which implement
        the Cisco Link Aggregation MIB"
    MODULE          -- this module
    MANDATORY-GROUPS {
                        clagAggProtocolGroup,
                        clagAggPortGroup
                    }

    GROUP           clagAggDistributionGroup
    DESCRIPTION
        "This group is mandatory for the devices which
        supported aggregation load balancing."

    GROUP           clagAggDistributionMplsGroup
    DESCRIPTION
        "This group is mandatory for the devices which
        supported aggregation load balancing for MPLS
        packets."

    OBJECT          clagAggProtocolType
    MIN-ACCESS      read-only
    DESCRIPTION
        "Write access is not required."

    OBJECT          clagAggPortAdminStatus
    MIN-ACCESS      read-only
    DESCRIPTION
        "Write access is not required."
    ::= { clagMIBCompliances 2 }

clagMIBCompliance3 MODULE-COMPLIANCE
    STATUS          deprecated
    DESCRIPTION
        "The compliance statement for entities which implement
        the Cisco Link Aggregation MIB"
    MODULE          -- this module
    MANDATORY-GROUPS {
                        clagAggProtocolGroup,
                        clagAggPortGroup
                    }

    GROUP           clagAggDistributionGroup
    DESCRIPTION
        "This group is mandatory for the devices which
        supported aggregation load balancing."

    GROUP           clagAggDistributionMplsGroup
    DESCRIPTION
        "This group is mandatory for the devices which
        supported aggregation load balancing for MPLS
        packets."

    GROUP           clagAggPortListGroup
    DESCRIPTION
        "This group is mandatory for the devices which
        supports dot1dBasePort value greater than 2048."

    OBJECT          clagAggProtocolType
    MIN-ACCESS      read-only
    DESCRIPTION
        "Write access is not required."

    OBJECT          clagAggPortAdminStatus
    MIN-ACCESS      read-only
    DESCRIPTION
        "Write access is not required."
    ::= { clagMIBCompliances 3 }

clagMIBCompliance4 MODULE-COMPLIANCE
    STATUS          deprecated
    DESCRIPTION
        "The compliance statement for entities which implement
        the Cisco Link Aggregation MIB"
    MODULE          -- this module
    MANDATORY-GROUPS {
                        clagAggProtocolGroup,
                        clagAggPortGroup
                    }

    GROUP           clagAggDistributionGroup
    DESCRIPTION
        "This group is mandatory for the devices which
        supported aggregation load balancing."

    GROUP           clagAggDistributionMplsGroup
    DESCRIPTION
        "This group is mandatory for the devices which
        supported aggregation load balancing for MPLS
        packets."

    GROUP           clagAggPortListGroup
    DESCRIPTION
        "This group is mandatory for the devices which
        supports dot1dBasePort value greater than 2048."

    GROUP           clagAggMaxAggregatorsGroup
    DESCRIPTION
        "This group is mandatory for the devices which
        provides the information about the maximum number
        of aggregators supported by the device."

    OBJECT          clagAggProtocolType
    MIN-ACCESS      read-only
    DESCRIPTION
        "Write access is not required."

    OBJECT          clagAggPortAdminStatus
    MIN-ACCESS      read-only
    DESCRIPTION
        "Write access is not required."
    ::= { clagMIBCompliances 4 }

clagMIBCompliance5 MODULE-COMPLIANCE
    STATUS          deprecated
    DESCRIPTION
        "The compliance statement for entities which implement
        the Cisco Link Aggregation MIB"
    MODULE          -- this module
    MANDATORY-GROUPS {
                        clagAggProtocolGroup,
                        clagAggPortGroup
                    }

    GROUP           clagAggDistributionGroup
    DESCRIPTION
        "This group is mandatory for the devices which
        supported aggregation load balancing."

    GROUP           clagAggDistributionMplsGroup
    DESCRIPTION
        "This group is mandatory for the devices which
        supported aggregation load balancing for MPLS
        packets."

    GROUP           clagAggPortListGroup
    DESCRIPTION
        "This group is mandatory for the devices which
        supports dot1dBasePort value greater than 2048."

    GROUP           clagAggMaxAggregatorsGroup
    DESCRIPTION
        "This group is mandatory for the devices which
        provides the information about the maximum number
        of aggregators supported by the device."

    GROUP           clagAggRateGroup
    DESCRIPTION
        "This group is mandatory for devices that support
        LACP packet ingression rate on interfaces."

    GROUP           clagAggChannelIfLacpGroup
    DESCRIPTION
        "This group is mandatory for the devices which
        support the LACP port channel configurations on  
        port channel interfaces."

    GROUP           clagAggChannelIfHashDistMethodGroup
    DESCRIPTION
        "This group is mandatory for the devices which
        support the hash distribution method configurations on
        port channel interfaces."

    GROUP           clagAggHashDistGlobalGroup
    DESCRIPTION
        "This group is mandatory for the devices which support
        global configuration of hash distribution method on
        port channel interface."

    GROUP           clagAggChannelIfMinLinkGroup
    DESCRIPTION
        "This group is mandatory for the devices which
        support minimum link configurations on port channel 
        interfaces."

    OBJECT          clagAggDistributionProtocol
    MIN-ACCESS      read-only
    DESCRIPTION
        "Write access is not required."

    OBJECT          clagAggDistributionAddressMode
    MIN-ACCESS      read-only
    DESCRIPTION
        "Write access is not required."

    OBJECT          clagAggDistributionMplsProtocol
    MIN-ACCESS      read-only
    DESCRIPTION
        "Write access is not required."

    OBJECT          clagAggHashDistMethodGlobalConfig
    MIN-ACCESS      read-only
    DESCRIPTION
        "Write access is not required."

    OBJECT          clagAggProtocolType
    MIN-ACCESS      read-only
    DESCRIPTION
        "Write access is not required."

    OBJECT          clagAggPortAdminStatus
    MIN-ACCESS      read-only
    DESCRIPTION
        "Write access is not required."

    OBJECT          clagAggPortRate
    MIN-ACCESS      read-only
    DESCRIPTION
        "Write access is not required."

    OBJECT          clagAggChannelIfFastSwitchOver
    MIN-ACCESS      read-only
    DESCRIPTION
        "Write access is not required."

    OBJECT          clagAggChannelIfMaxBundle
    MIN-ACCESS      read-only
    DESCRIPTION
        "Write access is not required."

    OBJECT          clagAggChannelIfMinLink
    MIN-ACCESS      read-only
    DESCRIPTION
        "Write access is not required."

    OBJECT          clagAggChannelIfHashDistAdminMethod
    MIN-ACCESS      read-only
    DESCRIPTION
        "Write access is not required."
    ::= { clagMIBCompliances 5 }

clagMIBCompliance6 MODULE-COMPLIANCE
    STATUS          current
    DESCRIPTION
        "The compliance statement for entities which implement
        the Cisco Link Aggregation MIB"
    MODULE          -- this module
    MANDATORY-GROUPS {
                        clagAggProtocolGroup,
                        clagAggPortGroup
                    }

    GROUP           clagAggDistributionGroup
    DESCRIPTION
        "This group is mandatory for the devices which
        supported aggregation load balancing."

    GROUP           clagAggDistributionMplsGroup
    DESCRIPTION
        "This group is mandatory for the devices which
        supported aggregation load balancing for MPLS
        packets."

    GROUP           clagAggPortListGroup
    DESCRIPTION
        "This group is mandatory for the devices which
        supports dot1dBasePort value greater than 2048."

    GROUP           clagAggMaxAggregatorsGroup
    DESCRIPTION
        "This group is mandatory for the devices which
        provides the information about the maximum number
        of aggregators supported by the device."

    GROUP           clagAggRateGroup
    DESCRIPTION
        "This group is mandatory for devices that support
        LACP packet ingression rate on interfaces."

    GROUP           clagAggChannelIfLacpGroup
    DESCRIPTION
        "This group is mandatory for the devices which
        support the LACP port channel configurations on  
        port channel interfaces."

    GROUP           clagAggChannelIfHashDistMethodGroup
    DESCRIPTION
        "This group is mandatory for the devices which
        support the hash distribution method configurations on
        port channel interfaces."

    GROUP           clagAggHashDistGlobalGroup
    DESCRIPTION
        "This group is mandatory for the devices which support
        global configuration of hash distribution method on
        port channel interface."

    GROUP           clagAggChannelIfMinLinkGroup
    DESCRIPTION
        "This group is mandatory for the devices which
        support minimum link configurations on port channel 
        interfaces."

    GROUP           clagAggPortListInterfaceIndexGroup
    DESCRIPTION
        "This group is mandatory for the devices which
        support Layer3 LACP interfaces."

    OBJECT          clagAggDistributionProtocol
    MIN-ACCESS      read-only
    DESCRIPTION
        "Write access is not required."

    OBJECT          clagAggDistributionAddressMode
    MIN-ACCESS      read-only
    DESCRIPTION
        "Write access is not required."

    OBJECT          clagAggDistributionMplsProtocol
    MIN-ACCESS      read-only
    DESCRIPTION
        "Write access is not required."

    OBJECT          clagAggHashDistMethodGlobalConfig
    MIN-ACCESS      read-only
    DESCRIPTION
        "Write access is not required."

    OBJECT          clagAggProtocolType
    MIN-ACCESS      read-only
    DESCRIPTION
        "Write access is not required."

    OBJECT          clagAggPortAdminStatus
    MIN-ACCESS      read-only
    DESCRIPTION
        "Write access is not required."

    OBJECT          clagAggPortRate
    MIN-ACCESS      read-only
    DESCRIPTION
        "Write access is not required."

    OBJECT          clagAggChannelIfFastSwitchOver
    MIN-ACCESS      read-only
    DESCRIPTION
        "Write access is not required."

    OBJECT          clagAggChannelIfMaxBundle
    MIN-ACCESS      read-only
    DESCRIPTION
        "Write access is not required."

    OBJECT          clagAggChannelIfMinLink
    MIN-ACCESS      read-only
    DESCRIPTION
        "Write access is not required."

    OBJECT          clagAggChannelIfHashDistAdminMethod
    MIN-ACCESS      read-only
    DESCRIPTION
        "Write access is not required."
    ::= { clagMIBCompliances 6 }


-- -------------------------------------------------------------
-- Units of Conformance
-- -------------------------------------------------------------

clagAggProtocolGroup OBJECT-GROUP
    OBJECTS         { clagAggProtocolType }
    STATUS          current
    DESCRIPTION
        "The object that provide aggregation protocol type of an
        interface. These are additional to the IEEE Std 802.3ad
        MIB."
    ::= { clagMIBGroups 1 }

clagAggPortGroup OBJECT-GROUP
    OBJECTS         { clagAggPortAdminStatus }
    STATUS          current
    DESCRIPTION
        "A collection of objects that provide admin status
        about an aggregation port.  These are additional to the
        IEEE Std 802.3ad MIB."
    ::= { clagMIBGroups 2 }

clagAggDistributionGroup OBJECT-GROUP
    OBJECTS         {
                        clagAggDistributionProtocol,
                        clagAggDistributionAddressMode
                    }
    STATUS          current
    DESCRIPTION
        "A collection of objects that provide the load balancing
        information for an aggregator.  These are additional to
        the IEEE Std 802.3ad MIB."
    ::= { clagMIBGroups 3 }

clagAggDistributionMplsGroup OBJECT-GROUP
    OBJECTS         { clagAggDistributionMplsProtocol }
    STATUS          current
    DESCRIPTION
        "A collection of objects that provide the load balancing
        information for an aggregator for MPLS packets.  
        These are additional to the IEEE Std 802.3ad MIB."
    ::= { clagMIBGroups 4 }

clagAggPortListGroup OBJECT-GROUP
    OBJECTS         { clagAggPortListPorts }
    STATUS          current
    DESCRIPTION
        "A collection of object that provides information about
        ports in an aggregation."
    ::= { clagMIBGroups 5 }

clagAggMaxAggregatorsGroup OBJECT-GROUP
    OBJECTS         { clagAggMaxAggregators }
    STATUS          current
    DESCRIPTION
        "A collection of object that provides information about
        the maximum number of aggregators supported by the 
        device."
    ::= { clagMIBGroups 6 }

clagAggRateGroup OBJECT-GROUP
    OBJECTS         { clagAggPortRate }
    STATUS          current
    DESCRIPTION
        "A collection of object that provides information about
        the rate at which LACP packets are ingressed on 
        interfaces."
    ::= { clagMIBGroups 7 }

clagAggChannelIfLacpGroup OBJECT-GROUP
    OBJECTS         {
                        clagAggChannelIfFastSwitchOver,
                        clagAggChannelIfMaxBundle
                    }
    STATUS          current
    DESCRIPTION
        "A collection of objects that provides information about
        the LACP protocol configurations for port channel
        interfaces."
    ::= { clagMIBGroups 8 }

clagAggChannelIfHashDistMethodGroup OBJECT-GROUP
    OBJECTS         {
                        clagAggChannelIfHashDistAdminMethod,
                        clagAggChannelIfHashDistOperMethod
                    }
    STATUS          current
    DESCRIPTION
        "A collection of objects that provides information about
        the port channel configurations of hash distribution
        method on port channel interfaces."
    ::= { clagMIBGroups 9 }

clagAggHashDistGlobalGroup OBJECT-GROUP
    OBJECTS         { clagAggHashDistMethodGlobalConfig }
    STATUS          current
    DESCRIPTION
        "A collection of object that provides information about global
        configuration of hash distribution method on port channel 
        interface."
    ::= { clagMIBGroups 10 }

clagAggChannelIfMinLinkGroup OBJECT-GROUP
    OBJECTS         {
                        clagAggChannelIfMinLink
                    }
    STATUS          current
    DESCRIPTION
        "A collection of objects that provides information about
        the minimum link configurations for port channel
        interfaces."
    ::= { clagMIBGroups 11 }

clagAggPortListInterfaceIndexGroup OBJECT-GROUP
    OBJECTS         {
                        clagAggPortListInterfaceIndexList
                    }
    STATUS          current
    DESCRIPTION
        "A collection of objects that provides information about
         ports in an aggregation in the format of 
         CiscoInterfaceIndexList."
    ::= { clagMIBGroups 12 }

END

