--======================================================================
--
-- COPYRIGHT Telefonaktiebolaget LM Ericsson 1998
--                                                                   
-- The copyright of this document is the property of Telefonaktiebolaget 
-- LM Ericsson, Sweden. The document may be used and/or copied only with 
-- the written permission of Ericsson or in accordance with the terms 
-- and conditions stipulated in the agreement/contract under which the 
-- document has been supplied.                              
--  
--======================================================================

ERICSSON-ALARM-IRP-MIB DEFINITIONS ::= BEGIN

-- Title: SNMP Alarm MIBS
-- Document Number: 1/155 19-APR 901 333/1 Uen
-- Revision: B
-- Date: 2003-03-07
-- Prepared: ETH/RUMB Laszlo Varga
-- Approved: ETH/RUPC Rene Pedersen

IMPORTS
        MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, 
        Integer32, enterprises
                FROM SNMPv2-SMI
        TEXTUAL-CONVENTION, DateAndTime
                FROM SNMPv2-TC
        OBJECT-GROUP, NOTIFICATION-GROUP, MODULE-COMPLIANCE
                FROM SNMPv2-CONF;


alarmIrpMIB MODULE-IDENTITY
        LAST-UPDATED "200303070000Z"
        ORGANIZATION "Telefonaktiebolaget LM Ericsson"
        CONTACT-INFO
        "TSP Customer Support Center <http://ccnd.ericsson.se/prodsupport/tsp>>"
        DESCRIPTION
                "This SNMP MIB-module constitutes the Ericsson Alarm 
                 Integration Reference Point (IRP) solution set for SNMP,
                 version 1:2.  
                   The purpose of this IRP is to define an interface though 
                 which a 'system' (typically a network element manager or
                 a network element) can communicate alarm information for 
                 its managed objects to one or several 'actors' (typically 
                 network management systems). 
                   An alarm is a kind of object that represents an abnormal 
                 condition for a managed object. An alarm is active as 
                 long as the corresponding abnormal condition remains. The 
                 system maintains an 'Alarm Table' containing all currently 
                 active alarms for its managed objects. When an alarm is 
                 cleared, it is removed from the list and no longer 
                 accessible.
                   Alarms can be forwarded to the actors either 
                 synchronously (requested through get, get-next or get-
                 bulk PDUs) or asynchrously (through inform or trap PDUs) 
                 whenever an entry in the Alarm Table is created, modified 
                 or cleared."
        REVISION "200303070000Z"
        DESCRIPTION
                "First complete and approved version, syntactically updated."
        ::= { enterprises ericssonIRP(3881) 2 }


alarmObjects              OBJECT IDENTIFIER ::= { alarmIrpMIB 1 }
alarmNotifications        OBJECT IDENTIFIER ::= { alarmIrpMIB 2 }
alarmNotificationPrefix   OBJECT IDENTIFIER ::= { alarmNotifications 0 }
alarmConformance          OBJECT IDENTIFIER ::= { alarmIrpMIB 3 }


--======================================================================
-- TEXTUAL CONVENTIONS
--======================================================================

DisplayString80 ::= TEXTUAL-CONVENTION
        STATUS current
        DESCRIPTION        
                "max 80 chars"
        SYNTAX OCTET STRING (SIZE (0..80))

DisplayString200 ::= TEXTUAL-CONVENTION
        STATUS current
        DESCRIPTION        
                "max 200 chars"
        SYNTAX OCTET STRING (SIZE (0..200))

ManagedObjectClass ::= TEXTUAL-CONVENTION
        STATUS current
        DESCRIPTION
                "A name identifying a Managed Object Class"
        SYNTAX OCTET STRING (SIZE (0..30))

ManagedObjectInstance ::= TEXTUAL-CONVENTION
        STATUS current
        DESCRIPTION
                "A distinguished name identifying a Managed Object Instance 
                 through a containment hierarchy within the name space of its 
                 agent. It is important that this name is consistant with
                 naming used over other interfaces, such as interfaces for
                 configuration and performance management."
        SYNTAX OCTET STRING (SIZE (0..200))

