-- =====================================================================
-- Copyright (c) 2004-2010 Hangzhou H3C Tech. Co., Ltd. All rights reserved.
--
-- Description: LACP extend MIB
-- Reference:
-- Version: V1.7
-- History:
--   V1.0 Initial version
--   V1.1 2004-10-12 updated by gaolong
--        Remove OID comments.
--        Change MAX-ACCESS clause value of hwAggLinkNumber to accessible-for-notify
--        because this index object is used when sending notification.
--        Fix a default value error of hwAggResourceAllocationValue.
--   V1.2 2004-10-25 updated by fuzhenyu
--        Change the range of hwAggLinkNumber from (1..256) to (1..728)
--        Change the size of hwAggPortNotAttachedString from (1..50) to (1..255)
--   V1.3 2006-03-05 updated by zhangjian
--        Edit the description of hwAggPortNotAttachedReason.
--        Change value range of hwAggLinkNumber.
--   V1.4 2006-11-15 updated by zhangjian
--        Change MAX-ACCESS clause of hwAggPortIndex to accessible-for-notify.
--        Add hwAggPortInactiveNotification2 and hwAggPortActiveNotification.
--   V1.5 2009-10-09 updated by songjianyong
--        Change value range of hwAggPortNotAttachedReason.
--   V1.6 2010-03-26 updated by songjianyong
--        Change value range of hwAggPortNotAttachedReason.
--   V1.7 2011-10-12 updated by liyugang
--        Change some descriptions.
-- =====================================================================
A3COM-HUAWEI-LAG-MIB DEFINITIONS ::= BEGIN

    IMPORTS
        OBJECT-GROUP, MODULE-COMPLIANCE, NOTIFICATION-GROUP
            FROM SNMPv2-CONF
        Integer32, Gauge32, OBJECT-TYPE, MODULE-IDENTITY, NOTIFICATION-TYPE
            FROM SNMPv2-SMI
        DisplayString, RowStatus,TruthValue,TEXTUAL-CONVENTION
            FROM SNMPv2-TC
        huaweiMgmt, huaweiDatacomm
            FROM A3COM-HUAWEI-OID-MIB
        PortList
            FROM Q-BRIDGE-MIB;

    hwLAG MODULE-IDENTITY
        LAST-UPDATED "200310091942Z"    -- October 09, 2003 at 19:42 GMT
        ORGANIZATION
            "Hangzhou H3C Tech. Co., Ltd."
        CONTACT-INFO
            "Platform Team Hangzhou H3C Tech. Co., Ltd.
             Hai-Dian District Beijing P.R. China
             http://www.h3c.com
             Zip:100085"
        DESCRIPTION
            "LACP extend MIB."
        ::= { huaweiDatacomm 25 }

