
-- Copyright (C) 2007-2010 by Zhone Technologies.  All Rights Reserved.

-- ======================================================================
-- ==                                                                  ==
-- ==                    ZHN-SYSMON-MIB                                ==
-- ==                                                                  ==
-- ==  Copyright (C) 2007-2010 Zhone Technologies, Inc.                ==
-- ==  Confidential, Unpublished Property of Zhone Technologies.       ==
-- ==  Rights Reserved Under the Copyright Laws of the United States.  ==
-- ==                                                                  ==
-- ======================================================================


ZHNSYSMON DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, Unsigned32, NOTIFICATION-TYPE
        FROM SNMPv2-SMI
    RowStatus, DisplayString, DateAndTime
        FROM SNMPv2-TC
    zhoneWtn
        FROM Zhone;

        
zhnSysMon MODULE-IDENTITY
    LAST-UPDATED "201009240000Z"  -- Aug 24, 2010
    ORGANIZATION "Zhone Technologies
                  MIB Working Group
                  Other information about group editing the MIB"
    CONTACT-INFO "Zhone Technologies, Inc.
                  Florida Design Center
                  8545 126th Avenue North
                  Largo, FL 33773
                  www.zhone.com

                  General Comments to: largo-mibwg-team@zhone.com"

    DESCRIPTION
        "This MIB contains objects that are used by the System
         Monitoring function.

         ==============================================================
         ==                                                          ==
         ==     Copyright (C) 2007-2010 Zhone Technologies, Inc.     ==
         ==                                                          ==
         =============================================================="
        
    REVISION "201009240000Z"  -- Aug 24, 2010
    DESCRIPTION "Added zhnSysMonAlarmTypes:
                       onBatteryPower2(33),
                       batteryPowerLow2(34),
                       replaceBattery2(35),
                       batteryRemoved2(36),
                       doorOpened(37)"
    REVISION "201006210000Z"  -- Jun 21, 2010
    DESCRIPTION "Added zhnSysMonAlarmType varbind to the zhnSysMonAlarmSetEvent and
                 zhnSysMonAlarmClearEvent NOTIFICATION-TYPEs."
    REVISION "200912140000Z"  -- Dec 14, 2009
    DESCRIPTION "Added new alarm types for CPEs with battery-backup units. Also
                 added a new NOTIFICATION-TYPE for database configuration changes."
    REVISION "200905200000Z"  -- May 20, 2009
    DESCRIPTION "Change MODULE-IDENTITY to zhnSysMon and removed unsupported objects.
                 Since this MIB has not yet been published, the unsupported objects
		 were removed, rather than deprecated."
    REVISION "200904060000Z"  -- April 6, 2009
    DESCRIPTION "Changed pwLOFS alarm to pwLOP "
    REVISION "200901060000Z"  -- January 6, 2009
    DESCRIPTION "Added new alarm types for PW Clock Stability alarm"
    REVISION "200805210000Z"  -- May 21, 2008
    DESCRIPTION "Added new alarm types for PW and T1/E1 interfaces"
    REVISION "200711260000Z"  -- November 26, 2007
    DESCRIPTION "Changed Zhone OID to zhoneWtn OID"
    REVISION "200612260000Z"  -- December 26, 2006
    DESCRIPTION "Added:
                   - line power config table
                   - SysMon ready and line power config update notifications
                   - internal use use 'wanData' alarm severity"
    REVISION "200612120000Z"  -- December 12, 2006
    DESCRIPTION "zhnSysMonAlarmTable, zhnSysMonAlarmSetEvent, zhnSysMonAlarmClearEvent:
                   - Removed zhnSysMonAlarmInstance, added zhnSysMonAlarmInterfaceName
                 zhnSysMonTestTable, zhnSysMonTestStartEvent, zhnSysMonTestStopEvent:
                   - Removed zhnSysMonTestInstance, added zhnSysMonTestInterfaceName"
    REVISION "200611170000Z"  -- November 17, 2006
    DESCRIPTION "- Added notification definitions,
                 - Reworked Test Table,
                 - Had to change MAX-ACCESS of objects included in notifications
                   from not-accessible to read-create"
    REVISION "200608310000Z"  -- August 31, 2006
    DESCRIPTION "Initial release."


::=  { zhoneWtn 1 } 