TypeOfEvent ::= TEXTUAL-CONVENTION
        STATUS current
        DESCRIPTION
                "Event type as specified in ITU recommendations 
                 X.733 and X.736."
        SYNTAX INTEGER {
                -- Event types defined in X.733:
                unknown(0),
                communicationsAlarm(2),
                environmentalAlarm(3),
                equipmentAlarm(4),
                processingErrorAlarm(10),
                qualityOfServiceAlarm(11),
                --
                -- Event types defined in X.736:
                integrityViolation(15),
                operationalViolation(16),
                physicalViolation(17),
                securityServiceViolation(18),
                timeDomainViolation(19)
        }

PerceivedSeverity ::= TEXTUAL-CONVENTION
        STATUS current
        DESCRIPTION        
                "Perceived severity as specified in ITU 
                 recommendation X.733. The value indeterminate(0)
                 is not recommended to be used."
        SYNTAX INTEGER {

                indeterminate(0),
                critical(1),
                major(2),
                minor(3),
                warning(4),
                cleared(5)
        }

ProbableCause ::= TEXTUAL-CONVENTION
        STATUS current
        DESCRIPTION        
                "Probable cause as specified in ITU recommendations 
                 M.3100, X.733 and X.736, and in ETSI recommendation 
                 GSM 12.11."
        SYNTAX INTEGER {
                -- The following values are defined in M.3100 (0795)
                m3100Indeterminate(0),
                m3100AlarmIndicationSignal(1),
                m3100CallSetupFailure(2),
                m3100DegradedSignal(3),
                m3100FarEndReceiverFailure(4),
                m3100FramingError(5),
                m3100LossOfFrame(6),
                m3100LossOfPointer(7),
                m3100LossOfSignal(8),
                m3100PayloadTypeMismatch(9),
                m3100TransmissionError(10),
                m3100RemoteAlarmInterface(11),
                m3100ExcessiveBitErrorRate(12),
                m3100PathTraceMismatch(13),
                m3100Unavailable(14),
                m3100SignalLabelMismatch(15),
                m3100LossOfMultiFrame(16),
                m3100BackPlaneFailure(51),
                m3100DataSetProblem(52),
                m3100EquipmentIdentifierDuplication(53),
                m3100ExternalIfDeviceProblem(54),
                m3100LineCardProblem(55),
                m3100MultiplexerProblem(56),
                m3100NeIdentifierDuplication(57),
                m3100PowerProblem(58),
                m3100ProcessorProblem(59),
                m3100ProtectionPathFailure(60),
                m3100ReceiverFailure(61),
                m3100ReplaceableUnitMissing(62),
                m3100ReplaceableUnitTypeMismatch(63),
                m3100SynchronisationSourceMismatch(64),
                m3100TerminalProblem(65),
                m3100TimingProblem(66),
                m3100TransmitterFailure(67),
                m3100TrunkCardProblem(68),
                m3100ReplaceableUnitProblem(69),
                m3100AirCompressorFailure(101),
                m3100AirConditioningFailure(102),
                m3100AirDryerFailure(103),
                m3100BatteryDischarging(104),
                m3100BatteryFailure(105),
                m3100CommercialPowerFailure(106),
                m3100CoolingFanFailure(107),
                m3100EngineFailure(108),
                m3100FireDetectorFailure(109),
                m3100FuseFailure(110),
                m3100GeneratorFailure(111),
                m3100LowBatteryThreshold(112),
                m3100PumpFailure(113),
                m3100RectifierFailure(114),
                m3100RectifierHighVoltage(115),
                m3100RectifierLowVoltage(116),
                m3100VentilationSystemFailure(117),
                m3100EnclosureDoorOpen(118),
                m3100ExplosiveGas(119),
                m3100Fire(120),
                m3100Flood(121),
                m3100HighHumidity(122),
                m3100HighTemperature(123),
                m3100HighWind(124),
                m3100IceBuildUp(125),
                -- m3100IntrusionDetection (use X.736 value)
                m3100LowFuel(127),
                m3100LowHumidity(128),
                m3100LowCablePressure(129),
                m3100LowTemperature(130),
                m3100LowWater(131),
                m3100Smoke(132),
                m3100ToxicGas(133),
                m3100StorageCapacityProblem(151),
                m3100MemoryMismatch(152),
                m3100CorruptData(153),
                m3100OutOfCPUCycles(154),
                m3100SoftwareEnvironmentProblem(155),
                m3100SoftwareDownloadFailure(156),
                --
                -- The following values are defined in X.733 (0292)
                x733AdapterError(301),
                x733ApplicationSubsystemFailure(302),
                x733BandwidthReduced(303),
                -- x733CallEstablishmentError (use M.3100 value)
                x733CommunicationsProtocolError(305),
                x733CommunicationsSubsystemFailure(306),
                x733ConfigurationOrCustomizationError(307),
                x733Congestion(308),
                -- x733CorruptData (use M.3100 value)
                x733CpuCyclesLimitExceeded(310),
                x733DataSetOrModemError(311),
                -- x733DegradedSignal (use M.3100 value)
                x733DTEDCEInterfaceError(313),
                -- x733EnclosureDoorOpen (use M.3100 value)
                x733EquipmentMalfunction(315),
                x733ExcessiveVibration(316),
                x733FileError(317),
                -- x733FireDetected (use M.3100 value)
                -- x733FloodDetected (use M.3100 value)
                -- x733FramingError  (use M.3100 value)
                x733HeatingOrVentilationOrCoolingSystemProblem(321),
                x733HumidityUnacceptable(322),
                x733InputOutputDeviceError(323),
                x733InputDeviceError(324),
                x733LANError(325),
                x733LeakDetected(326),
                x733LocalNodeTransmissionError(327),
                -- x733LossOfFrame (use M.3100 value)
                -- x733LossOfSignal (use M.3100 value)
                x733MaterialSupplyExhausted(330),
                -- x733MultiplexerProblem (use M.3100 value)
                x733OutOfMemory(332),
                x733OuputDeviceError(333),
                x733PerformanceDegraded(334),
                -- x733PowerProblem (use M.3100 value)
                x733PressureUnacceptable(336),
                -- x733ProcessorProblem (use M.3100 value)
                -- x733PumpFailure (use M.3100 value)
                x733QueueSizeExceeded(339),
                x733ReceiveFailure(340),
                -- x733ReceiverFailure (use M.3100 value)
                x733RemoteNodeTransmissionError(342),
                x733ResourceAtOrNearingCapacity(343),
                x733ResponseTimeExcessive(344),
                x733RetransmissionRateExcessive(345),
                x733SoftwareError(346),
                x733SoftwareProgramAbnormallyTerminated(347),
                x733SoftwareProgramError(348),
                -- x733StorageCapacityProblem (use M.3100 value)
                x733TemperatureUnacceptable(350),
                x733ThresholdCrossed(351),
                -- x733TimingProblem (use M.3100 value)
                x733ToxicLeakDetected(353),
                x733TransmitFailure(354),
                -- x733TransmitterFailure (use M.3100 value)
                x733UnderlyingResourceUnavailable(356),
                x733VersionMismatch(357),
                --
                -- The following values are defined in X.736
                x736AuthenticationFailure(401),
                x736BreachOfConfidentiality(402),
                x736CableTamper(403),
                x736DelayedInformation(404),
                x736DenialOfService(405),
                x736DuplicateInformation(406),
                x736InformationMissing(407),
                x736InformationModificationDetected(408),
                x736InformationOutOfSequence(409),
                x736IntrusionDetection(410),
                x736KeyExpired(411),
                x736NonRepudiationFailure(412),
                x736OutOfHoursActivity(413),
                x736OutOfService(414),
                x736ProceduralError(415),
                x736UnauthorizedAccessAttempt(416),
                x736UnexpectedInformation(417),
                x736UnspecifiedReason(418),
                --
                -- The following values are defined in GSM 12.11
                gsm1211AbisToBTSInterfaceFailure(501),
                gsm1211AbisToTRXInterfaceFailure(502),
                gsm1211AntennaProblem(503),
                gsm1211BatteryBreakdown(504),
                gsm1211BatteryChargingFault(505),
                gsm1211ClockSynchronisationProblem(5056),
                gsm1211CombinerProblem(507),
                gsm1211DiskProblem(508),
                -- gsm1211EquipmentFailure (use X.733 value)
                gsm1211ExcessiveReceiverTemperature(510),
                gsm1211ExcessiveTransmitterOutputPower(511),
                gsm1211ExcessiveTransmitterTemperature(512),
                gsm1211FrequencyHoppingDegraded(513),
                gsm1211FrequencyHoppingFailure(514),
                gsm1211FrequencyRedefinitionFailed(515),
                gsm1211LineInterfaceFailure(516),
                gsm1211LinkFailure(517),
                gsm1211LossOfSynchronisation(518),
                gsm1211LostRedundancy(519),
                gsm1211MainsBreakdownWithBatteryBackUp(520),
                gsm1211MainsBreakdownWithoutBatteryBackUp(521),
                gsm1211PowerSupplyFailure(522),
                gsm1211ReceiverAntennaFault(523),
                -- gsm1211ReceiverFailure (use M.3100 value)
                gsm1211ReceiverMulticouplerFailure(525),
                gsm1211ReducedTransmitterOutputPower(526),
                gsm1211SignalQualityEvaluationFault(527),
                gsm1211TimeslotHardwareFailure(528),
                gsm1211TransceiverProblem(529),
                gsm1211TranscoderProblem(530),
                gsm1211TranscoderOrRateAdapterProblem(531),
                gsm1211TransmitterAntennaFailure(532),
                gsm1211TransmitterAntennaNotAdjusted(533),
                -- gsm1211TransmitterFailure (use M.3100 value)
                gsm1211TransmitterLowVoltageOrCurrent(535),
                gsm1211TransmitterOffFrequency(536),
                gsm1211DatabaseInconsistency(537),
                gsm1211FileSystemCallUnsuccessful(538),
                gsm1211InputParameterOutOfRange(539),
                gsm1211InvalidParameter(540),
                gsm1211InvalidPointer(541),
                gsm1211MessageNotExpected(542),
                gsm1211MessageNotInitialised(543),
                gsm1211MessageOutOfSequence(544),
                gsm1211SystemCallUnsuccessful(545),
                gsm1211TimeoutExpired(546),
                gsm1211VariableOutOfRange(547),
                gsm1211WatchDogTimerExpired(548),
                gsm1211CoolingSystemFailure(549),
                gsm1211ExternalEquipmentFailure(550),
                gsm1211ExternalPowerSupplyFailure(551),
                gsm1211ExternalTransmissionDeviceFailure(552),
                -- gsm1211FanFailure (use M.3100 value)
                -- gsm1211HighHumidity (use M.3100 value)
                -- gsm1211HighTemperature (use M.3100 value)
                -- gsm1211IntrusionDetected (use X.736 value)
                -- gsm1211LowHumidity (use M.3100 value)
                -- gsm1211LowTemperature (use M.3100 value)
                -- gsm1211SmokeDetected (use M.3100 value)
                -- gsm1211ExcessiveErrorRate (use M.3100 value)
                gsm1211ReducedAlarmReporting(561),
                gsm1211ReducedEventReporting(562),
                gsm1211ReducedLoggingCapability(563),
                gsm1211SystemResourcesOverload(564),
                gsm1211BroadcastChannelFailure(565),
                gsm1211ConnectionEstablishmentError(566),
                gsm1211InvalidMessageReceived(567),
                gsm1211InvalidMSUReceived(568),
                gsm1211LAPDLinkProtocolFailure(569),
                gsm1211LocalAlarmIndication(570),
                gsm1211RemoteAlarmIndication(571),
                gsm1211RoutingFailure(572),
                gsm1211SS7ProtocolFailure(573),
                gsm1211TransmissionError(574)
        }        


