LAG-MIB DEFINITIONS ::= BEGIN

---------------------------------------------------------------
--IEEE 802.3ad MIB
---------------------------------------------------------------

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, Counter32,
    TimeTicks                                    FROM SNMPv2-SMI
    DisplayString, MacAddress, TEXTUAL-CONVENTION,
    TruthValue                                          FROM SNMPv2-TC
    MODULE-COMPLIANCE, OBJECT-GROUP                     FROM SNMPv2-CONF
    InterfaceIndex                                      FROM IF-MIB
    PortList                                            FROM Q-BRIDGE-MIB;

lagMIB MODULE-IDENTITY
    LAST-UPDATED "9911220000Z"
    ORGANIZATION "IEEE 802.3ad Working Group"
    CONTACT-INFO
        " stds- 802- 3- trunking@ majordomo. ieee. org "
    DESCRIPTION
        "The Link Aggregation module for managing IEEE 802.3ad."
    REVISION "200306180100Z" --   Wed Jun 18 01:00:00 PDT 2003
    DESCRIPTION
        "Changed module identity mapping as follows."

    ::= { 1 member-body(2) us(840) ieee802dot3(10006)
          snmpmibs(300) linkagg(43) }

lagMIBObjects OBJECT IDENTIFIER ::= { lagMIB 1 }

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

LacpKey ::= TEXTUAL-CONVENTION
    STATUS  current
    DESCRIPTION
        "The Actor or Partner Key value."
    SYNTAX INTEGER (0.. 65535)

LacpState ::= TEXTUAL-CONVENTION
    STATUS  current
    DESCRIPTION
        "The Actor and Partner State values from the LACPDU."
    SYNTAX BITS {
        lacpActivity(0),
        lacpTimeout(1),
        aggregation(2),
        synchronisation(3),
        collecting(4),
        distributing(5),
        defaulted(6),
        expired(7)
    }
--    SYNTAX      OCTET STRING (SIZE(1))

ChurnState ::= TEXTUAL-CONVENTION
    STATUS  current
    DESCRIPTION
        "The state of the Churn detection machine."
    SYNTAX INTEGER {
        noChurn(1),
        churn(2),
        churnMonitor(3)
    }

---------------------------------------------------------------
-- groups in the LAG MIB
---------------------------------------------------------------

dot3adAgg OBJECT IDENTIFIER ::= { lagMIBObjects 1 }
dot3adAggPort OBJECT IDENTIFIER ::= { lagMIBObjects 2 }

---------------------------------------------------------------
--The Tables Last Changed Object
---------------------------------------------------------------

dot3adTablesLastChanged OBJECT-TYPE
    SYNTAX      TimeTicks
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object indicates the time of the
         most recent change to the dot3adAggTable,
         dot3adAggPortListTable, or
         dot3adAggPortTable."
    ::= { lagMIBObjects 3 }

---------------------------------------------------------------
--The Aggregator Configuration Table
---------------------------------------------------------------

dot3adAggTable OBJECT-TYPE
    SYNTAX SEQUENCE OF Dot3adAggEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table that contains information about every
         Aggregator that is associated with this System."
    REFERENCE
        "IEEE 802.3 Section 30.7.1"
    ::= { dot3adAgg 1 }

dot3adAggEntry OBJECT-TYPE
    SYNTAX      Dot3adAggEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A list of the Aggregator parameters. This is indexed
         by the ifIndex of the Aggregator."
    INDEX { dot3adAggIndex }
    ::= { dot3adAggTable 1 }

Dot3adAggEntry ::= SEQUENCE {
    dot3adAggIndex                  InterfaceIndex,
    dot3adAggMACAddress             MacAddress,
    dot3adAggActorSystemPriority    INTEGER,
    dot3adAggActorSystemID          MacAddress,
    dot3adAggAggregateOrIndividual  TruthValue,
    dot3adAggActorAdminKey          LacpKey,
    dot3adAggActorOperKey           LacpKey,
    dot3adAggPartnerSystemID        MacAddress,
    dot3adAggPartnerSystemPriority  INTEGER,
    dot3adAggPartnerOperKey         LacpKey,
    dot3adAggCollectorMaxDelay      INTEGER
}

dot3adAggIndex OBJECT-TYPE
    SYNTAX      InterfaceIndex
--  MAX-ACCESS  not-accessible
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The unique identifier allocated to this Aggregator by the local System.
         This attribute identifies an Aggregator instance among the subordinate
         managed objects of the containing object. This value is read-only."
    REFERENCE
        "IEEE 802.3 Section 30.7.1.1.1"
    ::= { dot3adAggEntry 1 }

dot3adAggMACAddress OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "A 6-octet read-only value carrying the individual
         MAC address assigned to the Aggregator."
    REFERENCE
        "IEEE 802.3 Section 30.7.1.1.9"
    ::= { dot3adAggEntry 2 }

dot3adAggActorSystemPriority OBJECT-TYPE
    SYNTAX      INTEGER (1.. 65535)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "A 2-octet read-write value indicating the priority value
         associated with the Actors System ID."
    REFERENCE
        "IEEE 802.3 Section 30.7.1.1.5"
    ::= { dot3adAggEntry 3 }

