Disman Working Group David T. Perkins Internet Draft SNMPinfo Expires: August 2001 March 2, 2001 SNMP Alarms and MIB Module draft-ietf-disman-snmp-alarm-mib-01.txt Status of this Memo This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. Abstract This document defines the model for alarms in the SNMP framework and defines a Management Information Base (MIB) module that defines a list of outstanding alarms and log of alarms that have occurred and have been cleared. Table of Contents 1. The SNMP Management Framework ..................................3 2. Introduction ...................................................4 3. Exception Reporting Framework ..................................4 3.1 Terminology ..................................................4 3.2 Alarm Definitions ............................................4 4. MIB Module Overview ............................................6 5. Definitions ....................................................7 6. Examples ......................................................28 Perkins Standards Track [Page 1] Internet-Draft SNMP Alarm MIB March 2001 7. Security Considerations .......................................28 8. Author's Address ..............................................28 9. Acknowledgements ..............................................28 10. References ..................................................29 11. Full Copyright Statement ....................................29 Perkins Standards Track [Page 2] Internet-Draft SNMP Alarm MIB March 2001 1. The SNMP Management Framework o An overall architecture, described in RFC 2571 [RFC2571]. o Mechanisms for describing and naming objects and events for the purpose of management. The first version of this Structure of Management Information (SMI) is called SMIv1 and described in STD 16, RFC 1155 [RFC1155], STD 16, RFC 1212 [RFC1212] and RFC 1215 [RFC1215]. The second version, called SMIv2, is described in STD 58, RFC 2578 [RFC2578], STD 58, RFC 2579 [RFC2579] and STD 58, RFC 2580 [RFC2580]. o Message protocols for transferring management information. The first version of the SNMP message protocol is called SNMPv1 and described in STD 15, RFC 1157 [RFC1157]. A second version of the SNMP message protocol, which is not an Internet standards track protocol, is called SNMPv2c and described in RFC 1901 [RFC1901] and RFC 1906 [RFC1906]. The third version of the message protocol is called SNMPv3 and described in RFC 1906 [RFC1906], RFC 2572 [RFC2572] and RFC 2574 [RFC2574]. o Protocol operations for accessing management information. The first set of protocol operations and associated PDU formats is described in STD 15, RFC 1157 [RFC1157]. A second set of protocol operations and associated PDU formats is described in RFC 1905 [RFC1905]. o A set of fundamental applications described in RFC 2573 [RFC2573] and the view-based access control mechanism described in RFC 2575 [RFC2575]. A more detailed introduction to the current SNMP Management Framework can be found in RFC 2570 [RFC2570]. Managed objects are accessed via a virtual information store, termed the Management Information Base or MIB. Objects in the MIB are defined using the mechanisms defined in the SMI. This memo specifies a MIB module that is compliant to the SMIv2. A MIB conforming to the SMIv1 can be produced through the appropriate translations. The resulting translated MIB must be semantically equivalent, except where objects or events are omitted because no translation is possible (use of Counter64). Some machine readable information in SMIv2 will be converted into textual descriptions in SMIv1 during the translation process. However, this loss of machine readable information is not considered to change the semantics of the MIB. Perkins Standards Track [Page 3] Internet-Draft SNMP Alarm MIB March 2001 2. Introduction There are two main approaches to management. One is based on polling by a management application to determine node status, and the other is based on a node sending notifications to manager when status changes to and from fault conditions. The SNMP approach to date has been the first. Little has been done to support the second in the SNMP framework. This document provides the mechanisms for management to be based on exception reporting. The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC-2119 [1]. 3. Exception Reporting Framework 3.1 Terminology Error A deviation of a system from intended operation. Fault A lasting error or warning condition. Alarm Persistent indication of a fault. An alarm is said to be 'set' (or raised) when a fault is first detected and administratively enabled. An alarm is said to be 'cleared' when a fault is first noticed to have ceased or administratively disabled. Event Something that happened. Examples include a change in status, crossing a threshold, an external input to the system. Additionally, setting or clearing an alarm is also an event. Notification An unsolicited transmission of management information due to an event or condition. 3.2 Alarm Definitions Each type of an alarm needs to be well specified. Ideally, a new construct (or template) would be added to the MIB module language, which is specified by SNMP's SMI. Unfortunately, this is not possible. Since alarms are identified with an OID value, the best choice of construct to use is OBJECT-IDENTITY. This construct allows a descriptor to be defined, a status and description specified, and an OID value assigned. The contents of the DESCRIPTION text must be Perkins Standards Track [Page 4] Internet-Draft SNMP Alarm MIB March 2001 structured to specify the attributes of an alarm type. The attributes include: Raise Conditions What set of conditions or events cause the alarm to be raised? Clear Conditions What must occur to cause the alarm to be cleared? Source Identification How are the sources of the alarm identified (a source can be physical (such as port), or logical, such as a session)? Perceived Severity How is the perceived severity of the alarm determined (it may be statically specified or dynamically determined)? Service Affecting How is it determined if the condition is service affecting (it may be statically specified or dynamically determined)? Associated Information What additional information is associated, if any, with the alarm? For example, if the alarm is due to a threshold being crossed, the additional information could be the threshold value and the current value. Class (Category) What is the class (category) of the alarm using the ITU-T terminology? Probable Cause How is the probable cause of the alarm determined (it may be statically specified or dynamically determined)? Dependencies What are the dependencies, if any, between this alarm and other alarms. For example, a loss of signal alarm on a network interface would probably also result in a network interface down alarm. In summary, instead of adding a new construct like the following: TemperatureAlarm ALARM-TYPE STATUS current DESCRIPTION "The current temperature outside of the acceptable operating range" RAISED-BY "The measured temperature has been outside of the acceptable operating range for the last 5 seconds." ClEARED-BY "The measure temperature has been within the acceptable range for the last 15 seconds." Perkins Standards Track [Page 5] Internet-Draft SNMP Alarm MIB March 2001 . . . ::= { myAlarms 1 } the existing OBJECT-IDENTITY construct must be used and the DESCRIPTION field structured like in the following: TemperatureAlarm OBJECT-IDENTITY STATUS current DESCRIPTION "An Alarm Description: The current temperature outside of the acceptable operating range RAISED-BY: The measured temperature has been outside of the acceptable operating range for the last 5 seconds. ClEARED-BY: The measure temperature has been within the acceptable range for the last 15 seconds. . . . " ::= { myAlarms 1 } 4. MIB Module Overview The MIB module defines a list of current alarms and a log of alarms that have been raised and/or cleared. The current alarm list is specified as two tables. Table snmpAlarmCurrTable contains generic information about alarms and table snmpItuAlarmCurrTable contains ITU-T (from X.733 and X.736) information about alarms. The current varBind table provides additional information about each current alarm. The alarm log table is specified as two tables. An entry is made in table snmpAlarmLogTable each time an entry is added or removed from the current alarm table. Likewise an entry is made in table snmpItuAlarmLogTable each time an entry is added or removed from the ITU-T augmentation of the current alarm table. Scalar objects snmpAlarmLastChange, snmpAlarmLogFirstIndex, and snmpAlarmLogLastIndex provide the information so that a management application can efficiently track the current alarms and retrieve entries in the alarm log. Additionally, a manager may choose to use notifications to assist in tracking the current alarms and/or alarm log entries. The notification snmpAlarmStatusChange or snmpItuAlarmStatusChange can be used. Perkins Standards Track [Page 6] Internet-Draft SNMP Alarm MIB March 2001 5. Definitions SNMP-ALARM-MIB DEFINITIONS ::= BEGIN IMPORTS MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, snmpModules, Gauge32, Unsigned32 FROM SNMPv2-SMI TEXTUAL-CONVENTION, TruthValue, AutonomousType, VariablePointer, TimeStamp FROM SNMPv2-TC SnmpAdminString FROM SNMP-FRAMEWORK-MIB MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP FROM SNMPv2-CONF; snmpAlarmMIB MODULE-IDENTITY LAST-UPDATED "200102220000Z" -- feb 22, 2001 ORGANIZATION "IETF Distributed Management Working Group" CONTACT-INFO "WG-email: disman@dorothy.bmc.com Subscribe: disman-request@dorothy.bmc.com In message body: subscribe disman your_email_address Archive: ftp://amethyst.bmc.com/pub/disman/archives Chair: Randy Presuhn BMC Software EMail: rpresuhn@bmc.com Phone: +1-301-854-6889 Author: David T. Perkins SNMPinfo Postal: 3763 Benton Street Santa Clara, CA 95051 EMail: dperkins@dsperkins.com Perkins Standards Track [Page 7] Internet-Draft SNMP Alarm MIB March 2001 Phone: +1 408 394 8702" DESCRIPTION "This MIB module defines MIB objects and notifications that provide mechanisms to monitor alarms currently active and the history of alarms being set and cleared on a managed system. Terminology used in this MIB module: Error - A deviation from intended operation. Fault - A lasting error or warning condition. Alarm - A persistent indication of a fault. An alarm is said to be 'set' when a fault is first detected and administratively enabled. An alarm is said to be 'cleared' when a fault is first noticed to have ceased or administratively disabled. Event - Something that happened. Examples include a change in status, crossing a threshold, an external input to the system. Additionally, setting or clearing an alarm is also an event." REVISION "200102220000Z" -- feb 22, 2001 DESCRIPTION "The initial revision" ::= { snmpModules xx } -- replace "xx" with next appropriate -- value snmpAlarmObjects OBJECT IDENTIFIER ::= { snmpAlarmMIB 1 } snmpAlarmNotifications OBJECT IDENTIFIER ::= { snmpAlarmMIB 2 } snmpAlarmConformance OBJECT IDENTIFIER ::= { snmpAlarmMIB 3 } snmpAlarmCompliances OBJECT IDENTIFIER ::= { snmpAlarmConformance 1 } snmpAlarmGroups OBJECT IDENTIFIER ::= { snmpAlarmConformance 2 } SnmpAlarmCond ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "The alarm condition. The values are: set(1)....the alarm condition detected clear(2)..the alarm condition ceased" SYNTAX INTEGER { set(1), clear(2) } SnmpAlarmType ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "The identity of the type of an SNMP alarm. The SNMP SMI does not have a construct to define SNMP alarms. Thus, the OBJECT-IDENTITY construct must be Perkins Standards Track [Page 8] Internet-Draft SNMP Alarm MIB March 2001 used with the text of the DESCRIPTION clause describing the conditions that cause the alarm to be set and to be clear, and a description of each varBind to be associated with the alarm." SYNTAX OBJECT IDENTIFIER -- really AutonomousType OptDateAndTime ::= TEXTUAL-CONVENTION DISPLAY-HINT "2d-1d-1d,1d:1d:1d.1d,1a1d:1d" STATUS current DESCRIPTION "An date-time specification, or a zero length string. field octets contents range ----- ------ -------- ----- 1 1-2 year 0..65536 2 3 month 1..12 3 4 day 1..31 4 5 hour 0..23 5 6 minutes 0..59 6 7 seconds 0..60 (use 60 for leap-second) 7 8 deci-seconds 0..9 8 9 direction from UTC '+' / '-' 9 10 hours from UTC 0..11 10 11 minutes from UTC 0..59 For example, Tuesday May 26, 1992 at 1:30:15 PM EDT would be displayed as: 1992-5-26,13:30:15.0,-4:0 Note that if only local time is known, then time zone information (fields 8-10) is not present." SYNTAX OCTET STRING (SIZE (0 | 8 | 11)) -- DateAndTime SnmpValUnion ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "A descriminated union, which is the following ASN.1 sequence BER encoded and wrapped as the value of an OCTET STRING.
" SYNTAX OCTET STRING snmpAlarmGlobals OBJECT IDENTIFIER ::= { snmpAlarmObjects 1 } snmpAlarmCurrEntries OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only Perkins Standards Track [Page 9] Internet-Draft SNMP Alarm MIB March 2001 STATUS current DESCRIPTION "The number of entries in the current alarm table." ::= { snmpAlarmGlobals 1 } snmpAlarmLastChange OBJECT-TYPE SYNTAX TimeStamp MAX-ACCESS read-only STATUS current DESCRIPTION "The value of object sysUpTime when an entry was added or removed from the current alarm table and added to the alarm log table." ::= { snmpAlarmGlobals 2 } snmpAlarmLogFirstIndex OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "The index of the oldest entry in the alarm log table, or zero. The value of zero is used to indicate that no entry exists in the alarm log." ::= { snmpAlarmGlobals 3 } snmpAlarmLogLastIndex OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "The index of the youngest entry in the alarm log table, or zero. The value of zero is used to indicate that no entry exists in the alarm log." ::= { snmpAlarmGlobals 4 } snmpAlarmGenNotify OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-write STATUS current DESCRIPTION "The controls whether or not notification snmpAlarmStatusChange may be generated. The values are: true(1)...notifications may be generated false(2)..notifications may not be generated" ::= { snmpAlarmGlobals 5 } -- ITU extension snmpItuAlarmGenNotify OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-write STATUS current DESCRIPTION "The controls whether or not notification snmpItuAlarmStatusChange may be generated. The values are: true(1)...notifications may be generated Perkins Standards Track [Page 10] Internet-Draft SNMP Alarm MIB March 2001 false(2)..notifications may not be generated Note: if this is enabled, then most likely generation of notification snmpAlarmStatusChange should be disabled." ::= { snmpAlarmGlobals 6 } snmpAlarmCurrTable OBJECT-TYPE SYNTAX SEQUENCE OF SnmpAlarmCurrEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A table listing all the current 'alarms'. An alarm indicates a persistent fault condition in a software or hardware component or sub-system that is intended to be operating. An alarm is cleared by 'fixing' the fault condition or administratively disabling the alarm." ::= { snmpAlarmObjects 2 } snmpAlarmCurrEntry OBJECT-TYPE SYNTAX SnmpAlarmCurrEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A row in the table of current alarms. Rows cannot be created or deleted via SNMP operations." INDEX { snmpAlarmCurrIndex } ::= { snmpAlarmCurrTable 1 } SnmpAlarmCurrEntry ::= SEQUENCE { snmpAlarmCurrIndex Unsigned32, snmpAlarmCurrOccurDateAndTime OptDateAndTime, snmpAlarmCurrOccurUpTime TimeStamp, snmpAlarmCurrType SnmpAlarmType, snmpAlarmCurrId Unsigned32, snmpAlarmCurrContextName SnmpAdminString, snmpAlarmCurrVarBinds Gauge32 } snmpAlarmCurrIndex OBJECT-TYPE SYNTAX Unsigned32(1..4294967295) MAX-ACCESS not-accessible STATUS current DESCRIPTION "An arbitrary index of the alarm in the current alarm table. The index for an existing entry is not affected when a entry is added or removed from the table. Index values may be cycled to the max before reuse or follow any implementation specific reuse strategy." ::= { snmpAlarmCurrEntry 1 } Perkins Standards Track [Page 11] Internet-Draft SNMP Alarm MIB March 2001 snmpAlarmCurrOccurDateAndTime OBJECT-TYPE SYNTAX OptDateAndTime MAX-ACCESS read-only STATUS current DESCRIPTION "The local date and time when the alarm was set, or a zero length string. The value is a zero length string when the local time cannot be determined." ::= { snmpAlarmCurrEntry 2 } snmpAlarmCurrOccurUpTime OBJECT-TYPE SYNTAX TimeStamp MAX-ACCESS read-only STATUS current DESCRIPTION "The value of sysUpTime when the alarm was set or zero. The value is zero when the alarm occurred before the most recent reset of the management system." ::= { snmpAlarmCurrEntry 3 } snmpAlarmCurrType OBJECT-TYPE SYNTAX SnmpAlarmType MAX-ACCESS read-only STATUS current DESCRIPTION "The type of the alarm." ::= { snmpAlarmCurrEntry 4 } snmpAlarmCurrId OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "The ID of the alarm. No two active alarms may have the same value. This value is used in matching the set and clear entries in the alarm log." ::= { snmpAlarmCurrEntry 5 } snmpAlarmCurrContextName OBJECT-TYPE SYNTAX SnmpAdminString (SIZE(0..32)) MAX-ACCESS read-only STATUS current DESCRIPTION "The context in which the alarm occurred." ::= { snmpAlarmCurrEntry 6 } snmpAlarmCurrVarBinds OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of varBinds associated with the alarm. The count is usually at least one, with at least one varBind identifying Perkins Standards Track [Page 12] Internet-Draft SNMP Alarm MIB March 2001 the source of the alarm." ::= { snmpAlarmCurrEntry 7 } snmpAlarmCurrVarBindTable OBJECT-TYPE SYNTAX SEQUENCE OF SnmpAlarmCurrVarBindEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A table of varBinds (pairs of variable and value) that sparse extends the rows in table snmpAlarmCurrTable. That is, for each row in table snmpAlarmCurrTable, there is zero, one, or more associated rows in this table. The value of object snmpAlarmCurrVarBinds specifies the number of rows in this table." ::= { snmpAlarmObjects 3 } snmpAlarmCurrVarBindEntry OBJECT-TYPE SYNTAX SnmpAlarmCurrVarBindEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A row in the table of varBinds for current alarms. Rows cannot be created or deleted via SNMP operations." INDEX { snmpAlarmCurrIndex, snmpAlarmCurrVarBindIndex } ::= { snmpAlarmCurrVarBindTable 1 } SnmpAlarmCurrVarBindEntry ::= SEQUENCE { snmpAlarmCurrVarBindIndex Unsigned32, snmpAlarmCurrVarBindId VariablePointer, snmpAlarmCurrVarBindVal SnmpValUnion } snmpAlarmCurrVarBindIndex OBJECT-TYPE SYNTAX Unsigned32 (1..4294967295) MAX-ACCESS not-accessible STATUS current DESCRIPTION "The index of the varBind. The value is between one and the value of the associated object snmpAlarmCurrVarBinds." ::= { snmpAlarmCurrVarBindEntry 1 } snmpAlarmCurrVarBindId OBJECT-TYPE SYNTAX VariablePointer MAX-ACCESS read-only STATUS current DESCRIPTION "The ID of the object instance." ::= { snmpAlarmCurrVarBindEntry 2 } snmpAlarmCurrVarBindVal OBJECT-TYPE Perkins Standards Track [Page 13] Internet-Draft SNMP Alarm MIB March 2001 SYNTAX SnmpValUnion MAX-ACCESS read-only STATUS current DESCRIPTION "The value of the object instance." ::= { snmpAlarmCurrVarBindEntry 3 } snmpAlarmLogTable OBJECT-TYPE SYNTAX SEQUENCE OF SnmpAlarmLogEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A table containing a log of when each 'alarm' has been 'set' or 'cleared'. An alarm indicates a persistent fault condition in a software or hardware component or sub-system that is intended to be operating. An alarm is cleared by 'fixing' the fault condition or administratively disabling the alarm. The alarm log operates like a circular buffer. The index of the oldest entry is specified by object snmpAlarmLogFirstIndex and the index of the youngest entry is specified by object tbtSystemAlarmLogLastIndex. The alarm log may be preserved in part or in total across restarts of a management system. The last few entries SHOULD be saved to assist in determining the cause of an unplanned restart." ::= { snmpAlarmObjects 4 } snmpAlarmLogEntry OBJECT-TYPE SYNTAX SnmpAlarmLogEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A row in the alarm log table. Rows cannot be created or deleted via SNMP operations." INDEX { snmpAlarmLogIndex } ::= { snmpAlarmLogTable 1 } SnmpAlarmLogEntry ::= SEQUENCE { snmpAlarmLogIndex Unsigned32, snmpAlarmLogCond SnmpAlarmCond, snmpAlarmLogOccurDateAndTime OptDateAndTime, snmpAlarmLogOccurUpTime TimeStamp, snmpAlarmLogType SnmpAlarmType, snmpAlarmLogId Unsigned32, snmpAlarmLogContextName SnmpAdminString, snmpAlarmLogVarBinds Gauge32 } Perkins Standards Track [Page 14] Internet-Draft SNMP Alarm MIB March 2001 snmpAlarmLogIndex OBJECT-TYPE SYNTAX Unsigned32(1..4294967295) MAX-ACCESS not-accessible STATUS current DESCRIPTION "An index of the alarm in the alarm log table. The index is increased by one for each new entry in the table until the maximum value is reach and then the index restarts at 1. The index of the oldest entry is specified by object snmpAlarmLogFirstIndex and index of the youngest entry is specified by object snmpAlarmLogLastIndex." ::= { snmpAlarmLogEntry 1 } snmpAlarmLogCond OBJECT-TYPE SYNTAX SnmpAlarmCond MAX-ACCESS read-only STATUS current DESCRIPTION "Indicates if the log entry is due to the alarm Being set (raised) or being cleared." ::= { snmpAlarmLogEntry 2 } snmpAlarmLogOccurDateAndTime OBJECT-TYPE SYNTAX OptDateAndTime MAX-ACCESS read-only STATUS current DESCRIPTION "The local date and time when the alarm was set or clear, or a zero length string. The value is a zero length string when the local time cannot be determined." ::= { snmpAlarmLogEntry 3 } snmpAlarmLogOccurUpTime OBJECT-TYPE SYNTAX TimeStamp MAX-ACCESS read-only STATUS current DESCRIPTION "The value of sysUpTime when the alarm was set or cleared, or zero. The value is zero when the alarm was set or cleared before the most recent reset of the management system." ::= { snmpAlarmLogEntry 4 } snmpAlarmLogType OBJECT-TYPE SYNTAX SnmpAlarmType MAX-ACCESS read-only STATUS current DESCRIPTION "The type of the alarm." ::= { snmpAlarmLogEntry 5 } snmpAlarmLogId OBJECT-TYPE SYNTAX Unsigned32 Perkins Standards Track [Page 15] Internet-Draft SNMP Alarm MIB March 2001 MAX-ACCESS read-only STATUS current DESCRIPTION "The ID of the alarm. Each alarm that is set is assigned a unique ID among active alarms. That is, no two active alarms may have the same value. This value is used in matching the set and clear entries in this log. Note: alarms may be cleared and not recorded across restarts of the management system. Thus, additional checks must be performed to match set and clear entries in the log that occur on opposite sides of a restart." ::= { snmpAlarmLogEntry 6 } snmpAlarmLogContextName OBJECT-TYPE SYNTAX SnmpAdminString (SIZE(0..32)) MAX-ACCESS read-only STATUS current DESCRIPTION "The context in which the alarm occurred." ::= { snmpAlarmLogEntry 7 } snmpAlarmLogVarBinds OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of varBinds associated with the alarm. The count is usually at least one, with at least one varBind identifying the source of the alarm." ::= { snmpAlarmLogEntry 8 } snmpAlarmLogVarBindTable OBJECT-TYPE SYNTAX SEQUENCE OF SnmpAlarmLogVarBindEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A table of varBinds (pairs of variable and value) that sparse extends the rows in table snmpAlarmLogTable. That is, for each row in table snmpAlarmLogTable, there is zero, one, or more associated rows in this table. The value of object snmpAlarmLogVarBinds specifies the number of rows in this table." ::= { snmpAlarmObjects 5 } snmpAlarmLogVarBindEntry OBJECT-TYPE SYNTAX SnmpAlarmLogVarBindEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A row in the table of varBinds for the alarm Perkins Standards Track [Page 16] Internet-Draft SNMP Alarm MIB March 2001 log. Rows cannot be created or deleted via SNMP operations." INDEX { snmpAlarmLogIndex, snmpAlarmLogVarBindIndex } ::= { snmpAlarmLogVarBindTable 1 } SnmpAlarmLogVarBindEntry ::= SEQUENCE { snmpAlarmLogVarBindIndex Unsigned32, snmpAlarmLogVarBindId VariablePointer, snmpAlarmLogVarBindVal SnmpValUnion } snmpAlarmLogVarBindIndex OBJECT-TYPE SYNTAX Unsigned32 (1..4294967295) MAX-ACCESS not-accessible STATUS current DESCRIPTION "The index of the varBind. The value is between one and the value of the associated object snmpAlarmLogVarBinds." ::= { snmpAlarmLogVarBindEntry 1 } snmpAlarmLogVarBindId OBJECT-TYPE SYNTAX VariablePointer MAX-ACCESS read-only STATUS current DESCRIPTION "The ID of the object instance." ::= { snmpAlarmLogVarBindEntry 2 } snmpAlarmLogVarBindVal OBJECT-TYPE SYNTAX SnmpValUnion MAX-ACCESS read-only STATUS current DESCRIPTION "The value of the object instance." ::= { snmpAlarmLogVarBindEntry 3 } -- ITU-T extensions SnmpItuAlarmClass ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "The class of alarm as specified in [X.733] and [X.736]. " SYNTAX INTEGER { other (1), communicationsAlarm (2), qualityOfServiceAlarm (3), processingErrorAlarm (4), equipmentAlarm (5), environmentalAlarm (6), integrityViolation (7), operationalViolation (8), Perkins Standards Track [Page 17] Internet-Draft SNMP Alarm MIB March 2001 physicalViolation (9), securityServiceOrMechanismViolation (10), timeDomainViolation (11) } SnmpItuAlarmProbCause ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "The probable cause of the alarm as specified in [X.733] and [X.736]. " SYNTAX INTEGER { other (1), adapterError (2), applicationSubsystemFailure (3), bandwidthReduced (4), callEstablishmentError (5), communicationsProtocolError (6), communicationsSubsystemFailure (7), configurationOrCustomizationError (8), congestion (9), corruptData (10), cpuCyclesLimitExceeded (11), dataSetOrModemError (12), degradedSignal (13), dteDceInterfaceError (14), enclosureDoorOpen (15), equipmentMalfunction (16), excessiveVibration (17), fileError (18), fireDetected (19), floodDetected (20), framingError (21), heatingVentCoolingSystemProblem (22), humidityUnacceptable (23), inputOutputDeviceError (24), inputDeviceError (25), lanError (26), leakDetected (27), localNodeTransmissionError (28), lossOfFrame (29), lossOfSignal (30), materialSupplyExhausted (31), multiplexerProblem (32), outOfMemory (33), ouputDeviceError (34), performanceDegraded (35), powerProblem (36), pressureUnacceptable (37), processorProblem (38), pumpFailure (39), queueSizeExceeded (40), Perkins Standards Track [Page 18] Internet-Draft SNMP Alarm MIB March 2001 receiveFailure (41), receiverFailure (42), remoteNodeTransmissionError (43), resourceAtOrNearingCapacity (44), responseTimeExecessive (45), retransmissionRateExcessive (46), softwareError (47), softwareProgramAbnormallyTerminated (48), softwareProgramError (49), storageCapacityProblem (50), temperatureUnacceptable (51), thresholdCrossed (52), timingProblem (53), toxicLeakDetected (54), transmitFailure (55), transmitterFailure (56), underlyingResourceUnavailable (57), versionMismatch (58), authenticationFailure (59), breachOfConfidentiality (60), cableTamper (61), delayedInformation (62), denialOfService (63), duplicateInformation (64), informationMissing (65), informationModificationDetected (66), informationOutOfSequence (67), intrusionDetection (68), keyExpired (69), nonRepudiationFailure (70), outOfHoursActivity (71), outOfService (72), proceduralError (73), unauthorizedAccessAttempt (74), unexpectedInformation (75) } SnmpItuAlarmPercSeverity ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "The perceived severity of the alarm as specified in [X.733] and [X.736]. " SYNTAX INTEGER { indeterminate (2), critical (3), major (4), minor (5), warning (6) } SnmpItuAlarmTrendInd ::= TEXTUAL-CONVENTION Perkins Standards Track [Page 19] Internet-Draft SNMP Alarm MIB March 2001 STATUS current DESCRIPTION "The trend indication of the alarm as specified in [X.733]. " SYNTAX INTEGER { moreSevere (1), noChange (2), lessSevere (3) } snmpItuAlarmCurrTable OBJECT-TYPE SYNTAX SEQUENCE OF SnmpItuAlarmCurrEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A table augmenting the current alarm table (snmpAlarmCurrTable) with additional information from the ITU-T alarm model." ::= { snmpAlarmObjects 6 } snmpItuAlarmCurrEntry OBJECT-TYPE SYNTAX SnmpItuAlarmCurrEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A row in the table of ITU-T current alarms. Rows cannot be created or deleted via SNMP operations." AUGMENTS { snmpAlarmCurrEntry } ::= { snmpItuAlarmCurrTable 1 } SnmpItuAlarmCurrEntry ::= SEQUENCE { snmpItuAlarmCurrClass SnmpItuAlarmClass, snmpItuAlarmCurrProbCause SnmpItuAlarmProbCause, snmpItuAlarmCurrPercSeverity SnmpItuAlarmPercSeverity, snmpItuAlarmCurrAdditText SnmpAdminString, snmpItuAlarmCurrTrendInd SnmpItuAlarmTrendInd, snmpItuAlarmCurrDetector AutonomousType, snmpItuAlarmCurrServiceProvider AutonomousType, snmpItuAlarmCurrServiceUser AutonomousType } snmpItuAlarmCurrClass OBJECT-TYPE SYNTAX SnmpItuAlarmClass MAX-ACCESS read-only STATUS current DESCRIPTION "The class of the alarm as specified in [X.733] and [X.736]. " ::= { snmpItuAlarmCurrEntry 1 } snmpItuAlarmCurrProbCause OBJECT-TYPE SYNTAX SnmpItuAlarmProbCause Perkins Standards Track [Page 20] Internet-Draft SNMP Alarm MIB March 2001 MAX-ACCESS read-only STATUS current DESCRIPTION "The probable cause of the alarm as specified in [X.733] and [X.736]. " ::= { snmpItuAlarmCurrEntry 2 } snmpItuAlarmCurrPercSeverity OBJECT-TYPE SYNTAX SnmpItuAlarmPercSeverity MAX-ACCESS read-only STATUS current DESCRIPTION "The perceived severity of the alarm as specified in [X.733] and [X.736]. " ::= { snmpItuAlarmCurrEntry 3 } snmpItuAlarmCurrAdditText OBJECT-TYPE SYNTAX SnmpAdminString MAX-ACCESS read-only STATUS current DESCRIPTION "The additional text field of the alarm as specified in [X.733]. " ::= { snmpItuAlarmCurrEntry 4 } snmpItuAlarmCurrTrendInd OBJECT-TYPE SYNTAX SnmpItuAlarmTrendInd MAX-ACCESS read-only STATUS current DESCRIPTION "The trend indication of the alarm as specified in [X.733]. " ::= { snmpItuAlarmCurrEntry 5 } -- more investigation is needed for the following objects snmpItuAlarmCurrDetector OBJECT-TYPE SYNTAX AutonomousType MAX-ACCESS read-only STATUS current DESCRIPTION "The SecurityAlarmDetector object from [X.736]. " ::= { snmpItuAlarmCurrEntry 6 } snmpItuAlarmCurrServiceProvider OBJECT-TYPE SYNTAX AutonomousType MAX-ACCESS read-only STATUS current DESCRIPTION "The ServiceProvider object from [X.736]. " ::= { snmpItuAlarmCurrEntry 7 } Perkins Standards Track [Page 21] Internet-Draft SNMP Alarm MIB March 2001 snmpItuAlarmCurrServiceUser OBJECT-TYPE SYNTAX AutonomousType MAX-ACCESS read-only STATUS current DESCRIPTION "The SericeUser object from [X.736]. " ::= { snmpItuAlarmCurrEntry 8 } snmpItuAlarmLogTable OBJECT-TYPE SYNTAX SEQUENCE OF SnmpItuAlarmLogEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A table augmenting the alarm log table (snmpAlarmLogTable) with additional information from the ITU-T alarm model." ::= { snmpAlarmObjects 7 } snmpItuAlarmLogEntry OBJECT-TYPE SYNTAX SnmpItuAlarmLogEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A row in the ITU-T alarm log table. Rows cannot be created or deleted via SNMP operations." AUGMENTS { snmpAlarmLogEntry } ::= { snmpItuAlarmLogTable 1 } SnmpItuAlarmLogEntry ::= SEQUENCE { snmpItuAlarmLogClass SnmpItuAlarmClass, snmpItuAlarmLogProbCause SnmpItuAlarmProbCause, snmpItuAlarmLogPercSeverity SnmpItuAlarmPercSeverity, snmpItuAlarmLogAdditText SnmpAdminString, snmpItuAlarmLogTrendInd SnmpItuAlarmTrendInd, snmpItuAlarmLogDetector AutonomousType, snmpItuAlarmLogServiceProvider AutonomousType, snmpItuAlarmLogServiceUser AutonomousType } snmpItuAlarmLogClass OBJECT-TYPE SYNTAX SnmpItuAlarmClass MAX-ACCESS read-only STATUS current DESCRIPTION "The class of the alarm as specified in [X.733] and [X.736]. " ::= { snmpItuAlarmLogEntry 1 } snmpItuAlarmLogProbCause OBJECT-TYPE SYNTAX SnmpItuAlarmProbCause MAX-ACCESS read-only STATUS current DESCRIPTION "The probable cause of the alarm as Perkins Standards Track [Page 22] Internet-Draft SNMP Alarm MIB March 2001 specified in [X.733] and [X.736]. " ::= { snmpItuAlarmLogEntry 2 } snmpItuAlarmLogPercSeverity OBJECT-TYPE SYNTAX SnmpItuAlarmPercSeverity MAX-ACCESS read-only STATUS current DESCRIPTION "The perceived severity of the alarm as specified in [X.733] and [X.736]. " ::= { snmpItuAlarmLogEntry 3 } snmpItuAlarmLogAdditText OBJECT-TYPE SYNTAX SnmpAdminString MAX-ACCESS read-only STATUS current DESCRIPTION "The additional text field of the alarm as specified in [X.733]. " ::= { snmpItuAlarmLogEntry 4 } snmpItuAlarmLogTrendInd OBJECT-TYPE SYNTAX SnmpItuAlarmTrendInd MAX-ACCESS read-only STATUS current DESCRIPTION "The trend indication of the alarm as specified in [X.733]. " ::= { snmpItuAlarmLogEntry 5 } -- more investigation is needed for the following objects snmpItuAlarmLogDetector OBJECT-TYPE SYNTAX AutonomousType MAX-ACCESS read-only STATUS current DESCRIPTION "The SecurityAlarmDetector object from [X.736]. " ::= { snmpItuAlarmLogEntry 6 } snmpItuAlarmLogServiceProvider OBJECT-TYPE SYNTAX AutonomousType MAX-ACCESS read-only STATUS current DESCRIPTION "The ServiceProvider object from [X.736]. " ::= { snmpItuAlarmLogEntry 7 } snmpItuAlarmLogServiceUser OBJECT-TYPE SYNTAX AutonomousType MAX-ACCESS read-only Perkins Standards Track [Page 23] Internet-Draft SNMP Alarm MIB March 2001 STATUS current DESCRIPTION "The SericeUser object from [X.736]. " ::= { snmpItuAlarmLogEntry 8 } -- notifications snmpAlarmStatusChange NOTIFICATION-TYPE OBJECTS { snmpAlarmLogCond, snmpAlarmLogOccurDateAndTime, snmpAlarmLogOccurUpTime, snmpAlarmLogId, snmpAlarmLogVarBinds } STATUS current DESCRIPTION "An entry has been added to the alarm log table. That is, an alarm has been set or cleared. The objects all have the same instance, which is the row in the alarm log, and the objects are: snmpAlarmLogCond....alarm condition, either set or clear snmpAlarmLogOccurDateAndTime...date/time the alarm log entry created snmpAlarmLogOccurUpTime...timestamp the alarm log entry created snmpAlarmLogId....the ID of the alarm snmpAlarmLogVarBinds....the number of varBinds associated with the alarm Note 1: after these varBinds, the associated varBinds, if any, from table snmpAlarmLogVarBindTable must be specified in the varBind list for the notification. Note 2: object snmpAlarmGenNotify controls if or if not this notification may be generated." ::= { snmpAlarmNotifications 0 1 } snmpItuAlarmStatusChange NOTIFICATION-TYPE OBJECTS { snmpAlarmLogCond, snmpAlarmLogOccurDateAndTime, snmpAlarmLogOccurUpTime, snmpAlarmLogId, snmpAlarmLogVarBinds, snmpItuAlarmLogClass, snmpItuAlarmLogProbCause, snmpItuAlarmLogPercSeverity, snmpItuAlarmLogAdditText, snmpItuAlarmLogTrendInd, snmpItuAlarmLogDetector, snmpItuAlarmLogServiceProvider, Perkins Standards Track [Page 24] Internet-Draft SNMP Alarm MIB March 2001 snmpItuAlarmLogServiceUser } STATUS current DESCRIPTION "An entry has been added to the alarm log table and the ITU extensions are supported. That is, an alarm has been set or cleared. The objects all have the same instance, which is the row in the alarm log, and the objects are: snmpAlarmLogCond....alarm condition, either set or clear snmpAlarmLogOccurDateAndTime...date/time the alarm log entry created snmpAlarmLogOccurUpTime...timestamp the alarm log entry created snmpAlarmLogId....the ID of the alarm snmpAlarmLogVarBinds....the number of varBinds associated with the alarm snmpItuAlarmLogClass... snmpItuAlarmLogProbCause... snmpItuAlarmLogPercSeverity... snmpItuAlarmLogAdditText... snmpItuAlarmLogTrendInd... snmpItuAlarmLogDetector... snmpItuAlarmLogServiceProvider... snmpItuAlarmLogServiceUser... Note 1: after these varBinds, the associated varBinds, if any, from table snmpAlarmLogVarBindTable must be specified in the varBind list for the notification. Note 2: object snmpItuAlarmGenNotify controls if or if not this notification may be generated." ::= { snmpAlarmNotifications 0 2 } -- Conformance snmpAlarmCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "The compliance statement for systems supporting the SNMP alarms." MODULE -- this module MANDATORY-GROUPS { snmpAlarmGblGroup, snmpAlarmCurrGroup, snmpAlarmLogGroup, snmpAlarmNotifyGroup } ::= { snmpAlarmCompliances 1 } snmpItuAlarmCompliance MODULE-COMPLIANCE Perkins Standards Track [Page 25] Internet-Draft SNMP Alarm MIB March 2001 STATUS current DESCRIPTION "The compliance statement for systems supporting the ITU-T extension to SNMP alarms." MODULE -- this module MANDATORY-GROUPS { snmpAlarmGblGroup, snmpAlarmCurrGroup, snmpAlarmLogGroup, snmpAlarmNotifyGroup, snmpItuAlarmGblGroup, snmpItuAlarmCurrGroup, snmpItuAlarmLogGroup, snmpItuAlarmNotifyGroup } ::= { snmpAlarmCompliances 2 } snmpAlarmGblGroup OBJECT-GROUP OBJECTS { snmpAlarmCurrEntries, snmpAlarmLastChange, snmpAlarmLogFirstIndex, snmpAlarmLogLastIndex, snmpAlarmGenNotify } STATUS current DESCRIPTION "Global objects for managing SNMP alarms." ::= { snmpAlarmGroups 1 } snmpAlarmCurrGroup OBJECT-GROUP OBJECTS { snmpAlarmCurrOccurDateAndTime, snmpAlarmCurrOccurUpTime, snmpAlarmCurrType, snmpAlarmCurrId, snmpAlarmCurrContextName, snmpAlarmCurrVarBinds, snmpAlarmCurrVarBindId, snmpAlarmCurrVarBindVal } STATUS current DESCRIPTION "Objects in the SNMP current alarm and current varBind tables." ::= { snmpAlarmGroups 2 } snmpAlarmLogGroup OBJECT-GROUP OBJECTS { snmpAlarmLogCond, snmpAlarmLogOccurDateAndTime, snmpAlarmLogOccurUpTime, snmpAlarmLogType, snmpAlarmLogId, snmpAlarmLogContextName, snmpAlarmLogVarBinds, snmpAlarmLogVarBindId, snmpAlarmLogVarBindVal } Perkins Standards Track [Page 26] Internet-Draft SNMP Alarm MIB March 2001 STATUS current DESCRIPTION "Objects in the SNMP alarm log and log varBind tables." ::= { snmpAlarmGroups 3 } snmpAlarmNotifyGroup NOTIFICATION-GROUP NOTIFICATIONS { snmpAlarmStatusChange } STATUS current DESCRIPTION "Notifications for SNMP alarms." ::= { snmpAlarmGroups 4 } snmpItuAlarmGblGroup OBJECT-GROUP OBJECTS { snmpItuAlarmGenNotify } STATUS current DESCRIPTION "Global objects for managing ITU-T extensions to SNMP alarms." ::= { snmpAlarmGroups 5 } snmpItuAlarmCurrGroup OBJECT-GROUP OBJECTS { snmpItuAlarmCurrClass, snmpItuAlarmCurrProbCause, snmpItuAlarmCurrPercSeverity, snmpItuAlarmCurrAdditText, snmpItuAlarmCurrTrendInd, snmpItuAlarmCurrDetector, snmpItuAlarmCurrServiceProvider, snmpItuAlarmCurrServiceUser } STATUS current DESCRIPTION "Objects in the ITU-T extension to the SNMP current alarm and current varBind tables." ::= { snmpAlarmGroups 6 } snmpItuAlarmLogGroup OBJECT-GROUP OBJECTS { snmpItuAlarmLogClass, snmpItuAlarmLogProbCause, snmpItuAlarmLogPercSeverity, snmpItuAlarmLogAdditText, snmpItuAlarmLogTrendInd, snmpItuAlarmLogDetector, snmpItuAlarmLogServiceProvider, snmpItuAlarmLogServiceUser } STATUS current DESCRIPTION "Objects in the ITU-T extension to the SNMP alarm log and log varBind tables." ::= { snmpAlarmGroups 7 } snmpItuAlarmNotifyGroup NOTIFICATION-GROUP NOTIFICATIONS { snmpItuAlarmStatusChange } STATUS current DESCRIPTION "Notifications for ITU-T extension to SNMP alarms." Perkins Standards Track [Page 27] Internet-Draft SNMP Alarm MIB March 2001 ::= { snmpAlarmGroups 8 } END 6. Examples 7. Security Considerations There are a number of management objects defined in this MIB that have a MAX-ACCESS clause of read-write and/or read-create. Such objects may be considered sensitive or vulnerable in some network environments. The support for SET operations in a non-secure environment without proper protection can have a negative effect on network operations. SNMPv1 by itself is not a secure environment. Even if the network itself is secure (for example by using IPSec), even then, there is no control as to who on the secure network is allowed to access and GET/SET (read/change/create/delete) the objects in this MIB. It is recommended that the implementers consider the security features as provided by the SNMPv3 framework. Specifically, the use of the User-based Security Model RFC 2574 [RFC2574] and the View-based Access Control Model RFC 2575 [RFC2575] is recommended. It is then a customer/user responsibility to ensure that the SNMP entity giving access to an instance of this MIB, is properly configured to give access to the objects only to those principals (users) that have legitimate rights to indeed GET or SET (change/create/delete) them. 8. Author's Address David T. Perkins SNMPinfo 3663 Benton Street Santa Clara, CA 95051 Phone: +1 408 394-8702 Email: dperkins@dsperkins.com 9. Acknowledgements Perkins Standards Track [Page 28] Internet-Draft SNMP Alarm MIB March 2001 This document is a product of the DISMAN Working Group. ... 10. References [RFC2571] Harrington, D., Presuhn, R., and B. Wijnen, "An Architecture for Describing SNMP Management Frameworks", RFC 2571, April 41999. [RFC2578] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case,J., Rose, M., and S. Waldbusser, "Structure of Management Information Version 2 (SMIv2)", STD 58, RFC 2578, April 1999. [RFC2579] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case,J., Rose, M., and S. Waldbusser, "Textual Conventions for SMIv2", STD 58, RFC 2579, April 1999. [RFC2580] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case,J., Rose, M., and S. Waldbusser, "Conformance Statements for SMIv2", STD 58, RFC 2580, April 1999. [X.733] [X.736] ] 11. Full Copyright Statement Copyright (C) The Internet Society (2001). All Rights Reserved. This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English. The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns. Perkins Standards Track [Page 29] Internet-Draft SNMP Alarm MIB March 2001 This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 1 RFC 2119 Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997 Perkins Standards Track [Page 30]