--======================================================================
-- IRP VERSION INFORMATION
--======================================================================

alarmIrpVersion OBJECT-TYPE
        SYNTAX      OCTET STRING(SIZE(2))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "This object represents the version of the Alarm IRP
                 SNMPv2 Solution Set supported by the agent. The 
                 format is 'xy', where 'x' is the version of the 
                 information model and 'y' the version of the solution 
                 set corresponding to this information model."
        ::= { alarmObjects 1 }


--======================================================================
-- NUMBER OF ALARMS
--======================================================================

alarmIndeterminateNumber OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "This object determines the number of currently 
                 active alarms with perceived severity 'indeterminate'."
        ::= { alarmObjects 2 }

alarmCriticalNumber OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "This object determines the number of currently 
                 active alarms with perceived severity 'critical'."
        ::= { alarmObjects 3 }

alarmMajorNumber OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "This object determines the number of currently 
                 active alarms with perceived severity 'major'."
        ::= { alarmObjects 4 }

alarmMinorNumber OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "This object determines the number of currently 
                 active alarms with perceived severity 'minor'."
        ::= { alarmObjects 5 }

alarmWarningNumber OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "This object determines the number of currently 
                 active alarms with perceived severity 'warning'."
        ::= { alarmObjects 6 }

alarmNumber OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "This object determines the total number of 
                 currently active alarms, i.e. the total number
                 of entries in the Alarm Table."
        ::= { alarmObjects 7 }


