-- *****************************************************************
-- LACP-MIB:  Cisco private MIB
-- ****************************************************************

CIE1000-LACP-MIB DEFINITIONS ::= BEGIN

IMPORTS
    NOTIFICATION-GROUP, MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF
    NOTIFICATION-TYPE, MODULE-IDENTITY, OBJECT-TYPE FROM SNMPv2-SMI
    TEXTUAL-CONVENTION FROM SNMPv2-TC
    cie1000SwitchMgmt FROM CISCO-IE1000-MIB
    CIE1000InterfaceIndex FROM CIE1000-TC
    CIE1000PortList FROM CIE1000-TC
    CIE1000Unsigned16 FROM CIE1000-TC
    CIE1000Unsigned8 FROM CIE1000-TC
    Counter64 FROM SNMPv2-SMI
    Unsigned32 FROM SNMPv2-SMI
    MacAddress FROM SNMPv2-TC
    TruthValue FROM SNMPv2-TC
    ;

cie1000LacpMib MODULE-IDENTITY
    LAST-UPDATED "201411140000Z"
    ORGANIZATION
        "Cisco Systems, Inc."
    CONTACT-INFO
        "Cisco Systems
	 Customer Service

	 Postal: 170 West Tasman Drive
	 San Jose, CA  95134
	 USA

	 Tel: +1 800 553-NETS

	 E-mail: cs-snmp@cisco.com"
    DESCRIPTION
        "This is a private version of the IEEE802.3ad LAG MIB"
    REVISION    "201411140000Z"
    DESCRIPTION
        "Added a new leaf for LACP system priority"
    REVISION    "201407010000Z"
    DESCRIPTION
        "Initial version"
    ::= { cie1000SwitchMgmt 35 }


cie1000LacpMibObjects OBJECT IDENTIFIER
    ::= { cie1000LacpMib 1 }

cie1000LacpConfig OBJECT IDENTIFIER
    ::= { cie1000LacpMibObjects 2 }

cie1000LacpConfigPortTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CIE1000LacpConfigPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This is a table of the LACP port configurations"
    ::= { cie1000LacpConfig 1 }

cie1000LacpConfigPortEntry OBJECT-TYPE
    SYNTAX      CIE1000LacpConfigPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Each port has a set of parameters"
    INDEX       { cie1000LacpConfigPortInterfaceNo }
    ::= { cie1000LacpConfigPortTable 1 }

CIE1000LacpConfigPortEntry ::= SEQUENCE {
    cie1000LacpConfigPortInterfaceNo               CIE1000InterfaceIndex,
    cie1000LacpConfigPortDot3adAggrActorAdminMode  TruthValue,
    cie1000LacpConfigPortDot3adAggrActorAdminKey   Unsigned32,
    cie1000LacpConfigPortDot3adAggrRole            TruthValue,
    cie1000LacpConfigPortDot3adAggrTimeout         TruthValue,
    cie1000LacpConfigPortDot3adAggrPortPriority    Unsigned32
}

cie1000LacpConfigPortInterfaceNo OBJECT-TYPE
    SYNTAX      CIE1000InterfaceIndex
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "Logical interface number."
    ::= { cie1000LacpConfigPortEntry 1 }

cie1000LacpConfigPortDot3adAggrActorAdminMode OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Control whether port is LACP enabled(1) or disabled(0)."
    ::= { cie1000LacpConfigPortEntry 2 }

cie1000LacpConfigPortDot3adAggrActorAdminKey OBJECT-TYPE
    SYNTAX      Unsigned32
    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"
    ::= { cie1000LacpConfigPortEntry 3 }

cie1000LacpConfigPortDot3adAggrRole OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The Role shows the LACP activity status. The Active(true) will transmit
         LACP packets each second, while Passive(false) will wait for a LACP
         packet from a partner"
    ::= { cie1000LacpConfigPortEntry 4 }

cie1000LacpConfigPortDot3adAggrTimeout OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The Timeout controls the period between BPDU transmissions. Fast(true)
         will transmit LACP packets each second, while Slow(0) will wait for 30
         seconds before sending a LACP packet."
    ::= { cie1000LacpConfigPortEntry 5 }

cie1000LacpConfigPortDot3adAggrPortPriority OBJECT-TYPE
    SYNTAX      Unsigned32 (1..65535)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The Port Priority controls the priority of the port. If the LACP
         partner wants to form a larger group than is supported by this device
         then this parameter will control which ports will be active and which
         ports will be in a backup role. Lower number means greater priority."
    ::= { cie1000LacpConfigPortEntry 6 }