dot3adAggActorSystemID OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "A 6-octet read-write MAC address value used as a unique
         identifier for the System that contains this Aggregator.
         NOTE: From the perspective of the Link Aggregation mechanisms
               described in Clause 43, only a single combination of Actor's
               System ID and System Priority are considered, and no
               distinction is made between the values of these parameters
               for an Aggregator and the port(s) that are associated with
               it;, i. e., the protocol is described in terms of the
               operation of aggregation within a single System.
               However, the managed objects provided for the Aggregator and
               the port both allow management of these parameters. The result
               of this is to permit a single piece of equipment to be
               configured by management to contain more than one System
               from the point of view of the operation of Link Aggregation.
               This may be of particular use in the configuration of equipment
               that has limited aggregation capability (see 43.6)."
    REFERENCE
        "IEEE 802.3 Section 30.7.1.1.4"
    ::= { dot3adAggEntry 4 }

dot3adAggAggregateOrIndividual OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "A read-only Boolean value indicating whether the
         Aggregator represents an Aggregate (' TRUE') or
         an Individual link (' FALSE')."
    REFERENCE
        "IEEE 802.3 Section 30.7.1.1.6"
    ::= { dot3adAggEntry 5 }

dot3adAggActorAdminKey OBJECT-TYPE
    SYNTAX      LacpKey
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The current administrative value of the Key for the Aggregator.
         The administrative Key value may differ from the operational
         Key value for the reasons discussed in 43.6.2. This is a 16-bit,
         read-write value. The meaning of particular Key values
         is of local significance."
    REFERENCE
        "IEEE 802.3 Section 30.7.1.1.7"
    ::= { dot3adAggEntry 6 }

dot3adAggActorOperKey OBJECT-TYPE
    SYNTAX      LacpKey
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The current operational value of the Key for the Aggregator.
         The administrative Key value may differ from the operational
         Key value for the reasons discussed in 43.6.2.
         This is a 16-bit, read-only value. The meaning of particular Key
         values is of local significance."
    REFERENCE
        "IEEE 802.3 Section 30.7.1.1.8"
    ::= { dot3adAggEntry 7 }

dot3adAggPartnerSystemID OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "A 6-octet read-only MAC address value consisting
         of the unique identifier for the current protocol Partner of
         this Aggregator. A value of zero indicates that there is no
         known Partner. If the aggregation is manually configured, this
         System ID value will be a value assigned by the local System."
    REFERENCE
        "IEEE 802.3 Section 30.7.1.1.10"
    ::= { dot3adAggEntry 8 }

dot3adAggPartnerSystemPriority OBJECT-TYPE
    SYNTAX      INTEGER (0.. 65535)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "A 2-octet read-only value that indicates the priority
         value associated with the Partner's System ID. If the
         aggregation is manually configured, this System Priority value
         will be a value assigned by the local System."
    REFERENCE
    "IEEE 802.3 Section 30.7.1.1.11"
    ::= { dot3adAggEntry 9 }

dot3adAggPartnerOperKey OBJECT-TYPE
    SYNTAX      LacpKey
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The current operational value of the Key for the
         Aggregator's current protocol Partner. This is
         a 16-bit, read-only value. If the aggregation is manually
         configured, this Key value will be a value assigned by the
         local System."
    REFERENCE
        "IEEE 802.3 Section 30.7.1.1.12"
    ::= { dot3adAggEntry 10 }

dot3adAggCollectorMaxDelay OBJECT-TYPE
    SYNTAX      INTEGER (0.. 65535)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The value of this 16-bit read-write attribute defines
         the maximum delay, in tens of microseconds, that
         may be imposed by the Frame Collector between
         receiving a frame from an Aggregator Parser, and
         either delivering the frame to its MAC Client or discarding
         the frame (see 43.2.3.1.1)."
    REFERENCE
        "IEEE 802.3 Section 30.7.1.1.31"
    ::= { dot3adAggEntry 11 }

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

dot3adAggPortListTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF Dot3adAggPortListEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table that contains a list of all the ports
         associated with each Aggregator."
    REFERENCE
        "IEEE 802.3 Section 30.7.1.1.30"
    ::= { dot3adAgg 2 }

dot3adAggPortListEntry OBJECT-TYPE
    SYNTAX      Dot3adAggPortListEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A list of the ports associated with a given Aggregator.
         This is indexed by the ifIndex of the Aggregator."
    INDEX { dot3adAggIndex }
    ::= { dot3adAggPortListTable 1 }

Dot3adAggPortListEntry ::= SEQUENCE {
    dot3adAggPortListPorts  PortList
}

dot3adAggPortListPorts OBJECT-TYPE
    SYNTAX      PortList
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The complete set of ports currently associated with
         this Aggregator. Each bit set in this list represents
         an Actor Port member of this Link Aggregation."
    REFERENCE
        "IEEE 802.3 Section 30.7.1.1.30"
    ::= { dot3adAggPortListEntry 1 }

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

