-- *****************************************************************
-- MAC-MIB:  Cisco private MIB
-- ****************************************************************

CIE1000-MAC-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
    CIE1000RowEditorState FROM CIE1000-TC
    CIE1000Unsigned8 FROM CIE1000-TC
    CIE1000Vlan FROM CIE1000-TC
    Unsigned32 FROM SNMPv2-SMI
    MacAddress FROM SNMPv2-TC
    TruthValue FROM SNMPv2-TC
    ;

cie1000MacMib MODULE-IDENTITY
    LAST-UPDATED "201408200000Z"
    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 MAC MIB"
    REVISION    "201408200000Z"
    DESCRIPTION
        "Updated types"
    REVISION    "201407010000Z"
    DESCRIPTION
        "Initial version"
    ::= { cie1000SwitchMgmt 12 }


CIE1000MACPortLearnMode ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "The learning mode of the port."
    SYNTAX      INTEGER { auto(0), disable(1), secure(2) }

cie1000MacMibObjects OBJECT IDENTIFIER
    ::= { cie1000MacMib 1 }

cie1000MacCapabilities OBJECT IDENTIFIER
    ::= { cie1000MacMibObjects 1 }

cie1000MacCapabilitiesNonVolatileMax OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Max number of static non-volatile MAC addresses that can be stored in
         the system."
    ::= { cie1000MacCapabilities 1 }

cie1000MacConfig OBJECT IDENTIFIER
    ::= { cie1000MacMibObjects 2 }

cie1000MacConfigFdbGlobal OBJECT IDENTIFIER
    ::= { cie1000MacConfig 1 }

cie1000MacConfigFdbGlobalAgeTime OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Mac address aging time in the FDB."
    ::= { cie1000MacConfigFdbGlobal 1 }

cie1000MacConfigFdbTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CIE1000MacConfigFdbEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table represents static mac addresses added through the mgmt
         interface. "
    ::= { cie1000MacConfig 2 }

cie1000MacConfigFdbEntry OBJECT-TYPE
    SYNTAX      CIE1000MacConfigFdbEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Each entry has a set of parameters"
    INDEX       { cie1000MacConfigFdbVlanId,
                  cie1000MacConfigFdbMacAddress }
    ::= { cie1000MacConfigFdbTable 1 }

CIE1000MacConfigFdbEntry ::= SEQUENCE {
    cie1000MacConfigFdbVlanId      CIE1000Vlan,
    cie1000MacConfigFdbMacAddress  MacAddress,
    cie1000MacConfigFdbPortList    CIE1000PortList,
    cie1000MacConfigFdbAction      CIE1000RowEditorState
}

cie1000MacConfigFdbVlanId OBJECT-TYPE
    SYNTAX      CIE1000Vlan
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "Vlan id used for indexing."
    ::= { cie1000MacConfigFdbEntry 1 }

cie1000MacConfigFdbMacAddress OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "The destination MAC address which this entry applies."
    ::= { cie1000MacConfigFdbEntry 2 }

cie1000MacConfigFdbPortList OBJECT-TYPE
    SYNTAX      CIE1000PortList
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "List of destination ports for which frames with this DMAC is forwarded
         to."
    ::= { cie1000MacConfigFdbEntry 3 }

cie1000MacConfigFdbAction OBJECT-TYPE
    SYNTAX      CIE1000RowEditorState
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Action"
    ::= { cie1000MacConfigFdbEntry 100 }

cie1000MacConfigFdbTableRowEditor OBJECT IDENTIFIER
    ::= { cie1000MacConfig 3 }

cie1000MacConfigFdbTableRowEditorVlanId OBJECT-TYPE
    SYNTAX      CIE1000Vlan
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Vlan id used for indexing."
    ::= { cie1000MacConfigFdbTableRowEditor 1 }

cie1000MacConfigFdbTableRowEditorMacAddress OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The destination MAC address which this entry applies."
    ::= { cie1000MacConfigFdbTableRowEditor 2 }

cie1000MacConfigFdbTableRowEditorPortList OBJECT-TYPE
    SYNTAX      CIE1000PortList
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "List of destination ports for which frames with this DMAC is forwarded
         to."
    ::= { cie1000MacConfigFdbTableRowEditor 3 }

cie1000MacConfigFdbTableRowEditorAction OBJECT-TYPE
    SYNTAX      CIE1000RowEditorState
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Action"
    ::= { cie1000MacConfigFdbTableRowEditor 100 }

cie1000MacConfigPortLearnTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CIE1000MacConfigPortLearnEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table represents the learning mode of each port"
    ::= { cie1000MacConfig 4 }