zhnSysMonNotifications OBJECT IDENTIFIER ::= { zhnSysMon 0 }
zhnSysMonObjects       OBJECT IDENTIFIER ::= { zhnSysMon 1 }
zhnSysMonConformance   OBJECT IDENTIFIER ::= { zhnSysMon 2 }


-- ***************************************************************
--
-- Alarm Table
--
zhnSysMonAlarmTable     OBJECT-TYPE
    SYNTAX      SEQUENCE OF ZhnSysMonAlarmEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "This table contains the current system alarms."
    ::= { zhnSysMonObjects 1 }

zhnSysMonAlarmEntry     OBJECT-TYPE
    SYNTAX      ZhnSysMonAlarmEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "An entry in the zhnSysMonAlarmTable."
    INDEX       { zhnSysMonAlarmType,
                  zhnSysMonAlarmSeverity,
                  zhnSysMonAlarmInterfaceName }
    ::= { zhnSysMonAlarmTable 1 }

ZhnSysMonAlarmEntry ::=
    SEQUENCE {
        zhnSysMonAlarmType                     INTEGER,
        zhnSysMonAlarmSeverity                 INTEGER,
        zhnSysMonAlarmInterfaceName            DisplayString,
        zhnSysMonAlarmDescription              DisplayString,
        zhnSysMonAlarmRowStatus                RowStatus
    }

zhnSysMonAlarmType OBJECT-TYPE
    SYNTAX INTEGER {
        tempThresholdExceeded(1),
        mainPowerLoss(2),
        secondaryPowerLoss(3),
        lowPowerMode(4),
        selftestFailed(5),
        interfaceDown(6),
        processFailed(7),
        pwDown(8),
        pwDeleted(9),
        pwMisconnected(10),
        pwLOP(11),
        pwLateFrame(12),
        pwMalformedFrame(13),
        pwJitterBufferOverrun(14),
        dsx1RcvYellow(15),
        dsx1XmtYellow(16),
        dsx1RcvAIS(17),
        dsx1XmtAIS(18),
        dsx1LossOfFrame(19),
        dsx1LossOfSignal(20),
        dsx1LoopbackState(21),
        dsx1TestingState(22),
        pwClockStability(23),
        pwClockHoldover(24),
        pwClockStabilityIdle(25),
        pwClockStabilityAcquisition(26),
        pwClockStabilityTracking1(27),
        pwClockStabilityRecovery(28),
	onBatteryPower(29),
	batteryPowerLow(30),
	replaceBattery(31),
	batteryRemoved(32),
	onBatteryPower2(33),
	batteryPowerLow2(34),
	replaceBattery2(35),
	batteryRemoved2(36),
	doorOpened(37),
        other(99)
    }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The type of alarm currently posted."
    ::= { zhnSysMonAlarmEntry 1 }

zhnSysMonAlarmSeverity OBJECT-TYPE
    SYNTAX INTEGER {
        minor(1),
        major(2),
        critical(3),
        wanData(4)       -- internal use only
    }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The severity of the alarm."
    ::= { zhnSysMonAlarmEntry 2 }

zhnSysMonAlarmInterfaceName OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (1..255))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This object specifies the interface name (e.g., wlan0),
                 or instance (e.g., sensor 1, primary power source 3)
                 associated with the alarm."
    ::= { zhnSysMonAlarmEntry 3 }

zhnSysMonAlarmDescription OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (1..255))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This object is a textual description of an alarm type."
    ::= { zhnSysMonAlarmEntry 4 }

zhnSysMonAlarmRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The SNMP RowStatus of the current row."
    ::= { zhnSysMonAlarmEntry 5 }


-- ***************************************************************
--
-- Test Table
--
zhnSysMonTestTable     OBJECT-TYPE
    SYNTAX      SEQUENCE OF ZhnSysMonTestEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "This table contains the current system tests."
    ::= { zhnSysMonObjects 2 }

zhnSysMonTestEntry     OBJECT-TYPE
    SYNTAX      ZhnSysMonTestEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "An entry in the zhnSysMonTestTable."
    INDEX       { zhnSysMonTestType,
                  zhnSysMonTestInterfaceName  }
    ::= { zhnSysMonTestTable 1 }