dot3adAggPortTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF Dot3adAggPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table that contains Link Aggregation Control
         configuration information about every
         Aggregation Port associated with this device.
         A row appears in this table for each physical port."
    REFERENCE
        "IEEE 802.3 Section 30.7.2"
    ::= { dot3adAggPort 1 }

dot3adAggPortEntry OBJECT-TYPE
    SYNTAX      Dot3adAggPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A list of Link Aggregation Control configuration
        parameters for each Aggregation Port on this device."
    INDEX { dot3adAggPortIndex }
    ::= { dot3adAggPortTable 1 }

Dot3adAggPortEntry ::= SEQUENCE {
    dot3adAggPortIndex                      InterfaceIndex,
    dot3adAggPortActorSystemPriority        INTEGER,
    dot3adAggPortActorSystemID              MacAddress,
    dot3adAggPortActorAdminKey              LacpKey,
    dot3adAggPortActorOperKey               LacpKey,
    dot3adAggPortPartnerAdminSystemPriority INTEGER,
    dot3adAggPortPartnerOperSystemPriority  INTEGER,
    dot3adAggPortPartnerAdminSystemID       MacAddress,
    dot3adAggPortPartnerOperSystemID        MacAddress,
    dot3adAggPortPartnerAdminKey            LacpKey,
    dot3adAggPortPartnerOperKey             LacpKey,
    dot3adAggPortSelectedAggID              InterfaceIndex,
    dot3adAggPortAttachedAggID              InterfaceIndex,
    dot3adAggPortActorPort                  INTEGER,
    dot3adAggPortActorPortPriority          INTEGER,
    dot3adAggPortPartnerAdminPort           INTEGER,
    dot3adAggPortPartnerOperPort            INTEGER,
    dot3adAggPortPartnerAdminPortPriority   INTEGER,
    dot3adAggPortPartnerOperPortPriority    INTEGER,
    dot3adAggPortActorAdminState            LacpState,
    dot3adAggPortActorOperState             LacpState,
    dot3adAggPortPartnerAdminState          LacpState,
    dot3adAggPortPartnerOperState           LacpState,
    dot3adAggPortAggregateOrIndividual      TruthValue
}

dot3adAggPortIndex OBJECT-TYPE
    SYNTAX      InterfaceIndex
--  MAX-ACCESS  not-accessible
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The ifIndex of the port"
    REFERENCE
        "IEEE 802.3 Section 30.7.2.1.1"
    ::= { dot3adAggPortEntry 1 }

dot3adAggPortActorSystemPriority OBJECT-TYPE
    SYNTAX      INTEGER (1.. 65535)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "A 2-octet read-write value used to define the priority
         value associated with the Actor's System ID."
    REFERENCE
        "IEEE 802.3 Section 30.7.2.1.2"
    ::= { dot3adAggPortEntry 2 }

dot3adAggPortActorSystemID OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "A 6-octet read-only MAC address value that defines
         the value of the System ID for the System that contains this
         Aggregation Port."
    REFERENCE
        "IEEE 802.3 Section 30.7.2.1.3"
    ::= { dot3adAggPortEntry 3 }

dot3adAggPortActorAdminKey OBJECT-TYPE
    SYNTAX      LacpKey
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The current administrative value of the Key for the
         Aggregation Port. This is a 16-bit, read-write value.
         The meaning of particular Key values is of local significance."
    REFERENCE
        "IEEE 802.3 Section 30.7.2.1.4"
    ::= { dot3adAggPortEntry 4 }

dot3adAggPortActorOperKey OBJECT-TYPE
    SYNTAX      LacpKey
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The current operational value of the Key for the
         Aggregation Port. This is a 16-bit, read-only value.
         The meaning of particular Key values is of local significance."
    REFERENCE
        "IEEE 802.3 Section 30.7.2.1.5"
    ::= { dot3adAggPortEntry 5 }

dot3adAggPortPartnerAdminSystemPriority OBJECT-TYPE
    SYNTAX      INTEGER (0.. 65535)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "A 2-octet read-write value used to define the administrative
         value of priority associated with the Partner's System ID. The
         assigned value is used, along with the value of
         aAggPortPartnerAdminSystemID, aAggPortPartnerAdminKey,
         aAggPortPartnerAdminPort, and aAggPortPartnerAdminPortPriority,
         in order to achieve manually configured aggregation."
    REFERENCE
        "IEEE 802.3 Section 30.7.2.1.6"
    ::= { dot3adAggPortEntry 6 }

dot3adAggPortPartnerOperSystemPriority OBJECT-TYPE
    SYNTAX      INTEGER (0.. 65535)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "A 2-octet read-only value indicating the operational value
         of priority associated with the Partner's System ID. The
         value of this attribute may contain the manually configured value
         carried in aAggPortPartnerAdminSystemPriority
         if there is no protocol Partner."
    REFERENCE
        "IEEE 802.3 Section 30.7.2.1.7"
    ::= { dot3adAggPortEntry 7 }

