Connected: An Internet Encyclopedia
RFC 1451 - 3.1. The Alarm Group

Top: Connected: An Internet Encyclopedia
Up: Requests For Comments
Up: RFC 1451
Up: 3. Definitions
Prev: 3. Definitions
Next: 3.1.1. Alarm-Related Notifications

### 3.1. The Alarm Group

       -- the alarm group
       --
       -- a collection of objects allowing the description and
       -- configuration of threshold alarms from a SNMPv2 entity
       -- acting in a dual role.

       snmpAlarm      OBJECT IDENTIFIER ::= { snmpM2MObjects 1 }

       -- This Alarm mechanism periodically takes statistical samples
       -- from variables available via SNMPv2 and compares them to
       -- thresholds that have been configured.  The alarm table
       -- stores configuration entries that each define a variable,
       -- polling period, and threshold parameters.  If a sample is
       -- found to cross the threshold values, an event is generated.
       -- Only variables that resolve to an ASN.1 primitive type of
       -- INTEGER (Integer32, Counter32, Gauge32, TimeTicks,
       -- Counter64, or UInteger32) may be monitored in this way.
       --
       -- This function has a hysteresis mechanism to limit the
       -- generation of events.  This mechanism generates one event
       -- as a threshold is crossed in the appropriate direction.  No
       -- more events are generated for that threshold until the
       -- opposite threshold is crossed.
       --
       -- In the case of sampling a deltaValue, an entity may
       -- implement this mechanism with more precision if it takes a
       -- delta sample twice per period, each time comparing the sum
       -- of the latest two samples to the threshold.  This allows
       -- the detection of threshold crossings that span the sampling
       -- boundary.  Note that this does not require any special
       -- configuration of the threshold value.  It is suggested that
       -- entities implement this more precise algorithm.
       --

       snmpAlarmNextIndex OBJECT-TYPE
           SYNTAX     INTEGER (0..65535)
           MAX-ACCESS read-only
           STATUS     current
           DESCRIPTION
                   "The index number of the next appropriate
                   unassigned entry in the snmpAlarmTable.  The value
                   0 indicates that no unassigned entries are
                   available.

                   A management station should create new entries in
                   the snmpAlarmTable using this algorithm: first,
                   issue a management protocol retrieval operation to
                   determine the value of snmpAlarmNextIndex; and,
                   second, issue a management protocol set operation
                   to create an instance of the snmpAlarmStatus
                   object setting its value to `createAndGo' or
                   `createAndWait' (as specified in the description
                   of the RowStatus textual convention)."
           ::= { snmpAlarm 1 }

       snmpAlarmTable OBJECT-TYPE
           SYNTAX     SEQUENCE OF SnmpAlarmEntry
           MAX-ACCESS not-accessible
           STATUS     current
           DESCRIPTION
                   "A list of snmpAlarm entries."
           ::= { snmpAlarm 2 }

       snmpAlarmEntry OBJECT-TYPE
           SYNTAX     SnmpAlarmEntry
           MAX-ACCESS not-accessible
           STATUS     current
           DESCRIPTION
                   "A list of parameters that set up a periodic
                   sampling query to check for alarm conditions.  The
                   contextIdentity included in the INDEX clause is
                   the context to which the sampling queries are
                   directed."
           INDEX      { contextIdentity, snmpAlarmIndex }
           ::= { snmpAlarmTable 1 }

       SnmpAlarmEntry ::= SEQUENCE {
           snmpAlarmIndex                    INTEGER,
           snmpAlarmVariable                 InstancePointer,
           snmpAlarmInterval                 Integer32,
           snmpAlarmSampleType               INTEGER,
           snmpAlarmValue                    Integer32,
           snmpAlarmStartupAlarm             INTEGER,
           snmpAlarmRisingThreshold          Integer32,
           snmpAlarmFallingThreshold         Integer32,
           snmpAlarmRisingEventIndex         INTEGER,
           snmpAlarmFallingEventIndex        INTEGER,
           snmpAlarmUnavailableEventIndex    INTEGER,
           snmpAlarmStatus                   RowStatus
       }

       snmpAlarmIndex OBJECT-TYPE
           SYNTAX     INTEGER (1..65535)
           MAX-ACCESS not-accessible
           STATUS     current
           DESCRIPTION
                   "An index that uniquely identifies an entry in the
                   snmpAlarm table for a particular sampling context.
                   Each such entry defines a diagnostic sample at a
                   particular interval for a variable in the
                   particular context's object resources."
           ::= { snmpAlarmEntry 1 }

       snmpAlarmVariable OBJECT-TYPE
           SYNTAX     InstancePointer
           MAX-ACCESS read-create
           STATUS     current
           DESCRIPTION
                   "The object identifier of the particular variable
                   to be sampled.  Only variables that resolve to an
                   ASN.1 primitive type of INTEGER (Integer32,
                   Counter32, Gauge32, TimeTicks, Counter64, or
                   UInteger32) may be sampled.

                   If it is detected by an error response of
                   authorizationError, noSuchObject, or
                   noSuchInstance that the variable name of an
                   established snmpAlarmEntry is no longer available
                   in the sampling context, a single
                   snmpObjectUnavailableAlarm event is generated and
                   the status of this snmpAlarmEntry is set to
                   `destroy'.  Likewise, if the syntax of the
                   variable retrieved by the query is not Integer32,
                   Counter32, Gauge32, TimeTicks, Counter64, or
                   UInteger32, the same actions will be taken.

                   If the SNMPv2 entity acting in a dual role detects
                   that the sampled value can not be obtained due to
                   lack of response to management queries, it should
                   either:

                        1) Set the status of this snmpAlarmEntry to
                        `destroy', if it is determined that further
                        communication is not possible;

                        or,

                        2) Delete the associated snmpAlarmValue
                        instance (but not the entire conceptual row),
                        and continue to attempt to sample the
                        variable and recreate the associated
                        snmpAlarmValue instance should communication
                        be reestablished.

                   An attempt to modify this object will fail with an
                   `inconsistentValue' error if the associated
                   snmpAlarmStatus object would be equal to `active'
                   both before and after the modification attempt."
           ::= { snmpAlarmEntry 2 }

       snmpAlarmInterval OBJECT-TYPE
           SYNTAX     Integer32
           UNITS      "seconds"
           MAX-ACCESS read-create
           STATUS     current
           DESCRIPTION
                   "The interval in seconds over which the data is
                   sampled and compared with the rising and falling
                   thresholds.  When setting this object and the
                   sampling type is `deltaValue',  care should be
                   taken to ensure that the change during this
                   interval of the variable being sampled will not
                   exceed the (-2^31...2^31-1) range of the
                   snmpAlarmValue.

                   An attempt to modify this object will fail with an
                   `inconsistentValue' error if the associated
                   snmpAlarmStatus object would be equal to `active'
                   both before and after the modification attempt."
           ::= { snmpAlarmEntry 3 }

       snmpAlarmSampleType OBJECT-TYPE
           SYNTAX     INTEGER {
                          absoluteValue(1),
                          deltaValue(2)
                      }
           MAX-ACCESS read-create
           STATUS     current
           DESCRIPTION
                   "The method of sampling the selected variable and
                   calculating the value to be compared against the
                   thresholds.  If the value of this object is
                   `absoluteValue', the value of the selected
                   variable at the end of the sampling interval will
                   be compared directly with both the
                   snmpAlarmRisingThreshold and the
                   snmpAlarmFallingThreshold values.  If the value of
                   this object is `deltaValue', the value of the
                   selected variable at the end of the sampling
                   interval will be subtracted from its value at the
                   end of the previous sampling interval, and the
                   difference compared with both the
                   snmpAlarmRisingThreshold and the
                   snmpAlarmFallingThreshold values.

                   An attempt to modify this object will fail with an
                   `inconsistentValue' error if the associated
                   snmpAlarmStatus object would be equal to `active'
                   both before and after the modification attempt."
           DEFVAL { deltaValue }
           ::= { snmpAlarmEntry 4 }

       snmpAlarmValue OBJECT-TYPE
           SYNTAX     Integer32
           MAX-ACCESS read-only
           STATUS     current
           DESCRIPTION
                   "The value of the statistic during the last
                   sampling period.  The value during the current
                   sampling period is not made available until the
                   period is completed.  If the value of the
                   statistic does not fit in the signed 32 bit
                   representation of this object, it should be
                   truncated in an implementation specific manner.

                   Note that if the associated snmpAlarmSampleType is
                   set to `deltaValue', the value of this object is
                   the difference in the sampled variable since the
                   last sample.

                   This object will be created by the SNMPv2 entity
                   acting in a dual role when this entry is set to
                   `active', and the first sampling period has
                   completed.  It may be created and deleted at other
                   times by the SNMPv2 entity acting in a dual role
                   when the sampled value can not be obtained, as
                   specified in the snmpAlarmVariable object."
           ::= { snmpAlarmEntry 5 }

       snmpAlarmStartupAlarm OBJECT-TYPE
           SYNTAX     INTEGER {
                          risingAlarm(1),
                          fallingAlarm(2),
                          risingOrFallingAlarm(3)
                      }
           MAX-ACCESS read-create
           STATUS     current
           DESCRIPTION
                   "The alarm that may be sent when this entry is
                   first set to `active'.  If the first sample after
                   this entry becomes active is greater than or equal
                   to the risingThreshold and snmpAlarmStartupAlarm
                   is equal to `risingAlarm' or
                   `risingOrFallingAlarm', then a single rising alarm
                   will be generated.  If the first sample after this
                   entry becomes active is less than or equal to the
                   fallingThreshold and snmpAlarmStartupAlarm is
                   equal to `fallingAlarm' or `risingOrFallingAlarm',
                   then a single falling alarm will be generated.
                   Note that a snmpObjectUnavailableAlarm is sent
                   upon startup whenever it is applicable,
                   independent of the setting of
                   snmpAlarmStartupAlarm.

                   An attempt to modify this object will fail with an
                   `inconsistentValue' error if the associated
                   snmpAlarmStatus object would be equal to `active'
                   both before and after the modification attempt."
           DEFVAL { risingOrFallingAlarm }
           ::= { snmpAlarmEntry 6 }

       snmpAlarmRisingThreshold OBJECT-TYPE
           SYNTAX     Integer32
           MAX-ACCESS read-create
           STATUS     current
           DESCRIPTION
                   "A threshold for the sampled statistic.  When the
                   current sampled value is greater than or equal to
                   this threshold, and the value at the last sampling
                   interval was less than this threshold, a single
                   event will be generated.  A single event will also
                   be generated if the first sample after this entry
                   becomes active is greater than or equal to this
                   threshold and the associated snmpAlarmStartupAlarm
                   is equal to `risingAlarm' or
                   `risingOrFallingAlarm'.

                   After a rising event is generated, another such
                   event will not be generated until the sampled
                   value falls below this threshold and reaches the
                   snmpAlarmFallingThreshold.

                   An attempt to modify this object will fail with an
                   `inconsistentValue' error if the associated
                   snmpAlarmStatus object would be equal to `active'
                   both before and after the modification attempt."
           ::= { snmpAlarmEntry 7 }

       snmpAlarmFallingThreshold OBJECT-TYPE
           SYNTAX     Integer32
           MAX-ACCESS read-create
           STATUS     current
           DESCRIPTION
                   "A threshold for the sampled statistic.  When the
                   current sampled value is less than or equal to
                   this threshold, and the value at the last sampling
                   interval was greater than this threshold, a single
                   event will be generated.  A single event will also
                   be generated if the first sample after this entry
                   becomes active is less than or equal to this
                   threshold and the associated snmpAlarmStartupAlarm
                   is equal to `fallingAlarm' or
                   `risingOrFallingAlarm'.

                   After a falling event is generated, another such
                   event will not be generated until the sampled
                   value rises above this threshold and reaches the
                   snmpAlarmRisingThreshold.

                   An attempt to modify this object will fail with an
                   `inconsistentValue' error if the associated
                   snmpAlarmStatus object would be equal to `active'
                   both before and after the modification attempt."
           ::= { snmpAlarmEntry 8 }

       snmpAlarmRisingEventIndex OBJECT-TYPE
           SYNTAX     INTEGER (0..65535)
           MAX-ACCESS read-create
           STATUS     current
           DESCRIPTION
                   "The index of the snmpEventEntry that is used when
                   a rising threshold is crossed.  The snmpEventEntry
                   identified by a particular value of this index is
                   the same as identified by the same value of the
                   snmpEventIndex object.  If there is no
                   corresponding entry in the snmpEventTable, then no
                   association exists.  In particular, if this value
                   is zero, no associated event will be generated, as
                   zero is not a valid snmpEventIndex.

                   An attempt to modify this object will fail with an
                   `inconsistentValue' error if the associated
                   snmpAlarmStatus object would be equal to `active'
                   both before and after the modification attempt."
           ::= { snmpAlarmEntry 9 }

       snmpAlarmFallingEventIndex OBJECT-TYPE
           SYNTAX     INTEGER (0..65535)
           MAX-ACCESS read-create
           STATUS     current
           DESCRIPTION
                   "The index of the snmpEventEntry that is used when
                   a falling threshold is crossed.  The
                   snmpEventEntry identified by a particular value of
                   this index is the same as identified by the same
                   value of the snmpEventIndex object.  If there is
                   no corresponding entry in the snmpEventTable, then
                   no association exists.  In particular, if this
                   value is zero, no associated event will be
                   generated, as zero is not a valid snmpEventIndex.

                   An attempt to modify this object will fail with an
                   `inconsistentValue' error if the associated
                   snmpAlarmStatus object would be equal to `active'
                   both before and after the modification attempt."
           ::= { snmpAlarmEntry 10 }

       snmpAlarmUnavailableEventIndex OBJECT-TYPE
           SYNTAX     INTEGER (0..65535)
           MAX-ACCESS read-create
           STATUS     current
           DESCRIPTION
                   "The index of the snmpEventEntry that is used when
                   a variable becomes unavailable.  The
                   snmpEventEntry identified by a particular value of
                   this index is the same as identified by the same
                   value of the snmpEventIndex object.  If there is
                   no corresponding entry in the snmpEventTable, then
                   no association exists.  In particular, if this
                   value is zero, no associated event will be
                   generated, as zero is not a valid snmpEventIndex.

                   An attempt to modify this object will fail with an
                   `inconsistentValue' error if the associated
                   snmpAlarmStatus object would be equal to `active'
                   both before and after the modification attempt."
           ::= { snmpAlarmEntry 11 }

       snmpAlarmStatus OBJECT-TYPE
           SYNTAX     RowStatus
           MAX-ACCESS read-create
           STATUS     current
           DESCRIPTION
                   "The status of this snmpAlarm entry.  This object
                   may not be set to `active' unless the following
                   columnar objects exist in this row:
                   snmpAlarmVariable, snmpAlarmInterval,
                   snmpAlarmSampleType, snmpAlarmStartupAlarm,
                   snmpAlarmRisingThreshold,
                   snmpAlarmFallingThreshold,
                   snmpAlarmRisingEventIndex,
                   snmpAlarmFallingEventIndex, and
                   snmpAlarmUnavailableEventIndex."
           ::= { snmpAlarmEntry 12 }

3.1.1. Alarm-Related Notifications

Next: 3.1.1. Alarm-Related Notifications

Connected: An Internet Encyclopedia
RFC 1451 - 3.1. The Alarm Group