--======================================================================
-- ALARM TABLE
--======================================================================





alarmTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF AlarmEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
                "Table with information about the alarms that are 
                 currently active in the system."
        ::= { alarmObjects 8 }

alarmEntry OBJECT-TYPE
        SYNTAX       AlarmEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
                "One entry in the table holds one current alarm."
        INDEX { alarmId }
::= { alarmTable 1 }

AlarmEntry ::= SEQUENCE {
        alarmId                     Integer32,
        alarmManagedObjectClass     ManagedObjectClass,
        alarmManagedObjectInstance  ManagedObjectInstance,
        alarmEventTime              DateAndTime,
        alarmEventType              TypeOfEvent,
        alarmProbableCause          ProbableCause,
        alarmPerceivedSeverity      PerceivedSeverity,
        alarmSpecificProblem        DisplayString80,
        alarmAckUser                DisplayString80,
        alarmAckTime                DateAndTime,
        alarmCommentUser            DisplayString80,
        alarmCommentText            DisplayString200,
        alarmAdditionalText         DisplayString200
        }

alarmId OBJECT-TYPE
        SYNTAX      Integer32 (0..2147483647)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
                "This object uniquely identifies an entry in the 
                 Alarm Table. It increases every time a new alarm 
                 occurs. Due to cleared alarms the index will not be 
                 contiguous. When the maximum is reached of 
                 Integer32, the value of this object rolls over to 1. 
                 The actor must use 'alarmEventTime' to sort on 
                 chronological order.
                   The alarmId object is read-only even though it
                 is used as index in the Alarm Table. The reason is
                 that this facilities a convenient way to extract 
                 the corresponding value from a notification where 
                 the object is included."
        ::= { alarmEntry 1 }

