summaryrefslogtreecommitdiff
path: root/MIBS/fs/MAC-NOTIFICATION-MIB
blob: b1fbd658a16dfb4b49785fadbd133aad191a14c4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
-- *****************************************************************
-- 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 '<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."
    ::= { 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