cie1000MacConfigPortLearnEntry OBJECT-TYPE
    SYNTAX      CIE1000MacConfigPortLearnEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Each entry has a set of parameters"
    INDEX       { cie1000MacConfigPortLearnIfIndex }
    ::= { cie1000MacConfigPortLearnTable 1 }

CIE1000MacConfigPortLearnEntry ::= SEQUENCE {
    cie1000MacConfigPortLearnIfIndex        CIE1000InterfaceIndex,
    cie1000MacConfigPortLearnLearnMode      CIE1000MACPortLearnMode,
    cie1000MacConfigPortLearnChangeAllowed  TruthValue
}

cie1000MacConfigPortLearnIfIndex OBJECT-TYPE
    SYNTAX      CIE1000InterfaceIndex
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "Interface index."
    ::= { cie1000MacConfigPortLearnEntry 1 }

cie1000MacConfigPortLearnLearnMode OBJECT-TYPE
    SYNTAX      CIE1000MACPortLearnMode
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The learn mode of the port. Auto(0) means auto learning. Disable(1)
         means that learning is disabled. Secure(2) means that learning frames
         are discarded."
    ::= { cie1000MacConfigPortLearnEntry 2 }

cie1000MacConfigPortLearnChangeAllowed OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "If internal modules have changed the learned mode then the user is not
         allowed to change it from this interface. This entry tells you if the
         LearnMode can be changed (true) or not (false). This is a read only
         entry - write is ignored."
    ::= { cie1000MacConfigPortLearnEntry 3 }

cie1000MacConfigVlanLearnTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CIE1000MacConfigVlanLearnEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table represents the learning mode of each vlan 1-4095"
    ::= { cie1000MacConfig 5 }

cie1000MacConfigVlanLearnEntry OBJECT-TYPE
    SYNTAX      CIE1000MacConfigVlanLearnEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Each entry has a set of parameters"
    INDEX       { cie1000MacConfigVlanLearnVlanId }
    ::= { cie1000MacConfigVlanLearnTable 1 }

CIE1000MacConfigVlanLearnEntry ::= SEQUENCE {
    cie1000MacConfigVlanLearnVlanId  CIE1000Vlan,
    cie1000MacConfigVlanLearnMode    TruthValue
}

cie1000MacConfigVlanLearnVlanId OBJECT-TYPE
    SYNTAX      CIE1000Vlan
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "Vlan id used for indexing."
    ::= { cie1000MacConfigVlanLearnEntry 1 }

cie1000MacConfigVlanLearnMode OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Learn mode of the VLAN, True = Enabled, False = Disabled"
    ::= { cie1000MacConfigVlanLearnEntry 2 }

cie1000MacStatus OBJECT IDENTIFIER
    ::= { cie1000MacMibObjects 3 }

cie1000MacStatusFdbTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CIE1000MacStatusFdbEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table represents all mac addresses in the FDB"
    ::= { cie1000MacStatus 1 }

cie1000MacStatusFdbEntry OBJECT-TYPE
    SYNTAX      CIE1000MacStatusFdbEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Each entry has a set of parameters"
    INDEX       { cie1000MacStatusFdbVlanId,
                  cie1000MacStatusFdbMacAddress }
    ::= { cie1000MacStatusFdbTable 1 }

CIE1000MacStatusFdbEntry ::= SEQUENCE {
    cie1000MacStatusFdbVlanId      CIE1000Vlan,
    cie1000MacStatusFdbMacAddress  MacAddress,
    cie1000MacStatusFdbPortList    CIE1000PortList,
    cie1000MacStatusFdbDynamic     CIE1000Unsigned8,
    cie1000MacStatusFdbCopyToCpu   CIE1000Unsigned8
}

cie1000MacStatusFdbVlanId OBJECT-TYPE
    SYNTAX      CIE1000Vlan
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "Vlan id used for indexing."
    ::= { cie1000MacStatusFdbEntry 1 }

cie1000MacStatusFdbMacAddress OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "The destination MAC address which this entry applies."
    ::= { cie1000MacStatusFdbEntry 2 }

cie1000MacStatusFdbPortList OBJECT-TYPE
    SYNTAX      CIE1000PortList
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "List of destination ports for which frames with this DMAC is forwarded
         to."
    ::= { cie1000MacStatusFdbEntry 3 }

cie1000MacStatusFdbDynamic OBJECT-TYPE
    SYNTAX      CIE1000Unsigned8
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The entry is dynamically learned (True) or statically added (False)"
    ::= { cie1000MacStatusFdbEntry 4 }

cie1000MacStatusFdbCopyToCpu OBJECT-TYPE
    SYNTAX      CIE1000Unsigned8
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Copy this frame to the CPU (True) or not (False)"
    ::= { cie1000MacStatusFdbEntry 5 }

