#-MIBFILE: cisco-mac-notification.mib

CISCO-MAC-NOTIFICATION-MIB DEFINITIONS ::= BEGIN


DisplayString ::=
	OCTET STRING (SIZE(0..255))

PhysAddress ::=
	OCTET STRING

MacAddress ::=
	OCTET STRING (SIZE(6))

TruthValue ::=
	INTEGER {
	true(1),
	false(2)
	}

TestAndIncr ::=
	INTEGER (0..2147483647)

AutonomousType ::=
	OBJECT IDENTIFIER

InstancePointer ::=
	OBJECT IDENTIFIER

VariablePointer ::=
	OBJECT IDENTIFIER

RowPointer ::=
	OBJECT IDENTIFIER

RowStatus ::=
	INTEGER {
	active(1),
	notInService(2),
	notReady(3),
	createAndGo(4),
	createAndWait(5),
	destroy(6)
	}

TimeStamp ::=
	TimeTicks

TimeInterval ::=
	INTEGER (0..2147483647)

DateAndTime ::=
	OCTET STRING (SIZE(8|11))

StorageType ::=
	INTEGER {
	other(1),
	volatile(2),
	nonVolatile(3),
	permanent(4),
	readOnly(5)
	}

TDomain ::=
	OBJECT IDENTIFIER

TAddress ::=
	OCTET STRING (SIZE(1..255))

OwnerString ::=
	OCTET STRING (SIZE(0..255))

InterfaceIndex ::=
	INTEGER (1..2147483647)

InterfaceIndexOrZero ::=
	INTEGER (0..2147483647)

mib-2 OBJECT IDENTIFIER ::= { mgmt 1 }
interfaces OBJECT IDENTIFIER ::= { mib-2 2 }
ifTable OBJECT IDENTIFIER ::= { interfaces 2 }
ifEntry OBJECT IDENTIFIER ::= { ifTable 1 }
ifIndex OBJECT IDENTIFIER ::= { ifEntry 1 }
VlanIndex ::=
	INTEGER (0..4095)

ManagementDomainIndex ::=
	INTEGER (1..255)

VlanType ::=
	INTEGER {
	ethernet(1),
	fddi(2),
	tokenRing(3),
	fddiNet(4),
	trNet(5),
	deprecated(6)
	}

VlanTypeExt ::=
	OCTET STRING {
	vtpmanageable(0),
	internal(1),
	reserved(2),
	rspan(3),
	dynamicGvrp(4)
	}

PhysicalIndex ::=
	INTEGER (1..2147483647)

PhysicalIndexOrZero ::=
	INTEGER (0..2147483647)

PhysicalClass ::=
	INTEGER {
	other(1),
	unknown(2),
	chassis(3),
	backplane(4),
	container(5),
	powerSupply(6),
	fan(7),
	sensor(8),
	module(9),
	port(10),
	stack(11),
	cpu(12)
	}

SnmpEngineIdOrNone ::=
	OCTET STRING (SIZE(0..32))

entityMIB OBJECT IDENTIFIER ::= { mib-2 47 }
entityMIBObjects OBJECT IDENTIFIER ::= { entityMIB 1 }
entityPhysical OBJECT IDENTIFIER ::= { entityMIBObjects 1 }
entPhysicalTable OBJECT IDENTIFIER ::= { entityPhysical 1 }
entPhysicalEntry OBJECT IDENTIFIER ::= { entPhysicalTable 1 }
entPhysicalIndex OBJECT IDENTIFIER ::= { entPhysicalEntry 1 }
Dscp ::=
	INTEGER (0..63)

QosLayer2Cos ::=
	INTEGER (0..7)

QueueRange ::=
	INTEGER {
	oneQ(1),
	twoQ(2),
	threeQ(3),
	fourQ(4),
	eightQ(8),
	sixteenQ(16),
	thirtyTwoQ(32),
	sixtyFourQ(64)
	}

ThresholdSetRange ::=
	INTEGER {
	zeroT(0),
	oneT(1),
	twoT(2),
	fourT(4),
	eightT(8)
	}

Percent ::=
	INTEGER (0..100)