alarmManagedObjectClass OBJECT-TYPE
        SYNTAX        ManagedObjectClass
        MAX-ACCESS        read-only
        STATUS        current
        DESCRIPTION
                "This object identifies the class of network 
                resources to which the subject alarm is related."
        ::= { alarmEntry 2 }

alarmManagedObjectInstance OBJECT-TYPE
        SYNTAX      ManagedObjectInstance
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "This object identifies the instance (of a class) of 
                 network resource to which the subject alarm is 
                 related."
        ::= { alarmEntry 3 }

alarmEventTime OBJECT-TYPE
        SYNTAX      DateAndTime
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION 
                "This object represents the time of occurrence of the 
                 subject alarm. If the alarm changes 'perceivedSeverity',
                 then this object represents the time of the last 
                 severity change, else it represents the time carried in 
                 the original alarm emitted by the alarmed network 
                 resource. The time indication is in UTC (Co-ordinated 
                 Universal Time)."
        ::= { alarmEntry 4 }
        
alarmEventType OBJECT-TYPE
        SYNTAX      TypeOfEvent
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "This object represents the type of event according 
                 to the ITU recommendations X.733/X.736."
        ::= { alarmEntry 5 }

alarmProbableCause OBJECT-TYPE
        SYNTAX      ProbableCause
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "This object represents the probable cause 
                 identification code (generic classification) for the 
                 subject alarm according to the ITU recommendations 
                 M.3100/X.733/X.736 and ETSI recommendation GSM 12.11."
        ::= { alarmEntry 6 }