cie1000LacpConfigGlobals OBJECT IDENTIFIER
    ::= { cie1000LacpConfig 2 }

cie1000LacpConfigGlobalsDot3adAggrSystemPriority OBJECT-TYPE
    SYNTAX      Unsigned32 (1..65535)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "LACP system priority is a value."
    ::= { cie1000LacpConfigGlobals 1 }

cie1000LacpStatus OBJECT IDENTIFIER
    ::= { cie1000LacpMibObjects 3 }

cie1000LacpStatusSystemTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CIE1000LacpStatusSystemEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This is a table of the LACP system status"
    ::= { cie1000LacpStatus 1 }

cie1000LacpStatusSystemEntry OBJECT-TYPE
    SYNTAX      CIE1000LacpStatusSystemEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Each lag has a set of parameters"
    INDEX       { cie1000LacpStatusSystemInterfaceNo }
    ::= { cie1000LacpStatusSystemTable 1 }

CIE1000LacpStatusSystemEntry ::= SEQUENCE {
    cie1000LacpStatusSystemInterfaceNo                          CIE1000InterfaceIndex,
    cie1000LacpStatusSystemDot3adAggrID                         CIE1000Unsigned16,
    cie1000LacpStatusSystemDot3adAggrPartnerSystemID            MacAddress,
    cie1000LacpStatusSystemDot3adAggrPartnerOperKey             CIE1000Unsigned16,
    cie1000LacpStatusSystemDot3adAggrPartnerOperSystemPriority  CIE1000Unsigned16,
    cie1000LacpStatusSystemDot3adAggrPartnerStateLastChanged    Unsigned32,
    cie1000LacpStatusSystemDot3adAggrLocalPorts                 CIE1000PortList
}

cie1000LacpStatusSystemInterfaceNo OBJECT-TYPE
    SYNTAX      CIE1000InterfaceIndex
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "Logical interface number."
    ::= { cie1000LacpStatusSystemEntry 1 }

cie1000LacpStatusSystemDot3adAggrID OBJECT-TYPE
    SYNTAX      CIE1000Unsigned16
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The aggregation ID for a particular link aggregation group."
    ::= { cie1000LacpStatusSystemEntry 2 }

cie1000LacpStatusSystemDot3adAggrPartnerSystemID OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The system ID (MAC address) of the aggregation partner."
    ::= { cie1000LacpStatusSystemEntry 3 }

cie1000LacpStatusSystemDot3adAggrPartnerOperKey OBJECT-TYPE
    SYNTAX      CIE1000Unsigned16
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The Key that the partner has assigned to this aggregation ID."
    ::= { cie1000LacpStatusSystemEntry 4 }

cie1000LacpStatusSystemDot3adAggrPartnerOperSystemPriority OBJECT-TYPE
    SYNTAX      CIE1000Unsigned16
    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."
    ::= { cie1000LacpStatusSystemEntry 5 }

cie1000LacpStatusSystemDot3adAggrPartnerStateLastChanged OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The time in second since this aggregation changed"
    ::= { cie1000LacpStatusSystemEntry 6 }

cie1000LacpStatusSystemDot3adAggrLocalPorts OBJECT-TYPE
    SYNTAX      CIE1000PortList
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Local port list"
    ::= { cie1000LacpStatusSystemEntry 7 }

cie1000LacpStatusPortTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CIE1000LacpStatusPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This is a table of the LACP port status"
    ::= { cie1000LacpStatus 2 }

cie1000LacpStatusPortEntry OBJECT-TYPE
    SYNTAX      CIE1000LacpStatusPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Each port has a set of parameters"
    INDEX       { cie1000LacpStatusPortInterfaceNo }
    ::= { cie1000LacpStatusPortTable 1 }

CIE1000LacpStatusPortEntry ::= SEQUENCE {
    cie1000LacpStatusPortInterfaceNo                        CIE1000InterfaceIndex,
    cie1000LacpStatusPortDot3adAggrActorAdminMode           TruthValue,
    cie1000LacpStatusPortDot3adAggrActorAdminKey            CIE1000Unsigned16,
    cie1000LacpStatusPortDot3adAggrPartnerOperPortIndex     CIE1000Unsigned8,
    cie1000LacpStatusPortDot3adAggrPartnerOperPortPriority  CIE1000Unsigned16
}

