IEEE8023-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."
    ::= { 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)
    }

    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
    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 (0..65535)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "A 2-octet read-write value indicating the priority value
        associated with the Actor's 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
    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 (0..255)
    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-write
    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..255)
    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..255)
    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 representing
        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 (0..255)
    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..255)
    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..255)
    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."
    ::= { dot3adAggGroup 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