alarmPerceivedSeverity OBJECT-TYPE
        SYNTAX      PerceivedSeverity
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "This object represents the perceived severity of 
                 the subject alarm according to the ITU 
                 recommendation X.733. 
                    If the system changes the perceived severity of 
                 an existing alarm to a higher value, the 
                 corresponding 'alarmAckUser' and 'alarmAckTime' 
                 objects are cleared."
        ::= { alarmEntry 7 }

alarmSpecificProblem OBJECT-TYPE
        SYNTAX      DisplayString80
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "This object represents the specific problem 
                 identification code for the subject alarm. This is a 
                 more detailed (product specific) identification 
                 compared to the (generic) 'alarmprobableCause'."
        ::= { alarmEntry 8 }

alarmAckUser OBJECT-TYPE
        SYNTAX      DisplayString80
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
                "This object is used to define the id of a user that 
                 acknowledge the subject alarm. An alarm can be 
                 unacknowledged by clearing this object. This object 
                 shall always be set or cleared in the same set 
                 request as the 'alarmAckTime' object defined below. 
                 The system will respond with 'inconsistentValue' 
                 upon attempts to set this object without setting 
                 'alarmAckTime'."
        ::= { alarmEntry 9 }

alarmAckTime OBJECT-TYPE
        SYNTAX      DateAndTime
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION        
                "This object represents the time when the subject alarm 
                 was acknowledged. This object shall always be set or 
                 cleared in the same set request as the 'alarmAckUser' 
                 object defined above. The system will respond with 
                 'inconsistentValue' upon attempts to set this object 
                 without setting 'alarmAckTime'. The time indication is in 
                 UTC (Co-ordinated Universal Time)."
        ::= { alarmEntry 10 }

alarmCommentUser OBJECT-TYPE
        SYNTAX      DisplayString80
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
                "This object is used to define the id of a user that 
                 enters a comment for the subject alarm. This object 
                 shall always be set in the same request as the 
                 'alarmCommentText' object defined below. The system 
                 will respond with 'inconsistentValue' upon attempts 
                 to set this object without setting 
                 'alarmCommentText'."
        ::= { alarmEntry 11 }

alarmCommentText OBJECT-TYPE
        SYNTAX      DisplayString200
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
                "This object represents a comment added by an actor 
                 to the subject alarm. This object shall always be 
                 set in the same set request as the 
                 'alarmCommentUser' object defined above. The system 
                 will respond with 'inconsistentValue' upon attempts 
                 to set this object without setting 'alarmAckUser'."
        ::= { alarmEntry 12 }

alarmAdditionalText OBJECT-TYPE
        SYNTAX      DisplayString200
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "This object represents some arbitrary additional 
                 text for the subject alarm."
        ::= { alarmEntry 13 }

--======================================================================
-- NOTIFICATION IDENTIFIER
--======================================================================

notificationId OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  accessible-for-notify
        STATUS      current
        DESCRIPTION
                "This object uniquely identifies a notification. It
                 increases every time a new notification is sent. When 
                 the maximum is reached of Integer32, the value of 
                 this object rolls over to 1."
        ::= { alarmObjects 9 }


--======================================================================
-- ALARM RELATED NOTIFICATIONS
--======================================================================