QosInterfaceQueueType ::=
	INTEGER {
	oneQ1t(1),
	oneQ2t(2),
	oneQ4t(3),
	oneQ8t(4),
	twoQ1t(5),
	twoQ2t(6),
	twoQ4t(7),
	twoQ8t(8),
	threeQ1t(9),
	threeQ2t(10),
	threeQ4t(11),
	threeQ8t(12),
	fourQ1t(13),
	fourQ2t(14),
	fourQ4t(15),
	fourQ8t(16),
	eightQ1t(17),
	eightQ2t(18),
	eightQ4t(19),
	eightQ8t(20),
	sixteenQ1t(21),
	sixteenQ2t(22),
	sixteenQ4t(23),
	sixtyfourQ1t(24),
	sixtyfourQ2t(25),
	sixtyfourQ4t(26),
	oneP1Q0t(27),
	oneP1Q4t(28),
	oneP1Q8t(29),
	oneP2Q1t(30),
	oneP2Q2t(31),
	oneP3Q1t(32),
	oneP7Q8t(33),
	oneP3Q8t(34)
	}

QosInterfaceTypeCapabilities ::=
	OCTET STRING {
	unspecified(0),
	inputL2Classification(1),
	inputIpClassification(2),
	outputL2Classification(3),
	outputIpClassification(4),
	inputPortClassification(19),
	outputPortClassification(20),
	inputUflowPolicing(5),
	inputAggregatePolicing(6),
	outputUflowPolicing(7),
	outputAggregatePolicing(8),
	policeByMarkingDown(9),
	policeByDropping(10),
	inputUflowShaping(21),
	inputAggregateShaping(22),
	outputUflowShaping(23),
	outputAggregateShaping(24),
	fifo(11),
	wrr(12),
	wfq(13),
	cq(14),
	pq(15),
	cbwfq(16),
	pqWrr(25),
	pqCbwfq(26),
	tailDrop(17),
	wred(18)
	}

RoleCombination ::=
	OCTET STRING (SIZE(0..255))

PolicyInstanceId ::=
	OCTET STRING

Unsigned64 ::=
	OCTET STRING

cisco OBJECT IDENTIFIER ::= { enterprises 9 }
ciscoMgmt OBJECT IDENTIFIER ::= { cisco 9 }
ciscoMacNotificationMIB OBJECT IDENTIFIER ::= { ciscoMgmt 215 }

ciscoMacNotificationMIBObjects OBJECT IDENTIFIER ::= { ciscoMacNotificationMIB 1 }

cmnGlobalObjects OBJECT IDENTIFIER ::= { ciscoMacNotificationMIBObjects 1 }

cmnInterfaceObjects OBJECT IDENTIFIER ::= { ciscoMacNotificationMIBObjects 2 }

cmnMACMoveObjects OBJECT IDENTIFIER ::= { ciscoMacNotificationMIBObjects 3 }

cmnMACThresholdObjects OBJECT IDENTIFIER ::= { ciscoMacNotificationMIBObjects 4 }

cmnGlobalFeatureEnabled OBJECT-TYPE
	SYNTAX TruthValue
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Indicates whether the MAC notification feature is currently 
running in the device.

Setting this object to false(2) disables the MAC notification
feature globally thus disabling the feature at each interface.

Setting this object to true(1) will start the MAC notification
feature running in the device. If the feature is already
running, setting to true(1) has no effect. Once the MAC
notification is enabled, whether the feature is running at each
interface is controlled by the cmnIfConfigTable."
	::= { cmnGlobalObjects 1 }


cmnNotificationInterval OBJECT-TYPE
	SYNTAX INTEGER (0..4294967295)
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "This object specifies the maximum interval of time between
cmnMacChangedNotifications being generated by the device.
If the value of cmnNotificationsEnabled is true(1), the
device will send out the generated cmnMacChangedNotifications
and archive the MAC change notification events in the
cmnHistoryTable. If the value of cmnNotificationEnabled is
false(2), the device will not send out the generated
cmnMacChangedNotifications but it will archive these events
in the cmnHistoryTable.   

If the value of this object is equal to 0, the device will 
generate cmnMacChangedNotifications and archive the MAC 
change notification events in the cmnHistoryTable as soon as
there is MAC address learnt or removed by the device.

If the value of this object is greater than 0, the device will
wait for a period of time equal to the value of this object
before generate the cmnMacChangedNotifications and archive
the MAC change notification events in the cmnHistoryTable."
	::= { cmnGlobalObjects 2 }


cmnMacAddressesLearnt OBJECT-TYPE
	SYNTAX Counter
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Indicates the number of MAC addresses learnt by the
device."
	::= { cmnGlobalObjects 3 }


cmnMacAddressesRemoved OBJECT-TYPE
	SYNTAX Counter
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Indicates the number of MAC addresses removed from the
forwarding database."
	::= { cmnGlobalObjects 4 }


