-- MIB file created 28-Feb-2007 14:55:41, by
--   SMICng version 2.2.11-beta(PRO)(Solaris), January 20, 2001. Enterprise key cisco.com

CISCO-OPTICAL-MONITOR-MIB DEFINITIONS ::= BEGIN

-- From file: "CISCO-OPTICAL-MONITOR-MIB.my"
-- Compile options "4 7 F H N O W 03 06 0B 0G 0N 0T"

IMPORTS
    TimeStamp
            FROM SNMPv2-TC-v1
    ifIndex
            FROM IF-MIB
    ciscoMgmt
            FROM CISCO-SMI
    Gauge
            FROM RFC1155-SMI
    OBJECT-TYPE
            FROM RFC-1212
    TRAP-TYPE
            FROM RFC-1215;

ciscoOpticalMonitorMIB OBJECT IDENTIFIER ::= { ciscoMgmt 264 }
-- MODULE-IDENTITY
--  LastUpdated
--    200701020000Z
--  OrgName
--    Cisco Systems, Inc.
--  ContactInfo
--    Cisco Systems
--    Customer Service
--    
--    Postal: 170 W Tasman Drive
--    San Jose, CA 95134
--    
--    Tel: +1 800 553-NETS
--    
--    E-mail: cs-dwdm@cisco.com
--  Descr
--    This MIB module defines objects to monitor optical
--    characteristics and set corresponding thresholds on the
--    optical interfaces in a network element.
--  RevDate
--    200701020000Z
--  RevDescr
--    Add cOpticalMonIfTimeGroup,
--    cOpticalMIBEnableConfigGroup,
--    cOpticalMIBIntervalConfigGroup,
--    cOpticalMonThreshSourceGroup.
--  RevDate
--    200205100000Z
--  RevDescr
--    The initial revision of this MIB.

cOpticalMonitorMIBObjects OBJECT IDENTIFIER ::= { ciscoOpticalMonitorMIB 1 }
cOpticalMonGroup OBJECT IDENTIFIER ::= { cOpticalMonitorMIBObjects 1 }
cOpticalPMGroup OBJECT IDENTIFIER ::= { cOpticalMonitorMIBObjects 2 }
cOpticalMonitorMIBNotifications OBJECT IDENTIFIER ::= { ciscoOpticalMonitorMIB 2 }
cOpticalMonNotificationPrefix OBJECT IDENTIFIER ::= { cOpticalMonitorMIBNotifications 0 }
cOpticalMonitorMIBConformance OBJECT IDENTIFIER ::= { ciscoOpticalMonitorMIB 3 }
cOpticalMonitorMIBCompliances OBJECT IDENTIFIER ::= { cOpticalMonitorMIBConformance 1 }
cOpticalMonitorMIBGroups OBJECT IDENTIFIER ::= { cOpticalMonitorMIBConformance 2 }

OpticalParameterType ::= INTEGER {
        power(1),
        acPower(2),
        ambientTemp(3),
        laserTemp(4),
        biasCurrent(5),
        peltierCurrent(6),
        xcvrVoltage(7)
        }
-- TEXTUAL-CONVENTION
--  Status
--    mandatory
--  Descr
--    This value indicates the optical parameter that is
--    being monitored. Valid values are -
--    
--    power (1)          : Optical Power (AC + DC) in 1/10ths of dBm
--    acPower (2)        : Optical AC Power in 1/10ths of dBm
--    ambientTemp (3)    : Ambient Temperature in 1/10ths of degrees
--                         centigrade
--    laserTemp (4)      : Laser Temperature in 1/10ths of degrees
--                         centigrade
--    biasCurrent (5)    : Laser bias current in 100s of microamperes
--    peltierCurrent (6) : Laser peltier current in milliamperes
--    xcvrVoltage (7)    : Transceiver voltage in millivolts

OpticalParameterValue ::= INTEGER(-1000000..1000000)
-- TEXTUAL-CONVENTION
--  Status
--    mandatory
--  Descr
--    The value of the optical parameter that is being monitored.
--    
--    The range of values varies depending on the type of optical
--    parameter being monitored, as identified by a corresponding
--    object with syntax OpticalParameterType.
--    
--    When the optical parameter being monitored is 'power' or
--    'acPower', the supported range is from -400 to 250, in
--    1/10ths of dBm.
--    Example: A value of -300 represents a power level of -30.0 dBm.
--    
--    When the optical parameter being monitored is 'laserTemp' or
--    'ambientTemp', the supported range is from -500 to 850, in
--    1/10ths of degrees centigrade.
--    Example: A value of 235 represents a temperature reading of
--    23.5 degrees C.
--    
--    When the optical parameter being monitored is 'biasCurrent',
--    the supported range is from 0 to 10000, in 100s of
--    microamperes.
--    Example: A value of 500 represents a bias current reading of
--    50,000 microamperes.
--    
--    When the optical parameter being monitored is 'peltierCurrent',
--    the supported range is from -10000 to 10000, in milliamperes.
--    
--    When the optical parameter being monitored is 'xcvrVoltage',
--    the supported range is from 0 to 10000, in millivolts.
--    
--    The distinguished value of '-1000000' indicates that the object
--    has not yet been initialized or does not apply.

OpticalIfDirection ::= INTEGER {
        receive(1),
        transmit(2),
        notApplicable(3)
        }
-- TEXTUAL-CONVENTION
--  Status
--    mandatory
--  Descr
--    This value indicates the direction being monitored at
--    the optical interface.

OpticalIfMonLocation ::= INTEGER {
        beforeAdjustment(1),
        afterAdjustment(2),
        notApplicable(3)
        }
