SAF-ALARM-MIB DEFINITIONS ::= BEGIN

--  2008.09.17 + safAlarmActiveLastChangedDateAndTime
--  2008.11.13 changed notifications
--  2012.06.10 syntax changes

  IMPORTS
      MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
			Unsigned32, Integer32, TimeTicks
          FROM SNMPv2-SMI                -- [RFC2578]
      tehnika
          FROM SAF-ENTERPRISE
      DisplayString, AutonomousType, RowPointer, DateAndTime, TEXTUAL-CONVENTION
          FROM SNMPv2-TC                 -- [RFC2579]
      SnmpAdminString
          FROM SNMP-FRAMEWORK-MIB        -- [RFC3411]
      alarmListName, alarmModelIndex,
      alarmActiveDateAndTime, alarmActiveIndex
          FROM ALARM-MIB                 -- [RFC3877]
--      ItuPerceivedSeverity,
      ItuTrendIndication
          FROM ITU-ALARM-TC-MIB          -- [RFC3877]
--      IANAItuProbableCause,
      IANAItuEventType
          FROM IANA-ITU-ALARM-TC-MIB     -- [RFC3877]
      MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
          FROM SNMPv2-CONF;              -- [RFC2580]



safAlarmMIB MODULE-IDENTITY
--      LAST-UPDATED "200705100000Z"   May 10, 2007
--      LAST-UPDATED "200809170000Z"   Sep 17, 2008
--      LAST-UPDATED "200811130000Z"   Nov 13, 2008
--      LAST-UPDATED "201102080000Z"   Feb 08, 2011
      LAST-UPDATED "201212070000Z"  -- Dec 07, 2012
      ORGANIZATION "SAF Tehnika"
    CONTACT-INFO
           "EMail: support@saftehnika.com
           http://www.saftehnika.com/"
        DESCRIPTION
           "The MIB module describes a solution to
           SAF Tehnika equipment alarms and to store
           the current list of active alarms.
           Copyright (C) SAF Tehnika, 2007-2012."
      REVISION    "201212070000Z"  -- Dec 07, 2012
            DESCRIPTION
          "SAF Tehnika Alarm MIB"
      ::= { tehnika 118 }

-- .iso.org.dod.internet.private.enterprises.saf.tehnika.118
-- module OID length==9 (note: ALARM-MIB OID length==7)