cmnNotificationsEnabled OBJECT-TYPE
	SYNTAX TruthValue
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Indicates whether cmnMacChangedNotification notifications
will or will not be sent when there are MAC addresses
learnt or removed from the device's forwarding database. 
Disabling notifications does not prevent the MAC address
info from being added to the cmnHistoryTable."
	::= { cmnGlobalObjects 5 }


cmnNotificationsSent OBJECT-TYPE
	SYNTAX Counter
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Indicates the number of cmnMacChangedNotifications sent out
by the device."
	::= { cmnGlobalObjects 6 }


cmnHistTableMaxLength OBJECT-TYPE
	SYNTAX INTEGER (0..500)
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The upper limit on the number of entries that the
cmnHistoryTable may contain.  A value of 0 will
prevent any history from being retained. When this
table is full, the oldest entry will be deleted and
a new one will be created."
	::= { cmnGlobalObjects 7 }


cmnHistoryTable OBJECT-TYPE
	SYNTAX SEQUENCE OF CmnHistoryEntry
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "This table will archive the MAC change notification events 
generated by this device. The MAC change notification
events are archived here even if cmnMacChangesNotifications 
are not actually sent."
	::= { cmnGlobalObjects 8 }


cmnHistoryEntry OBJECT-TYPE
	SYNTAX CmnHistoryEntry
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "A MAC change notification message that was previously
generated by this device.  Each entry is indexed by a message
index."
	INDEX { cmnHistIndex  }

	::= { cmnHistoryTable 1 }

cmnHistoryEntry ::=
	SEQUENCE {
		cmnHistIndex Unsigned32,
		cmnHistMacChangedMsg OCTET STRING,
		cmnHistTimestamp TimeStamp
		}

cmnHistIndex OBJECT-TYPE
	SYNTAX INTEGER (1..4294967295)
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "An index that uniquely identifies a MAC change notification
event previously generated by the device. This index starts at
1 and increases by one when a MAC change notification is 
generated.  When it reaches the maximum value, the agent wraps
the value back to 1."
	::= { cmnHistoryEntry 1 }


cmnHistMacChangedMsg OBJECT-TYPE
	SYNTAX OCTET STRING (SIZE(1..254))
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "This object contains the information of a MAC change
notification event. It consists of several tuples packed
together in the format of '<tuple1><tuple2>...'.

Each tuple consist of 11 octets in the format of
'<operation><VLAN><MAC><dot1dBasePort>' where 

<operation> is of size 1 octet and supports the following values
0 - End of MIB object.
1 - MAC learnt.
2 - MAC removed.

<VLAN> is VLAN number of the VLAN which the MAC address is
belonged to and has size of 2 octet.

<MAC> is the Layer2 Mac Address and has size of 6 octets.

<dot1dBasePort> is the value of dot1dBasePort for the
interface from which the MAC address is learnt and has size
of 2 octets."
	::= { cmnHistoryEntry 2 }


cmnHistTimestamp OBJECT-TYPE
	SYNTAX TimeStamp
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The value of sysUpTime when the cmnMacChangedNotification
containing the information denoted by the cmnHistMacChangedMsg
object in this entry was generated."
	::= { cmnHistoryEntry 3 }


cmnIfConfigTable OBJECT-TYPE
	SYNTAX SEQUENCE OF CmnIfConfigEntry
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "This table enables or disables the generation of notification
at each interface when MAC address is learnt or removed."
	::= { cmnInterfaceObjects 1 }


cmnIfConfigEntry OBJECT-TYPE
	SYNTAX CmnIfConfigEntry
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Each entry contains the configuration for enabling the
MAC notification at each interface that supports this
feature."
	INDEX { ifIndex  }

	::= { cmnIfConfigTable 1 }

cmnIfConfigEntry ::=
	SEQUENCE {
		cmnMacAddrLearntEnable TruthValue,
		cmnMacAddrRemovedEnable TruthValue
		}

cmnMacAddrLearntEnable OBJECT-TYPE
	SYNTAX TruthValue
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Indicates whether this interface is enabled to send 
cmnMacChangedNotification when it learns a new MAC address. This
variable has no effect when the value of cmnGlobalFeatureEnabled
object is false(2).

Setting this object to true(1) enables the sending of
cmnMacChangedNotification when this interface learns a 
new MAC address.

Setting this object to false(2) disables the sending
of cmnMacChangedNotification when this interface learns
a new MAC address."
	::= { cmnIfConfigEntry 1 }