dot3adAggPortPartnerAdminSystemID OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "A 6-octet read-write MACAddress value representing
         the administrative value of the Aggregation Port's protocol
         Partner's System ID. The assigned value is used, along with
         the value of aAggPortPartnerAdminSystemPriority,
         aAggPortPartnerAdminKey, aAggPortPartnerAdminPort,
         and aAggPortPartnerAdminPortPriority, in order to
         achieve manually configured aggregation."
    REFERENCE
        "IEEE 802.3 Section 30.7.2.1.8"
    ::= { dot3adAggPortEntry 8 }

dot3adAggPortPartnerOperSystemID OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "A 6-octet read-only MACAddress value representin
         the current value of the Aggregation Port's protocol Partner's
         System ID. A value of zero indicates that there is no known
         protocol Partner. The value of this attribute may contain the
         manually configured value carried in
         aAggPortPartnerAdminSystemID if there is no protocol Partner."
    REFERENCE
        "IEEE 802.3 Section 30.7.2.1.9"
    ::= { dot3adAggPortEntry 9 }

dot3adAggPortPartnerAdminKey OBJECT-TYPE
    SYNTAX      LacpKey
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The current administrative value of the Key for the
         protocol Partner. This is a 16-bit, read-write value.
         The assigned value is used, along with the value of
         aAggPortPartnerAdminSystemPriority, aAggPortPartnerAdminSystemID,
         aAggPortPartnerAdminPort, and aAggPortPartnerAdminPortPriority,
         in order to achieve manually configured aggregation."
    REFERENCE
        "IEEE 802.3 Section 30.7.2.1.10"
    ::= { dot3adAggPortEntry 10 }

dot3adAggPortPartnerOperKey OBJECT-TYPE
    SYNTAX      LacpKey
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The current operational value of the Key for the
         protocol Partner. The value of this attribute may contain
         the manually configured value carried in
         aAggPortPartnerAdminKey if there is no protocol Partner.
         This is a 16-bit, read-only value."
    REFERENCE
        "IEEE 802.3 Section 30.7.2.1.11"
    ::= { dot3adAggPortEntry 11 }

dot3adAggPortSelectedAggID OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The identifier value of the Aggregator that this Aggregation
         Port has currently selected. Zero indicates that the Aggregation
         Port has not selected an Aggregator, either because it is in the
         process of detaching from an Aggregator or because there is no
         suitable Aggregator available for it to select. This value is read-only."
    REFERENCE
        "IEEE 802.3 Section 30.7.2.1.12"
    ::= { dot3adAggPortEntry 12 }

dot3adAggPortAttachedAggID OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The identifier value of the Aggregator that this Aggregation
         Port is currently attached to. Zero indicates that the Aggregation
         Port is not currently attached to an Aggregator. This value is read-only."
    REFERENCE
        "IEEE 802.3 Section 30.7.2.1.13"
    ::= { dot3adAggPortEntry 13 }

dot3adAggPortActorPort OBJECT-TYPE
    SYNTAX      INTEGER (0.. 65535)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The port number locally assigned to the Aggregation Port.
         The port number is communicated in LACPDUs as the
         Actor_Port. This value is read-only."
    REFERENCE
        "IEEE 802.3 Section 30.7.2.1.14"
    ::= { dot3adAggPortEntry 14 }

dot3adAggPortActorPortPriority OBJECT-TYPE
    SYNTAX      INTEGER (1.. 65535)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The priority value assigned to this Aggregation Port.
         This 16-bit value is read-write."
    REFERENCE
        "IEEE 802.3 Section 30.7.2.1.15"
    ::= { dot3adAggPortEntry 15 }

dot3adAggPortPartnerAdminPort OBJECT-TYPE
    SYNTAX      INTEGER (0.. 65535)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The current administrative value of the port number
         for the protocol Partner. This is a 16-bit, read-write value.
         The assigned value is used, along with the value of
         aAggPortPartnerAdminSystemPriority,
         aAggPortPartnerAdminSystemID, aAggPortPartnerAdminKey,
         and aAggPortPartnerAdminPortPriority,
         in order to achieve manually configured aggregation."
    REFERENCE
        "IEEE 802.3 Section 30.7.2.1.16"
    ::= { dot3adAggPortEntry 16 }

dot3adAggPortPartnerOperPort OBJECT-TYPE
    SYNTAX      INTEGER (0.. 65535)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The operational port number assigned to this Aggregation
         Port by the Aggregation Port's protocol Partner. The value
         of this attribute may contain the manually configured value
         carried in aAggPortPartnerAdminPort if there is no protocol
         Partner. This 16-bit value is read-only."
    REFERENCE
        "IEEE 802.3 Section 30.7.2.1.17"
    ::= { dot3adAggPortEntry 17 }