SafAlarmProbableCause ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
        "ITU-T probable cause values.  Duplicate values defined in
         X.733 are appended with X733 to ensure syntactic uniqueness.
         Probable cause value 0 is reserved for special purposes.

         The Internet Assigned Number Authority (IANA) is responsible
         for the assignment of the enumerations in this TC.
         IANAItuProbableCause value of 0 is reserved for special
         purposes and MUST NOT be assigned.

         Values of IANAItuProbableCause in the range 1 to 1023 are
         reserved for causes that correspond to ITU-T probable cause.

         All other requests for new causes will be handled on a
         first-come, first served basis and will be assigned
         enumeration values starting with 1025.

         Request should  come in the form of well-formed
         SMI [RFC2578] for enumeration names that are unique and
         sufficiently descriptive.

         While some effort will be taken to ensure that new probable
         causes do not conceptually duplicate existing probable
         causes it is acknowledged that the existence of conceptual
         duplicates in the starting probable cause list is an known
         industry reality.

         To aid IANA in the administration of probable cause names
         and values, the OPS Area Director will appoint one or more
         experts to help review requests.

         See http://www.iana.org"
    REFERENCE
        "ITU Recommendation M.3100, 'Generic Network Information
            Model', 1995
         ITU Recommendation X.733, 'Information Technology - Open
            Systems Interconnection - System Management: Alarm
            Reporting Function', 1992
         ITU Recommendation X.736, 'Information Technology - Open
            Systems Interconnection - System Management: Security
            Alarm Reporting Function', 1992"

    SYNTAX         INTEGER
            {
            -- The following probable causes were defined in M.3100
             aIS  (1),
             callSetUpFailure  (2),
             degradedSignal  (3),
             farEndReceiverFailure  (4),
             framingError  (5),
             lossOfFrame (6),
             lossOfPointer  (7),
             lossOfSignal  (8),
             payloadTypeMismatch (9),
             transmissionError (10),
             remoteAlarmInterface (11),
             excessiveBER  (12),
             pathTraceMismatch  (13),
             unavailable  (14),
             signalLabelMismatch (15),
             lossOfMultiFrame (16),
             receiveFailure (17),
             transmitFailure (18),
             modulationFailure (19),
             demodulationFailure (20),
             broadcastChannelFailure (21),
             connectionEstablishmentError (22),
             invalidMessageReceived (23),
             localNodeTransmissionError (24),
             remoteNodeTransmissionError (25),
             routingFailure (26),

 --Values 27-50 are reserved for communications alarm related
 --probable causes
 -- The following are used with equipment alarm.

             backplaneFailure (51),
             dataSetProblem  (52),
             equipmentIdentifierDuplication  (53),
             externalIFDeviceProblem  (54),
             lineCardProblem (55),
             multiplexerProblem  (56),
             nEIdentifierDuplication  (57),
             powerProblem  (58),
             processorProblem  (59),
             protectionPathFailure  (60),
             receiverFailure  (61),
             replaceableUnitMissing  (62),
             replaceableUnitTypeMismatch (63),
             synchronizationSourceMismatch  (64),
             terminalProblem   (65),
             timingProblem   (66),
             transmitterFailure  (67),
             trunkCardProblem  (68),
             replaceableUnitProblem  (69),
             realTimeClockFailure (70),
 --An equipment alarm to be issued if the system detects that the
 --real time clock has failed
             antennaFailure (71),
             batteryChargingFailure (72),
             diskFailure (73),
             frequencyHoppingFailure (74),
             iODeviceError (75),
             lossOfSynchronisation (76),
             lossOfRedundancy (77),
             powerSupplyFailure (78),
             signalQualityEvaluationFailure (79),
             tranceiverFailure (80),
             protectionMechanismFailure (81),
             protectingResourceFailure (82),
 -- Values 83-100 are reserved for equipment alarm related probable
 -- causes
 -- The following are used with environmental alarm.
             airCompressorFailure  (101),
             airConditioningFailure  (102),
             airDryerFailure   (103),
             batteryDischarging  (104),
             batteryFailure   (105),
             commercialPowerFailure  (106),
             coolingFanFailure  (107),
             engineFailure  (108),
             fireDetectorFailure  (109),
             fuseFailure  (110),
             generatorFailure  (111),
             lowBatteryThreshold (112),
             pumpFailure  (113),
             rectifierFailure  (114),
             rectifierHighVoltage  (115),
             rectifierLowFVoltage  (116),
             ventilationsSystemFailure  (117),
             enclosureDoorOpen  (118),
             explosiveGas  (119),
             fire (120),
             flood   (121),
             highHumidity  (122),
             highTemperature  (123),
             highWind  (124),
             iceBuildUp  (125),
             intrusionDetection  (126),
             lowFuel  (127),
             lowHumidity  (128),
             lowCablePressure  (129),
             lowTemperatue  (130),
             lowWater  (131),
             smoke  (132),
             toxicGas  (133),
             coolingSystemFailure (134),
             externalEquipmentFailure (135),
             externalPointFailure (136),
 -- Values 137-150 are reserved for environmental alarm related
 -- probable causes
 -- The following are used with Processing error alarm.
             storageCapacityProblem (151),
             memoryMismatch  (152),
             corruptData  (153),
             outOfCPUCycles   (154),
             sfwrEnvironmentProblem  (155),
             sfwrDownloadFailure  (156),
             lossOfRealTimel (157),
 --A processing error alarm to be issued after the system has
 --reinitialised.  This will indicate
 --to the management systems that the view they have of the managed
 --system may no longer
 --be valid.  Usage example: The managed
 --system issues this alarm after a reinitialization with severity
 --warning to inform the
 --management system about the event.  No clearing notification will
 --be sent.
             applicationSubsystemFailure (158),
             configurationOrCustomisationError (159),
             databaseInconsistency (160),
             fileError (161),
             outOfMemory (162),
             softwareError (163),
             timeoutExpired (164),
             underlayingResourceUnavailable (165),
             versionMismatch (166),
 --Values 168-200 are reserved for processing error alarm related
 -- probable causes.
             bandwidthReduced (201),
             congestion (202),
             excessiveErrorRate (203),
             excessiveResponseTime (204),
             excessiveRetransmissionRate (205),
             reducedLoggingCapability (206),
             systemResourcesOverload (207 ),
             -- The following were defined X.733
             adapterError (500),
             applicationSubsystemFailture (501),
             bandwidthReducedX733 (502),
             callEstablishmentError (503),
             communicationsProtocolError (504),
             communicationsSubsystemFailure (505),
             configurationOrCustomizationError (506),
             congestionX733 (507),
             coruptData (508),
             cpuCyclesLimitExceeded (509),
             dataSetOrModemError (510),
             degradedSignalX733 (511),
             dteDceInterfaceError (512),
             enclosureDoorOpenX733 (513),
             equipmentMalfunction (514),
             excessiveVibration (515),
             fileErrorX733 (516),
             fireDetected (517),
             framingErrorX733 (518),
             heatingVentCoolingSystemProblem (519),
             humidityUnacceptable (520),
             inputOutputDeviceError (521),
             inputDeviceError (522),
             lanError (523),
             leakDetected (524),
             localNodeTransmissionErrorX733 (525),
             lossOfFrameX733 (526),
             lossOfSignalX733 (527),
             materialSupplyExhausted (528),
             multiplexerProblemX733 (529),
             outOfMemoryX733 (530),
             ouputDeviceError (531),
             performanceDegraded (532),
             powerProblems (533),
             pressureUnacceptable (534),
             processorProblems (535),
             pumpFailureX733 (536),
             queueSizeExceeded (537),
             receiveFailureX733 (538),
             receiverFailureX733 (539),
             remoteNodeTransmissionErrorX733 (540),
             resourceAtOrNearingCapacity (541),
             responseTimeExecessive (542),
             retransmissionRateExcessive (543),
             softwareErrorX733 (544),
             softwareProgramAbnormallyTerminated (545),
             softwareProgramError (546),
             storageCapacityProblemX733 (547),
             temperatureUnacceptable (548),
             thresholdCrossed (549),
             timingProblemX733 (550),
             toxicLeakDetected (551),
             transmitFailureX733 (552),
             transmiterFailure (553),
             underlyingResourceUnavailable (554),
             versionMismatchX733 (555),
             -- The following are defined in X.736
             authenticationFailure (600),
             breachOfConfidentiality (601),
             cableTamper (602),
             delayedInformation (603),
             denialOfService (604),
             duplicateInformation (605),
             informationMissing (606),
             informationModificationDetected (607),
             informationOutOfSequence (608),
             keyExpired (609),
             nonRepudiationFailure (610),
             outOfHoursActivity (611),
             outOfService (612),
             proceduralError (613),
             unauthorizedAccessAttempt (614),
             unexpectedInformation (615),

             other (1024),
             safEnterpriseSpecific(1025)
             }
 
