-- *****************************************************************
-- Alarm MIB
-- *****************************************************************

SL-SONET-ALARM-MIB DEFINITIONS ::= BEGIN

IMPORTS
	MODULE-IDENTITY, OBJECT-TYPE,
	NOTIFICATION-TYPE 			     	FROM SNMPv2-SMI
	TEXTUAL-CONVENTION, DisplayString, 
	TruthValue	  						FROM SNMPv2-TC
	MODULE-COMPLIANCE, OBJECT-GROUP,
	NOTIFICATION-GROUP                  FROM SNMPv2-CONF
	InterfaceIndex		               	FROM IF-MIB
	PerfCurrentCount, PerfIntervalCount,
	PerfTotalCount                      FROM PerfHist-TC-MIB
	slSonetMib				      		FROM SL-SONET-MIB;

slSonetAlarmMib MODULE-IDENTITY
	LAST-UPDATED "0008280000Z"
	ORGANIZATION "Smartoptics AS"
	CONTACT-INFO
		"d.lutz@smartoptics.com"
	DESCRIPTION
		"This MIB module describes the SONET ALARMS."
	::= { slSonetMib 4 }

SonetAlarmType ::= TEXTUAL-CONVENTION
       STATUS       current
       DESCRIPTION
       "The SONET Alarms Types."
       SYNTAX       INTEGER {
            losSonetAlarm(1),   -- Loss Of Signal (S)
            lofSonetAlarm(2),   -- Loss Of Frame (S)
            lopSonetAlarm(3),   -- Loss Of Pointer (P/V)
            aisSonetAlarm(4),   -- Alarm Indication Signal (L/P/V)
            rfiSonetAlarm(5),   -- Remote Failure Indication (L/P/V)
            uneqSonetAlarm(6),  -- Unequipped (P)
            tim(7),             -- Trace Indication Mismatch (S/P)
            slm(8),             -- Signal Label Mismatch (P/V) - Defect
			sd(9),              -- Signal Degrade (SDH only)
			sf(10),             -- Signal Fail (SDH only)
			hwfail(11)          -- HW Fail
       }


slSonetAlarmConfig            OBJECT IDENTIFIER ::= { slSonetAlarmMib 1 }
slSonetAlarmTraps             OBJECT IDENTIFIER ::= { slSonetAlarmMib 2 }

--
-- Sonet Alarms config Table
--

slSonetAlarmConfigTable OBJECT-TYPE
         SYNTAX  SEQUENCE OF SlSonetAlarmConfigEntry
         MAX-ACCESS  not-accessible
         STATUS  current
         DESCRIPTION
             "This table contains objects to configure the SONET Alarms."
         ::= { slSonetAlarmConfig 1 }
 
slSonetAlarmConfigEntry OBJECT-TYPE
        SYNTAX  SlSonetAlarmConfigEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "An entry exist for each type of alarm.
             The entry describes the alarm properties."
         INDEX   { slSonetAlarmIfIndex, slSonetAlarmType }
         ::= { slSonetAlarmConfigTable 1 }

SlSonetAlarmConfigEntry ::=
              SEQUENCE {
               slSonetAlarmIfIndex              InterfaceIndex,
               slSonetAlarmType                 SonetAlarmType,
               slSonetAlarmMask                 TruthValue,
               slSonetAlarmStatus               TruthValue
              }
 
slSonetAlarmIfIndex OBJECT-TYPE
     SYNTAX    InterfaceIndex 
     MAX-ACCESS    read-only
     STATUS    current
     DESCRIPTION
         "The corresponding SONET interface index.
         The interface type may be of sonet(39), sonetPath(50) or sonetVT(51)."
     ::= { slSonetAlarmConfigEntry 1 }
 
slSonetAlarmType OBJECT-TYPE
     SYNTAX			SonetAlarmType 
     MAX-ACCESS		read-only
     STATUS			current
     DESCRIPTION
         "The alarm type."
     ::= { slSonetAlarmConfigEntry 2 }
 
slSonetAlarmMask OBJECT-TYPE
       SYNTAX    	 TruthValue 
       MAX-ACCESS    read-write
       STATUS        current
       DESCRIPTION
          "The alarm mask. If True - enable alarm,
           otherwise - disable alarm."
        ::= { slSonetAlarmConfigEntry 3 }
 
slSonetAlarmStatus  OBJECT-TYPE
     SYNTAX         TruthValue 
     MAX-ACCESS     read-only
     STATUS         current
     DESCRIPTION
          "The Alarm status. If True the alarm
          state is ON. Otherwise the alarm state is OFF.
          The states shown here are the stabilized state."
     ::= { slSonetAlarmConfigEntry 4 }
 

--
-- SONET ALARM TRAPS
--

slSonetAlarmSeverity OBJECT-TYPE
       SYNTAX    	 INTEGER { 
       		noAlarm(0), 
       		critical(1), 
       		major(2),  
       		minor(3)  
       }
       MAX-ACCESS    read-only
       STATUS        current
       DESCRIPTION
          "The alarm severity."
        ::= { slSonetAlarmTraps 1 }

slSonetAlarmServiceAffect OBJECT-TYPE
       SYNTAX    	 TruthValue
       MAX-ACCESS    read-only
       STATUS        current
       DESCRIPTION
          "The alarm service affecting Yes/No."
        ::= { slSonetAlarmTraps 2 }

slSonetAlarmTrap NOTIFICATION-TYPE
       OBJECTS { slSonetAlarmIfIndex,
       			slSonetAlarmType, 
				slSonetAlarmStatus,
       			slSonetAlarmSeverity, 
       			slSonetAlarmServiceAffect
       			}
       STATUS  current
       DESCRIPTION
               "An slSonetAlarmTrap notification is sent when an alarm occures."
       ::= { slSonetAlarmTraps 3 }


END