dot3adAggPortPartnerAdminPortPriority OBJECT-TYPE
    SYNTAX      INTEGER (0.. 65535)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The current administrative value of the port priority
         for the protocol Partner. This is a 16-bit, read-write value.
         The assigned value is used, along with the value of
         aAggPortPartnerAdminSystemPriority, aAggPortPartnerAdminSystemID,
         aAggPortPartnerAdminKey, and aAggPortPartnerAdminPort,
         in order to achieve manually configured aggregation."
    REFERENCE
        "IEEE 802.3 Section 30.7.2.1.18"
    ::= { dot3adAggPortEntry 18 }

dot3adAggPortPartnerOperPortPriority OBJECT-TYPE
    SYNTAX      INTEGER (0.. 65535)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The priority value assigned to this Aggregation Port
         by the Partner. The value of this attribute may contain the
         manually configured value carried in
         aAggPortPartnerAdminPortPriority if there is no
         protocol Partner. This 16-bit value is read-only."
    REFERENCE
        "IEEE 802.3 Section 30.7.2.1.19"
    ::= { dot3adAggPortEntry 19 }

dot3adAggPortActorAdminState OBJECT-TYPE
    SYNTAX      LacpState
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "A string of 8 bits, corresponding to the administrative values
         of Actor_ State (43.4.2) as transmitted by the Actor in LACPDUs.
         The first bit corresponds to bit 0 of Actor_ State (LACP_ Activity),
         the second bit corresponds to bit 1 (LACP_ Timeout), the third bit
         corresponds to bit 2 (Aggregation), the fourth bit corresponds to
         bit 3 (Synchronization), the fifth bit corresponds to bit 4
         (Collecting), the sixth bit corresponds to bit 5 (Distributing),
         the seventh bit corresponds to bit 6 (Defaulted), and the eigth
         bit corresponds to bit 7 (Expired). These values allow
         administrative control over the values of LACP_ Activity,
         LACP_ Timeout and Aggregation. This attribute value is read-write."
    REFERENCE
        "IEEE 802.3 Section 30.7.2.1.20"
    ::= { dot3adAggPortEntry 20 }

dot3adAggPortActorOperState OBJECT-TYPE
    SYNTAX      LacpState
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "A string of 8 bits, corresponding to the current
         operational values of Actor_ State as transmitted by the
         Actor in LACPDUs. The bit allocations are as defined in
         30.7.2.1.20. This attribute value is read-only."
    REFERENCE
        "IEEE 802.3 Section 30.7.2.1.21"
    ::= { dot3adAggPortEntry 21 }

dot3adAggPortPartnerAdminState OBJECT-TYPE
    SYNTAX      LacpState
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "A string of 8 bits, corresponding to the current administrative
         value of Actor_ State for the protocol Partner. The bit
         allocations are as defined in 30.7.2.1.20. This attribute value is
         read-write. The assigned value is used in order to achieve
         manually configured aggregation."
    REFERENCE
        "IEEE 802.3 Section 30.7.2.1.22"
    ::= { dot3adAggPortEntry 22 }

dot3adAggPortPartnerOperState OBJECT-TYPE
    SYNTAX      LacpState
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "A string of 8 bits, corresponding to the current values of
         Actor_ State in the most recently received LACPDU transmitted
         by the protocol Partner. The bit allocations are as defined in
         30.7.2.1.20. In the absence of an active protocol Partner, this
         value may reflect the manually configured value
         aAggPortPartnerAdminState. This attribute value is read-only."
    REFERENCE
        "IEEE 802.3 Section 30.7.2.1.23"
    ::= { dot3adAggPortEntry 23 }

dot3adAggPortAggregateOrIndividual OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "A read-only Boolean value indicating whether the
         Aggregation Port is able to Aggregate (' TRUE') or is
         only able to operate as an Individual link (' FALSE')."
    REFERENCE
        "IEEE 802.3 Section 30.7.2.1.24"
    ::= { dot3adAggPortEntry 24 }


---------------------------------------------------------------
--LACP Statistics Table
---------------------------------------------------------------

dot3adAggPortStatsTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF Dot3adAggPortStatsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table that contains Link Aggregation information
         about every port that is associated with this device.
         A row appears in this table for each physical port."
    REFERENCE
        "IEEE 802.3 Section 30.7.3"
    ::= { dot3adAggPort 2 }

dot3adAggPortStatsEntry OBJECT-TYPE
    SYNTAX      Dot3adAggPortStatsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A list of Link Aggregation Control Protocol statistics
         for each port on this device."
    INDEX { dot3adAggPortIndex }
    ::= { dot3adAggPortStatsTable 1 }

Dot3adAggPortStatsEntry ::= SEQUENCE {
    dot3adAggPortStatsLACPDUsRx             Counter32,
    dot3adAggPortStatsMarkerPDUsRx          Counter32,
    dot3adAggPortStatsMarkerResponsePDUsRx  Counter32,
    dot3adAggPortStatsUnknownRx             Counter32,
    dot3adAggPortStatsIllegalRx             Counter32,
    dot3adAggPortStatsLACPDUsTx             Counter32,
    dot3adAggPortStatsMarkerPDUsTx          Counter32,
    dot3adAggPortStatsMarkerResponsePDUsTx  Counter32
}