ZhnSysMonTestEntry ::=
    SEQUENCE {
        zhnSysMonTestType                     INTEGER,
        zhnSysMonTestInterfaceName            DisplayString,
        zhnSysMonTestRowStatus                RowStatus
    }

zhnSysMonTestType OBJECT-TYPE
    SYNTAX INTEGER {
        loopback(1),
        led(2)
    }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The type of test currently running."
    ::= { zhnSysMonTestEntry 1 }

zhnSysMonTestInterfaceName OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (1..255))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This object specifies the interface name (e.g., wlan0)
                 associated with the test."
    ::= { zhnSysMonTestEntry 2 }

zhnSysMonTestRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The SNMP RowStatus of the current row."
    ::= { zhnSysMonTestEntry 3 }


-- ***************************************************************
--
-- Temperature Sensor Table
--
zhnSysMonTempSensorTable     OBJECT-TYPE
    SYNTAX      SEQUENCE OF ZhnSysMonTempSensorEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "This table contains the system temperature sensors."
    ::= { zhnSysMonObjects 3 }

zhnSysMonTempSensorEntry     OBJECT-TYPE
    SYNTAX      ZhnSysMonTempSensorEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "An entry in the zhnSysMonTempSensorTable."
    INDEX       { zhnSysMonTempSensorId }
    ::= { zhnSysMonTempSensorTable 1 }

ZhnSysMonTempSensorEntry ::=
    SEQUENCE {
        zhnSysMonTempSensorId                   Unsigned32,
        zhnSysMonTempSensorRowStatus            RowStatus,
        zhnSysMonTempSensorCurr                 DisplayString,
        zhnSysMonTempSensorOS                   DisplayString,
        zhnSysMonTempSensorHyst                 DisplayString,
        zhnSysMonTempSensorName                 DisplayString
    }

zhnSysMonTempSensorId OBJECT-TYPE
    SYNTAX      Unsigned32 (0..9999)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This object specifies the reference index
                 for each detected temperature sensor."
    ::= { zhnSysMonTempSensorEntry 1 }

zhnSysMonTempSensorRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The SNMP RowStatus of the current row."
    ::= { zhnSysMonTempSensorEntry 2 }

zhnSysMonTempSensorCurr OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (1..8))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The current temperature reported by the
                 sensor in degrees Celcius."
    ::= { zhnSysMonTempSensorEntry 3 }

zhnSysMonTempSensorOS OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (1..8)) 
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The configured Overtemperature Shutdown (OS)
                 for the sensor in degrees Celcius.  This is
                 the temperature alarm threshold"
    ::= { zhnSysMonTempSensorEntry 4 }

zhnSysMonTempSensorHyst OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (1..8)) 
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The configured temperature hysteresis for
                 the sensor in degrees Celcius.  This is
                 the temperature at which the alarm condition
                 goes away."
    ::= { zhnSysMonTempSensorEntry 5 }

zhnSysMonTempSensorName OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..255))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "A textual string describing the sensor."
    ::= { zhnSysMonTempSensorEntry 6 }


-- ***************************************************************
--
-- Line Power Table
--
zhnSysMonLinePowerTable     OBJECT-TYPE
    SYNTAX      SEQUENCE OF ZhnSysMonLinePowerEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "This table contains the line power configuration."
    ::= { zhnSysMonObjects 4 }

zhnSysMonLinePowerEntry     OBJECT-TYPE
    SYNTAX      ZhnSysMonLinePowerEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "An entry in the zhnSysMonLinePowerTable."
    INDEX       { zhnSysMonLinePowerLineNumber }
    ::= { zhnSysMonLinePowerTable 1 }

ZhnSysMonLinePowerEntry ::=
    SEQUENCE {
        zhnSysMonLinePowerLineNumber          Unsigned32,
        zhnSysMonLinePowerStatus              INTEGER,
        zhnSysMonLinePowerRowStatus           RowStatus
    }

zhnSysMonLinePowerLineNumber OBJECT-TYPE
    SYNTAX      Unsigned32 (1..9999)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This object specifies the line number
                 for each primary power source."
    ::= { zhnSysMonLinePowerEntry 1 }