SafPerceivedSeverity ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
            "modified ITU perceived severity values"
    REFERENCE
           "ITU Recommendation M.3100, 'Generic Network Information
            Model', 1995
            ITU Recommendation X.733, 'Information Technology - Open
            Systems Interconnection - System Management: Alarm
            Reporting Function', 1992"
    SYNTAX         INTEGER
           {
           cleared (1),
           indeterminate (2),
           critical (3),
           major (4),
           minor (5),
           warning (6),
           event (7)
           }



safAlarmObjects OBJECT IDENTIFIER ::=   { safAlarmMIB 1}
safAlarmActive  OBJECT IDENTIFIER ::=   { safAlarmObjects 1}

safAlarmActiveLastChanged OBJECT-TYPE
   SYNTAX      TimeTicks
   MAX-ACCESS  read-only
   STATUS      current
   DESCRIPTION 
   "The value of sysUpTime at the time of the last
    creation, deletion or modification of an entry in
    the safAlarmTable(s).
   "
   ::= { safAlarmActive 1 }

safAlarmActiveLastChangedDateAndTime OBJECT-TYPE
   SYNTAX      DateAndTime
   MAX-ACCESS  read-only
   STATUS      current
   DESCRIPTION "The value of Date and Time when the last
         creation, deletion or modification of an entry in
         the safAlarmTable(s)."
   ::= { safAlarmActive 3 }