dot3adAggPortStatsLACPDUsRx OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
        "The number of valid LACPDUs received on this
         Aggregation Port. This value is read-only."
    REFERENCE
        "IEEE 802.3 Section 30.7.3.1.2"
    ::= { dot3adAggPortStatsEntry 1 }

dot3adAggPortStatsMarkerPDUsRx OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of valid Marker PDUs received on this
         Aggregation Port. This value is read-only."
    REFERENCE
        "IEEE 802.3 Section 30.7.3.1.3"
    ::= { dot3adAggPortStatsEntry 2 }

dot3adAggPortStatsMarkerResponsePDUsRx OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of valid Marker Response PDUs received on this
         Aggregation Port. This value is read-only."
    REFERENCE
        "IEEE 802.3 Section 30.7.3.1.4"
    ::= { dot3adAggPortStatsEntry 3 }

dot3adAggPortStatsUnknownRx OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of frames received that either:
         - carry the Slow Protocols Ethernet Type value (43B. 4),
         but contain an unknown PDU, or:
         -are addressed to the Slow Protocols group MAC
         Address (43B. 3), but do not carry the Slow Protocols Ethernet Type.
         This value is read-only."
    REFERENCE
        "IEEE 802.3 Section 30.7.3.1.5"
    ::= { dot3adAggPortStatsEntry 4 }

dot3adAggPortStatsIllegalRx OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of frames received that carry the Slow
         Protocols Ethernet Type value (43B. 4), but contain a badly formed
         PDU or an illegal value of Protocol Subtype (43B. 4).
         This value is read-only."
    REFERENCE
        "IEEE 802.3 Section 30.7.3.1.6"
    ::= { dot3adAggPortStatsEntry 5 }

dot3adAggPortStatsLACPDUsTx OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of LACPDUs transmitted on this
         Aggregation Port. This value is read-only."
    REFERENCE
        "IEEE 802.3 Section 30.7.3.1.7"
    ::= { dot3adAggPortStatsEntry 6 }

dot3adAggPortStatsMarkerPDUsTx OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of Marker PDUs transmitted on this
         Aggregation Port. This value is read-only."
    REFERENCE
        "IEEE 802.3 Section 30.7.3.1.8"
    ::= { dot3adAggPortStatsEntry 7 }

dot3adAggPortStatsMarkerResponsePDUsTx OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of Marker Response PDUs transmitted
         on this Aggregation Port. This value is read-only."
    REFERENCE
        "IEEE 802.3 Section 30.7.3.1.9"
    ::= { dot3adAggPortStatsEntry 8 }


---------------------------------------------------------------
--LACP Debug Table
---------------------------------------------------------------

dot3adAggPortDebugTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF Dot3adAggPortDebugEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table that contains Link Aggregation debug
         information about every port that is associated with
         this device. A row appears in this table for each
         physical port."
    REFERENCE
        "IEEE 802.3 Section 30.7.4"
    ::= { dot3adAggPort 3 }

dot3adAggPortDebugEntry OBJECT-TYPE
    SYNTAX      Dot3adAggPortDebugEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A list of the debug parameters for a port."
    INDEX { dot3adAggPortIndex }
    ::= { dot3adAggPortDebugTable 1 }

Dot3adAggPortDebugEntry ::= SEQUENCE {
    dot3adAggPortDebugRxState                       INTEGER,
    dot3adAggPortDebugLastRxTime                    TimeTicks,
    dot3adAggPortDebugMuxState                      INTEGER,
    dot3adAggPortDebugMuxReason                     DisplayString,
    dot3adAggPortDebugActorChurnState               ChurnState,
    dot3adAggPortDebugPartnerChurnState             ChurnState,
    dot3adAggPortDebugActorChurnCount               Counter32,
    dot3adAggPortDebugPartnerChurnCount             Counter32,
    dot3adAggPortDebugActorSyncTransitionCount      Counter32,
    dot3adAggPortDebugPartnerSyncTransitionCount    Counter32,
    dot3adAggPortDebugActorChangeCount              Counter32,
    dot3adAggPortDebugPartnerChangeCount            Counter32
}