zhnSysMonLinePowerStatus OBJECT-TYPE
    SYNTAX INTEGER {
        enabled(1),
        disabled(2)
    }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The current power configuration status of the line identified
                 by zhnSysMonLinePowerLineNumber.  A status of enabled(1)
                 indicates that the line is being monitored as a primary
                 power source for the unit (i.e., an alarm is posted if
                 it fails)."
    DEFVAL { enabled }
    ::= { zhnSysMonLinePowerEntry 2 }

zhnSysMonLinePowerRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The SNMP RowStatus of the current row."
    ::= { zhnSysMonLinePowerEntry 3 }



-- ***************************************************************
--
-- SysMon Notifications
--

zhnSysMonAlarmSetEvent NOTIFICATION-TYPE
    OBJECTS { zhnSysMonAlarmType,
              zhnSysMonAlarmSeverity,
              zhnSysMonAlarmInterfaceName,
              zhnSysMonAlarmDescription
            }
    STATUS  current
    DESCRIPTION
        "A zhnSysMonAlarmSetEvent notification is sent when an
        alarm condition is detected by a system component.
        The System Monitor is informed of the alarm and
        generates the alarm set notification.

        The objects in the notification correspond to the values
        in a row instance of in the zhnSysMonAlarmTable."
    ::= { zhnSysMonNotifications 1 }

zhnSysMonAlarmClearEvent NOTIFICATION-TYPE
    OBJECTS { zhnSysMonAlarmType,
              zhnSysMonAlarmSeverity,
              zhnSysMonAlarmInterfaceName,
              zhnSysMonAlarmDescription
            }
    STATUS  current
    DESCRIPTION
        "A zhnSysMonAlarmClearEvent notification is sent when an
        alarm condition is cleared by a system component.
        The System Monitor is informed of the alarm state and
        generates the alarm clear notification.

        The objects in the notification correspond to the values
        in a row instance of in the zhnSysMonAlarmTable."
    ::= { zhnSysMonNotifications 2 }

zhnSysMonTestStartEvent NOTIFICATION-TYPE
    OBJECTS { zhnSysMonTestType,
              zhnSysMonTestInterfaceName
            }
    STATUS  current
    DESCRIPTION
        "A zhnSysMonTestStartEvent notification is sent by 
        any system component that begins a test.

        The objects in the notification correspond to the values
        in a row instance of in the zhnSysMonTestTable."
    ::= { zhnSysMonNotifications 3 }

zhnSysMonTestStopEvent NOTIFICATION-TYPE
    OBJECTS { zhnSysMonTestType,
              zhnSysMonTestInterfaceName
            }
    STATUS  current
    DESCRIPTION
        "A zhnSysMonTestStopEvent notification is sent by 
        any system component that ends a test.

        The objects in the notification correspond to the values
        in a row instance of in the zhnSysMonTestTable."
    ::= { zhnSysMonNotifications 4 }

zhnSysMonTempSensorCfgUpdateEvent NOTIFICATION-TYPE
    OBJECTS { zhnSysMonTempSensorId,
              zhnSysMonTempSensorOS,
              zhnSysMonTempSensorHyst
            }
    STATUS  current
    DESCRIPTION
        "A zhnSysMonTempCfgUpdateEvent notification is sent by
        the System Monitor whenever it reconfigures a
        temperature sensor.

        The objects in the notification correspond to the values
        in a row instance of in the zhnSysMonTempSensorTable."
    ::= { zhnSysMonNotifications 5 }

zhnSysMonLinePowerCfgUpdateEvent NOTIFICATION-TYPE
    OBJECTS { zhnSysMonLinePowerLineNumber,
              zhnSysMonLinePowerStatus
            }
    STATUS  current
    DESCRIPTION
        "A zhnSysMonLinePowerCfgUpdateEvent notification is sent by
        the System Monitor whenever it reconfigures a power source
        line.

        The objects in the notification correspond to the values
        in a row instance of in the zhnSysMonLinePowerTable."
    ::= { zhnSysMonNotifications 6 }

zhnSysMonReadyEvent NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
        "A zhnSysMonReadyEvent notification is sent by the
        System Monitor whenever it has completed initialization
        and is ready to accept requests."
    ::= { zhnSysMonNotifications 7 }

zhnSysMonConfigChangeEvent NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
        "A zhnSysMonConfigChangeEvent notification is generated
	whenever the persistent database is saved."
    ::= { zhnSysMonNotifications 8 }

END