--
-- Node definitions
--

    hwLAGMibObjects OBJECT IDENTIFIER ::= { hwLAG 1 }


    hwAggLinkTable OBJECT-TYPE
        SYNTAX SEQUENCE OF HwAggLinkEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "A table of aggregate link objects."
        ::= { hwLAGMibObjects 1 }


    hwAggLinkEntry OBJECT-TYPE
        SYNTAX HwAggLinkEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Entry of table."
        INDEX { hwAggLinkNumber }
        ::= { hwAggLinkTable 1 }


    HwAggLinkEntry ::=
        SEQUENCE {
            hwAggLinkNumber
                Integer32,
            hwAggLinkName
                DisplayString,
            hwAggLinkMode
                INTEGER,
            hwAggLinkPortList
                PortList,
            hwAggLinkState
                RowStatus,
            hwAggPortListSelectedPorts
                PortList,
            hwAggPortListSamePartnerPorts
                PortList
         }

    hwAggLinkNumber OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS accessible-for-notify
        STATUS current
        DESCRIPTION
            "The serial number of aggregation group."
        ::= { hwAggLinkEntry 1 }


    hwAggLinkName OBJECT-TYPE
        SYNTAX DisplayString (SIZE (0..32))
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Aggregation name."
        ::= { hwAggLinkEntry 2 }


    hwAggLinkMode OBJECT-TYPE
        SYNTAX INTEGER
            {
            manual(1),
            static(2),
            dynamic(3)
            }
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Type of aggregation.
             manual: Manual aggregation, no LACP.
             static: Membership specified by user, LACP is
                     used to validate.
             dynamic: Completely dynamic aggregation detected
                      by LACP."
        ::= { hwAggLinkEntry 3 }


    hwAggLinkPortList OBJECT-TYPE
        SYNTAX PortList
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "List of ports in this link aggregation group, by bridge port
             number. If the mode of the link aggregation group is manual
             or static, you can update this list to your
             hearts content. However, if the link aggregation group is
             dynamic, the system will maintain it. You are not
             permitted to set the value of this to
             all zeroes."
        ::= { hwAggLinkEntry 4 }


    hwAggLinkState OBJECT-TYPE
        SYNTAX RowStatus
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "RowStatus, now support three states:
            createAndGo, active, destroy."
        ::= { hwAggLinkEntry 5 }


    hwAggPortListSelectedPorts OBJECT-TYPE
        SYNTAX PortList
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "A PortList of physical ports that have been
             selected but not attached to this aggregator.
             When the bit is set to 1,it means the
             corresponding port is in the portlist."
        ::= { hwAggLinkEntry 6 }


    hwAggPortListSamePartnerPorts OBJECT-TYPE
        SYNTAX PortList
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "PortList of physical ports that have the
             same Actor SystemID and partner systemID as
             this aggregator, but have different actor
             and partner keys of aggregator."
        ::= { hwAggLinkEntry 7 }


    hwAggPortTable OBJECT-TYPE
        SYNTAX SEQUENCE OF HwAggPortEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "A table of aggregate port objects."
        ::= { hwLAGMibObjects 2 }


    hwAggPortEntry OBJECT-TYPE
        SYNTAX HwAggPortEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Entry of table."
        INDEX { hwAggPortIndex }
        ::= { hwAggPortTable 1 }


    HwAggPortEntry ::=
        SEQUENCE {
            hwAggPortIndex
                Gauge32,
            hwAggPortNotAttachedReason
                Integer32,
            hwAggPortLacpState
                TruthValue,
            hwAggPortNotAttachedString
                DisplayString
        }

    hwAggPortIndex OBJECT-TYPE
        SYNTAX Gauge32
        MAX-ACCESS accessible-for-notify
        STATUS current
        DESCRIPTION
            "Port ifindex which is according to RFC1213 MIB."
        ::= { hwAggPortEntry 1 }


    hwAggPortNotAttachedReason OBJECT-TYPE
        SYNTAX Integer32 (0..10)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Reason why this port is selected for an
             aggregator but not attached,
             0: The port is attached to this aggregator.
             1: The current number of active ports has
                reached the upper limit.
             2: All aggregation resources are already in-use.
             3: The port's configuration is improper
                for being attached.
             4: The port's partner is improper for being attached.
             5: The number of current active ports
                has not reached the lower limit.
             6: The port's physical state (down) is
                improper for being attached.
             7: The port is not selected for an aggregator.
             8: The port's hardware restriction is
                improper for being attached.
             9: The port's speed is improper for being attached.
             10: The port's duplex mode is improper for being attached."
        ::= { hwAggPortEntry 2 }

    hwAggPortLacpState OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Control ports' lacp enble or disable."
        ::= { hwAggPortEntry 3 }

    hwAggPortNotAttachedString OBJECT-TYPE
        SYNTAX DisplayString (SIZE (0..255))
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The string which interprets this
             port is selected for an aggregator
             but not attached."
        ::= { hwAggPortEntry 4 }


    hwAggResourceAllocationValue OBJECT-TYPE
        SYNTAX PortList
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The priority value calculated to decide which
             aggregations have first call on the load-sharing
             aggregation resources in the hardware. It
             depends on the aggregation type and total
             speed."
        DEFVAL { "0" }
        ::= { hwLAGMibObjects 3 }


    hwLAGMibNotifications OBJECT IDENTIFIER ::= { hwLAG 2 }


    hwAggSpeedChangedNotification NOTIFICATION-TYPE
        OBJECTS { hwAggLinkNumber }
        STATUS current
        DESCRIPTION
            "This event will be triggered whenever an
             aggregation changes its speed."
        ::= { hwLAGMibNotifications 1 }


    hwAggPortInactiveNotification NOTIFICATION-TYPE
        OBJECTS { hwAggLinkNumber }
        STATUS current
        DESCRIPTION
            "This event will be triggered whenever any port
             in aggregator is made inactive."
        ::= { hwLAGMibNotifications 2 }


    hwAggPortInactiveNotification2 NOTIFICATION-TYPE
        OBJECTS { hwAggLinkNumber,
                  hwAggPortIndex }
        STATUS current
        DESCRIPTION
            "This event will be triggered whenever the port
             in aggregator is made inactive."
        ::= { hwLAGMibNotifications 3 }


    hwAggPortActiveNotification NOTIFICATION-TYPE
        OBJECTS { hwAggLinkNumber,
                  hwAggPortIndex }
        STATUS current
        DESCRIPTION
            "This event will be triggered whenever the port
             in aggregator is made active."
        ::= { hwLAGMibNotifications 4 }


    hwLAGMibConformance OBJECT IDENTIFIER ::= { hwLAG 3 }


    hwLAGMibCompliances OBJECT IDENTIFIER ::= { hwLAGMibConformance 1 }


    hwLAGMibCompliance MODULE-COMPLIANCE
        STATUS current
        DESCRIPTION
            "The compliance statement for SNMP entities
             which implement the Lag MIB."
        MODULE -- this module
            MANDATORY-GROUPS
                { hwLAGMibObjectGroup, hwLAGMibNotificationGroup }
        ::= { hwLAGMibCompliances 1 }


    hwLAGMibGroup OBJECT IDENTIFIER ::= { hwLAGMibConformance 2 }


    hwLAGMibObjectGroup OBJECT-GROUP
        OBJECTS { hwAggLinkName, hwAggLinkMode, hwAggLinkPortList,
                hwAggLinkState, hwAggPortListSelectedPorts,
                hwAggPortListSamePartnerPorts,
                hwAggPortNotAttachedReason, hwAggPortLacpState,
                hwAggPortNotAttachedString,
                hwAggResourceAllocationValue }
        STATUS current
        DESCRIPTION
            "The collection of objects which are used to
             represent LAG objects."
        ::= { hwLAGMibGroup 1 }


    hwLAGMibNotificationGroup NOTIFICATION-GROUP
        NOTIFICATIONS { hwAggSpeedChangedNotification,
                        hwAggPortInactiveNotification,
                        hwAggPortInactiveNotification2,
                        hwAggPortActiveNotification }
        STATUS current
        DESCRIPTION
            "The collection of objects which are used to
             represent notifications."
        ::= { hwLAGMibGroup 2 }

END