alarmNew NOTIFICATION-TYPE
        OBJECTS {   notificationId,
                    alarmId,
                    alarmManagedObjectClass,
                    alarmManagedObjectInstance,
                    alarmEventTime,
                    alarmEventType,
                    alarmProbableCause,
                    alarmPerceivedSeverity,
                    alarmSpecificProblem }
        STATUS      current
        DESCRIPTION 
                "This notification is sent when a new Alarm is 
                 generated and stored in the Alarm Table. 
                   Note that the notification does not include all
                 objects for the corresponding entry in the Alarm 
                 Table. The reason is that some environments may have 
                 problems with large PDUs. Thus, the notification 
                 receiver must get the missing objects from the
                 Alarm Table."
        ::= { alarmNotificationPrefix 1 }

alarmChanged NOTIFICATION-TYPE
        OBJECTS {   notificationId,
                    alarmId,
                    alarmManagedObjectClass,
                    alarmManagedObjectInstance,
                    alarmEventTime,
                    alarmEventType,
                    alarmProbableCause,
                    alarmPerceivedSeverity,
                    alarmSpecificProblem }
        STATUS      current
        DESCRIPTION 
                "This notification is generated when any of the 
                 attributes of an Alarm has changed. Note that
                 the EventTime value in the notification will be 
                 different than that in the original notifyNewAlarm 
                 if and only if the alarmPerceivedSeverity value 
                 is different from that carried in original 
                 notifyNewAlarm.
                   Note that the notification does not include all
                 objects for the corresponding entry in the Alarm 
                 Table. The reason is that some environments may have 
                 problems with large PDUs. Thus, the notification 
                 receiver must get the missing objects from the
                 Alarm Table."
        ::= { alarmNotificationPrefix 2 }

alarmCleared NOTIFICATION-TYPE
        OBJECTS {   notificationId,
                    alarmId,
                    alarmManagedObjectClass,
                    alarmManagedObjectInstance,
                    alarmEventTime,
                    alarmEventType,
                    alarmProbableCause,
                    alarmPerceivedSeverity,
                    alarmSpecificProblem }
        STATUS      current
        DESCRIPTION 
                "This notification is generated when an alarm is 
                 cleared. A cleared alarm is removed from the 
                 Alarm Table and is no longer accessible."
        ::= { alarmNotificationPrefix 3 }


--======================================================================
-- CONFORMANCE INFORMATION
--======================================================================

alarmCompliances OBJECT IDENTIFIER ::= { alarmConformance 1 }
alarmGroups      OBJECT IDENTIFIER ::= { alarmConformance 2 }


--======================================================================
-- COMPLIANCE STATEMENTS
--======================================================================