cmnMacAddrRemovedEnable OBJECT-TYPE
	SYNTAX TruthValue
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Indicates whether this interface is enabled to send 
cmnMacChangedNotification when a MAC address which it learnt
previously is removed from the forwarding table. This variable
has no effect when the value of cmnGlobalFeatureEnabled object
is false(2). 

Setting this object to true(1) enables the sending of
cmnMacChangedNotification when a MAC address which this
interface learnt previously is removed from the forwarding
table.

Setting this object to false(2) disables the sending of
cmnMacChangedNotification when a MAC address which this
interface learnt previously is removed from the forwarding
table."
	::= { cmnIfConfigEntry 2 }


cmnMACMoveFeatureEnabled OBJECT-TYPE
	SYNTAX TruthValue
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Specifies whether the MAC Move notification feature is 
currently running in the device.

Setting this object to false(2) disables the MAC Move 
notification feature globally.

Setting this object to true(1) will start the MAC Move 
notification feature running in the device."
	::= { cmnMACMoveObjects 1 }


cmnMACMoveNotificationsEnabled OBJECT-TYPE
	SYNTAX TruthValue
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Specifies whether cmnMacMoveNotification notifications
will or will not be sent when the MAC addresses are
moved between the interfaces."
	::= { cmnMACMoveObjects 2 }


cmnMACMoveAddress OBJECT-TYPE
	SYNTAX MacAddress
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Indicates the MAC address that is moved between
cmnMACMoveFromPortId and cmnMACMoveToPortId on 
cmnMACMoveVlanNumber.  This object is instantiated only 
when cmnMACMoveFeatureEnabled value is set to true(2) and
a MAC address is moved between the interfaces."
	::= { cmnMACMoveObjects 3 }


cmnMACMoveVlanNumber OBJECT-TYPE
	SYNTAX VlanIndex
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Indicates the VLAN on which the cmnMACMoveAddress is
moved from cmnMACMoveFromPortId to cmnMACMoveToPortId. 
This object is instantiated only when
cmnMACMoveFeatureEnabled value is set to true(2) and
a MAC address is moved between the interfaces."
	::= { cmnMACMoveObjects 4 }


cmnMACMoveFromPortId OBJECT-TYPE
	SYNTAX INTEGER (1..65535)
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The value of dot1dBasePort for the bridge port from which 
the cmnMACMoveAddress is moved to cmnMACMoveToPortId on 
cmnMACMoveVlanNumber. This object is instantiated only when
cmnMACMoveFeatureEnabled value is set to true(2) and
a MAC address is moved between the interfaces."
	::= { cmnMACMoveObjects 5 }


cmnMACMoveToPortId OBJECT-TYPE
	SYNTAX INTEGER (1..65535)
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The value of dot1dBasePort for the bridge port to which 
the cmnMACMoveAddress is moved from cmnMACMoveFromPortId 
on cmnMACMoveVlanNumber.  This object is instantiated only 
when cmnMACMoveFeatureEnabled value is set to true(2) and a 
MAC address is moved between the interfaces."
	::= { cmnMACMoveObjects 6 }


cmnMACMoveTime OBJECT-TYPE
	SYNTAX TimeStamp
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The value of sysUpTime when a cmnMACMoveAddress is moved 
between cmnMACMoveFromPortId and cmnMACMACMoveToPortId. 
This object is instantiated only when 
cmnMACMoveFeatureEnabled value is set to true(2) and a 
MAC address is moved between the interfaces."
	::= { cmnMACMoveObjects 7 }


cmnMACThresholdFeatureEnabled OBJECT-TYPE
	SYNTAX TruthValue
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Specifies whether the MAC Threshold notification feature is 
currently running in the device.

Setting this object to false(2) disables the MAC Threshold 
notification feature globally.

Setting this object to true(1) will start the MAC Threshold 
notification feature running in the device."
	::= { cmnMACThresholdObjects 1 }


cmnMACThresholdLimit OBJECT-TYPE
	SYNTAX Percent
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Indicate the threshold limit of the forwarding table 
utilization."
	::= { cmnMACThresholdObjects 2 }


cmnMACThresholdInterval OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Interval at which forwarding table utilization is compared 
against cmnMACThresholdLimit."
	::= { cmnMACThresholdObjects 3 }


cmnMACThresholdNotifEnabled OBJECT-TYPE
	SYNTAX TruthValue
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Specifies whether cmnMacMACThresholdNotification 
notifications will or will not be sent when the forwarding 
table utilization exceeds  or equals to cmnMACThresholdLimit 
value."
	::= { cmnMACThresholdObjects 4 }


