-- ***************************************************************** -- gbnServiceMAC-NOTIFICATION-MIB.mi2: MAC Notification MIB -- ***************************************************************** MAC-NOTIFICATION-MIB DEFINITIONS ::= BEGIN IMPORTS MODULE-IDENTITY, OBJECT-TYPE, Counter32, NOTIFICATION-TYPE, Unsigned32, Integer32 FROM SNMPv2-SMI MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP FROM SNMPv2-CONF TruthValue, TimeStamp, MacAddress, TEXTUAL-CONVENTION FROM SNMPv2-TC ifIndex FROM IF-MIB VlanId FROM Q-BRIDGE-MIB gbnServiceMACNotification FROM ADMIN-MASTER-MIB; macNotificationMIB MODULE-IDENTITY LAST-UPDATED "201204080000Z" ORGANIZATION "New admin, Inc." CONTACT-INFO "http://www.admin.com" DESCRIPTION "This MIB module is for configuration of the MAC notification feature. MAC notification is a mechanism to inform monitoring devices when there are MAC addresses learnt or removed from the forwarding database of the monitored devices." REVISION "201204080000Z" DESCRIPTION "Initial version of this MIB module." ::= { gbnServiceMACNotification 1 } -- Textual Conventions Percent ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "An integer that is in the range of a percent value." SYNTAX Integer32 (1..100) PhysicalIndex ::= TEXTUAL-CONVENTION DISPLAY-HINT "d" STATUS current DESCRIPTION "An arbitrary value that uniquely identifies the physical entity. The value should be a small, positive integer. Index values for different physical entities are not necessarily contiguous." SYNTAX Integer32 (1..2147483647) -- MAC Notification MIB object definitions macNotificationMIBObjects OBJECT IDENTIFIER ::= { macNotificationMIB 1 } -- MAC Notification MIB consists of the following groups -- [1] Mac Notification Global Group (mnGlobalObjects). -- [2] Mac Notification Interface Group (mnInterfaceObjects). mnGlobalObjects OBJECT IDENTIFIER ::= { macNotificationMIBObjects 1 } mnInterfaceObjects OBJECT IDENTIFIER ::= { macNotificationMIBObjects 2 } --********************************************************************** -- Mac Notification Global Group --********************************************************************** mnGlobalFeatureEnabled OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-write STATUS current 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 mnIfConfigTable." ::= { mnGlobalObjects 1 } mnNotificationInterval OBJECT-TYPE SYNTAX Unsigned32 (0..4294967295) UNITS "seconds" MAX-ACCESS read-write STATUS current DESCRIPTION "This object specifies the maximum interval of time between mnMacChangedNotifications being generated by the device. If the value of mnNotificationsEnabled is true(1), the device will send out the generated mnMacChangedNotifications and archive the MAC change notification events in the mnHistoryTable. If the value of mnNotificationsEnabled is false(2), the device will not send out the generated mnMacChangedNotifications but it will archive these events in the mnHistoryTable. If the value of this object is equal to 0, the device will generate mnMacChangedNotifications and archive the MAC change notification events in the mnHistoryTable 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 mnMacChangedNotifications and archive the MAC change notification events in the mnHistoryTable." ::= { mnGlobalObjects 2 } mnMacAddressesLearnt OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "Indicates the number of MAC addresses learnt by the device." ::= { mnGlobalObjects 3 } mnMacAddressesRemoved OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "Indicates the number of MAC addresses removed from the forwarding database." ::= { mnGlobalObjects 4 } mnNotificationsEnabled OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-write STATUS current DESCRIPTION "Indicates whether mnMacChangedNotification 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 mnHistoryTable." DEFVAL { false } ::= { mnGlobalObjects 5 } mnNotificationsSent OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "Indicates the number of mnMacChangedNotifications sent out by the device." ::= { mnGlobalObjects 6 } mnHistTableMaxLength OBJECT-TYPE SYNTAX Unsigned32 (0..500) UNITS "entries" MAX-ACCESS read-write STATUS current DESCRIPTION "The upper limit on the number of entries that the mnHistoryTable 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." DEFVAL { 1 } ::= { mnGlobalObjects 7 } mnHistoryTable OBJECT-TYPE SYNTAX SEQUENCE OF MnHistoryEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table will archive the MAC change notification events generated by this device. The MAC change notification events are archived here even if mnMacChangesNotifications are not actually sent." ::= { mnGlobalObjects 8 } mnHistoryEntry OBJECT-TYPE SYNTAX MnHistoryEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A MAC change notification message that was previously generated by this device. Each entry is indexed by a message index." INDEX { mnHistIndex } ::= { mnHistoryTable 1 } MnHistoryEntry ::= SEQUENCE { mnHistIndex Unsigned32, mnHistMacChangedMsg OCTET STRING, mnHistTimestamp TimeStamp } mnHistIndex OBJECT-TYPE SYNTAX Unsigned32 (1..4294967295) MAX-ACCESS not-accessible STATUS current 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." ::= { mnHistoryEntry 1 } mnHistMacChangedMsg OBJECT-TYPE SYNTAX OCTET STRING (SIZE(1..254)) MAX-ACCESS read-only STATUS current DESCRIPTION "This object contains the information of a MAC change notification event. It consists of several tuples packed together in the format of '...'. Each tuple consist of 11 octets in the format of '' where is of size 1 octet and supports the following values 0 - End of MIB object. 1 - MAC learnt. 2 - MAC removed. is VLAN number of the VLAN which the MAC address is belonged to and has size of 2 octet. is the Layer2 Mac Address and has size of 6 octets. is the value of dot1dBasePort for the interface from which the MAC address is learnt and has size of 2 octets." ::= { mnHistoryEntry 2 } mnHistTimestamp OBJECT-TYPE SYNTAX TimeStamp MAX-ACCESS read-only STATUS current DESCRIPTION "The value of sysUpTime when the mnMacChangedNotification containing the information denoted by the mnHistMacChangedMsg object in this entry was generated." ::= { mnHistoryEntry 3 } --********************************************************************* -- Mac Notification Interface Group --********************************************************************* -- -- mnIfConfigTable -- mnIfConfigTable OBJECT-TYPE SYNTAX SEQUENCE OF MnIfConfigEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table enables or disables the generation of notification at each interface when MAC address is learnt or removed." ::= { mnInterfaceObjects 1 } mnIfConfigEntry OBJECT-TYPE SYNTAX MnIfConfigEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Each entry contains the configuration for enabling the MAC notification at each interface that supports this feature." INDEX { ifIndex } ::= { mnIfConfigTable 1 } MnIfConfigEntry ::= SEQUENCE { mnMacAddrLearntEnable TruthValue, mnMacAddrRemovedEnable TruthValue } mnMacAddrLearntEnable OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-write STATUS current DESCRIPTION "Indicates whether this interface is enabled to send mnMacChangedNotification when it learns a new MAC address. This variable has no effect when the value of mnGlobalFeatureEnabled object is false(2). Setting this object to true(1) enables the sending of mnMacChangedNotification when this interface learns a new MAC address. Setting this object to false(2) disables the sending of mnMacChangedNotification when this interface learns a new MAC address." DEFVAL { false } ::= { mnIfConfigEntry 1 } mnMacAddrRemovedEnable OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-write STATUS current DESCRIPTION "Indicates whether this interface is enabled to send mnMacChangedNotification when a MAC address which it learnt previously is removed from the forwarding table. This variable has no effect when the value of mnGlobalFeatureEnabled object is false(2). Setting this object to true(1) enables the sending of mnMacChangedNotification 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 mnMacChangedNotification when a MAC address which this interface learnt previously is removed from the forwarding table." DEFVAL { false } ::= { mnIfConfigEntry 2 } -- -- -- Notification -- mnMIBNotificationPrefix OBJECT IDENTIFIER ::= { macNotificationMIB 2 } mnMIBNotifications OBJECT IDENTIFIER ::= { mnMIBNotificationPrefix 0 } mnMacChangedNotification NOTIFICATION-TYPE OBJECTS { mnHistMacChangedMsg, mnHistTimestamp } STATUS current 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 mnNotificationInterval object. If there are more MAC addresses information than can fit into one mmHistTrapContent object, then multiple notifications will be generated." ::= { mnMIBNotifications 1 } -- -- Conformance -- mnMIBConformance OBJECT IDENTIFIER ::= { macNotificationMIB 3 } mnMIBCompliances OBJECT IDENTIFIER ::= { mnMIBConformance 1 } mnMIBGroups OBJECT IDENTIFIER ::= { mnMIBConformance 2 } -- Compliance mnMIBCompliance MODULE-COMPLIANCE STATUS deprecated DESCRIPTION "The compliance statement for the MAC-NOTIFICATION-MIB." MODULE MANDATORY-GROUPS { mnGlobalGroup, mnInterfaceGroup, mnNotificationGroup } ::= { mnMIBCompliances 1 } mnMIBComplianceVer1 MODULE-COMPLIANCE STATUS current DESCRIPTION "The compliance statement for the MAC-NOTIFICATION-MIB." MODULE MANDATORY-GROUPS { mnGlobalGroup, mnInterfaceGroup, mnNotificationGroup } ::= { mnMIBCompliances 2 } -- -- Units of Conformance -- -- Units of Conformance -- mnGlobalGroup OBJECT-GROUP OBJECTS { mnGlobalFeatureEnabled, mnNotificationInterval, mnMacAddressesLearnt, mnMacAddressesRemoved, mnNotificationsEnabled, mnHistTableMaxLength, mnHistMacChangedMsg, mnHistTimestamp, mnNotificationsSent } STATUS current DESCRIPTION "A collection of objects providing the global configuration and information for MAC notification." ::= { mnMIBGroups 1 } mnInterfaceGroup OBJECT-GROUP OBJECTS { mnMacAddrLearntEnable, mnMacAddrRemovedEnable } STATUS current DESCRIPTION "A collection of objects providing the configuration information for MAC notification at each interface." ::= { mnMIBGroups 2 } mnNotificationGroup NOTIFICATION-GROUP NOTIFICATIONS { mnMacChangedNotification } STATUS current DESCRIPTION "The notification generated by the MAC-NOTIFICATION-MIB." ::= { mnMIBGroups 3 } END