dot3adAggPortDebugRxState OBJECT-TYPE
SYNTAX INTEGER {
current( 1),
expired( 2),
defaulted( 3),
initialize( 4),
lacpDisabled( 5),
portDisabled( 6)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
        "This attribute holds the value 'current' if the Receive
         state machine for the Aggregation Port is in the
         CURRENT state, 'expired' if the Receive state machine
         is in the EXPIRED state, 'defaulted' if the Receive state
         machine is in the DEFAULTED state, 'initialize' if the
         Receive state machine is in the INITIALIZE state,
         'lacpDisabled' if the Receive state machine is in the
         LACP_ DISABLED state, or 'portDisabled' if the Receive
         state machine is in the PORT_ DISABLED state.
         This value is read-only."
    REFERENCE
        "IEEE 802.3 Section 30.7.4.1.2"
    ::= { dot3adAggPortDebugEntry 1 }

dot3adAggPortDebugLastRxTime OBJECT-TYPE
    SYNTAX      TimeTicks
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of aTimeSinceSystemReset (F. 2.1) when
         the last LACPDU was received by this Aggregation Port.
         This value is read-only."
    REFERENCE
        "IEEE 802.3 Section 30.7.4.1.3"
    ::= { dot3adAggPortDebugEntry 2 }

dot3adAggPortDebugMuxState OBJECT-TYPE
    SYNTAX      INTEGER {
        detached(1),
        waiting(2),
        attached(3),
        collecting(4),
        distributing(5),
        collectingDistributing(6)
    }
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "This attribute holds the value 'detached' if the Mux
         state machine (43.4.14) for the Aggregation Port is
         in the DETACHED state, 'waiting' if the Mux state machine
         is in the WAITING state, 'attached' if the Mux state
         machine for the Aggregation Port is in the ATTACHED
         state, 'collecting' if the Mux state machine for the
         Aggregation Port is in the COLLECTING state, 'distributing'
         if the Mux state machine for the Aggregation Port is
         in the DISTRIBUTING state, and 'collecting_ distributing'
         if the Mux state machine for the Aggregation Port is in
         the COLLECTING_ DISTRIBUTING state.
         This value is read-only."
    REFERENCE
        "IEEE 802.3 Section 30.7.4.1.4"
    ::= { dot3adAggPortDebugEntry 3 }

dot3adAggPortDebugMuxReason OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "A human-readable text string indicating the reason
         for the most recent change of Mux machine state.
         This value is read-only."
    REFERENCE
        "IEEE 802.3 Section 30.7.4.1.5"
    ::= { dot3adAggPortDebugEntry 4 }

dot3adAggPortDebugActorChurnState OBJECT-TYPE
    SYNTAX      ChurnState
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The state of the Actor Churn detection machine
         (43.4.17) for the Aggregation Port. A value of 'noChurn'
         indicates that the state machine is in either the
         NO_ ACTOR_ CHURN or the ACTOR_ CHURN_ MONITOR
         state, and 'churn' indicates that the state machine is in the
         ACTOR_ CHURN state. This value is read-only."
    REFERENCE
        "IEEE 802.3 Section 30.7.4.1.6"
    ::= { dot3adAggPortDebugEntry 5 }

dot3adAggPortDebugPartnerChurnState OBJECT-TYPE
    SYNTAX      ChurnState
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The state of the Partner Churn detection machine
         (43.4.17) for the Aggregation Port. A value of 'noChurn'
         indicates that the state machine is in either the
         NO_ PARTNER_ CHURN or the PARTNER_ CHURN_ MONITOR
         state, and 'churn' indicates that the state machine is
         in the PARTNER_ CHURN state.
         This value is read-only."
    REFERENCE
        "IEEE 802.3 Section 30.7.4.1.7"
    ::= { dot3adAggPortDebugEntry 6 }

dot3adAggPortDebugActorChurnCount OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Count of the number of times the Actor Churn state
         machine has entered the ACTOR_ CHURN state.
         This value is read-only."
    REFERENCE
        "IEEE 802.3 Section 30.7.4.1.8"
    ::= { dot3adAggPortDebugEntry 7 }

dot3adAggPortDebugPartnerChurnCount OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Count of the number of times the Partner Churn
         state machine has entered the PARTNER_ CHURN state.
         This value is read-only."
    REFERENCE
        "IEEE 802.3 Section 30.7.4.1.9"
    ::= { dot3adAggPortDebugEntry 8 }

dot3adAggPortDebugActorSyncTransitionCount OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Count of the number of times the Actor's Mux state
         machine (43.4.15) has entered the IN_ SYNC state.
         This value is read-only."
    REFERENCE
        "IEEE 802.3 Section 30.7.4.1.10"
    ::= { dot3adAggPortDebugEntry 9 }

dot3adAggPortDebugPartnerSyncTransitionCount OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Count of the number of times the Partner's Mux
         state machine (43.4.15) has entered the IN_ SYNC state.
         This value is read-only."
    REFERENCE
        "IEEE 802.3 Section 30.7.4.1.11"
    ::= { dot3adAggPortDebugEntry 10 }

dot3adAggPortDebugActorChangeCount OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Count of the number of times the Actor's perception of
         the LAG ID for this Aggregation Port has changed.
         This value is read-only."
    REFERENCE
        "IEEE 802.3 Section 30.7.4.1.12"
    ::= { dot3adAggPortDebugEntry 11 }

dot3adAggPortDebugPartnerChangeCount OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Count of the number of times the Partner's perception of
         the LAG ID (see 43.3.6.1) for this Aggregation Port has changed.
         This value is read-only."
    REFERENCE
        "IEEE 802.3 Section 30.7.4.1.13"
    ::= { dot3adAggPortDebugEntry 12 }


---------------------------------------------------------------
--IEEE 802.3ad MIB -Conformance Information
---------------------------------------------------------------

dot3adAggConformance OBJECT IDENTIFIER ::= { lagMIB 2 }


dot3adAggGroups OBJECT IDENTIFIER ::= { dot3adAggConformance 1 }


dot3adAggCompliances OBJECT IDENTIFIER ::= { dot3adAggConformance 2 }


---------------------------------------------------------------
--units of conformance
---------------------------------------------------------------

dot3adAggGroup OBJECT-GROUP
    OBJECTS {
        dot3adAggActorSystemID,
        dot3adAggActorSystemPriority,
        dot3adAggAggregateOrIndividual,
        dot3adAggActorAdminKey,
        dot3adAggMACAddress,
        dot3adAggActorOperKey,
        dot3adAggPartnerSystemID,
        dot3adAggPartnerSystemPriority,
        dot3adAggPartnerOperKey,
        dot3adAggCollectorMaxDelay
    }
    STATUS  current
    DESCRIPTION
        "A collection of objects providing information about an
         aggregation."
    ::= { dot3adAggGroups 1 }

dot3adAggPortListGroup OBJECT-GROUP
    OBJECTS {
        dot3adAggPortListPorts
    }
    STATUS  current
    DESCRIPTION
        "A collection of objects providing information about every
         port in an aggregation."
    ::= { dot3adAggGroups 2 }

dot3adAggPortGroup OBJECT-GROUP
    OBJECTS {
        dot3adAggPortActorSystemPriority,
        dot3adAggPortActorSystemID,
        dot3adAggPortActorAdminKey,
        dot3adAggPortActorOperKey,
        dot3adAggPortPartnerAdminSystemPriority,
        dot3adAggPortPartnerOperSystemPriority,
        dot3adAggPortPartnerAdminSystemID,
        dot3adAggPortPartnerOperSystemID,
        dot3adAggPortPartnerAdminKey,
        dot3adAggPortPartnerOperKey,
        dot3adAggPortSelectedAggID,
        dot3adAggPortAttachedAggID,
        dot3adAggPortActorPort,
        dot3adAggPortActorPortPriority,
        dot3adAggPortPartnerAdminPort,
        dot3adAggPortPartnerOperPort,
        dot3adAggPortPartnerAdminPortPriority,
        dot3adAggPortPartnerOperPortPriority,
        dot3adAggPortActorAdminState,
        dot3adAggPortActorOperState,
        dot3adAggPortPartnerAdminState,
        dot3adAggPortPartnerOperState,
        dot3adAggPortAggregateOrIndividual
    }
    STATUS  current
    DESCRIPTION
        "A collection of objects providing information about every
         port in an aggregation."
    ::= { dot3adAggGroups 3 }

dot3adAggPortStatsGroup OBJECT-GROUP
    OBJECTS {
        dot3adAggPortStatsLACPDUsRx,
        dot3adAggPortStatsMarkerPDUsRx,
        dot3adAggPortStatsMarkerResponsePDUsRx,
        dot3adAggPortStatsUnknownRx,
        dot3adAggPortStatsIllegalRx,
        dot3adAggPortStatsLACPDUsTx,
        dot3adAggPortStatsMarkerPDUsTx,
        dot3adAggPortStatsMarkerResponsePDUsTx
    }
    STATUS  current
    DESCRIPTION
        "A collection of objects providing information about every
         port in an aggregation."
    ::= { dot3adAggGroups 4 }

dot3adAggPortDebugGroup OBJECT-GROUP
    OBJECTS {
        dot3adAggPortDebugRxState,
        dot3adAggPortDebugLastRxTime,
        dot3adAggPortDebugMuxState,
        dot3adAggPortDebugMuxReason,
        dot3adAggPortDebugActorChurnState,
        dot3adAggPortDebugPartnerChurnState,
        dot3adAggPortDebugActorChurnCount,
        dot3adAggPortDebugPartnerChurnCount,
        dot3adAggPortDebugActorSyncTransitionCount,
        dot3adAggPortDebugPartnerSyncTransitionCount,
        dot3adAggPortDebugActorChangeCount,
        dot3adAggPortDebugPartnerChangeCount
    }
    STATUS  current
    DESCRIPTION
        "A collection of objects providing debug information about every
         every aggregated port."
    ::= { dot3adAggGroups 5 }

dot3adTablesLastChangedGroup OBJECT-GROUP
    OBJECTS {
        dot3adTablesLastChanged
    }
    STATUS  current
    DESCRIPTION
        "A collection of objects providing information about the time
         of changes to the configuration of aggregations and their ports."
    ::= { dot3adAggGroups 6 }

---------------------------------------------------------------
--compliance statements
---------------------------------------------------------------

dot3adAggCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
        "The compliance statement for device support of
         Link Aggregation."


MODULE MANDATORY-GROUPS {
    dot3adAggGroup,
    dot3adAggPortGroup,
    dot3adTablesLastChangedGroup
}


GROUP dot3adAggPortListGroup
    DESCRIPTION
        "This group is optional."


GROUP dot3adAggPortStatsGroup
    DESCRIPTION
        "This group is optional."

GROUP dot3adAggPortDebugGroup
    DESCRIPTION
        "This group is optional."

::= { dot3adAggCompliances 1 }


END