-- TEXTUAL-CONVENTION
--  Status
--    mandatory
--  Descr
--    This value applies when there are multiple points
--    at which optical characteristics can be measured, in the
--    given direction, at an interface. It indicates whether the
--    optical characteristics are measured before or after
--    adjustment (e.g. optical amplification or attenuation).
--    
--    The codepoint 'notApplicable' should be used if no
--    amplifier/attenuator exists at an interface.

OpticalAlarmStatus ::= OCTET STRING(SIZE(1))
-- TEXTUAL-CONVENTION
--  Status
--    mandatory
--  Descr
--    A bitmap that indicates the current status of thresholds
--    on an interface. The bit is set to 1 if the threshold is
--    currently being exceeded on the interface and will be set to 0
--    otherwise.
--    
--    (MSB)                (LSB)
--      7  6  5  4  3  2  1  0
--     +======================+
--     |                      |
--     +======================+
--                  |  |  |  |
--                  |  |  |  +== High alarm threshold
--                  |  |  +===== High warning threshold
--                  |  +======== Low alarm threshold
--                  +=========== Low warning threshold
--    
--    To minimize the probability of prematurely reacting to
--    momentary signal variations, a soak time may be incorporated
--    into the status indications in the following manner.
--    The indication is set when the threshold violation persists
--    for a period of time that exceeds the set soak interval.
--    The indication is cleared  when no threshold violation occurs
--    for a period of time which exceeds the clear soak interval.
--    In GR-2918-CORE, the recommended set soak interval is 2.5
--    seconds (plus/minus 0.5 seconds), and the recommended clear
--    soak interval is 10 seconds (plus/minus 0.5 seconds).
--  Refer
--    Telcordia Technologies Generic Requirements
--    GR-2918-CORE, Issue 4, December 1999, Section 8.11

OpticalAlarmSeverity ::= INTEGER {
        critical(1),
        major(2),
        minor(3),
        notAlarmed(4),
        notReported(5),
        cleared(6)
        }
-- TEXTUAL-CONVENTION
--  Status
--    mandatory
--  Descr
--    The severity of a trouble condition. A smaller enumerated
--    integer value indicates that the condition is more severe.
--    
--    The severities are defined as follows:
--    
--    'critical'    An alarm used to indicate a severe,
--                  service-affecting condition has occurred and that
--                  immediate corrective action is imperative,
--                  regardless of the time of day or day of the week.
--    
--    'major'       An alarm used for hardware or software conditions
--                  that indicate a serious disruption of service or
--                  malfunctioning or failure of important hardware.
--                  These troubles require the immediate attention and
--                  response of a technician to restore or maintain
--                  system capability. The urgency is less than in
--                  critical situations because of a lesser immediate
--                  or impending effect on service or system
--                  performance.
--    
--    'minor'       An alarm used for troubles that do not have a
--                  serious effect on service to customers or for
--                  troubles in hardware that are not essential to
--                  the operation of the system.
--    
--    'notAlarmed'  An event used for troubles that do not require
--                  action, for troubles that are reported as a
--                  result of manually initiated diagnostics, or for
--                  transient events such as crossing warning
--                  thresholds.  This event can also be used to
--                  raise attention to a condition that could
--                  possibly be an impending problem.
--    
--    'notReported' An event used for troubles similar to those
--                  described under 'notAlarmed', and that
--                  do not cause notifications to be generated. The
--                  information for these events is retrievable from
--                  the network element.
--    
--    'cleared'     This value indicates that a previously
--                  occuring alarm condition has been cleared, or
--                  that no trouble condition is present.
--    
--  Refer
--    Telcordia Technologies Generic Requirements
--    GR-474-CORE, Issue 1, December 1997, Section 2.2

OpticalAlarmSeverityOrZero ::= INTEGER(0..6)
-- TEXTUAL-CONVENTION
--  Status
--    mandatory
--  Descr
--    A value of either '0' or a valid optical alarm severity.

OpticalPMPeriod ::= INTEGER {
        fifteenMin(1),
        twentyFourHour(2)
        }
-- TEXTUAL-CONVENTION
--  Status
--    mandatory
--  Descr
--    This value indicates the time period over which performance
--    monitoring data has been collected.

cOpticalMonTable OBJECT-TYPE
    SYNTAX SEQUENCE OF COpticalMonEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This table provides objects to monitor optical
        parameters in a network element. It also provides
        objects for setting high and low threshold levels, with
        configurable severities, on these monitored parameters."
    ::= { cOpticalMonGroup 1 }

cOpticalMonEntry OBJECT-TYPE
    SYNTAX COpticalMonEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "An entry in the cOpticalMonTable provides objects to
        monitor an optical parameter and set threshold levels
        on that parameter, at an optical interface.
        
        Note that the set of monitored optical parameters may vary
        based on interface type, direction, and monitoring location.
        
        Examples of interfaces that can have an entry in this table
        include optical transceivers, interfaces before and after
        optical amplifiers, and interfaces before and after optical
        attenuators."
    INDEX { ifIndex, cOpticalMonDirection, cOpticalMonLocation, cOpticalMonParameterType }
    ::= { cOpticalMonTable 1 }