safAlarmActiveTable OBJECT-TYPE
   SYNTAX      SEQUENCE OF SafAlarmActiveEntry
   MAX-ACCESS  not-accessible
   STATUS      current
   DESCRIPTION "Alarm table."
   ::= { safAlarmActive 2 }


safAlarmActiveEntry OBJECT-TYPE
   SYNTAX      SafAlarmActiveEntry
   MAX-ACCESS  not-accessible
   STATUS      current
   DESCRIPTION "Entries of alarm table."
      INDEX       { safAlarmActiveIndex }
   ::= { safAlarmActiveTable 1 }

SafAlarmActiveEntry ::= SEQUENCE {
   safAlarmActiveIndex              Unsigned32,
   safAlarmActiveManagedObj         OBJECT IDENTIFIER,
   safAlarmActiveDateAndTime        DateAndTime,
   safAlarmActiveEventType          IANAItuEventType,
   safAlarmActiveProbableCause      SafAlarmProbableCause,
   safAlarmActivePerceivedSeverity  SafPerceivedSeverity,
   safAlarmActiveThresholdTrigered Integer32,
   safAlarmActiveThresholdValue    Integer32,
   safAlarmActiveThresholdTTrigered  DisplayString,
   safAlarmActiveThresholdTValue   DisplayString,
   safAlarmActiveAdditionalText     SnmpAdminString
   }


safAlarmActiveIndex OBJECT-TYPE
   SYNTAX     Unsigned32 (1..4294967295)
   MAX-ACCESS not-accessible   -- read only?
   STATUS     current
   DESCRIPTION
       "An integer that acts as an alarm Id
       to uniquely identify each alarm
       within the alarm list. "
   ::= { safAlarmActiveEntry 1 }


   safAlarmActiveManagedObj OBJECT-TYPE
   SYNTAX OBJECT IDENTIFIER
   MAX-ACCESS read-only
   STATUS     current
   DESCRIPTION "Object, which raises an alarm. Indicates 
         specific object, which raises an alarm. This should 
		 refer to interfaces or Object class and instance."
   ::= { safAlarmActiveEntry 2 }

   safAlarmActiveDateAndTime OBJECT-TYPE
   SYNTAX DateAndTime
   MAX-ACCESS read-only
   STATUS     current
   DESCRIPTION "Alarm date and time."
   ::= { safAlarmActiveEntry 3 }

   safAlarmActiveEventType OBJECT-TYPE
   SYNTAX IANAItuEventType
   MAX-ACCESS read-only
   STATUS     current
   DESCRIPTION "Alarm type in accordance with IANA."
   ::= { safAlarmActiveEntry 4 }

   safAlarmActiveProbableCause OBJECT-TYPE
   SYNTAX SafAlarmProbableCause
   MAX-ACCESS read-only
   STATUS     current
   DESCRIPTION "This parameter defines further qualification as 
         to the probable cause of the alarm. Probable cause 
		 values for notifications shall be indicated in te 
		 behaviour clause of the object class definition. This 
		 parameter defines standard probables causes that have 
		 wide applicability across managed object classes."
   ::= { safAlarmActiveEntry 5 }

   safAlarmActivePerceivedSeverity OBJECT-TYPE
   SYNTAX SafPerceivedSeverity
   MAX-ACCESS read-only
   STATUS     current
   DESCRIPTION "ITU perceived severity values."
   ::= { safAlarmActiveEntry 6 }

   safAlarmActiveThresholdTrigered OBJECT-TYPE
   SYNTAX Integer32
   MAX-ACCESS read-only
   STATUS     current
   DESCRIPTION "The identifier of the threshold attribute 
         that caused the notification."
   ::= { safAlarmActiveEntry 7 }

   safAlarmActiveThresholdValue OBJECT-TYPE
   SYNTAX Integer32
   MAX-ACCESS read-only
   STATUS     current
   DESCRIPTION "The value of the gauge or counter which crossed 
         the threshold. This may be different from the threshold 
		 value if, for example, the gauge may only take on 
		 descrete values."
   ::= { safAlarmActiveEntry 8 }

   safAlarmActiveThresholdTTrigered OBJECT-TYPE
   SYNTAX DisplayString
   MAX-ACCESS read-only
   STATUS     current
   DESCRIPTION " "
   ::= { safAlarmActiveEntry 9 }

   safAlarmActiveThresholdTValue OBJECT-TYPE
   SYNTAX DisplayString
   MAX-ACCESS read-only
   STATUS     current
   DESCRIPTION " "
   ::= { safAlarmActiveEntry 10 }

   safAlarmActiveAdditionalText OBJECT-TYPE
   SYNTAX SnmpAdminString
   MAX-ACCESS read-only
   STATUS     current
   DESCRIPTION "Alarm information interpreted in user friendly 
         text. For example, 'Ethernet interface'."
   ::= { safAlarmActiveEntry 11 }