cie1000LacpStatusPortInterfaceNo OBJECT-TYPE
    SYNTAX      CIE1000InterfaceIndex
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "Logical interface number."
    ::= { cie1000LacpStatusPortEntry 1 }

cie1000LacpStatusPortDot3adAggrActorAdminMode OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Shows the current Admin mode of port, if LACP enabled then returns true
         else returns false."
    ::= { cie1000LacpStatusPortEntry 2 }

cie1000LacpStatusPortDot3adAggrActorAdminKey OBJECT-TYPE
    SYNTAX      CIE1000Unsigned16
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Shows 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"
    ::= { cie1000LacpStatusPortEntry 3 }

cie1000LacpStatusPortDot3adAggrPartnerOperPortIndex OBJECT-TYPE
    SYNTAX      CIE1000Unsigned8
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Shows the port index of the partner port connected to this port."
    ::= { cie1000LacpStatusPortEntry 4 }

cie1000LacpStatusPortDot3adAggrPartnerOperPortPriority OBJECT-TYPE
    SYNTAX      CIE1000Unsigned16
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Shows the port priority of the port partner port connected to this
         port."
    ::= { cie1000LacpStatusPortEntry 5 }

cie1000LacpControl OBJECT IDENTIFIER
    ::= { cie1000LacpMibObjects 4 }

cie1000LacpControlPortStatsClearTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CIE1000LacpControlPortStatsClearEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This is a table to clear LACP port statistics"
    ::= { cie1000LacpControl 1 }

cie1000LacpControlPortStatsClearEntry OBJECT-TYPE
    SYNTAX      CIE1000LacpControlPortStatsClearEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Each port has a set of parameters"
    INDEX       { cie1000LacpControlPortStatsClearInterfaceNo }
    ::= { cie1000LacpControlPortStatsClearTable 1 }

CIE1000LacpControlPortStatsClearEntry ::= SEQUENCE {
    cie1000LacpControlPortStatsClearInterfaceNo          CIE1000InterfaceIndex,
    cie1000LacpControlPortStatsClearPortStatisticsClear  TruthValue
}

cie1000LacpControlPortStatsClearInterfaceNo OBJECT-TYPE
    SYNTAX      CIE1000InterfaceIndex
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "Logical interface number."
    ::= { cie1000LacpControlPortStatsClearEntry 1 }

cie1000LacpControlPortStatsClearPortStatisticsClear OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Set to true to clear the statistics of a port."
    ::= { cie1000LacpControlPortStatsClearEntry 2 }

cie1000LacpStatistics OBJECT IDENTIFIER
    ::= { cie1000LacpMibObjects 5 }

cie1000LacpStatisticsPortTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CIE1000LacpStatisticsPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This is a table of the LACP port statistics"
    ::= { cie1000LacpStatistics 3 }

cie1000LacpStatisticsPortEntry OBJECT-TYPE
    SYNTAX      CIE1000LacpStatisticsPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Each port has a set of parameters"
    INDEX       { cie1000LacpStatisticsPortInterfaceNo }
    ::= { cie1000LacpStatisticsPortTable 1 }

CIE1000LacpStatisticsPortEntry ::= SEQUENCE {
    cie1000LacpStatisticsPortInterfaceNo                CIE1000InterfaceIndex,
    cie1000LacpStatisticsPortDot3adAggrRxFrames         Counter64,
    cie1000LacpStatisticsPortDot3adAggrTxFrames         Counter64,
    cie1000LacpStatisticsPortDot3adAggrRxIllegalFrames  Counter64,
    cie1000LacpStatisticsPortDot3adAggrRxUnknownFrames  Counter64
}

cie1000LacpStatisticsPortInterfaceNo OBJECT-TYPE
    SYNTAX      CIE1000InterfaceIndex
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "Logical interface number."
    ::= { cie1000LacpStatisticsPortEntry 1 }

cie1000LacpStatisticsPortDot3adAggrRxFrames OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Shows received LACP frame count."
    ::= { cie1000LacpStatisticsPortEntry 2 }

cie1000LacpStatisticsPortDot3adAggrTxFrames OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Shows transmitted LACP frame count."
    ::= { cie1000LacpStatisticsPortEntry 3 }

cie1000LacpStatisticsPortDot3adAggrRxIllegalFrames OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Shows recevied illegal LACP frame count."
    ::= { cie1000LacpStatisticsPortEntry 4 }