COpticalMonEntry ::= SEQUENCE {
    cOpticalMonDirection OpticalIfDirection,
    cOpticalMonLocation OpticalIfMonLocation,
    cOpticalMonParameterType OpticalParameterType,
    cOpticalParameterValue OpticalParameterValue,
    cOpticalParamHighAlarmThresh OpticalParameterValue,
    cOpticalParamHighAlarmSev OpticalAlarmSeverity,
    cOpticalParamHighWarningThresh OpticalParameterValue,
    cOpticalParamHighWarningSev OpticalAlarmSeverity,
    cOpticalParamLowAlarmThresh OpticalParameterValue,
    cOpticalParamLowAlarmSev OpticalAlarmSeverity,
    cOpticalParamLowWarningThresh OpticalParameterValue,
    cOpticalParamLowWarningSev OpticalAlarmSeverity,
    cOpticalParamAlarmStatus OpticalAlarmStatus,
    cOpticalParamAlarmCurMaxThresh OpticalParameterValue,
    cOpticalParamAlarmCurMaxSev OpticalAlarmSeverity,
    cOpticalParamAlarmLastChange TimeStamp,
    cOpticalMon15MinValidIntervals Gauge,
    cOpticalMon24HrValidIntervals Gauge,
    cOpticalParamThreshSource OCTET STRING
    }

cOpticalMonDirection OBJECT-TYPE
    SYNTAX OpticalIfDirection
--    Rsyntax INTEGER {
--        receive(1),
--        transmit(2),
--        notApplicable(3)
--        }
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This object indicates the direction monitored for the
        optical interface, in this entry."
    ::= { cOpticalMonEntry 1 }

cOpticalMonLocation OBJECT-TYPE
    SYNTAX OpticalIfMonLocation
--    Rsyntax INTEGER {
--        beforeAdjustment(1),
--        afterAdjustment(2),
--        notApplicable(3)
--        }
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This object indicates whether the optical characteristics are
        measured before or after adjustment (e.g. optical amplification
        or attenuation), at this interface."
    ::= { cOpticalMonEntry 2 }

cOpticalMonParameterType OBJECT-TYPE
    SYNTAX OpticalParameterType
--    Rsyntax INTEGER {
--        power(1),
--        acPower(2),
--        ambientTemp(3),
--        laserTemp(4),
--        biasCurrent(5),
--        peltierCurrent(6),
--        xcvrVoltage(7)
--        }
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This object specifies the optical parameter that is being
        monitored in this entry."
    ::= { cOpticalMonEntry 3 }

cOpticalParameterValue OBJECT-TYPE
    SYNTAX OpticalParameterValue
--    Rsyntax INTEGER(-1000000..1000000)
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object gives the value measured for the particular
        optical parameter specified by the cOpticalMonParameterType
        object."
    ::= { cOpticalMonEntry 4 }

cOpticalParamHighAlarmThresh OBJECT-TYPE
    SYNTAX OpticalParameterValue
--    Rsyntax INTEGER(-1000000..1000000)
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object is used to set a high alarm threshold on the
        optical parameter being monitored.
        
        An alarm condition will be raised if the value given by
        cOpticalParameterValue goes from below the value configured in
        this object to above the value configured in this object, or if
        the initial value of cOpticalParameterValue exceeds the value
        configured in this object. For network elements that
        incorporate a soak time in the status indications, this alarm
        will be indicated in the cOpticalParamAlarmStatus object only
        after it persists for a period of time that equals the set soak
        interval.
        
        The severity level of the alarm is specified by the
        cOpticalParamHighAlarmSev object.
        
        When the cOpticalMonParameterType object is set to 'power'
        for the receive direction at a transceiver, this object
        specifies the receiver saturation level."
    ::= { cOpticalMonEntry 5 }

cOpticalParamHighAlarmSev OBJECT-TYPE
    SYNTAX OpticalAlarmSeverity