safAlarmNotifications OBJECT IDENTIFIER ::= { safAlarmMIB 0 }

safAlarmActiveState NOTIFICATION-TYPE
   OBJECTS { 
--             safAlarmActiveIndex,
             safAlarmActiveManagedObj,
             safAlarmActiveDateAndTime,
             safAlarmActiveEventType,
             safAlarmActiveProbableCause,
             safAlarmActivePerceivedSeverity,
             safAlarmActiveThresholdTrigered,
             safAlarmActiveThresholdValue,
             safAlarmActiveAdditionalText
           }
   STATUS      current
   DESCRIPTION "An instance of the alarm indicated."
   ::= { safAlarmNotifications 2 }

safAlarmActiveTState NOTIFICATION-TYPE
   OBJECTS { 
--             safAlarmActiveIndex,
             safAlarmActiveManagedObj,
             safAlarmActiveDateAndTime,       
             safAlarmActiveEventType,
             safAlarmActiveProbableCause,
             safAlarmActivePerceivedSeverity,
             safAlarmActiveThresholdTTrigered,
             safAlarmActiveThresholdTValue,
             safAlarmActiveAdditionalText
           }
   STATUS      current
   DESCRIPTION "An instance of the alarm indicated."
   ::= { safAlarmNotifications 3 }

safAlarmClearState NOTIFICATION-TYPE
   OBJECTS     {
--                  safAlarmActiveIndex  clear table?
                    safAlarmActiveManagedObj
               }
   STATUS      deprecated
   DESCRIPTION "An instance of the clear alarm."
   ::= { safAlarmNotifications 4 }

safAlarmConformance OBJECT IDENTIFIER ::= { safAlarmMIB 3 }

safAlarmGroups OBJECT IDENTIFIER ::= { safAlarmConformance 2 }
safAlarmActiveGroup OBJECT-GROUP
   OBJECTS {
          safAlarmActiveLastChanged,
          safAlarmActiveLastChangedDateAndTime,
--          safAlarmActiveIndex,
          safAlarmActiveManagedObj,
          safAlarmActiveDateAndTime,
          safAlarmActiveEventType,
          safAlarmActiveProbableCause,
          safAlarmActivePerceivedSeverity,
          safAlarmActiveThresholdTrigered,
          safAlarmActiveThresholdValue,
          safAlarmActiveThresholdTTrigered,
          safAlarmActiveThresholdTValue,
          safAlarmActiveAdditionalText
   }
   STATUS   current
   DESCRIPTION "Active Alarm list group."
   ::= { safAlarmGroups 1}
   
safAlarmNotificationsGroup NOTIFICATION-GROUP
   NOTIFICATIONS { safAlarmActiveState, safAlarmActiveTState, safAlarmClearState }
   STATUS        deprecated
   DESCRIPTION "The collection of notifications that can be used to
         alarms for faults."
   ::= { safAlarmGroups 2 }

safAlarmNotificationsGroup1 NOTIFICATION-GROUP
   NOTIFICATIONS { safAlarmActiveState, safAlarmActiveTState }
   STATUS        current
   DESCRIPTION "The collection of notifications that can be used to
         alarms for faults."
   ::= { safAlarmGroups 3 }
      
--
END
