1CISCO-APPLIANCE-REDUNDANCY-MIB DEFINITIONS ::= BEGIN
2
3IMPORTS
4    MODULE-IDENTITY,
5    NOTIFICATION-TYPE,
6    OBJECT-TYPE,
7    Counter32,
8    Unsigned32
9            FROM SNMPv2-SMI
10    InetAddressType,
11    InetAddress
12            FROM INET-ADDRESS-MIB
13    InterfaceIndexOrZero
14        FROM IF-MIB
15    DateAndTime,
16    TruthValue,
17    TimeInterval,
18    TEXTUAL-CONVENTION
19	    FROM SNMPv2-TC
20    MODULE-COMPLIANCE,
21    NOTIFICATION-GROUP,
22    OBJECT-GROUP
23            FROM SNMPv2-CONF
24    ciscoMgmt
25            FROM CISCO-SMI;
26
27ciscoApplianceRedundancyMIB MODULE-IDENTITY
28    LAST-UPDATED    "200412230000Z"
29    ORGANIZATION    "Cisco Systems, Inc."
30    CONTACT-INFO
31                    "Cisco Systems
32                     Customer Service
33
34             Postal: 170 W. Tasman Drive
35                     San Jose, CA 95134
36                     USA
37
38             Tel:    +1 800 553-NETS
39
40             E-mail: cs-wlse@cisco.com"
41    DESCRIPTION
42        "This mib defines the SNMP objects to report the status of
43         High Availability (HA) functionality in Cisco network
44         management appliance devices. The HA functinality is
45         achieved via the redundancy of network management appliance
46         devices.
47
48         An network management appliance is a device which combines
49         hardware and software to provide specific network management
50         services. Cisco WLSE, Wireless Service Engine (WLSE) is such
51         an appliance.
52
53         The High Availability is achieved via redundancy of
54         appliances. This redundancy scheme is designed to support
55         hardware or software failure of the appliances in a non-
56         disruptive manner. Redundancy is achieved by configuring
57         a cluster of two appliances with one common virtual IP
58         address. The data is mirrored from the active appliance to
59         the standby appliance at regular intervals.
60
61         One of the appliances is in active mode, performing all
62         normal functions. The other appliance is in warm standby
63         mode; that is, the appliance is up but no application
64         services are running.
65
66         Both the active and standby appliances have their own IP
67         addresses. The active appliance also owns the virtual IP
68         address to which all the service requests are made.
69
70         The active appliance and standby appliance periodically poll
71         each other. If the standby appliance cannot reach the active
72         appliance, it will become the active appliance. This is
73         called a switchover event. The switchover can be caused by
74         other causes, for example, via user commands.
75
76         Both the active and standby appliances should implement
77         this MIB and report any exceptions caused by switchover
78         events."
79
80    ::= { ciscoMgmt 458 }
81
82ciscoApplRedundancyMIBObjects  OBJECT IDENTIFIER
83        ::= { ciscoApplianceRedundancyMIB 1 }
84
85carConfigObjects OBJECT IDENTIFIER
86        ::= { ciscoApplRedundancyMIBObjects 1 }
87
88carSwitchOverObjects OBJECT IDENTIFIER
89        ::= { ciscoApplRedundancyMIBObjects 2 }
90
91-- Textual Conventions
92
93CarRedundancyState ::= TEXTUAL-CONVENTION
94    STATUS    current
95    DESCRIPTION
96        "States of the HA redundancy:
97
98         notConfigured      - The appliance is not configured for
99                              redundancy.
100
101         starting           - The appliance is configured for redundancy
102                              and is initializing. This state could
103                              apply to both active and standby
104                              appliances.
105
106         active             - The appliance is the active appliance.
107
108         preStandby         - The appliance is configured to be
109                              standby and is attempting to restore
110                              data from the active appliance and is not
111                              yet in the standby mode.
112
113         standby            - The appliance is warm standby mode.
114
115         activeLostStandby  - The active appliance is not getting any
116                              response from the standby appliance.
117
118         activeLostNetwork  - The active appliance is not getting any
119                              response from the standby appliance or
120                              from the default gateway. There is
121                              possibly network issue.
122
123         standbyLostNetwork - The standby appliance is not getting any
124                              response from the active appliance or
125                              from the default gateway. There is
126                              possibly network issue."
127
128    SYNTAX INTEGER {
129           notConfigured (1),
130           starting (2),
131           active (3),
132           preStandby (4),
133           standby (5),
134           activeLostStandby (6),
135           activeLostNetwork (7),
136           standbyLostNetwork (8)
137           }
138
139CarSwitchOverReason ::= TEXTUAL-CONVENTION
140    STATUS    current
141    DESCRIPTION
142        "Cause of HA switchover event.
143
144         lossConnWithActive - Switchover is caused by loss of
145                              connectivity to active appliance.
146
147         forcedSwitchOver   - Switchover is caused by user command.
148
149         unknown            - Unknown reason."
150
151    SYNTAX INTEGER {
152           lossConnWithActive(1),
153           forcedSwitchOver(2),
154           unknown(3)
155           }
156
157-- HA Device Configuration data
158
159carRedundancySyncInterval OBJECT-TYPE
160    SYNTAX      TimeInterval
161    MAX-ACCESS  read-only
162    STATUS      current
163    DESCRIPTION
164        "Time interval at which the active and standby appliances
165         are synchronized. Synchronization consists of incrementally
166         backing up the data on the active appliance and restoring
167         on the standby appliance."
168    ::= { carConfigObjects 1 }
169
170carRedundancyCheckInterval OBJECT-TYPE
171    SYNTAX      TimeInterval
172    MAX-ACCESS  read-only
173    STATUS      current
174    DESCRIPTION
175        "Time interval to check the availability status of each
176         appliance. Both the active and standby appliances will
177         check the status of each other in this time interval.
178         If the standby appliance is not able to connect to the
179         active appliance during this check, it will become the
180         active appliance."
181    ::= { carConfigObjects 2 }
182
183carRedundancyState  OBJECT-TYPE
184    SYNTAX      CarRedundancyState
185    MAX-ACCESS  read-only
186    STATUS      current
187    DESCRIPTION
188        "The HA redundancy state of this appliance device."
189    DEFVAL      { notConfigured }
190    ::= { carConfigObjects 3 }
191
192carNotificationEnabled  OBJECT-TYPE
193    SYNTAX      TruthValue
194    MAX-ACCESS  read-only
195    STATUS      current
196    DESCRIPTION
197        "Enable or disable HA switchover event notifications via SNMP."
198    DEFVAL      { false }
199    ::= { carConfigObjects 4 }
200
201carHAAddressTable OBJECT-TYPE
202    SYNTAX      SEQUENCE OF CarHAAddressEntry
203    MAX-ACCESS  not-accessible
204    STATUS      current
205    DESCRIPTION
206        "This table keeps the current configuration of the address
207         information of the active and standby appliances. There is an
208         entry in this table corresponding to each network interface
209         that is configured for redundancy. Thus, the number of
210         entries in this table corresponds to the number of interfaces
211         configured for redundancy."
212    ::= { carConfigObjects 5 }
213
214carHAAddressEntry OBJECT-TYPE
215    SYNTAX      CarHAAddressEntry
216    MAX-ACCESS  not-accessible
217    STATUS      current
218    DESCRIPTION
219        "An entry containing address information for HA configuration
220         on a network interface."
221    INDEX { carHAAddrTableIndex }
222    ::= { carHAAddressTable 1 }
223
224CarHAAddressEntry::=
225    SEQUENCE {
226        carHAAddrTableIndex        InterfaceIndexOrZero,
227        carVirtualAddressType      InetAddressType,
228        carVirtualAddress          InetAddress,
229        carMyAddressType           InetAddressType,
230        carMyAddress               InetAddress,
231        carPeerAddressType         InetAddressType,
232        carPeerAddress             InetAddress
233    }
234
235carHAAddrTableIndex OBJECT-TYPE
236    SYNTAX      InterfaceIndexOrZero
237    MAX-ACCESS  not-accessible
238    STATUS      current
239    DESCRIPTION
240        "This index matches the interface number for which the Virtual
241         IP configuration is maintained. For example, the Virtual IP
242         configured on interface eth0 will be index 0. Entry for eth1
243         will be index 1,... and so on."
244    ::= { carHAAddressEntry  1 }
245
246carVirtualAddressType  OBJECT-TYPE
247    SYNTAX      InetAddressType
248    MAX-ACCESS  read-only
249    STATUS      current
250    DESCRIPTION
251        "The type of address stored in carVirtualAddress."
252    ::= { carHAAddressEntry 2 }
253
254carVirtualAddress  OBJECT-TYPE
255    SYNTAX      InetAddress
256    MAX-ACCESS  read-only
257    STATUS      current
258    DESCRIPTION
259        "The virtual IP address configured for this interface. The type
260		 of this mib variable is defined in carVirtualAddressType.
261         This address binds to the active appliance at all times.
262         All the management requests should be made to this address."
263    ::= { carHAAddressEntry 3 }
264
265carMyAddressType  OBJECT-TYPE
266    SYNTAX      InetAddressType
267    MAX-ACCESS  read-only
268    STATUS      current
269    DESCRIPTION
270        "The type of address stored in carMyAddress"
271    ::= { carHAAddressEntry 4 }
272
273carMyAddress  OBJECT-TYPE
274    SYNTAX      InetAddress
275    MAX-ACCESS  read-only
276    STATUS      current
277    DESCRIPTION
278        "The IP address of the interface configured for this HA
279         configuration in this appliance. The type of this mib variable
280         is defined in carMyAddressType. Note this value will not be
281         affected by switchover events."
282    ::= { carHAAddressEntry 5 }
283
284carPeerAddressType  OBJECT-TYPE
285    SYNTAX      InetAddressType
286    MAX-ACCESS  read-only
287    STATUS      current
288    DESCRIPTION
289        "The type of address stored in carPeerAddress"
290    ::= { carHAAddressEntry 6 }
291
292carPeerAddress  OBJECT-TYPE
293    SYNTAX      InetAddress
294    MAX-ACCESS  read-only
295    STATUS      current
296    DESCRIPTION
297        "The IP address of the interface configured for this HA
298         configuration in the peer appliance. The type of this mib
299         variable is defined in carPeerAddressType. Note this value
300         will not be affected by switchover events."
301    ::= { carHAAddressEntry 7 }
302
303-- HA SwitchOver data
304
305carLastSwitchOverReason OBJECT-TYPE
306    SYNTAX      CarSwitchOverReason
307    MAX-ACCESS  read-only
308    STATUS      current
309    DESCRIPTION
310        "Cause for the most recent switchover."
311    ::= { carSwitchOverObjects 1 }
312
313carLastSwitchOverTime    OBJECT-TYPE
314    SYNTAX      DateAndTime
315    MAX-ACCESS  read-only
316    STATUS      current
317    DESCRIPTION
318        "The local date and time when the last switchover event
319		 occurred and was logged to the system."
320    ::= { carSwitchOverObjects 2 }
321
322carTotalSwitchOvers  OBJECT-TYPE
323    SYNTAX      Counter32
324    MAX-ACCESS  read-only
325    STATUS      current
326    DESCRIPTION
327        "The number of all HA switchover events."
328    ::= { carSwitchOverObjects 3 }
329
330carMaxSwitchOverHistoryRecords  OBJECT-TYPE
331    SYNTAX      Unsigned32 (0..1024)
332    MAX-ACCESS  read-only
333    STATUS      current
334    DESCRIPTION
335        "The maximun number of records to keep in
336         carSwitchOverHistoryTable. New records will replace the old
337         records on a first-in-first-out basis.
338
339         A value of 0 indicates no history will be retained."
340    DEFVAL      { 20 }
341    ::= { carSwitchOverObjects 4 }
342
343carSwitchOverHistoryTable OBJECT-TYPE
344    SYNTAX      SEQUENCE OF CarSwitchOverHistEntry
345    MAX-ACCESS  not-accessible
346    STATUS      current
347    DESCRIPTION
348        "This table keeps an history of HA switchover
349         events. The maximum number of records is equal
350         or less than carMaxSwitchOverRecords."
351    ::= { carSwitchOverObjects 5 }
352
353carSwitchOverHistEntry OBJECT-TYPE
354    SYNTAX      CarSwitchOverHistEntry
355    MAX-ACCESS  not-accessible
356    STATUS      current
357    DESCRIPTION
358        "An entry containing information about a HA switchover event."
359    INDEX { carSWHistTableIndex }
360    ::= { carSwitchOverHistoryTable 1 }
361
362CarSwitchOverHistEntry::=
363    SEQUENCE {
364        carSWHistTableIndex               Unsigned32,
365        carSWHistActiveNodeAddressType    InetAddressType,
366        carSWHistActiveNodeAddress        InetAddress,
367        carSWHistStandbyNodeAddressType   InetAddressType,
368        carSWHistStandbyNodeAddress       InetAddress,
369        carSWHistEventTime                DateAndTime,
370        carSWHistEventReason              CarSwitchOverReason
371       }
372
373carSWHistTableIndex OBJECT-TYPE
374    SYNTAX      Unsigned32 (1..4294967295)
375    MAX-ACCESS  not-accessible
376    STATUS      current
377    DESCRIPTION
378        "An monotonically increasing number for the sole purpose
379         of indexing entries. When it reaches maximum value, the agent
380         sets it back to 1."
381    ::= { carSwitchOverHistEntry 1 }
382
383carSWHistActiveNodeAddressType  OBJECT-TYPE
384    SYNTAX      InetAddressType
385    MAX-ACCESS  read-only
386    STATUS      current
387    DESCRIPTION
388        "Represents the type of address stored in
389         carSWHistActiveNodeAddress."
390    ::= { carSwitchOverHistEntry 2 }
391
392carSWHistActiveNodeAddress  OBJECT-TYPE
393    SYNTAX      InetAddress
394    MAX-ACCESS  read-only
395    STATUS      current
396    DESCRIPTION
397        "The address of the active appliance after the switchover
398         event. carSWHistActiveNodeAddressType specifies the type of
399         this mib variable."
400    ::= { carSwitchOverHistEntry 3 }
401
402carSWHistStandbyNodeAddressType  OBJECT-TYPE
403    SYNTAX      InetAddressType
404    MAX-ACCESS  read-only
405    STATUS      current
406    DESCRIPTION
407        "Represents the type of address stored in
408         carSWHistStandbyNodeAddress."
409    ::= { carSwitchOverHistEntry 4 }
410
411carSWHistStandbyNodeAddress  OBJECT-TYPE
412    SYNTAX      InetAddress
413    MAX-ACCESS  read-only
414    STATUS      current
415    DESCRIPTION
416        "The address of the standby appliance after the switchover
417         event. carSWHistStandbyNodeAddressType specifies the type
418         of this mib variable."
419    ::= { carSwitchOverHistEntry 5 }
420
421carSWHistEventTime    OBJECT-TYPE
422    SYNTAX      DateAndTime
423    MAX-ACCESS  read-only
424    STATUS      current
425    DESCRIPTION
426        "The local date and time when the switchover event occurred
427         and was logged to the system."
428    ::= { carSwitchOverHistEntry 6 }
429
430carSWHistEventReason    OBJECT-TYPE
431    SYNTAX      CarSwitchOverReason
432    MAX-ACCESS  read-only
433    STATUS      current
434    DESCRIPTION
435        "Cause of the switchover event."
436    ::= { carSwitchOverHistEntry 7 }
437
438-- Notifications
439
440carHAMIBNotifPrefix OBJECT IDENTIFIER
441        ::= { ciscoApplianceRedundancyMIB 2 }
442
443carHAMIBNotifications OBJECT IDENTIFIER
444        ::= { carHAMIBNotifPrefix 0 }
445
446carSwitchOverNotification NOTIFICATION-TYPE
447    OBJECTS {
448        carSWHistEventTime,
449        carSWHistEventReason,
450        carSWHistActiveNodeAddressType,
451        carSWHistActiveNodeAddress,
452        carSWHistStandbyNodeAddressType,
453        carSWHistStandbyNodeAddress
454    }
455    STATUS  current
456    DESCRIPTION
457        "This notification is sent when a switchover event happened.
458         This notification can be enabled or disabled via
459         carNotificationEnabled."
460    ::= { carHAMIBNotifications 1 }
461
462-- conformance
463
464ciscoHAMIBConformance OBJECT IDENTIFIER
465    ::= { ciscoApplianceRedundancyMIB 3 }
466
467ciscoHAMIBCompliances OBJECT IDENTIFIER
468    ::= { ciscoHAMIBConformance 1 }
469
470ciscoHAMIBGroups OBJECT IDENTIFIER
471    ::= { ciscoHAMIBConformance 2 }
472
473-- compliance
474
475ciscoHAMIBCompliance MODULE-COMPLIANCE
476    STATUS  current
477    DESCRIPTION
478        "The compliance statement for entities which implement the
479         CISCO-APPLIANCE-HIGH-AVAILABILITY-MIB."
480
481    MODULE  -- This module
482        MANDATORY-GROUPS {
483            ciscoHAConfigDataGroup,
484			ciscoHASwitchOverDataGroup
485        }
486
487        GROUP ciscoHAExceptionNotifGroup
488        DESCRIPTION
489          "This group is optional."
490    ::= { ciscoHAMIBCompliances 1 }
491
492-- Units of conformance
493
494ciscoHAConfigDataGroup OBJECT-GROUP
495    OBJECTS {
496        carVirtualAddressType,
497        carVirtualAddress,
498        carMyAddressType,
499        carMyAddress,
500        carPeerAddressType,
501        carPeerAddress,
502        carRedundancySyncInterval,
503        carRedundancyCheckInterval,
504        carRedundancyState,
505        carNotificationEnabled
506    }
507    STATUS  current
508    DESCRIPTION
509        "A collection of objects that enable the switchover event
510         notification for the HA network elements."
511    ::= { ciscoHAMIBGroups 1 }
512
513ciscoHASwitchOverDataGroup OBJECT-GROUP
514    OBJECTS {
515        carLastSwitchOverReason,
516        carLastSwitchOverTime,
517        carTotalSwitchOvers,
518        carMaxSwitchOverHistoryRecords,
519        carSWHistActiveNodeAddressType,
520        carSWHistActiveNodeAddress,
521        carSWHistStandbyNodeAddressType,
522        carSWHistStandbyNodeAddress,
523        carSWHistEventTime,
524        carSWHistEventReason
525    }
526    STATUS  current
527    DESCRIPTION
528        "A collection of objects that record the switchover events
529         for HA network elements."
530    ::= { ciscoHAMIBGroups 2 }
531
532ciscoHAExceptionNotifGroup NOTIFICATION-GROUP
533    NOTIFICATIONS {
534    carSwitchOverNotification
535    }
536    STATUS  current
537    DESCRIPTION
538        "A collection of the monitored exception events."
539    ::= { ciscoHAMIBGroups 3 }
540
541END
542