cie1000LacpStatisticsPortDot3adAggrRxUnknownFrames OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Shows recevied unknown LACP frame count."
    ::= { cie1000LacpStatisticsPortEntry 5 }

cie1000LacpMibConformance OBJECT IDENTIFIER
    ::= { cie1000LacpMib 2 }

cie1000LacpMibCompliances OBJECT IDENTIFIER
    ::= { cie1000LacpMibConformance 1 }

cie1000LacpMibGroups OBJECT IDENTIFIER
    ::= { cie1000LacpMibConformance 2 }

cie1000LacpConfigPortTableInfoGroup OBJECT-GROUP
    OBJECTS     { cie1000LacpConfigPortInterfaceNo,
                  cie1000LacpConfigPortDot3adAggrActorAdminMode,
                  cie1000LacpConfigPortDot3adAggrActorAdminKey,
                  cie1000LacpConfigPortDot3adAggrRole,
                  cie1000LacpConfigPortDot3adAggrTimeout,
                  cie1000LacpConfigPortDot3adAggrPortPriority }
    STATUS      current
    DESCRIPTION
        "A collection of objects."
    ::= { cie1000LacpMibGroups 1 }

cie1000LacpConfigGlobalsInfoGroup OBJECT-GROUP
    OBJECTS     { cie1000LacpConfigGlobalsDot3adAggrSystemPriority }
    STATUS      current
    DESCRIPTION
        "A collection of objects."
    ::= { cie1000LacpMibGroups 2 }

cie1000LacpStatusSystemTableInfoGroup OBJECT-GROUP
    OBJECTS     { cie1000LacpStatusSystemInterfaceNo,
                  cie1000LacpStatusSystemDot3adAggrID,
                  cie1000LacpStatusSystemDot3adAggrPartnerSystemID,
                  cie1000LacpStatusSystemDot3adAggrPartnerOperKey,
                  cie1000LacpStatusSystemDot3adAggrPartnerOperSystemPriority,
                  cie1000LacpStatusSystemDot3adAggrPartnerStateLastChanged,
                  cie1000LacpStatusSystemDot3adAggrLocalPorts }
    STATUS      current
    DESCRIPTION
        "A collection of objects."
    ::= { cie1000LacpMibGroups 3 }

cie1000LacpStatusPortTableInfoGroup OBJECT-GROUP
    OBJECTS     { cie1000LacpStatusPortInterfaceNo,
                  cie1000LacpStatusPortDot3adAggrActorAdminMode,
                  cie1000LacpStatusPortDot3adAggrActorAdminKey,
                  cie1000LacpStatusPortDot3adAggrPartnerOperPortIndex,
                  cie1000LacpStatusPortDot3adAggrPartnerOperPortPriority }
    STATUS      current
    DESCRIPTION
        "A collection of objects."
    ::= { cie1000LacpMibGroups 4 }

cie1000LacpControlPortStatsClearTableInfoGroup OBJECT-GROUP
    OBJECTS     { cie1000LacpControlPortStatsClearInterfaceNo,
                  cie1000LacpControlPortStatsClearPortStatisticsClear }
    STATUS      current
    DESCRIPTION
        "A collection of objects."
    ::= { cie1000LacpMibGroups 5 }

cie1000LacpStatisticsPortTableInfoGroup OBJECT-GROUP
    OBJECTS     { cie1000LacpStatisticsPortInterfaceNo,
                  cie1000LacpStatisticsPortDot3adAggrRxFrames,
                  cie1000LacpStatisticsPortDot3adAggrTxFrames,
                  cie1000LacpStatisticsPortDot3adAggrRxIllegalFrames,
                  cie1000LacpStatisticsPortDot3adAggrRxUnknownFrames }
    STATUS      current
    DESCRIPTION
        "A collection of objects."
    ::= { cie1000LacpMibGroups 6 }

cie1000LacpMibCompliance MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION
        "The compliance statement for the implementation."

    MODULE      -- this module

    MANDATORY-GROUPS { cie1000LacpConfigPortTableInfoGroup,
                       cie1000LacpConfigGlobalsInfoGroup,
                       cie1000LacpStatusSystemTableInfoGroup,
                       cie1000LacpStatusPortTableInfoGroup,
                       cie1000LacpControlPortStatsClearTableInfoGroup,
                       cie1000LacpStatisticsPortTableInfoGroup }

    ::= { cie1000LacpMibCompliances 1 }

END