cmnUtilizationTable OBJECT-TYPE
	SYNTAX SEQUENCE OF CmnUtilizationEntry
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "cmnUtilizationTable  specifies the forwarding table 
utilization information. This table is instantiated only 
when cmnMACThresholdFeatureEnabled value is set to true(2).
Entries in this table are updated at the end of every
cmnMACThresholdInterval."
	::= { cmnMACThresholdObjects 5 }


cmnUtilizationEntry OBJECT-TYPE
	SYNTAX CmnUtilizationEntry
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "A conceptual row containing forwarding table utilization 
maintained by switching engine (identified by 
entPhysicalIndex). Each switching engine managed by this 
MIB module can have at least one entry in this table."
	INDEX { entPhysicalIndex  }

	::= { cmnUtilizationTable 1 }

cmnUtilizationEntry ::=
	SEQUENCE {
		cmnUtilizationEntries Unsigned32,
		cmnUtilizationUtilization Percent,
		cmnUtilizationTimeStamp TimeStamp
		}

cmnUtilizationEntries OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Indicates the number of entries present in the forwarding 
table for the given entPhysicalIndex calculated at the 
end of cmnMACThresholdInterval."
	::= { cmnUtilizationEntry 1 }


cmnUtilizationUtilization OBJECT-TYPE
	SYNTAX Percent
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Indicates the utilization of the forwarding table for the given
entPhysicalIndex calculated at the end of 
cmnMACThresholdInterval."
	::= { cmnUtilizationEntry 2 }


cmnUtilizationTimeStamp OBJECT-TYPE
	SYNTAX TimeStamp
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Indicates the sysUptime at which the cmnUtilizationUtilization 
is updated."
	::= { cmnUtilizationEntry 3 }


cmnMIBNotificationPrefix OBJECT IDENTIFIER ::= { ciscoMacNotificationMIB 2 }

cmnMIBNotifications OBJECT IDENTIFIER ::= { cmnMIBNotificationPrefix 0 }

cmnMIBConformance OBJECT IDENTIFIER ::= { ciscoMacNotificationMIB 3 }

cmnMIBCompliances OBJECT IDENTIFIER ::= { cmnMIBConformance 1 }

cmnMIBGroups OBJECT IDENTIFIER ::= { cmnMIBConformance 2 }

cmnGlobalGroup OBJECT IDENTIFIER ::= { cmnMIBGroups 1 }

cmnInterfaceGroup OBJECT IDENTIFIER ::= { cmnMIBGroups 2 }

cmnNotificationGroup OBJECT IDENTIFIER ::= { cmnMIBGroups 3 }

cmnMACMoveGroup OBJECT IDENTIFIER ::= { cmnMIBGroups 5 }

cmnMACThresholdGroup OBJECT IDENTIFIER ::= { cmnMIBGroups 6 }

cmnMACMoveNotifGroup OBJECT IDENTIFIER ::= { cmnMIBGroups 7 }

cmnMACThresholdNotifGroup OBJECT IDENTIFIER ::= { cmnMIBGroups 8 }

cmnMacChangedNotification TRAP-TYPE
	ENTERPRISE cmnMIBNotificationPrefix
	VARIABLES { cmnHistMacChangedMsg, cmnHistTimestamp }
DESCRIPTION "This notification is generated when there is enough MAC
address information to fully occupy a maximum size SNMP trap
message. This notification is also generated when there
is at least one MAC address changed or removed and the amount
of time elapsed from the previous notification is greater
than the maximum wait time denoted by 
cmnNotificationInterval object. 

If there are more MAC addresses information than can fit into
one cmmHistTrapContent object, then multiple notifications
will be generated."
	::= 1


cmnMacMoveNotification TRAP-TYPE
	ENTERPRISE cmnMIBNotificationPrefix
	VARIABLES { cmnMACMoveAddress, cmnMACMoveVlanNumber, cmnMACMoveFromPortId, cmnMACMoveToPortId, cmnMACMoveTime }
DESCRIPTION "cmnMacMoveNotification is generated when a MAC address is 
moved between two interfaces."
	::= 2


cmnMacThresholdExceedNotif TRAP-TYPE
	ENTERPRISE cmnMIBNotificationPrefix
	VARIABLES { cmnUtilizationUtilization, cmnMACThresholdLimit, cmnUtilizationTimeStamp }
DESCRIPTION "cmnMacThresholdExceedNotif is sent when 
cmnUtilizationUtilization exceeds or equals to the 
cmnMACThresholdLimit for a given entPhysicalIndex."
	::= 3


END