alarmCompliance MODULE-COMPLIANCE
        STATUS current
        DESCRIPTION 
                "A collection of objects that are required for
                 compliance to the ALARM-IRP."

        MODULE SNMPv2-MIB -- RFC-1907
           MANDATORY-GROUPS { systemGroup,
                              snmpBasicNotificationsGroup }

        MODULE SNMP-TARGET-MIB -- RFC-2273
           MANDATORY-GROUPS { snmpTargetBasicGroup,
                              snmpTargetResponseGroup }

           OBJECT snmpTargetParamsMPModel
           SYNTAX INTEGER {
               snmpV2c(1)
           }
           MIN-ACCESS  read-only
           DESCRIPTION
                   "Create/delete/modify access is not required.
                    Only support of SNMP V2C is required."

           OBJECT snmpTargetParamsSecurityModel
           SYNTAX INTEGER {
               snmpV2c(2)
           }
           MIN-ACCESS  read-only
           DESCRIPTION
                   "Create/delete/modify access is not required.
                    Only support of SNMP V2C is required."

           OBJECT snmpTargetParamsSecurityName
           MIN-ACCESS  read-only
           DESCRIPTION
                   "Create/delete/modify access is not required."

           OBJECT snmpTargetParamsSecurityLevel
           SYNTAX INTEGER {
               noAuthNoPriv(1)
           }
           MIN-ACCESS  read-only
           DESCRIPTION
                   "Create/delete/modify access is not required.
                    No security is required."

           OBJECT snmpTargetParamsStorageType
           SYNTAX INTEGER {
               readOnly(5)
           }
           MIN-ACCESS  read-only
           DESCRIPTION
                   "Create/delete/modify access is not required.
                    Support of the values other(1), volatile(2),
                    nonVolatile(3), and permanent(4) is not required."

        MODULE SNMP-NOTIFICATION-MIB -- RFC-2273
           MANDATORY-GROUPS { snmpNotifyGroup,
                              snmpNotifyFilterGroup }

           OBJECT snmpNotifyStorageType
           SYNTAX INTEGER {
               readOnly(5)
           }
           MIN-ACCESS  read-only
           DESCRIPTION
                   "Create/delete/modify access is not required.
                    Support of the values other(1), volatile(2),
                    nonVolatile(3), and permanent(4) is not required."

           OBJECT snmpNotifyFilterProfileStorType
           SYNTAX INTEGER {
               readOnly(5)
           }
           MIN-ACCESS  read-only
           DESCRIPTION
                   "Create/delete/modify access is not required.
                    Support of the values other(1), volatile(2),
                    nonVolatile(3), and permanent(4) is not required."


        MODULE -- This module
           MANDATORY-GROUPS { alarmAdminMandatoryGroup,
                              alarmMandatoryGroup,
                              alarmNotificationMandatoryGroup }

           GROUP alarmNumberGroup
           DESCRIPTION
                   "This group is not required. A SNMP entity may 
                    support one or several of the objects in the group."

           GROUP alarmOptionalGroup
           DESCRIPTION
                   "This group is not required. A SNMP entity may 
                    support one or several of the objects in the group."

           GROUP alarmNotificationOptionalGroup
           DESCRIPTION
                   "This group is not required. A SNMP entity may 
                    support one or several of the objects in the group."

        ::= { alarmCompliances 1 }


--======================================================================
-- GROUPS
--======================================================================

alarmAdminMandatoryGroup OBJECT-GROUP  
        OBJECTS {   alarmIrpVersion }
        STATUS      current
        DESCRIPTION 
                "A collection of mandatory objects holding administrative
                information."
        ::= { alarmGroups 1 }


alarmNumberGroup OBJECT-GROUP
        OBJECTS {   alarmNumber,
                    alarmIndeterminateNumber,
                    alarmCriticalNumber,
                    alarmMajorNumber,
                    alarmMinorNumber,
                    alarmWarningNumber }
        STATUS      current
        DESCRIPTION 
                "A collection of optional objects for retrieval of 
                 the number of currently active alarms."
        ::= { alarmGroups 2 }

alarmMandatoryGroup OBJECT-GROUP
        OBJECTS {   notificationId,
                    alarmId,
                    alarmManagedObjectClass,
                    alarmManagedObjectInstance,
                    alarmEventTime,
                    alarmEventType,
                    alarmProbableCause,
                    alarmPerceivedSeverity,
                    alarmSpecificProblem }
        STATUS      current
        DESCRIPTION 
                "A collection of objects that represents mandatory 
                 alarm attributes."
        ::= { alarmGroups 3 }

alarmOptionalGroup OBJECT-GROUP
        OBJECTS {   alarmAckUser,
                    alarmAckTime,
                    alarmCommentUser,
                    alarmCommentText,
                    alarmAdditionalText }
        STATUS      current
        DESCRIPTION 
                "A collection of objects that represents optional 
                 alarm attributes."
        ::= { alarmGroups 4 }

alarmNotificationMandatoryGroup NOTIFICATION-GROUP
        NOTIFICATIONS { alarmNew,
                        alarmCleared }
        STATUS      current
        DESCRIPTION 
                "A collection of mandatory alarm notifications."
        ::= { alarmGroups 5 }

alarmNotificationOptionalGroup NOTIFICATION-GROUP
        NOTIFICATIONS { alarmChanged }
        STATUS      current
        DESCRIPTION 
                "A collection of optional alarm notifications."
        ::= { alarmGroups 6 }END