--    Rsyntax INTEGER {
--        critical(1),
--        major(2),
--        minor(3),
--        notAlarmed(4),
--        notReported(5),
--        cleared(6)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object is used to specify a severity level associated
        with the high alarm threshold given by the
        cOpticalParamHighAlarmThresh object. The values 'notAlarmed',
        'notReported', and 'cleared' do not apply.
        
        The severity level configured in this object must be higher
        than the level configured in the cOpticalParamHighWarningSev
        object."
    ::= { cOpticalMonEntry 6 }

cOpticalParamHighWarningThresh OBJECT-TYPE
    SYNTAX OpticalParameterValue
--    Rsyntax INTEGER(-1000000..1000000)
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object is used to set a high warning threshold on
        the optical parameter being monitored.
        
        A threshold crossing condition will be indicated if the value
        given by cOpticalParameterValue goes from below the value
        configured in this object to above the value configured in this
        object, or if the initial value of cOpticalParameterValue
        exceeds the value configured in this object. For network
        elements that incorporate a soak time in the status
        indications, this threshold violation will be indicated in the
        cOpticalParamAlarmStatus object only after it persists for
        a period of time that equals the set soak interval.
        
        This threshold crossing may or may not be alarmed or
        reported, based on the severity level specified by the
        cOpticalParamHighWarningSev object."
    ::= { cOpticalMonEntry 7 }

cOpticalParamHighWarningSev OBJECT-TYPE
    SYNTAX OpticalAlarmSeverity
--    Rsyntax INTEGER {
--        critical(1),
--        major(2),
--        minor(3),
--        notAlarmed(4),
--        notReported(5),
--        cleared(6)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object is used to specify a severity level associated
        with the high warning threshold given by the
        cOpticalParamHighWarningThresh object. The values 'critical',
        'major', and 'cleared' do not apply.
        
        The severity level configured in this object must be lower
        than the level configured in the cOpticalParamHighAlarmSev
        object.
        
        If this object is set to 'notReported', no notifications will
        be generated when this threshold is exceeded, irrespective
        of the value configured in the cOpticalNotifyEnable object."
    ::= { cOpticalMonEntry 8 }

cOpticalParamLowAlarmThresh OBJECT-TYPE
    SYNTAX OpticalParameterValue
--    Rsyntax INTEGER(-1000000..1000000)
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object is used to set a low alarm threshold on the
        optical parameter being monitored.
        
        An alarm condition will be raised if the value given by
        cOpticalParameterValue goes from above the value configured in
        this object to below the value configured in this object, or if
        the initial value of cOpticalParameterValue is lower than the
        value configured in this object. For network elements that
        incorporate a soak time in the status indications, this alarm
        will be indicated in the cOpticalParamAlarmStatus object only
        after it persists for a period of time that equals the set soak
        interval.
        
        The severity level of this alarm is specified by the
        cOpticalParamLowAlarmSev object.
        
        When the cOpticalMonParameterType object is set to 'power'
        for the receive direction and when the interface supports
        alarms based on loss of light, this object specifies the
        optical power threshold for declaring loss of light. Also,
        when optical amplifiers are present in the network, in the
        receive direction, this value may need to be configured,
        since the noise floor may be higher than the minimum
        sensitivity of the receiver."
    ::= { cOpticalMonEntry 9 }

cOpticalParamLowAlarmSev OBJECT-TYPE
    SYNTAX OpticalAlarmSeverity
--    Rsyntax INTEGER {
--        critical(1),
--        major(2),
--        minor(3),
--        notAlarmed(4),
--        notReported(5),
--        cleared(6)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object is used to specify a severity level associated
        with the low alarm threshold given by the
        cOpticalParamLowAlarmThresh object. The values 'notAlarmed',
        'notReported', and 'cleared' do not apply.
        
        The severity level configured in this object must be higher
        than the level configured in the cOpticalParamLowWarningSev
        object."
    ::= { cOpticalMonEntry 10 }

cOpticalParamLowWarningThresh OBJECT-TYPE
    SYNTAX OpticalParameterValue
--    Rsyntax INTEGER(-1000000..1000000)
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object is used to set a low warning threshold on
        the optical parameter being monitored.
        
        A threshold crossing condition will be indicated if the value
        given by cOpticalParameterValue goes from above the value
        configured in this object to below the value configured in this
        object, or if the initial value of cOpticalParameterValue
        object is lower than the value configured in this object. For
        network elements that incorporate a soak time in the status
        indications, this threshold violation will be indicated in the
        cOpticalParamAlarmStatus object only after it persists for
        a period of time that equals the set soak interval.
        
        This threshold crossing may or may not be alarmed or
        reported, based on the severity level specified by the
        cOpticalParamLowWarningSev object."
    ::= { cOpticalMonEntry 11 }

cOpticalParamLowWarningSev OBJECT-TYPE
    SYNTAX OpticalAlarmSeverity
--    Rsyntax INTEGER {
--        critical(1),
--        major(2),
--        minor(3),
--        notAlarmed(4),
--        notReported(5),
--        cleared(6)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object is used to specify a severity level associated
        with the low warning threshold given by the
        cOpticalParamLowWarningThresh object. The values 'critical',
        'major', and 'cleared' do not apply.
        
        The severity level configured in this object must be lower
        than the level configured in the cOpticalParamLowAlarmSev
        object.
        
        If this object is set to 'notReported', no notifications will
        be generated when this threshold is exceeded, irrespective
        of the value configured in the cOpticalNotifyEnable object."
    ::= { cOpticalMonEntry 12 }

cOpticalParamAlarmStatus OBJECT-TYPE
    SYNTAX OpticalAlarmStatus
--    Rsyntax OCTET STRING(SIZE(1))
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object is used to indicate the current status of
        the thresholds for the monitored optical parameter
        on the interface.
        
        If a threshold is currently being exceeded on the
        interface, the corresponding bit in this object will be set
        to 1. Otherwise, the bit will be set to 0."
    ::= { cOpticalMonEntry 13 }

cOpticalParamAlarmCurMaxThresh OBJECT-TYPE
    SYNTAX OpticalParameterValue
--    Rsyntax INTEGER(-1000000..1000000)
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the threshold value of the highest
        severity threshold that is currently being exceeded
        on the interface, for the optical parameter.
        If no threshold value is currently being
        exceeded, then the value '-1000000' is returned."
    ::= { cOpticalMonEntry 14 }

cOpticalParamAlarmCurMaxSev OBJECT-TYPE
    SYNTAX OpticalAlarmSeverity
--    Rsyntax INTEGER {
--        critical(1),
--        major(2),
--        minor(3),
--        notAlarmed(4),
--        notReported(5),
--        cleared(6)
--        }
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the maximum severity of any thresholds
        that are currently being exceeded on the interface, for the
        optical parameter."
    ::= { cOpticalMonEntry 15 }

cOpticalParamAlarmLastChange OBJECT-TYPE
    SYNTAX TimeStamp
--    Rsyntax TimeTicks
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object specifies the value of sysUpTime at the last time
        a threshold related to a particular optical parameter was
        exceeded or cleared on the interface."
    ::= { cOpticalMonEntry 16 }

cOpticalMon15MinValidIntervals OBJECT-TYPE
    SYNTAX Gauge(0..96)
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object gives the number of previous 15 minute
        intervals for which valid performance monitoring data
        has been stored on the interface.
        
        The value of this object will be n (where n is the maximum
        number of 15 minute intervals supported at this interface),
        unless the measurement was (re-)started within the last
        (nx15) minutes, in which case the value will be the
        number of previous 15 minute intervals for which the agent
        has some data."
    ::= { cOpticalMonEntry 17 }

cOpticalMon24HrValidIntervals OBJECT-TYPE
    SYNTAX Gauge(0..1)
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object gives the number of previous 24 hour
        intervals for which valid performance monitoring data
        has been stored on the interface.
        
        The value of this object will be 0 if the measurement
        was (re-)started within the last 24 hours, or 1 otherwise."
    ::= { cOpticalMonEntry 18 }

cOpticalParamThreshSource OBJECT-TYPE
    SYNTAX OCTET STRING(SIZE(1..2))
        -- BITS are:
        --   highAlarmDefThresh(0)
        --   highWarnDefThresh(1)
        --   lowAlarmDefThresh(2)
        --   lowWarnDefThresh(3)
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object indicates if the current value of a particular
        threshold in this entry is user configured value or it is 
        a system default value. It also allows user to specify 
        the list of thresholds for this entry which should
        be restored to their system default values.
        
        The bit 'highAlarmThresh' corresponds to the object
        cOpticalParamHighAlarmThresh.
        
        The bit 'highWarnThresh' corresponds to the object
        cOpticalParamHighWarningThresh.
        
        The bit 'lowAlarmThresh' corresponds to the object
        cOpticalParamLowAlarmThresh.
        
        The bit 'lowWarnThresh' corresponds to the object
        cOpticalParamLowWarningThresh.
        
        A value of 0 for a bit indicates that corresponding
        object has system default value of threshold.
        
        A value of 1 for a bit indicates that corresponding
        object has user configured threshold value.
        
        A user may only change value of each of the bits to zero.
        
        Setting a bit to 0 will reset the corresponding
        threshold to its default value.
        
        System will change a bit from 0 to 1 when its corresponding
        threshold is changed by user from its default to any
        other value."
    ::= { cOpticalMonEntry 19 }

cOpticalNotifyEnable OBJECT-TYPE
    SYNTAX OpticalAlarmSeverityOrZero
--    Rsyntax INTEGER(0..6)
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the minimum severity threshold governing
        the generation of cOpticalMonParameterStatus notifications.
        
        For example, if the value of this object is
        set to 'major', then the agent generates these notifications
        if and only if the severity of the alarm being indicated is
        'major' or 'critical'.
        
        The values of 'notReported', and 'cleared' do not apply.
        The value of '0' disables the generation of notifications."
    DEFVAL { 0 }
    ::= { cOpticalMonGroup 2 }

cOpticalMonEnable OBJECT-TYPE
    SYNTAX OCTET STRING(SIZE(1..2))
        -- BITS are:
        --   all(0)
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the types of transceivers for which
        optical monitoring is enabled. 
        
        A value of 1 for the bit 'all', specifies that optical
        monitoring functionality is enabled for all the types of
        transceivers which are supported by system and have 
        optical monitoring capability."
    ::= { cOpticalMonGroup 3 }

cOpticalMonPollInterval OBJECT-TYPE
    SYNTAX Gauge
--  Units
--    minutes
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the interval in minutes after which
        optical transceiver data will be polled by system
        repeatedly and updated in cOpticalMonTable when one or
        more bits in cOpticalMonEnable is set."
    ::= { cOpticalMonGroup 4 }

cOpticalMonIfTable OBJECT-TYPE
    SYNTAX SEQUENCE OF COpticalMonIfEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This table contains the list of optical interfaces
        populated in cOpticalMonTable."
    ::= { cOpticalMonGroup 5 }

cOpticalMonIfEntry OBJECT-TYPE
    SYNTAX COpticalMonIfEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "An entry containing the information for a particular optical interface."
    INDEX { ifIndex }
    ::= { cOpticalMonIfTable 1 }

COpticalMonIfEntry ::= SEQUENCE {
    cOpticalMonIfTimeInSlot Gauge
    }

cOpticalMonIfTimeInSlot OBJECT-TYPE
    SYNTAX Gauge
--  Units
--    seconds
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates when this optical transceiver was detected by the
        system."
    ::= { cOpticalMonIfEntry 1 }

cOpticalPMCurrentTable OBJECT-TYPE
    SYNTAX SEQUENCE OF COpticalPMCurrentEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This table contains performance monitoring data for the
        various optical parameters, collected over the current 15
        minute or the current 24 hour interval."
    ::= { cOpticalPMGroup 1 }

cOpticalPMCurrentEntry OBJECT-TYPE
    SYNTAX COpticalPMCurrentEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "An entry in the cOpticalPMCurrentTable. It contains
        performance monitoring data for a monitored optical
        parameter at an interface, collected over the current 15
        minute or the current 24 hour interval.
        
        Note that the set of monitored optical parameters may vary
        based on interface type, direction, and monitoring location.
        
        Examples of interfaces that can have an entry in this table
        include optical transceivers, interfaces before and after
        optical amplifiers, and interfaces before and after optical
        attenuators."
    INDEX { cOpticalPMCurrentPeriod, ifIndex, cOpticalPMCurrentDirection, cOpticalPMCurrentLocation, cOpticalPMCurrentParamType }
    ::= { cOpticalPMCurrentTable 1 }

COpticalPMCurrentEntry ::= SEQUENCE {
    cOpticalPMCurrentPeriod OpticalPMPeriod,
    cOpticalPMCurrentDirection OpticalIfDirection,
    cOpticalPMCurrentLocation OpticalIfMonLocation,
    cOpticalPMCurrentParamType OpticalParameterType,
    cOpticalPMCurrentMaxParam OpticalParameterValue,
    cOpticalPMCurrentMinParam OpticalParameterValue,
    cOpticalPMCurrentMeanParam OpticalParameterValue,
    cOpticalPMCurrentUnavailSecs INTEGER
    }

cOpticalPMCurrentPeriod OBJECT-TYPE
    SYNTAX OpticalPMPeriod
--    Rsyntax INTEGER {
--        fifteenMin(1),
--        twentyFourHour(2)
--        }
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This object indicates whether the optical parameter values
        given in this entry are collected over the current 15 minute or
        the current 24 hour interval."
    ::= { cOpticalPMCurrentEntry 1 }

cOpticalPMCurrentDirection OBJECT-TYPE
    SYNTAX OpticalIfDirection
--    Rsyntax INTEGER {
--        receive(1),
--        transmit(2),
--        notApplicable(3)
--        }
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This object indicates the direction monitored for the optical
        interface, in this entry."
    ::= { cOpticalPMCurrentEntry 2 }

cOpticalPMCurrentLocation OBJECT-TYPE
    SYNTAX OpticalIfMonLocation
--    Rsyntax INTEGER {
--        beforeAdjustment(1),
--        afterAdjustment(2),
--        notApplicable(3)
--        }
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This object indicates whether the optical characteristics are
        measured before or after adjustment (e.g. optical amplification
        or attenuation), at this interface."
    ::= { cOpticalPMCurrentEntry 3 }

cOpticalPMCurrentParamType OBJECT-TYPE
    SYNTAX OpticalParameterType
--    Rsyntax INTEGER {
--        power(1),
--        acPower(2),
--        ambientTemp(3),
--        laserTemp(4),
--        biasCurrent(5),
--        peltierCurrent(6),
--        xcvrVoltage(7)
--        }
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This object specifies the optical parameter that is being
        monitored, in this entry."
    ::= { cOpticalPMCurrentEntry 4 }

cOpticalPMCurrentMaxParam OBJECT-TYPE
    SYNTAX OpticalParameterValue
--    Rsyntax INTEGER(-1000000..1000000)
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object gives the maximum value measured for the monitored
        optical parameter, in the current 15 minute or the current
        24 hour interval."
    ::= { cOpticalPMCurrentEntry 5 }

cOpticalPMCurrentMinParam OBJECT-TYPE
    SYNTAX OpticalParameterValue
--    Rsyntax INTEGER(-1000000..1000000)
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object gives the minimum value measured for the monitored
        optical parameter, in the current 15 minute or the current
        24 hour interval."
    ::= { cOpticalPMCurrentEntry 6 }

cOpticalPMCurrentMeanParam OBJECT-TYPE
    SYNTAX OpticalParameterValue
--    Rsyntax INTEGER(-1000000..1000000)
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object gives the average value of the monitored
        optical parameter, in the current 15 minute or the current
        24 hour interval."
    ::= { cOpticalPMCurrentEntry 7 }

cOpticalPMCurrentUnavailSecs OBJECT-TYPE
    SYNTAX INTEGER(0..86400)
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object is used to indicate the number of seconds,
        in the current 15 minute or the current 24 hour interval, for
        which the optical performance data is not accounted for.
        
        In the receive direction, the performance data could be
        unavailable during these periods for multiple reasons
        like the interface being administratively down or if there
        is a Loss of Light alarm on the interface. In the transmit
        direction, performance data could be unavailable when
        the laser is shutdown."
    ::= { cOpticalPMCurrentEntry 8 }

cOpticalPMIntervalTable OBJECT-TYPE
    SYNTAX SEQUENCE OF COpticalPMIntervalEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This table stores performance monitoring data for the
        various optical parameters, collected over previous
        intervals.
        
        This table can have entries for one complete 24 hour
        interval and up to 96 complete 15 minute
        intervals. A system is required to store at least
        4 completed 15 minute intervals. The number of valid
        15 minute intervals in this table is indicated by the
        cOpticalMon15MinValidIntervals object and the number of
        valid 24 hour intervals is indicated by the
        cOpticalMon24HrValidIntervals object."
    ::= { cOpticalPMGroup 2 }

cOpticalPMIntervalEntry OBJECT-TYPE
    SYNTAX COpticalPMIntervalEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "An entry in the cOpticalPMIntervalTable. It contains
        performance monitoring data for an optical parameter,
        collected over a previous interval.
        
        Note that the set of monitored optical parameters may vary
        based on interface type, direction, and monitoring location.
        
        Examples of interfaces that can have an entry in this table
        include optical transceivers, interfaces before and after
        optical amplifiers, and interfaces before and after optical
        attenuators."
    INDEX { cOpticalPMIntervalPeriod, cOpticalPMIntervalNumber, ifIndex, cOpticalPMIntervalDirection, cOpticalPMIntervalLocation, cOpticalPMIntervalParamType }
    ::= { cOpticalPMIntervalTable 1 }

COpticalPMIntervalEntry ::= SEQUENCE {
    cOpticalPMIntervalPeriod OpticalPMPeriod,
    cOpticalPMIntervalNumber INTEGER,
    cOpticalPMIntervalDirection OpticalIfDirection,
    cOpticalPMIntervalLocation OpticalIfMonLocation,
    cOpticalPMIntervalParamType OpticalParameterType,
    cOpticalPMIntervalMaxParam OpticalParameterValue,
    cOpticalPMIntervalMinParam OpticalParameterValue,
    cOpticalPMIntervalMeanParam OpticalParameterValue,
    cOpticalPMIntervalUnavailSecs INTEGER
    }

cOpticalPMIntervalPeriod OBJECT-TYPE
    SYNTAX OpticalPMPeriod
--    Rsyntax INTEGER {
--        fifteenMin(1),
--        twentyFourHour(2)
--        }
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This object indicates whether the optical parameter values,
        given in this entry, are collected over a period of 15 minutes
        or 24 hours."
    ::= { cOpticalPMIntervalEntry 1 }

cOpticalPMIntervalNumber OBJECT-TYPE
    SYNTAX INTEGER(1..96)
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "A number between 1 and 96, which identifies the
        interval for which the set of optical parameter values is
        available. The interval identified by 1 is the most recently
        completed 15 minute or 24 hour interval, and the interval
        identified by N is the interval immediately preceding the one
        identified by N-1."
    ::= { cOpticalPMIntervalEntry 2 }

cOpticalPMIntervalDirection OBJECT-TYPE
    SYNTAX OpticalIfDirection
--    Rsyntax INTEGER {
--        receive(1),
--        transmit(2),
--        notApplicable(3)
--        }
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This object indicates the direction monitored for the optical
        interface, in this entry."
    ::= { cOpticalPMIntervalEntry 3 }

cOpticalPMIntervalLocation OBJECT-TYPE
    SYNTAX OpticalIfMonLocation
--    Rsyntax INTEGER {
--        beforeAdjustment(1),
--        afterAdjustment(2),
--        notApplicable(3)
--        }
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This object indicates whether the optical characteristics
        are measured before or after adjustment (e.g.
        optical amplification or attenuation), at this interface."
    ::= { cOpticalPMIntervalEntry 4 }

cOpticalPMIntervalParamType OBJECT-TYPE
    SYNTAX OpticalParameterType
--    Rsyntax INTEGER {
--        power(1),
--        acPower(2),
--        ambientTemp(3),
--        laserTemp(4),
--        biasCurrent(5),
--        peltierCurrent(6),
--        xcvrVoltage(7)
--        }
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This object specifies the optical parameter that is being
        monitored, in this entry."
    ::= { cOpticalPMIntervalEntry 5 }

cOpticalPMIntervalMaxParam OBJECT-TYPE
    SYNTAX OpticalParameterValue
--    Rsyntax INTEGER(-1000000..1000000)
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object gives the maximum value measured for the optical
        parameter, in a particular 15 minute or 24 hour interval."
    ::= { cOpticalPMIntervalEntry 6 }

cOpticalPMIntervalMinParam OBJECT-TYPE
    SYNTAX OpticalParameterValue
--    Rsyntax INTEGER(-1000000..1000000)
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object gives the minimum value measured for the optical
        parameter, in a particular 15 minute or 24 hour interval."
    ::= { cOpticalPMIntervalEntry 7 }

cOpticalPMIntervalMeanParam OBJECT-TYPE
    SYNTAX OpticalParameterValue
--    Rsyntax INTEGER(-1000000..1000000)
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object gives the average value of the measured optical
        parameter, in a particular 15 minute or 24 hour interval."
    ::= { cOpticalPMIntervalEntry 8 }

cOpticalPMIntervalUnavailSecs OBJECT-TYPE
    SYNTAX INTEGER(0..86400)
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object is used to indicate the number of seconds,
        in the particular 15 minute or 24 hour interval, for which the
        optical performance data is not accounted for.
        
        In the receive direction, the performance data could be
        unavailable during these periods for multiple reasons
        like the interface being administratively down or if there
        is a Loss of Light alarm on the interface. In the transmit
        direction, performance data could be unavailable when
        the laser is shutdown."
    ::= { cOpticalPMIntervalEntry 9 }

cOpticalMonParameterStatus TRAP-TYPE
-- Reverse mappable trap
    ENTERPRISE cOpticalMonitorMIBNotifications
    VARIABLES {
        cOpticalParameterValue, cOpticalParamAlarmStatus, 
        cOpticalParamAlarmCurMaxThresh, cOpticalParamAlarmCurMaxSev, 
        cOpticalParamAlarmLastChange }
--  Status
--    mandatory
    DESCRIPTION
        "This notification is sent when any threshold related to an
        optical parameter is exceeded or cleared on an interface.
        
        This notification may be suppressed under the following
        conditions:
        - depending on the value of the cOpticalNotifyEnable object,
          or
        - if the severity of the threshold as specified by
          the cOpticalParamHighWarningSev or
          cOpticalParamLowWarningSev object is 'notReported'."
    ::= 1

cOpticalMIBMonGroup OBJECT IDENTIFIER ::= { cOpticalMonitorMIBGroups 1 }
-- OBJECT-GROUP
--  Status
--    mandatory
--  Descr
--    A mandatory object that provides monitoring of optical
--    characteristics.
--  objects
--    cOpticalParameterValue

cOpticalMIBThresholdGroup OBJECT IDENTIFIER ::= { cOpticalMonitorMIBGroups 2 }
-- OBJECT-GROUP
--  Status
--    mandatory
--  Descr
--    A collection of objects that support thresholds on optical
--    parameters and provide status information when the thresholds
--    are exceeded or cleared.
--  objects
--    cOpticalParamHighAlarmThresh, cOpticalParamHighWarningThresh, 
--    cOpticalParamLowAlarmThresh, cOpticalParamLowWarningThresh, 
--    cOpticalParamAlarmStatus, cOpticalParamAlarmCurMaxThresh, 
--    cOpticalParamAlarmLastChange

cOpticalMIBSeverityGroup OBJECT IDENTIFIER ::= { cOpticalMonitorMIBGroups 3 }
-- OBJECT-GROUP
--  Status
--    mandatory
--  Descr
--    A collection of objects that support severities for thresholds
--    on optical parameters.
--  objects
--    cOpticalParamHighAlarmSev, cOpticalParamHighWarningSev, 
--    cOpticalParamLowAlarmSev, cOpticalParamLowWarningSev, 
--    cOpticalParamAlarmCurMaxSev

cOpticalMIBPMGroup OBJECT IDENTIFIER ::= { cOpticalMonitorMIBGroups 4 }
-- OBJECT-GROUP
--  Status
--    mandatory
--  Descr
--    A collection of objects that provide optical performance
--    monitoring data for 15 minute and 24 hour intervals.
--  objects
--    cOpticalMon15MinValidIntervals, cOpticalMon24HrValidIntervals, 
--    cOpticalPMCurrentMaxParam, cOpticalPMCurrentMinParam, 
--    cOpticalPMCurrentMeanParam, cOpticalPMCurrentUnavailSecs, 
--    cOpticalPMIntervalMaxParam, cOpticalPMIntervalMinParam, 
--    cOpticalPMIntervalMeanParam, cOpticalPMIntervalUnavailSecs

cOpticalMIBNotifyEnableGroup OBJECT IDENTIFIER ::= { cOpticalMonitorMIBGroups 5 }
-- OBJECT-GROUP
--  Status
--    mandatory
--  Descr
--    An object to control the generation of notifications.
--  objects
--    cOpticalNotifyEnable

cOpticalMonIfTimeGroup OBJECT IDENTIFIER ::= { cOpticalMonitorMIBGroups 7 }
-- OBJECT-GROUP
--  Status
--    mandatory
--  Descr
--    A collection of object(s) that provide time related information
--    for transceivers in the system.
--  objects
--    cOpticalMonIfTimeInSlot

cOpticalMIBEnableConfigGroup OBJECT IDENTIFIER ::= { cOpticalMonitorMIBGroups 8 }
-- OBJECT-GROUP
--  Status
--    mandatory
--  Descr
--    A collection of object(s) to enable/disable optical
--    monitoring.
--  objects
--    cOpticalMonEnable

cOpticalMIBIntervalConfigGroup OBJECT IDENTIFIER ::= { cOpticalMonitorMIBGroups 9 }
-- OBJECT-GROUP
--  Status
--    mandatory
--  Descr
--    A collection of object(s) to specify polling interval for
--    monitoring optical transceivers.
--  objects
--    cOpticalMonPollInterval

cOpticalMonThreshSourceGroup OBJECT IDENTIFIER ::= { cOpticalMonitorMIBGroups 10 }
-- OBJECT-GROUP
--  Status
--    mandatory
--  Descr
--    A collection of object(s) to restore a given threshold
--    to its default value.
--  objects
--    cOpticalParamThreshSource

cOpticalMIBNotifGroup OBJECT IDENTIFIER ::= { cOpticalMonitorMIBGroups 6 }
-- NOTIFICATION-GROUP
--  Status
--    mandatory
--  Descr
--    A notification generated when a threshold on an optical
--    parameter is exceeded or cleared.
--  notifications
--    cOpticalMonParameterStatus

cOpticalMonitorMIBCompliance OBJECT IDENTIFIER ::= { cOpticalMonitorMIBCompliances 1 }
-- MODULE-COMPLIANCE
--  Status
--    deprecated
--  Descr
--    The compliance statement for network elements that
--    monitor optical characteristics and set thresholds on the
--    optical interfaces in a network element.
--  Module
--    >>current<<
--   MandGroup
--    cOpticalMIBMonGroup
--   OptGroup
--    cOpticalMIBThresholdGroup
--   OptGroup
--    cOpticalMIBSeverityGroup
--   OptGroup
--    cOpticalMIBPMGroup
--   OptGroup
--    cOpticalMIBNotifyEnableGroup
--   OptGroup
--    cOpticalMIBNotifGroup
--   ObjVar
--    cOpticalParamHighAlarmThresh
--   ObjVar
--    cOpticalParamHighWarningThresh
--   ObjVar
--    cOpticalParamLowAlarmThresh
--   ObjVar
--    cOpticalParamLowWarningThresh
--   ObjVar
--    cOpticalParamHighAlarmSev
--   ObjVar
--    cOpticalParamHighWarningSev
--   ObjVar
--    cOpticalParamLowAlarmSev
--   ObjVar
--    cOpticalParamLowWarningSev

cOpticalMonitorMIBComplianceRev OBJECT IDENTIFIER ::= { cOpticalMonitorMIBCompliances 2 }
-- MODULE-COMPLIANCE
--  Status
--    mandatory
--  Descr
--    The compliance statement for network elements that
--    monitor optical characteristics and set thresholds on the
--    optical interfaces in a network element.
--  Module
--    >>current<<
--   MandGroup
--    cOpticalMIBMonGroup
--   OptGroup
--    cOpticalMIBThresholdGroup
--   OptGroup
--    cOpticalMIBSeverityGroup
--   OptGroup
--    cOpticalMIBPMGroup
--   OptGroup
--    cOpticalMonIfTimeGroup
--   OptGroup
--    cOpticalMIBNotifyEnableGroup
--   OptGroup
--    cOpticalMIBNotifGroup
--   OptGroup
--    cOpticalMIBEnableConfigGroup
--   OptGroup
--    cOpticalMIBIntervalConfigGroup
--   OptGroup
--    cOpticalMonThreshSourceGroup
--   ObjVar
--    cOpticalParamHighAlarmThresh
--   ObjVar
--    cOpticalParamHighWarningThresh
--   ObjVar
--    cOpticalParamLowAlarmThresh
--   ObjVar
--    cOpticalParamLowWarningThresh
--   ObjVar
--    cOpticalParamHighAlarmSev
--   ObjVar
--    cOpticalParamHighWarningSev
--   ObjVar
--    cOpticalParamLowAlarmSev
--   ObjVar
--    cOpticalParamLowWarningSev


END

