CISCO-APPLIANCE-REDUNDANCY-MIB DEFINITIONS ::= BEGIN IMPORTS MODULE-IDENTITY, NOTIFICATION-TYPE, OBJECT-TYPE, Counter32, Unsigned32 FROM SNMPv2-SMI InetAddressType, InetAddress FROM INET-ADDRESS-MIB InterfaceIndexOrZero FROM IF-MIB DateAndTime, TruthValue, TimeInterval, TEXTUAL-CONVENTION FROM SNMPv2-TC MODULE-COMPLIANCE, NOTIFICATION-GROUP, OBJECT-GROUP FROM SNMPv2-CONF ciscoMgmt FROM CISCO-SMI; ciscoApplianceRedundancyMIB MODULE-IDENTITY LAST-UPDATED "200412230000Z" ORGANIZATION "Cisco Systems, Inc." CONTACT-INFO "Cisco Systems Customer Service Postal: 170 W. Tasman Drive San Jose, CA 95134 USA Tel: +1 800 553-NETS E-mail: cs-wlse@cisco.com" DESCRIPTION "This mib defines the SNMP objects to report the status of High Availability (HA) functionality in Cisco network management appliance devices. The HA functinality is achieved via the redundancy of network management appliance devices. An network management appliance is a device which combines hardware and software to provide specific network management services. Cisco WLSE, Wireless Service Engine (WLSE) is such an appliance. The High Availability is achieved via redundancy of appliances. This redundancy scheme is designed to support hardware or software failure of the appliances in a non- disruptive manner. Redundancy is achieved by configuring a cluster of two appliances with one common virtual IP address. The data is mirrored from the active appliance to the standby appliance at regular intervals. One of the appliances is in active mode, performing all normal functions. The other appliance is in warm standby mode; that is, the appliance is up but no application services are running. Both the active and standby appliances have their own IP addresses. The active appliance also owns the virtual IP address to which all the service requests are made. The active appliance and standby appliance periodically poll each other. If the standby appliance cannot reach the active appliance, it will become the active appliance. This is called a switchover event. The switchover can be caused by other causes, for example, via user commands. Both the active and standby appliances should implement this MIB and report any exceptions caused by switchover events." ::= { ciscoMgmt 458 } ciscoApplRedundancyMIBObjects OBJECT IDENTIFIER ::= { ciscoApplianceRedundancyMIB 1 } carConfigObjects OBJECT IDENTIFIER ::= { ciscoApplRedundancyMIBObjects 1 } carSwitchOverObjects OBJECT IDENTIFIER ::= { ciscoApplRedundancyMIBObjects 2 } -- Textual Conventions CarRedundancyState ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "States of the HA redundancy: notConfigured - The appliance is not configured for redundancy. starting - The appliance is configured for redundancy and is initializing. This state could apply to both active and standby appliances. active - The appliance is the active appliance. preStandby - The appliance is configured to be standby and is attempting to restore data from the active appliance and is not yet in the standby mode. standby - The appliance is warm standby mode. activeLostStandby - The active appliance is not getting any response from the standby appliance. activeLostNetwork - The active appliance is not getting any response from the standby appliance or from the default gateway. There is possibly network issue. standbyLostNetwork - The standby appliance is not getting any response from the active appliance or from the default gateway. There is possibly network issue." SYNTAX INTEGER { notConfigured (1), starting (2), active (3), preStandby (4), standby (5), activeLostStandby (6), activeLostNetwork (7), standbyLostNetwork (8) } CarSwitchOverReason ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "Cause of HA switchover event. lossConnWithActive - Switchover is caused by loss of connectivity to active appliance. forcedSwitchOver - Switchover is caused by user command. unknown - Unknown reason." SYNTAX INTEGER { lossConnWithActive(1), forcedSwitchOver(2), unknown(3) } -- HA Device Configuration data carRedundancySyncInterval OBJECT-TYPE SYNTAX TimeInterval MAX-ACCESS read-only STATUS current DESCRIPTION "Time interval at which the active and standby appliances are synchronized. Synchronization consists of incrementally backing up the data on the active appliance and restoring on the standby appliance." ::= { carConfigObjects 1 } carRedundancyCheckInterval OBJECT-TYPE SYNTAX TimeInterval MAX-ACCESS read-only STATUS current DESCRIPTION "Time interval to check the availability status of each appliance. Both the active and standby appliances will check the status of each other in this time interval. If the standby appliance is not able to connect to the active appliance during this check, it will become the active appliance." ::= { carConfigObjects 2 } carRedundancyState OBJECT-TYPE SYNTAX CarRedundancyState MAX-ACCESS read-only STATUS current DESCRIPTION "The HA redundancy state of this appliance device." DEFVAL { notConfigured } ::= { carConfigObjects 3 } carNotificationEnabled OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-only STATUS current DESCRIPTION "Enable or disable HA switchover event notifications via SNMP." DEFVAL { false } ::= { carConfigObjects 4 } carHAAddressTable OBJECT-TYPE SYNTAX SEQUENCE OF CarHAAddressEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table keeps the current configuration of the address information of the active and standby appliances. There is an entry in this table corresponding to each network interface that is configured for redundancy. Thus, the number of entries in this table corresponds to the number of interfaces configured for redundancy." ::= { carConfigObjects 5 } carHAAddressEntry OBJECT-TYPE SYNTAX CarHAAddressEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry containing address information for HA configuration on a network interface." INDEX { carHAAddrTableIndex } ::= { carHAAddressTable 1 } CarHAAddressEntry::= SEQUENCE { carHAAddrTableIndex InterfaceIndexOrZero, carVirtualAddressType InetAddressType, carVirtualAddress InetAddress, carMyAddressType InetAddressType, carMyAddress InetAddress, carPeerAddressType InetAddressType, carPeerAddress InetAddress } carHAAddrTableIndex OBJECT-TYPE SYNTAX InterfaceIndexOrZero MAX-ACCESS not-accessible STATUS current DESCRIPTION "This index matches the interface number for which the Virtual IP configuration is maintained. For example, the Virtual IP configured on interface eth0 will be index 0. Entry for eth1 will be index 1,... and so on." ::= { carHAAddressEntry 1 } carVirtualAddressType OBJECT-TYPE SYNTAX InetAddressType MAX-ACCESS read-only STATUS current DESCRIPTION "The type of address stored in carVirtualAddress." ::= { carHAAddressEntry 2 } carVirtualAddress OBJECT-TYPE SYNTAX InetAddress MAX-ACCESS read-only STATUS current DESCRIPTION "The virtual IP address configured for this interface. The type of this mib variable is defined in carVirtualAddressType. This address binds to the active appliance at all times. All the management requests should be made to this address." ::= { carHAAddressEntry 3 } carMyAddressType OBJECT-TYPE SYNTAX InetAddressType MAX-ACCESS read-only STATUS current DESCRIPTION "The type of address stored in carMyAddress" ::= { carHAAddressEntry 4 } carMyAddress OBJECT-TYPE SYNTAX InetAddress MAX-ACCESS read-only STATUS current DESCRIPTION "The IP address of the interface configured for this HA configuration in this appliance. The type of this mib variable is defined in carMyAddressType. Note this value will not be affected by switchover events." ::= { carHAAddressEntry 5 } carPeerAddressType OBJECT-TYPE SYNTAX InetAddressType MAX-ACCESS read-only STATUS current DESCRIPTION "The type of address stored in carPeerAddress" ::= { carHAAddressEntry 6 } carPeerAddress OBJECT-TYPE SYNTAX InetAddress MAX-ACCESS read-only STATUS current DESCRIPTION "The IP address of the interface configured for this HA configuration in the peer appliance. The type of this mib variable is defined in carPeerAddressType. Note this value will not be affected by switchover events." ::= { carHAAddressEntry 7 } -- HA SwitchOver data carLastSwitchOverReason OBJECT-TYPE SYNTAX CarSwitchOverReason MAX-ACCESS read-only STATUS current DESCRIPTION "Cause for the most recent switchover." ::= { carSwitchOverObjects 1 } carLastSwitchOverTime OBJECT-TYPE SYNTAX DateAndTime MAX-ACCESS read-only STATUS current DESCRIPTION "The local date and time when the last switchover event occurred and was logged to the system." ::= { carSwitchOverObjects 2 } carTotalSwitchOvers OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of all HA switchover events." ::= { carSwitchOverObjects 3 } carMaxSwitchOverHistoryRecords OBJECT-TYPE SYNTAX Unsigned32 (0..1024) MAX-ACCESS read-only STATUS current DESCRIPTION "The maximun number of records to keep in carSwitchOverHistoryTable. New records will replace the old records on a first-in-first-out basis. A value of 0 indicates no history will be retained." DEFVAL { 20 } ::= { carSwitchOverObjects 4 } carSwitchOverHistoryTable OBJECT-TYPE SYNTAX SEQUENCE OF CarSwitchOverHistEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table keeps an history of HA switchover events. The maximum number of records is equal or less than carMaxSwitchOverRecords." ::= { carSwitchOverObjects 5 } carSwitchOverHistEntry OBJECT-TYPE SYNTAX CarSwitchOverHistEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry containing information about a HA switchover event." INDEX { carSWHistTableIndex } ::= { carSwitchOverHistoryTable 1 } CarSwitchOverHistEntry::= SEQUENCE { carSWHistTableIndex Unsigned32, carSWHistActiveNodeAddressType InetAddressType, carSWHistActiveNodeAddress InetAddress, carSWHistStandbyNodeAddressType InetAddressType, carSWHistStandbyNodeAddress InetAddress, carSWHistEventTime DateAndTime, carSWHistEventReason CarSwitchOverReason } carSWHistTableIndex OBJECT-TYPE SYNTAX Unsigned32 (1..4294967295) MAX-ACCESS not-accessible STATUS current DESCRIPTION "An monotonically increasing number for the sole purpose of indexing entries. When it reaches maximum value, the agent sets it back to 1." ::= { carSwitchOverHistEntry 1 } carSWHistActiveNodeAddressType OBJECT-TYPE SYNTAX InetAddressType MAX-ACCESS read-only STATUS current DESCRIPTION "Represents the type of address stored in carSWHistActiveNodeAddress." ::= { carSwitchOverHistEntry 2 } carSWHistActiveNodeAddress OBJECT-TYPE SYNTAX InetAddress MAX-ACCESS read-only STATUS current DESCRIPTION "The address of the active appliance after the switchover event. carSWHistActiveNodeAddressType specifies the type of this mib variable." ::= { carSwitchOverHistEntry 3 } carSWHistStandbyNodeAddressType OBJECT-TYPE SYNTAX InetAddressType MAX-ACCESS read-only STATUS current DESCRIPTION "Represents the type of address stored in carSWHistStandbyNodeAddress." ::= { carSwitchOverHistEntry 4 } carSWHistStandbyNodeAddress OBJECT-TYPE SYNTAX InetAddress MAX-ACCESS read-only STATUS current DESCRIPTION "The address of the standby appliance after the switchover event. carSWHistStandbyNodeAddressType specifies the type of this mib variable." ::= { carSwitchOverHistEntry 5 } carSWHistEventTime OBJECT-TYPE SYNTAX DateAndTime MAX-ACCESS read-only STATUS current DESCRIPTION "The local date and time when the switchover event occurred and was logged to the system." ::= { carSwitchOverHistEntry 6 } carSWHistEventReason OBJECT-TYPE SYNTAX CarSwitchOverReason MAX-ACCESS read-only STATUS current DESCRIPTION "Cause of the switchover event." ::= { carSwitchOverHistEntry 7 } -- Notifications carHAMIBNotifPrefix OBJECT IDENTIFIER ::= { ciscoApplianceRedundancyMIB 2 } carHAMIBNotifications OBJECT IDENTIFIER ::= { carHAMIBNotifPrefix 0 } carSwitchOverNotification NOTIFICATION-TYPE OBJECTS { carSWHistEventTime, carSWHistEventReason, carSWHistActiveNodeAddressType, carSWHistActiveNodeAddress, carSWHistStandbyNodeAddressType, carSWHistStandbyNodeAddress } STATUS current DESCRIPTION "This notification is sent when a switchover event happened. This notification can be enabled or disabled via carNotificationEnabled." ::= { carHAMIBNotifications 1 } -- conformance ciscoHAMIBConformance OBJECT IDENTIFIER ::= { ciscoApplianceRedundancyMIB 3 } ciscoHAMIBCompliances OBJECT IDENTIFIER ::= { ciscoHAMIBConformance 1 } ciscoHAMIBGroups OBJECT IDENTIFIER ::= { ciscoHAMIBConformance 2 } -- compliance ciscoHAMIBCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "The compliance statement for entities which implement the CISCO-APPLIANCE-HIGH-AVAILABILITY-MIB." MODULE -- This module MANDATORY-GROUPS { ciscoHAConfigDataGroup, ciscoHASwitchOverDataGroup } GROUP ciscoHAExceptionNotifGroup DESCRIPTION "This group is optional." ::= { ciscoHAMIBCompliances 1 } -- Units of conformance ciscoHAConfigDataGroup OBJECT-GROUP OBJECTS { carVirtualAddressType, carVirtualAddress, carMyAddressType, carMyAddress, carPeerAddressType, carPeerAddress, carRedundancySyncInterval, carRedundancyCheckInterval, carRedundancyState, carNotificationEnabled } STATUS current DESCRIPTION "A collection of objects that enable the switchover event notification for the HA network elements." ::= { ciscoHAMIBGroups 1 } ciscoHASwitchOverDataGroup OBJECT-GROUP OBJECTS { carLastSwitchOverReason, carLastSwitchOverTime, carTotalSwitchOvers, carMaxSwitchOverHistoryRecords, carSWHistActiveNodeAddressType, carSWHistActiveNodeAddress, carSWHistStandbyNodeAddressType, carSWHistStandbyNodeAddress, carSWHistEventTime, carSWHistEventReason } STATUS current DESCRIPTION "A collection of objects that record the switchover events for HA network elements." ::= { ciscoHAMIBGroups 2 } ciscoHAExceptionNotifGroup NOTIFICATION-GROUP NOTIFICATIONS { carSwitchOverNotification } STATUS current DESCRIPTION "A collection of the monitored exception events." ::= { ciscoHAMIBGroups 3 } END