LAG-MIB DEFINITIONS ::= BEGIN

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

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


lagMIB MODULE-IDENTITY
  LAST-UPDATED "9911220000Z"
  ORGANIZATION "Netgear Inc"
  CONTACT-INFO ""
  DESCRIPTION
   "The Link Aggregation module for managing IEEE 802.3ad."
   ::= { iso(1) member-body(2) us(840) dot3(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),
       synchronization(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)
  }

PortList ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "Each octet within this value specifies a set of eight
        ports, with the first octet specifying ports 1 through
        8, the second octet specifying ports 9 through 16, etc.
        Within each octet, the most significant bit represents
        the lowest numbered port, and the least significant bit
        represents the highest numbered port.  Thus, each port
        of the bridge is represented by a single bit within the
        value of this object.  If that bit has a value of '1'
        then that port is included in the set of ports; the port
        is not included if its bit has a value of '0'."
    SYNTAX      OCTET STRING (SIZE(0..255))


-- -------------------------------------------------------------

-- -------------------------------------------------------------
-- 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 Subclause 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 Subclause 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 Subclause 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 Subclause 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 Subclause 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 Subclause 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 Subclause 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 Subclause 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 Subclause 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 Subclause 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 Subclause 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 Subclause 30.7.1.1.32"
::= { 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 Subclause 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 Subclause 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 Subclause 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 Subclause 30.7.2.1.1"
::= { dot3adAggPortEntry 1 }

dot3adAggPortActorSystemPriority OBJECT-TYPE
  SYNTAX INTEGER (0..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 Subclause 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 Subclause 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 Subclause 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 Subclause 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 Subclause 30.7.2.1.7"
::= { 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 Subclause 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 Subclause 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 Subclause 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 Subclause 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 Subclause 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 Subclause 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 Subclause 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 Subclause 30.7.2.1.14"
::= { dot3adAggPortEntry 14 }

dot3adAggPortActorPortPriority OBJECT-TYPE
  SYNTAX INTEGER (0..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 Subclause 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 Subclause 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 Subclause 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 Subclause 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 Subclause 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 eighth
    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 Subclause 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 Subclause 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 Subclause 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 Subclause 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 Subclause 30.7.1.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 Subclause 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 Subclause 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 Subclause 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 Subclause 30.7.3.1.4"
::= { dot3adAggPortStatsEntry 3 }

dot3adAggPortStatsUnknownRx OBJECT-TYPE
  SYNTAX Counter32
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION
   "The number of frames recei ed 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 Subclause 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 Subclause 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 Subclause 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 Subclause 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 Subclause 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 Subclause 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 Subclause 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 Subclause 30.7.4.1.3"
::= { dot3adAggPortDebugEntry 2 }

dot3adAggPortDebugMuxState OBJECT-TYPE
  SYNTAX INTEGER {
       detached(1),
       waiting(2),
       attached(3),
       collecting(4),
       distributing(5),
       collecting-distributing(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 Subclause 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 Subclause 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 Subclause 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 Subclause 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 Subclause 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 Subclause 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 Subclause 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 Subclause 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 Subclause 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 Subclause 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 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