cie1000MacStatusFdbStaticTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CIE1000MacStatusFdbStaticEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table represents all static mac addresses in the FDB"
    ::= { cie1000MacStatus 2 }

cie1000MacStatusFdbStaticEntry OBJECT-TYPE
    SYNTAX      CIE1000MacStatusFdbStaticEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Each entry has a set of parameters"
    INDEX       { cie1000MacStatusFdbStaticVlanId,
                  cie1000MacStatusFdbStaticMacAddress }
    ::= { cie1000MacStatusFdbStaticTable 1 }

CIE1000MacStatusFdbStaticEntry ::= SEQUENCE {
    cie1000MacStatusFdbStaticVlanId      CIE1000Vlan,
    cie1000MacStatusFdbStaticMacAddress  MacAddress,
    cie1000MacStatusFdbStaticPortList    CIE1000PortList,
    cie1000MacStatusFdbStaticDynamic     CIE1000Unsigned8,
    cie1000MacStatusFdbStaticCopyToCpu   CIE1000Unsigned8
}

cie1000MacStatusFdbStaticVlanId OBJECT-TYPE
    SYNTAX      CIE1000Vlan
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "Vlan id used for indexing."
    ::= { cie1000MacStatusFdbStaticEntry 1 }

cie1000MacStatusFdbStaticMacAddress OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "The destination MAC address which this entry applies."
    ::= { cie1000MacStatusFdbStaticEntry 2 }

cie1000MacStatusFdbStaticPortList OBJECT-TYPE
    SYNTAX      CIE1000PortList
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "List of destination ports for which frames with this DMAC is forwarded
         to."
    ::= { cie1000MacStatusFdbStaticEntry 3 }

cie1000MacStatusFdbStaticDynamic OBJECT-TYPE
    SYNTAX      CIE1000Unsigned8
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The entry is dynamically learned (True) or statically added (False)"
    ::= { cie1000MacStatusFdbStaticEntry 4 }

cie1000MacStatusFdbStaticCopyToCpu OBJECT-TYPE
    SYNTAX      CIE1000Unsigned8
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Copy this frame to the CPU (True) or not (False)"
    ::= { cie1000MacStatusFdbStaticEntry 5 }

cie1000MacStatusFdbPortStatisticsTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CIE1000MacStatusFdbPortStatisticsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table represent the statistics of the Port interfaces"
    ::= { cie1000MacStatus 3 }

cie1000MacStatusFdbPortStatisticsEntry OBJECT-TYPE
    SYNTAX      CIE1000MacStatusFdbPortStatisticsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Each port has a number of learned addresses"
    INDEX       { cie1000MacStatusFdbPortStatisticsIfIndex }
    ::= { cie1000MacStatusFdbPortStatisticsTable 1 }

CIE1000MacStatusFdbPortStatisticsEntry ::= SEQUENCE {
    cie1000MacStatusFdbPortStatisticsIfIndex  CIE1000InterfaceIndex,
    cie1000MacStatusFdbPortStatisticsDynamic  Unsigned32
}

cie1000MacStatusFdbPortStatisticsIfIndex OBJECT-TYPE
    SYNTAX      CIE1000InterfaceIndex
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "Interface index."
    ::= { cie1000MacStatusFdbPortStatisticsEntry 1 }

cie1000MacStatusFdbPortStatisticsDynamic OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Total number of dynamic learned addresses on the port"
    ::= { cie1000MacStatusFdbPortStatisticsEntry 2 }

cie1000MacStatusFdbStatistics OBJECT IDENTIFIER
    ::= { cie1000MacStatus 4 }

cie1000MacStatusFdbStatisticsTotalDynamic OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Total dynamic learned addresses in the FDB"
    ::= { cie1000MacStatusFdbStatistics 1 }

cie1000MacStatusFdbStatisticsTotalStatic OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Total static addresses in the FDB"
    ::= { cie1000MacStatusFdbStatistics 2 }

cie1000MacControl OBJECT IDENTIFIER
    ::= { cie1000MacMibObjects 4 }

cie1000MacControlFlushAll OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Flush all dynamic learned Mac addresses. Set the value to 'true' to
         perform the action. Read will always return 'false'."
    ::= { cie1000MacControl 1 }

cie1000MacMibConformance OBJECT IDENTIFIER
    ::= { cie1000MacMib 2 }

cie1000MacMibCompliances OBJECT IDENTIFIER
    ::= { cie1000MacMibConformance 1 }

cie1000MacMibGroups OBJECT IDENTIFIER
    ::= { cie1000MacMibConformance 2 }

cie1000MacCapabilitiesInfoGroup OBJECT-GROUP
    OBJECTS     { cie1000MacCapabilitiesNonVolatileMax }
    STATUS      current
    DESCRIPTION
        "A collection of objects."
    ::= { cie1000MacMibGroups 1 }

cie1000MacConfigFdbGlobalInfoGroup OBJECT-GROUP
    OBJECTS     { cie1000MacConfigFdbGlobalAgeTime }
    STATUS      current
    DESCRIPTION
        "A collection of objects."
    ::= { cie1000MacMibGroups 2 }

cie1000MacConfigFdbTableInfoGroup OBJECT-GROUP
    OBJECTS     { cie1000MacConfigFdbVlanId,
                  cie1000MacConfigFdbMacAddress,
                  cie1000MacConfigFdbPortList,
                  cie1000MacConfigFdbAction }
    STATUS      current
    DESCRIPTION
        "A collection of objects."
    ::= { cie1000MacMibGroups 3 }

cie1000MacConfigFdbTableRowEditorInfoGroup OBJECT-GROUP
    OBJECTS     { cie1000MacConfigFdbTableRowEditorVlanId,
                  cie1000MacConfigFdbTableRowEditorMacAddress,
                  cie1000MacConfigFdbTableRowEditorPortList,
                  cie1000MacConfigFdbTableRowEditorAction }
    STATUS      current
    DESCRIPTION
        "A collection of objects."
    ::= { cie1000MacMibGroups 4 }

cie1000MacConfigPortLearnInfoGroup OBJECT-GROUP
    OBJECTS     { cie1000MacConfigPortLearnIfIndex,
                  cie1000MacConfigPortLearnLearnMode,
                  cie1000MacConfigPortLearnChangeAllowed }
    STATUS      current
    DESCRIPTION
        "A collection of objects."
    ::= { cie1000MacMibGroups 5 }

cie1000MacConfigVlanLearnInfoGroup OBJECT-GROUP
    OBJECTS     { cie1000MacConfigVlanLearnVlanId,
                  cie1000MacConfigVlanLearnMode }
    STATUS      current
    DESCRIPTION
        "A collection of objects."
    ::= { cie1000MacMibGroups 6 }

cie1000MacStatusFdbTableInfoGroup OBJECT-GROUP
    OBJECTS     { cie1000MacStatusFdbVlanId,
                  cie1000MacStatusFdbMacAddress,
                  cie1000MacStatusFdbPortList,
                  cie1000MacStatusFdbDynamic,
                  cie1000MacStatusFdbCopyToCpu }
    STATUS      current
    DESCRIPTION
        "A collection of objects."
    ::= { cie1000MacMibGroups 7 }

cie1000MacStatusFdbStaticTableInfoGroup OBJECT-GROUP
    OBJECTS     { cie1000MacStatusFdbStaticVlanId,
                  cie1000MacStatusFdbStaticMacAddress,
                  cie1000MacStatusFdbStaticPortList,
                  cie1000MacStatusFdbStaticDynamic,
                  cie1000MacStatusFdbStaticCopyToCpu }
    STATUS      current
    DESCRIPTION
        "A collection of objects."
    ::= { cie1000MacMibGroups 8 }

cie1000MacStatusFdbPortStatisticsInfoGroup OBJECT-GROUP
    OBJECTS     { cie1000MacStatusFdbPortStatisticsIfIndex,
                  cie1000MacStatusFdbPortStatisticsDynamic }
    STATUS      current
    DESCRIPTION
        "A collection of objects."
    ::= { cie1000MacMibGroups 9 }

cie1000MacStatusFdbStatisticsInfoGroup OBJECT-GROUP
    OBJECTS     { cie1000MacStatusFdbStatisticsTotalDynamic,
                  cie1000MacStatusFdbStatisticsTotalStatic }
    STATUS      current
    DESCRIPTION
        "A collection of objects."
    ::= { cie1000MacMibGroups 10 }

cie1000MacControlInfoGroup OBJECT-GROUP
    OBJECTS     { cie1000MacControlFlushAll }
    STATUS      current
    DESCRIPTION
        "A collection of objects."
    ::= { cie1000MacMibGroups 11 }

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

    MODULE      -- this module

    MANDATORY-GROUPS { cie1000MacCapabilitiesInfoGroup,
                       cie1000MacConfigFdbGlobalInfoGroup,
                       cie1000MacConfigFdbTableInfoGroup,
                       cie1000MacConfigFdbTableRowEditorInfoGroup,
                       cie1000MacConfigPortLearnInfoGroup,
                       cie1000MacConfigVlanLearnInfoGroup,
                       cie1000MacStatusFdbTableInfoGroup,
                       cie1000MacStatusFdbStaticTableInfoGroup,
                       cie1000MacStatusFdbPortStatisticsInfoGroup,
                       cie1000MacStatusFdbStatisticsInfoGroup,
                       cie1000MacControlInfoGroup }

    ::= { cie1000MacMibCompliances 1 }

END
