--
-- Juniper Enterprise Specific MIB: Optics management 
--
-- Copyright (c) 2012-2013, Juniper Networks, Inc.
-- All rights reserved.
--
-- The contents of this document are subject to change without notice.
--

JUNIPER-IFOPTICS-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, TimeTicks, NOTIFICATION-TYPE,
    Unsigned32, Counter32, Integer32
        FROM SNMPv2-SMI
    DateAndTime, TEXTUAL-CONVENTION, TruthValue 
        FROM SNMPv2-TC
    ifIndex, ifDescr
        FROM IF-MIB
    jnxOpticsMibRoot, jnxOpticsNotifications
        FROM JUNIPER-SMI;

jnxIfOpticsMib MODULE-IDENTITY
    LAST-UPDATED "201201261414Z" -- Thu Jan 26 14:14:51 PST 2012
    ORGANIZATION "Juniper Networks, Inc."
    CONTACT-INFO
            "        Juniper Technical Assistance Center
                     Juniper Networks, Inc.
                     1194 N. Mathilda Avenue
                     Sunnyvale, CA 94089
                     E-mail: support@juniper.net"

    DESCRIPTION
            "This MIB module defines objects used for managing the
             Optics interface for Juniper products."
    REVISION      "201201260000Z"
    DESCRIPTION
               "Added Optics Config, Alarms and PM data."
    REVISION      "201201260000Z"
    DESCRIPTION
               "Initial revision."
    ::= { jnxOpticsMibRoot 1 }

--
-- Textual Conventions
--
JnxOpticsLocation  ::= TEXTUAL-CONVENTION
    STATUS       current
    DESCRIPTION  " Near End or Far End "
    SYNTAX       INTEGER {
        jnxNearEnd(1),
        jnxFarEnd(2)
    }

JnxOpticsDirection  ::= TEXTUAL-CONVENTION
    STATUS       current
    DESCRIPTION  " Indicates the direction as Rx/Tx or bi-directional."
    SYNTAX       INTEGER {
        jnxTxDir(1),
        jnxRxDir(2),
        jnxBiDir(3)
    }


JnxOpticsSeverity  ::= TEXTUAL-CONVENTION
    STATUS       current
    DESCRIPTION  " Severity of the Notification"
    SYNTAX       INTEGER {
        jnxCritical(1),
        jnxMajor(2),
        jnxMinor(3),
        jnxInfo(4)
    }

JnxOpticsServiceStateAction  ::= TEXTUAL-CONVENTION
    STATUS       current
    DESCRIPTION  " Notification's action on the service state"
    SYNTAX       INTEGER {
                     jnxNotSupported(0),
                     jnxNonServiceAffecting(1),
                     jnxServiceAffecting(2)
                 }


JnxOpticsChannelSpacing ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
        "Channel spacing
           1 - 100  Ghz
           2 - 50   GHz
           3 - 25   GHz
           4 - 12.5 GHz
           5 - 6.25 Ghz "
    SYNTAX  INTEGER {
        spacing100Ghz(1),
        spacing50Ghz(2),
        spacing25Ghz(3),
        spacing12point5Ghz(4),
        spacing6point5Ghz(5)
    }


--
-- All the notifications related to the optics module
--
JnxOpticsNotificationId  ::= TEXTUAL-CONVENTION
    STATUS       current
    DESCRIPTION  "Optic alarm types"
    SYNTAX       INTEGER {
        jnxOpticsLOS(1),                  -- input loss of signal
        jnxOpticsWavelenthLockErr(2),     -- wavelength lock
        jnxOpticsPowerHighAlarm(3),       -- Tx high power alarm
        jnxOpticsPowerLowAlarm(4),        -- Tx low power alarm
        jnxOpticsBiasCurrentHighAlarm(5), -- Bias Current High
        jnxOpticsBiasCurrentLowAlarm(6),  -- Bias Current Low
        jnxOpticsTemperatureHighAlarm(7), -- Temperature High
        jnxOpticsTemperaturelowAlarm(8),  -- Temperature low
        jnxOpticsTxPLLLockAlarm(9),       -- Tx PLL Lock
        jnxOpticsRxPLLLockAlarm(10),      -- Rx PLL Lock
        jnxOpticsAvgPowerAlarm(11),       -- Avg Power
        jnxOpticsRxLossAvgPowerAlarm(12), -- Rx Loss Avg Power
        jnxOpticsLossofACPowerAlarm(13),  -- Loss of AC Power
        jnxOpticsTxPowerHighThreshAlert(14), -- Tx Power High TCA
        jnxOpticsTxPowerLowThreshAlert(15),  -- Tx Power Low TCA
        jnxOpticsRxPowerHighThreshAlert(16), -- Rx Power High TCA
        jnxOpticsRxPowerLowThreshAlert(17),  -- Rx Power Low TCA
        jnxOpticsModuleTempHighThreshAlert(18),    -- Temp High TCA
        jnxOpticsModuleTempLowThreshAlert(19),     -- Temp Low TCA
        jnxOptics24HourTxPowerHighThreshAlert(20), -- 24 HourTxPowerHigh TCA
        jnxOptics24HourTxPowerLowThreshAlert(21),  -- 24 HourTxPowerLow TCA
        jnxOptics24HourRxPowerHighThreshAlert(22), -- 24 HourRxPowerHigh TCA
        jnxOptics24HourRxPowerLowThreshAlert(23),  -- 24 HourRxPowerLow TCA
        jnxOptics24HourModuleTempHighThreshAlert(24), -- 24 Hour Temp High TCA
        jnxOptics24HourModuleTempLowThreshAlert(25),  -- 24 Hour Temp Low TCA
        jnxOpticsRxPowerHighAlarm(26),                -- Rx high power alarm
        jnxOpticsRxPowerLowAlarm(27),                 -- Rx high power alarm
        jnxOpticsTxPowerHighWarning(28),              -- Rx high power warning
        jnxOpticsTxPowerLowWarning(29),               -- Rx high power warning
        jnxOpticsRxPowerHighWarning(30),              -- Rx high power warning
        jnxOpticsRxPowerLowWarning(31),               -- Rx high power warning
        jnxOpticsModuleTempHighWarning(32),           -- Mod temp high warning
        jnxOpticsModuleTempLowWarning(33),            -- Mod temp low warning
        jnxOpticsRxCarrierFreqHigh(34),               -- rx Carrier freq high
                                                      -- warning
        jnxOpticsRxCarrierFreqLow(35),                -- rx Carrier freq low
                                                      -- warning
        jnxOpticsChromaticDispHighWarning(36),        -- CD high warning
        jnxOpticsChromaticDispLowWarning(37),         -- CD low warning
        jnxOpticsQLowWarning(38),                     -- Q low warning
        jnxOpticsOSNRLowWarning(39)                   -- OSNR low warning
    }




jnxOptics                       OBJECT IDENTIFIER ::= { jnxIfOpticsMib 1 }
jnxOpticsPerformanceMonitoring  OBJECT IDENTIFIER ::= { jnxIfOpticsMib 2 }
jnxOpticsAlarm                  OBJECT IDENTIFIER ::= { jnxIfOpticsMib 3 }

--
-- Optics config table
--
jnxOpticsConfigTable   OBJECT-TYPE
        SYNTAX     SEQUENCE OF JnxOpticsConfigEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
            "Information about the optics config Table. "
        ::= { jnxOptics 1 }

jnxOpticsConfigEntry OBJECT-TYPE
        SYNTAX     JnxOpticsConfigEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
            "A conceptual row that contains information about the optics
             config Table."
        INDEX   { jnxOpticsConfigContainerIndex, jnxOpticsConfigL1Index,
                  jnxOpticsConfigL2Index, jnxOpticsConfigL3Index }
        ::= { jnxOpticsConfigTable 1 }

JnxOpticsConfigEntry ::=
    SEQUENCE {
        jnxOpticsConfigContainerIndex            
                                 Integer32,
        jnxOpticsConfigL1Index                    
                                 Integer32,
        jnxOpticsConfigL2Index                   
                                 Integer32,
        jnxOpticsConfigL3Index                    
                                 Integer32,
        jnxOpticsType                             
                                 Integer32, 
        jnxLaserEnable                     
                                 TruthValue,
        jnxWavelength                     
                                 Unsigned32,
        jnxSpacing                         
                                 JnxOpticsChannelSpacing,
        jnxModulation                      
                                 Unsigned32,
        jnxTxOpticalPower                  
                                 Integer32,
        jnxRxOpticalPower                  
                                 Integer32,
        jnxModuleTempHighThresh  
                                 Integer32,
        jnxModuleTempLowThresh   
                                 Integer32,
        jnxTxPowerHighThresh
                                 Integer32,
        jnxTxPowerLowThresh
                                 Integer32,
        jnxRxPowerHighThresh
                                 Integer32,
        jnxRxPowerLowThresh
                                 Integer32,
        jnx24HourModuleTempHighThresh
                                 Integer32,
        jnx24HourModuleTempLowThresh
                                 Integer32,
        jnx24HourTxPowerHighThresh
                                 Integer32,
        jnx24HourTxPowerLowThresh
                                 Integer32,
        jnx24HourRxPowerHighThresh
                                 Integer32,
        jnx24HourRxPowerLowThresh
                                 Integer32,
        jnxRxLosPowerWarningThresh
                                 Integer32,
        jnxRxLosPowerAlarmThresh
                                 Integer32,
        jnxOpticsCurrentStatus
                                 BITS
    }

    jnxOpticsConfigContainerIndex OBJECT-TYPE
        SYNTAX          Integer32 (1..1024)
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "The associated jnxContentsContainerIndex  - eg shelf.."
        ::= { jnxOpticsConfigEntry 1 }

    jnxOpticsConfigL1Index OBJECT-TYPE
        SYNTAX          Integer32 (1..1024)
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "The level one index associated with this subject ... eg fpc
             slot."
        ::= { jnxOpticsConfigEntry 2 }

    jnxOpticsConfigL2Index OBJECT-TYPE
        SYNTAX          Integer32 (1..1024)
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "The level two index associated with this subject .. eg pic
             slot."
        ::= { jnxOpticsConfigEntry 3 }

    jnxOpticsConfigL3Index OBJECT-TYPE
        SYNTAX          Integer32 (1..1024)
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "The level three index associated with this subject.. eg port."
        ::= { jnxOpticsConfigEntry 4 }

    jnxOpticsType OBJECT-TYPE
        SYNTAX          Integer32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            " 0 - none 
              1 - SFP
              2 - XFP
              3 - SFP+
              4 - XFP+
              5 - CFP
              6 - CFP+  
              7 - Non pluggable "
        ::= { jnxOpticsConfigEntry 5 }


    jnxLaserEnable OBJECT-TYPE
        SYNTAX          TruthValue
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
            " 0 - laser off
              1 - laser on "
        ::= { jnxOpticsConfigEntry 6 }

    jnxWavelength OBJECT-TYPE
        SYNTAX          Unsigned32
        UNITS           "0.01 nm" 
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
            "The transmit wavelength of the laser."
        ::= { jnxOpticsConfigEntry 7 }

    jnxSpacing OBJECT-TYPE
        SYNTAX          JnxOpticsChannelSpacing 
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "A minimum nominal difference in frequency (GHz) between two
             adjacent channels."
        ::= { jnxOpticsConfigEntry 8 }

    jnxModulation OBJECT-TYPE
        SYNTAX          Unsigned32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Modulation 
             Unknown - (1),
             NonPSK  - (2),
             ODB     - (3),
             DPSK    - (4),
             QPSK    - (5),
             DQPSK   - (6),
             DPQPSK  - (7),
             16QAM   - (8),
             64QAM  -  (9),
             256QAM -  (10)
            "
        ::= { jnxOpticsConfigEntry 9 }

    jnxTxOpticalPower OBJECT-TYPE
        SYNTAX          Integer32
        UNITS           "0.01 dbm"
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
            "Transmit optical power."
        ::= { jnxOpticsConfigEntry 10 }

    jnxRxOpticalPower OBJECT-TYPE
        SYNTAX          Integer32
        UNITS           "0.01 dbm"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Receive optical power."
        ::= { jnxOpticsConfigEntry 11 }

    jnxModuleTempHighThresh OBJECT-TYPE
        SYNTAX          Integer32
        UNITS           "Celsius (0.01 degrees C)"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "High module temerature in degree fahrenheit for a 15 minute period 
             above which a Threshold Crossing Alert (TCA) should be sent.
             Only one TCA will be sent per period ."
        ::= { jnxOpticsConfigEntry 12 }

    jnxModuleTempLowThresh OBJECT-TYPE
        SYNTAX          Integer32
        UNITS           "Celsius (0.01 degrees C)"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION  
            "Low module temerature in degree fahrenheit for a 15 minute period
             above which a Threshold Crossing Alert (TCA) should be sent.
             Only one TCA will be sent per period ."
        ::= { jnxOpticsConfigEntry 13 }

    jnxTxPowerHighThresh OBJECT-TYPE
        SYNTAX          Integer32
        UNITS           "0.01 dbm"
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
            "Tx power for a 15 minute period above which 
             a Threshold Crossing Alert (TCA) should be sent.
             Only one TCA will be sent per period ."
        ::= { jnxOpticsConfigEntry 14 }

    jnxTxPowerLowThresh OBJECT-TYPE
        SYNTAX          Integer32
        UNITS           "0.01 dbm"
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
            "Tx Power for a 15 minute period below which
             a Threshold Crossing Alert (TCA) should be sent.
             Only one TCA will be sent per period ."
        ::= { jnxOpticsConfigEntry 15 }

    jnxRxPowerHighThresh OBJECT-TYPE
        SYNTAX          Integer32
        UNITS           "0.01 dbm"
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
            "Rx power for a 15 minute period above which
             a Threshold Crossing Alert (TCA) should be sent.
             Only one TCA will be sent per period ."
        ::= { jnxOpticsConfigEntry 16 }

    jnxRxPowerLowThresh OBJECT-TYPE
        SYNTAX          Integer32
        UNITS           "0.01 dbm"
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
            "Rx Power for a 15 minute period below which
             a Threshold Crossing Alert (TCA) should be sent.
             Only one TCA will be sent per period ."
        ::= { jnxOpticsConfigEntry 17 }

    jnx24HourModuleTempHighThresh OBJECT-TYPE
        SYNTAX          Integer32
        UNITS           "Celsius (0.01 degrees C)"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "High module temerature in degree fahrenheit for a 24 hour period
             above which a Threshold Crossing Alert (TCA) should be sent.
             Only one TCA will be sent per period ."
        ::= { jnxOpticsConfigEntry 18 }

    jnx24HourModuleTempLowThresh OBJECT-TYPE
        SYNTAX          Integer32
        UNITS           "Celsius (0.01 degrees C)"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Low module temerature in degree fahrenheit for a 24 hour period
             above which a Threshold Crossing Alert (TCA) should be sent.
             Only one TCA will be sent per period ."
        ::= { jnxOpticsConfigEntry 19 }

    jnx24HourTxPowerHighThresh OBJECT-TYPE
        SYNTAX          Integer32
        UNITS           "0.01 dbm"
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
            "Tx power for a 24 hour period above which
             a Threshold Crossing Alert (TCA) should be sent.
             Only one TCA will be sent per period ."
        ::= { jnxOpticsConfigEntry 20 }

    jnx24HourTxPowerLowThresh OBJECT-TYPE
        SYNTAX          Integer32
        UNITS           "0.01 dbm"
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
            "Tx for a 24 hour period Power below which
             a Threshold Crossing Alert (TCA) should be sent.
             Only one TCA will be sent per period ."
        ::= { jnxOpticsConfigEntry 21 }

    jnx24HourRxPowerHighThresh OBJECT-TYPE
        SYNTAX          Integer32
        UNITS           "0.01 dbm"
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
            "Rx power for a 24 hour period above which
             a Threshold Crossing Alert (TCA) should be sent.
             Only one TCA will be sent per period ."
        ::= { jnxOpticsConfigEntry 22 }

    jnx24HourRxPowerLowThresh OBJECT-TYPE
        SYNTAX          Integer32
        UNITS           "0.01 dbm"
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
            "Rx Power for a 24 hour period below which
             a Threshold Crossing Alert (TCA) should be sent.
             Only one TCA will be sent per period ."
        ::= { jnxOpticsConfigEntry 23 }

    jnxRxLosPowerWarningThresh OBJECT-TYPE
        SYNTAX          Integer32
        UNITS           "0.01 dbm"
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
            "Rx Power warning threshold for seeting the optical LOS 
             warning. "
        ::= { jnxOpticsConfigEntry 24 }

    jnxRxLosPowerAlarmThresh OBJECT-TYPE
        SYNTAX          Integer32
        UNITS           "0.01 dbm"
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
            "Rx Power alarm threshold for seeting the optical LOS 
             warning. "
        ::= { jnxOpticsConfigEntry 25 }

    jnxOpticsCurrentStatus OBJECT-TYPE
        SYNTAX          BITS {
                            opticalLos(1),       
                            wavelenthLockErr(2),
                            powerHighAlarm(3),
                            powerLowAlarm(4),
                            biasCurrentHighAlarm(5),
                            biasCurrentLowAlarm(6),
                            temperatureHighAlarm(7),
                            temperaturelowAlarm(8),
                            txPLLLockAlarm(9),
                            rxPLLLockAlarm(10),
                            avgPowerAlarm(11),
                            rxLossAvgPowerAlarm(12),
                            lossofACPowerAlarm(13),
                            txPowerHighThreshAlert(14),
                            txPowerLowThreshAlert(15),
                            rxPowerHighThreshAlert(16),
                            rxPowerLowThreshAlert(17),
                            moduleTempHighThreshAlert(18),
                            moduleTempLowThreshAlert(19),
                            txPowerHigh24HourThreshAlert(20),
                            txPowerLow24HourThreshAlert(21),
                            rxPowerHigh24HourThreshAlert(22),
                            rxPowerLow24HourThreshAlert(23),
                            moduleTempHigh24HourThreshAlert(24),
                            moduleTempLow24HourThreshAlert(25),
                            powerRxHighAlarm(26),
                            powerRxLowAlarm(27),
                            powerTxHighWarning(28),
                            powerTxLowWarning(29),
                            powerRxHighWarning(30),
                            powerRxLowWarning(31),
                            temperatureHighWarning(32),
                            temperaturelowWarning(33)
                        }
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            " "
        ::= { jnxOpticsConfigEntry 26 }


--
-- Tracetone config
--
jnxOpticsTraceToneCfgTable   OBJECT-TYPE
        SYNTAX     SEQUENCE OF JnxOpticsTraceToneCfgEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
            "Information about the optics tests."
        ::= { jnxOptics 2 }

jnxOpticsTraceToneCfgEntry OBJECT-TYPE
        SYNTAX     JnxOpticsTraceToneCfgEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
            "Information about the optics FRU's."
        INDEX   { jnxOpticsTraceToneCfgContainerIndex,
                  jnxOpticsTraceToneCfgL1Index,
                  jnxOpticsTraceToneCfgL2Index,
                  jnxOpticsTraceToneCfgL3Index }
        ::= { jnxOpticsTraceToneCfgTable 1 }

JnxOpticsTraceToneCfgEntry ::=
    SEQUENCE {
            jnxOpticsTraceToneCfgContainerIndex            Integer32,
            jnxOpticsTraceToneCfgL1Index                   Integer32,
            jnxOpticsTraceToneCfgL2Index                   Integer32,
            jnxOpticsTraceToneCfgL3Index                   Integer32,
            jnxOpticsTraceToneCfgTxEnable                  TruthValue,
            jnxOpticsTraceToneCfgRxEnable                  TruthValue,
            jnxOpticsTraceToneCfgDestId                    OCTET STRING,
            jnxOpticsTraceToneCfgTxMsg                     OCTET STRING,
            jnxOpticsTraceToneCfgRxMsg                     OCTET STRING
    }


    jnxOpticsTraceToneCfgContainerIndex OBJECT-TYPE
        SYNTAX          Integer32 (1..1024)
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "The associated jnxContentsContainerIndex  - eg shelf.."
        ::= { jnxOpticsTraceToneCfgEntry 1 }

    jnxOpticsTraceToneCfgL1Index OBJECT-TYPE
        SYNTAX          Integer32 (1..1024)
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "The level one index associated with this subject ... eg fpc
             slot."
        ::= { jnxOpticsTraceToneCfgEntry 2 }

    jnxOpticsTraceToneCfgL2Index OBJECT-TYPE
        SYNTAX          Integer32 (1..1024)
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "The level two index associated with this subject .. eg pic
             slot."
        ::= { jnxOpticsTraceToneCfgEntry 3 }

    jnxOpticsTraceToneCfgL3Index OBJECT-TYPE
        SYNTAX          Integer32 (1..1024)
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "The level three index associated with this subject..
             eg port."
        ::= { jnxOpticsTraceToneCfgEntry 4 }

    jnxOpticsTraceToneCfgTxEnable OBJECT-TYPE
        SYNTAX          TruthValue
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
            "This will enable/disable the transmit Trace tone feature."
        ::= { jnxOpticsTraceToneCfgEntry 5 }

    jnxOpticsTraceToneCfgRxEnable OBJECT-TYPE
        SYNTAX          TruthValue
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
            "This will enable/disable the receive Trace tone feature."
        ::= { jnxOpticsTraceToneCfgEntry 6 }

    jnxOpticsTraceToneCfgDestId OBJECT-TYPE
        SYNTAX          OCTET STRING
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
            "This is the destination Id of the link
             ID/ the chassis and the blade.
             The transmit messages will also have the src id
             which is this chassis id and this port info."
        ::= { jnxOpticsTraceToneCfgEntry 7 }

    jnxOpticsTraceToneCfgTxMsg OBJECT-TYPE
        SYNTAX          OCTET STRING
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
            "This will be the transmit data in the tracetone message."
        ::= { jnxOpticsTraceToneCfgEntry 8 }

    jnxOpticsTraceToneCfgRxMsg  OBJECT-TYPE
        SYNTAX          OCTET STRING
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "This will be the receive data in the trace tone message."
        ::= { jnxOpticsTraceToneCfgEntry 9 }

--
-- Notification Trigger Table
--
jnxOpticsNotificationTrigDefaultHoldtimeUp OBJECT-TYPE
        SYNTAX          Integer32
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
                "
                   This object will indicate the time (ms) for the defect to
                   persist before it is declared an alarm.
                "
       ::= { jnxOptics 3 }

jnxOpticsNotificationTrigDefaultHoldtimeDown OBJECT-TYPE
        SYNTAX          Integer32
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
                "
                   This object will indicate the time (ms) for the defect to
                   absent before the alarm is cleared.
                "
       ::= { jnxOptics 4 }

--
-- Table to configure individual optics notifications 
--
jnxOpticsNotificationTrigTable OBJECT-TYPE
        SYNTAX     SEQUENCE OF JnxOpticsNotificationTrigEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                "Information about the otn Alarm/Alart/Info trigger table. "
        ::= { jnxOptics 5 }

jnxOpticsNotificationTrigEntry OBJECT-TYPE
        SYNTAX     JnxOpticsNotificationTrigEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                 "A conceptual row that contains information about the Otn
                  Alarm Trigger Table.
                 "
        INDEX   { jnxOpticsNotificationTrigContainerIndex,
                  jnxOpticsNotificationTrigL1Index,
                  jnxOpticsNotificationTrigL2Index,
                  jnxOpticsNotificationTrigL3Index,
                  jnxOpticsNotificationTrigAlmId }
        ::= { jnxOpticsNotificationTrigTable 1 }

JnxOpticsNotificationTrigEntry ::=
    SEQUENCE {
            jnxOpticsNotificationTrigContainerIndex
                                Integer32,
            jnxOpticsNotificationTrigL1Index
                                Integer32,
            jnxOpticsNotificationTrigL2Index
                                Integer32,
            jnxOpticsNotificationTrigL3Index
                                Integer32,
            jnxOpticsNotificationTrigAlmId
                                JnxOpticsNotificationId,
            jnxOpticsNotificationTrigSeverity
                                JnxOpticsSeverity,
            jnxOpticsNotificationTrigIgnore
                                TruthValue,
            jnxOpticsNotificationTrigHoldtimeUp
                                Integer32,
            jnxOpticsNotificationTrigHoldtimeDown
                                Integer32,
            jnxOpticsTrigServiceStateAction
                                JnxOpticsServiceStateAction
    }

    jnxOpticsNotificationTrigContainerIndex OBJECT-TYPE
        SYNTAX          Integer32 (1..1024)
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
                "The associated jnxContentsContainerIndex  - eg shelf."
        ::= { jnxOpticsNotificationTrigEntry 1 }

    jnxOpticsNotificationTrigL1Index OBJECT-TYPE
        SYNTAX          Integer32 (1..1024)
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
                "The level one index associated with this subject ... eg fpc
                 slot."
        ::= { jnxOpticsNotificationTrigEntry 2 }

    jnxOpticsNotificationTrigL2Index OBJECT-TYPE
        SYNTAX          Integer32 (1..1024)
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
                "The level two index associated with this subject .. eg pic
                 slot."
        ::= { jnxOpticsNotificationTrigEntry 3 }

    jnxOpticsNotificationTrigL3Index OBJECT-TYPE
        SYNTAX          Integer32 (1..1024)
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
                "The level three index associated with this subject..
                 eg port.
                "
        ::= { jnxOpticsNotificationTrigEntry 4 }

    jnxOpticsNotificationTrigAlmId OBJECT-TYPE
        SYNTAX          JnxOpticsNotificationId
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
                "
                 This will be the type of Alarm as defined by 
                 JnxOpticsNotificationId
                "
        ::= { jnxOpticsNotificationTrigEntry 5 }

    jnxOpticsNotificationTrigSeverity OBJECT-TYPE
        SYNTAX          JnxOpticsSeverity
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
                "
                 This will be the Severity of the Notification.
                "
        ::= { jnxOpticsNotificationTrigEntry 6 }

    jnxOpticsNotificationTrigIgnore OBJECT-TYPE
        SYNTAX          TruthValue
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
                "
                   This object will ignore the alarm when set.
                "
        ::= { jnxOpticsNotificationTrigEntry 7 }


    jnxOpticsNotificationTrigHoldtimeUp OBJECT-TYPE
        SYNTAX          Integer32
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
                "
                   This object will indicate the time (ms) for the defect to
                   persist before it is declared an alarm.
                "
        ::= { jnxOpticsNotificationTrigEntry 8 }

    jnxOpticsNotificationTrigHoldtimeDown OBJECT-TYPE
        SYNTAX          Integer32
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
                "
                   This object will indicate the time (ms) the defect is
                   absent before the alarm is cleared.
                "
        ::= { jnxOpticsNotificationTrigEntry 9 }

    jnxOpticsTrigServiceStateAction OBJECT-TYPE
        SYNTAX          JnxOpticsServiceStateAction
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
                "
                   This will indicate whether this alarm is service affecting
                   or not .
                "
        ::= { jnxOpticsNotificationTrigEntry 10 }





--
-- Optical PM data
-- 
jnxOpticsPMCurrentTable OBJECT-TYPE
     SYNTAX     SEQUENCE OF JnxOpticsPMCurrentEntry
     MAX-ACCESS not-accessible
     STATUS     current
     DESCRIPTION
         "A table of current PM entries."

     ::= { jnxOpticsPerformanceMonitoring 1 }

jnxOpticsPMCurrentEntry  OBJECT-TYPE
     SYNTAX     JnxOpticsPMCurrentEntry
     MAX-ACCESS not-accessible
     STATUS     current
     DESCRIPTION
         "A conceptual row that contains information about the PM Current
          Table."
     INDEX    { ifIndex }
     ::= { jnxOpticsPMCurrentTable 1 }

JnxOpticsPMCurrentEntry  ::= SEQUENCE {
        jnxPMCurChromaticDispersion      
                            Integer32,
        jnxPMCurDiffGroupDelay   
                            Integer32,
        jnxPMCurPolarizationState        
                            Integer32,
        jnxPMCurPolarDepLoss
                            Integer32,
        jnxPMCurQ                        
                            Integer32,
        jnxPMCurSNR                      
                            Integer32,
        jnxPMCurTxOutputPower            
                            Integer32,
        jnxPMCurRxInputPower             
                            Integer32,
        jnxPMCurMinChromaticDispersion
                            Integer32,
        jnxPMCurMaxChromaticDispersion
                            Integer32,
        jnxPMCurAvgChromaticDispersion
                            Integer32,
        jnxPMCurMinDiffGroupDelay
                            Integer32,
        jnxPMCurMaxDiffGroupDelay
                            Integer32,
        jnxPMCurAvgDiffGroupDelay
                            Integer32,
        jnxPMCurMinPolarState
                            Integer32,
        jnxPMCurMaxPolarState
                            Integer32,
        jnxPMCurAvgPolarState
                            Integer32,
        jnxPMCurMinPolarDepLoss
                            Integer32,
        jnxPMCurMaxPolarDepLoss
                            Integer32,
        jnxPMCurAvgPolarDepLoss
                            Integer32,
        jnxPMCurMinQ
                            Integer32,
        jnxPMCurMaxQ
                            Integer32,
        jnxPMCurAvgQ
                            Integer32,
        jnxPMCurMinSNR
                            Integer32,
        jnxPMCurMaxSNR
                            Integer32,
        jnxPMCurAvgSNR
                            Integer32,
        jnxPMCurMinTxOutputPower
                            Integer32,
        jnxPMCurMaxTxOutputPower
                            Integer32,
        jnxPMCurAvgTxOutputPower
                            Integer32,
        jnxPMCurMinRxInputPower
                            Integer32,
        jnxPMCurMaxRxInputPower
                            Integer32,
        jnxPMCurAvgRxInputPower
                            Integer32,
        jnxPMCurSuspectedFlag
                            TruthValue,
       jnxPMCurSuspectReason
                            Integer32
    }

    jnxPMCurChromaticDispersion OBJECT-TYPE
        SYNTAX          Integer32
        UNITS           "ps/nm"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Residual Chromatic Dispersion measured at Rx Transceiver
              port"
        ::= { jnxOpticsPMCurrentEntry 1 }

    jnxPMCurDiffGroupDelay OBJECT-TYPE
        SYNTAX          Integer32
        UNITS           "ps"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Differential group delay "
        ::= { jnxOpticsPMCurrentEntry 2 }

    jnxPMCurPolarizationState OBJECT-TYPE
        SYNTAX          Integer32
        UNITS           "rad/s"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            " Polarization state "
        ::= { jnxOpticsPMCurrentEntry 3 }

    jnxPMCurPolarDepLoss OBJECT-TYPE
        SYNTAX          Integer32
        UNITS           "0.1 dB"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The polarisation dependent loss (PDL) is the difference (in dB)
             between the maximum and minimum values of the channel insertion
             loss (or gain) of the black-link from point SS to RS due to a
             variation of the state of polarization (SOP) over all SOPs"
        ::= { jnxOpticsPMCurrentEntry 4 }

    jnxPMCurQ OBJECT-TYPE
        SYNTAX          Integer32
        UNITS           "0.1 dB"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "'Q' factor estimated at Rx Transceiver port "
        ::= { jnxOpticsPMCurrentEntry 5 }

    jnxPMCurSNR OBJECT-TYPE
        SYNTAX          Integer32
        UNITS           "0.1 dB"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "SNR - signal to noise ratio"
        ::= { jnxOpticsPMCurrentEntry 6 }

    jnxPMCurTxOutputPower OBJECT-TYPE
        SYNTAX          Integer32
        UNITS           "0.01 dbm"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "TxOutputPower  - transmit output power "
        ::= { jnxOpticsPMCurrentEntry 7 }

    jnxPMCurRxInputPower OBJECT-TYPE
        SYNTAX          Integer32
        UNITS           "0.01 dbm"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "RxInputPower   - receive output power"
        ::= { jnxOpticsPMCurrentEntry 8 }

    jnxPMCurMinChromaticDispersion OBJECT-TYPE
        SYNTAX          Integer32
        UNITS           "ps/nm"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Min Residual Chromatic Dispersion measured at Rx Transceiver
              port"
        ::= { jnxOpticsPMCurrentEntry 9 }

    jnxPMCurMaxChromaticDispersion OBJECT-TYPE
        SYNTAX          Integer32
        UNITS           "ps/nm"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Max Residual Chromatic Dispersion measured at Rx Transceiver
              port"
        ::= { jnxOpticsPMCurrentEntry 10 }

    jnxPMCurAvgChromaticDispersion OBJECT-TYPE
        SYNTAX          Integer32
        UNITS           "ps/nm"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Average Residual Chromatic Dispersion measured at Rx Transceiver
              port"
        ::= { jnxOpticsPMCurrentEntry 11 }

    jnxPMCurMinDiffGroupDelay OBJECT-TYPE
        SYNTAX          Integer32
        UNITS           "ps"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Min Differential group delay "
        ::= { jnxOpticsPMCurrentEntry 12 }

    jnxPMCurMaxDiffGroupDelay OBJECT-TYPE
        SYNTAX          Integer32
        UNITS           "ps"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Max Differential group delay "
        ::= { jnxOpticsPMCurrentEntry 13 }

    jnxPMCurAvgDiffGroupDelay OBJECT-TYPE
        SYNTAX          Integer32
        UNITS           "ps"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Average Differential group delay "
        ::= { jnxOpticsPMCurrentEntry 14 }

    jnxPMCurMinPolarState OBJECT-TYPE
        SYNTAX          Integer32
        UNITS           "rad/s"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Min Polarization state "
        ::= { jnxOpticsPMCurrentEntry 15 }

    jnxPMCurMaxPolarState OBJECT-TYPE
        SYNTAX          Integer32
        UNITS           "rad/s"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Max Polarization state "
        ::= { jnxOpticsPMCurrentEntry 16 }

    jnxPMCurAvgPolarState OBJECT-TYPE
        SYNTAX          Integer32
        UNITS           "rad/s"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Avg Polarization state "
        ::= { jnxOpticsPMCurrentEntry 17 }

    jnxPMCurMinPolarDepLoss OBJECT-TYPE
        SYNTAX          Integer32
        UNITS           "0.1 dB"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Min - The polarisation dependent loss (PDL)"
        ::= { jnxOpticsPMCurrentEntry 18 }

    jnxPMCurMaxPolarDepLoss OBJECT-TYPE
        SYNTAX          Integer32
        UNITS           "0.1 dB"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Max - The polarisation dependent loss (PDL)"
        ::= { jnxOpticsPMCurrentEntry 19 }

    jnxPMCurAvgPolarDepLoss OBJECT-TYPE
        SYNTAX          Integer32
        UNITS           "0.1 dB"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Avg - The polarisation dependent loss (PDL)"
        ::= { jnxOpticsPMCurrentEntry 20 }

    jnxPMCurMinQ OBJECT-TYPE
        SYNTAX          Integer32
        UNITS           "0.1 dB"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Min 'Q' factor estimated at Rx Transceiver port "
        ::= { jnxOpticsPMCurrentEntry 21 }

    jnxPMCurMaxQ OBJECT-TYPE
        SYNTAX          Integer32
        UNITS           "0.1 dB"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Max 'Q' factor estimated at Rx Transceiver port "
        ::= { jnxOpticsPMCurrentEntry 22 }

    jnxPMCurAvgQ OBJECT-TYPE
        SYNTAX          Integer32
        UNITS           "0.1 dB"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Avg 'Q' factor estimated at Rx Transceiver port "
        ::= { jnxOpticsPMCurrentEntry 23 }

    jnxPMCurMinSNR OBJECT-TYPE
        SYNTAX          Integer32
        UNITS           "0.1 dB"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Min SNR - signal to noise ratio"
        ::= { jnxOpticsPMCurrentEntry 24 }

    jnxPMCurMaxSNR OBJECT-TYPE
        SYNTAX          Integer32
        UNITS           "0.1 dB"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Max SNR - signal to noise ratio"
        ::= { jnxOpticsPMCurrentEntry 25 }

    jnxPMCurAvgSNR OBJECT-TYPE
        SYNTAX          Integer32
        UNITS           "0.1 dB"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Avg SNR - signal to noise ratio"
        ::= { jnxOpticsPMCurrentEntry 26 }

    jnxPMCurMinTxOutputPower OBJECT-TYPE
        SYNTAX          Integer32
        UNITS           "0.01 dbm"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Min TxOutputPower  - transmit output power "
        ::= { jnxOpticsPMCurrentEntry 27 }

    jnxPMCurMaxTxOutputPower OBJECT-TYPE
        SYNTAX          Integer32
        UNITS           "0.01 dbm"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Max TxOutputPower  - transmit output power "
        ::= { jnxOpticsPMCurrentEntry 28 }

    jnxPMCurAvgTxOutputPower OBJECT-TYPE
        SYNTAX          Integer32
        UNITS           "0.01 dbm"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Avg TxOutputPower  - transmit output power "
        ::= { jnxOpticsPMCurrentEntry 29 }

    jnxPMCurMinRxInputPower OBJECT-TYPE
        SYNTAX          Integer32
        UNITS           "0.01 dbm"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Min RxInputPower   - receive output power"
        ::= { jnxOpticsPMCurrentEntry 30 }

    jnxPMCurMaxRxInputPower OBJECT-TYPE
        SYNTAX          Integer32
        UNITS           "0.01 dbm"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Max RxInputPower   - receive output power"
        ::= { jnxOpticsPMCurrentEntry 31 }

    jnxPMCurAvgRxInputPower OBJECT-TYPE
        SYNTAX          Integer32
        UNITS           "0.01 dbm"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Avg RxInputPower   - receive output power"
        ::= { jnxOpticsPMCurrentEntry 32 }

    jnxPMCurSuspectedFlag OBJECT-TYPE
        SYNTAX          TruthValue
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "If true, the data in this entry may be unreliable."
        ::= { jnxOpticsPMCurrentEntry 33 }

    jnxPMCurSuspectReason OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "If SuspectedFlag is true, the reson for the PM data being suspect.
              0 - not applicable
              1 - unknown
            "
        ::= { jnxOpticsPMCurrentEntry 34 }

--
-- PM Interval Table
--

jnxOpticsPMIntervalTable OBJECT-TYPE
     SYNTAX     SEQUENCE OF JnxOpticsPMIntervalEntry
     MAX-ACCESS not-accessible
     STATUS     current
     DESCRIPTION
         "A table of current PM  entries."
     ::= { jnxOpticsPerformanceMonitoring 2 }

jnxOpticsPMIntervalEntry  OBJECT-TYPE
     SYNTAX     JnxOpticsPMIntervalEntry
     MAX-ACCESS not-accessible
     STATUS     current
     DESCRIPTION
         "A conceptual row that contains information about the PM Interval
          Table."
     INDEX    { ifIndex, jnxOpticsPMIntervalNumber }
     ::= { jnxOpticsPMIntervalTable 1 }

JnxOpticsPMIntervalEntry  ::= SEQUENCE {
        jnxOpticsPMIntervalNumber                      
                             Unsigned32,
        jnxPMIntMinChromaticDispersion      
                             Integer32,
        jnxPMIntMaxChromaticDispersion      
                             Integer32,
        jnxPMIntAvgChromaticDispersion      
                             Integer32,
        jnxPMIntMinDiffGroupDelay   
                             Integer32,
        jnxPMIntMaxDiffGroupDelay   
                             Integer32,
        jnxPMIntAvgDiffGroupDelay   
                             Integer32,
        jnxPMIntMinPolarState        
                             Integer32,
        jnxPMIntMaxPolarState        
                             Integer32,
        jnxPMIntAvgPolarState        
                             Integer32,
        jnxPMIntMinPolarDependentLoss
                             Integer32,
        jnxPMIntMaxPolarDependentLoss
                             Integer32,
        jnxPMIntAvgPolarDependentLoss
                             Integer32,
        jnxPMIntMinQ                        
                             Integer32,
        jnxPMIntMaxQ                        
                             Integer32,
        jnxPMIntAvgQ                        
                             Integer32,
        jnxPMIntMinSNR                      
                             Integer32,
        jnxPMIntMaxSNR                      
                             Integer32,
        jnxPMIntAvgSNR                      
                             Integer32,
        jnxPMIntMinTxOutputPower            
                             Integer32,
        jnxPMIntMaxTxOutputPower            
                             Integer32,
        jnxPMIntAvgTxOutputPower            
                             Integer32,
        jnxPMIntMinRxInputPower              
                             Integer32,
        jnxPMIntMaxRxInputPower             
                             Integer32,
        jnxPMIntAvgRxInputPower             
                             Integer32,
        jnxPMIntTimeStamp
                             DateAndTime,
        jnxPMIntSuspectedFlag
                             TruthValue,
        jnxPMIntSuspectReason
                             Integer32
    }

    jnxOpticsPMIntervalNumber OBJECT-TYPE
        SYNTAX         Unsigned32(1..96)
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION
            "This is the 15 mintute interavl number."
        ::= { jnxOpticsPMIntervalEntry 1 }

    jnxPMIntMinChromaticDispersion OBJECT-TYPE
        SYNTAX         Integer32
        UNITS          "ps/nm"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Residual Chromatic Dispersion measured at Rx Transceiver
             port - min in the 15 minute interval"
        ::= { jnxOpticsPMIntervalEntry 2 }

    jnxPMIntMaxChromaticDispersion OBJECT-TYPE
        SYNTAX         Integer32
        UNITS          "ps/nm"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Residual Chromatic Dispersion measured at Rx Transceiver
             port - max in the 15 minute interval"
        ::= { jnxOpticsPMIntervalEntry 3 }

    jnxPMIntAvgChromaticDispersion OBJECT-TYPE
        SYNTAX         Integer32
        UNITS          "ps/nm"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Residual Chromatic Dispersion measured at Rx Transceiver
             port - average in the 15 minute interval"
        ::= { jnxOpticsPMIntervalEntry 4 }

    jnxPMIntMinDiffGroupDelay OBJECT-TYPE
        SYNTAX         Integer32
        UNITS          "ps"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Differential group delay measured at Rx Transceiver
             port -- min in the 15 minute interval"
        ::= { jnxOpticsPMIntervalEntry 5 }

    jnxPMIntMaxDiffGroupDelay OBJECT-TYPE
        SYNTAX         Integer32
        UNITS          "ps"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Differential group delay measured at Rx Transceiver
             port -- max in the 15 minute interval"
        ::= { jnxOpticsPMIntervalEntry 6 }

    jnxPMIntAvgDiffGroupDelay OBJECT-TYPE
        SYNTAX         Integer32
        UNITS          "ps"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Differential group delay measured at Rx Transceiver
             port -- average in the 15 minute interval"
        ::= { jnxOpticsPMIntervalEntry 7 }

    jnxPMIntMinPolarState OBJECT-TYPE
        SYNTAX         Integer32
        UNITS          "rad/s"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Polarization state -- min in the 15 minute interval"
        ::= { jnxOpticsPMIntervalEntry 8 }

    jnxPMIntMaxPolarState OBJECT-TYPE
        SYNTAX         Integer32
        UNITS          "rad/s"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Polarization state -- max in the 15 minute interval"
        ::= { jnxOpticsPMIntervalEntry 9 }

    jnxPMIntAvgPolarState OBJECT-TYPE
        SYNTAX         Integer32
        UNITS          "rad/s"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Polarization state -- average in the 15 minute interval"
        ::= { jnxOpticsPMIntervalEntry 10 }

    jnxPMIntMinPolarDependentLoss OBJECT-TYPE
        SYNTAX         Integer32
        UNITS          "0.1 dB"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Polarization Dependent Loss -- min in the 15 minute interval"
        ::= { jnxOpticsPMIntervalEntry 11 }

    jnxPMIntMaxPolarDependentLoss OBJECT-TYPE
        SYNTAX         Integer32
        UNITS          "0.1 dB"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Polarization Dependent Loss -- max in the 15 minute interval"
        ::= { jnxOpticsPMIntervalEntry 12 }

    jnxPMIntAvgPolarDependentLoss OBJECT-TYPE
        SYNTAX         Integer32
        UNITS          "0.1 dB"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Polarization Dependent Loss  -- average in the 15 minute
              interval"
        ::= { jnxOpticsPMIntervalEntry 13 }

    jnxPMIntMinQ OBJECT-TYPE
        SYNTAX         Integer32
        UNITS          "0.1 dB"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Q -- min in the 15 minute interval"
        ::= { jnxOpticsPMIntervalEntry 14 }

    jnxPMIntMaxQ OBJECT-TYPE
        SYNTAX         Integer32
        UNITS          "0.1 dB"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Q -- max in the 15 minute interval"
        ::= { jnxOpticsPMIntervalEntry 15 }

    jnxPMIntAvgQ OBJECT-TYPE
        SYNTAX         Integer32
        UNITS          "0.1 dB"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Q -- Avg in the 15 minute interval"
        ::= { jnxOpticsPMIntervalEntry 16 }

    jnxPMIntMinSNR OBJECT-TYPE
        SYNTAX         Integer32
        UNITS          "0.1 dB"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "SNR -- min in the 15 minute interval"
        ::= { jnxOpticsPMIntervalEntry 17 }

    jnxPMIntMaxSNR OBJECT-TYPE
        SYNTAX         Integer32
        UNITS          "0.1 dB"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "SNR -- max in the 15 minute interval"
        ::= { jnxOpticsPMIntervalEntry 18 }

    jnxPMIntAvgSNR OBJECT-TYPE
        SYNTAX         Integer32
        UNITS          "0.1 dB"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "SNR -- avg in the 15 minute interval"
        ::= { jnxOpticsPMIntervalEntry 19 }

    jnxPMIntMinTxOutputPower OBJECT-TYPE
        SYNTAX         Integer32
        UNITS           "0.01 dbm"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "TxOutputPower -- min in the 15 minute interval"
        ::= { jnxOpticsPMIntervalEntry 20 }

    jnxPMIntMaxTxOutputPower OBJECT-TYPE
        SYNTAX         Integer32
        UNITS           "0.01 dbm"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "TxOutputPower  -- max in the 15 minute interval"
        ::= { jnxOpticsPMIntervalEntry 21 }

    jnxPMIntAvgTxOutputPower OBJECT-TYPE
        SYNTAX         Integer32
        UNITS           "0.01 dbm"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION     
            "TxOutputPower  -- average in the 15 minute interval"
        ::= { jnxOpticsPMIntervalEntry 22 }

    jnxPMIntMinRxInputPower OBJECT-TYPE
        SYNTAX         Integer32
        UNITS           "0.01 dbm"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "RxInputPower -- min in the 15 minute interval"
        ::= { jnxOpticsPMIntervalEntry 23}

    jnxPMIntMaxRxInputPower OBJECT-TYPE
        SYNTAX         Integer32
        UNITS           "0.01 dbm"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION     
            "RxInputPower  -- max in the 15 minute interval"
        ::= { jnxOpticsPMIntervalEntry 24 }

    jnxPMIntAvgRxInputPower OBJECT-TYPE
        SYNTAX         Integer32
        UNITS           "0.01 dbm"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "RxInputPower  -- average in the 15 minute interval"
        ::= { jnxOpticsPMIntervalEntry 25 }

    jnxPMIntTimeStamp OBJECT-TYPE
        SYNTAX      DateAndTime
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Time stamp PM interval"
        ::= { jnxOpticsPMIntervalEntry 26 }

    jnxPMIntSuspectedFlag OBJECT-TYPE
        SYNTAX          TruthValue
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "If true, the data in this entry may be unreliable."
        ::= { jnxOpticsPMIntervalEntry 27 }

    jnxPMIntSuspectReason OBJECT-TYPE
        SYNTAX          Integer32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "If SuspectedFlag is true, the reson for the PM data being suspect.
              0 - not applicable
              1 - unknown
            "
        ::= { jnxOpticsPMIntervalEntry 28 }

--
-- Cur/Prev Day Table
--
jnxOpticsPMDayTable OBJECT-TYPE
     SYNTAX     SEQUENCE OF JnxOpticsPMDayEntry
     MAX-ACCESS not-accessible
     STATUS     current
     DESCRIPTION
         "A table of current PM Day entries."

     ::= { jnxOpticsPerformanceMonitoring 3 }

jnxOpticsPMDayEntry  OBJECT-TYPE
     SYNTAX     JnxOpticsPMDayEntry
     MAX-ACCESS not-accessible
     STATUS     current
     DESCRIPTION
         "A conceptual row that contains information about the PM Day
          Table"
     INDEX    { ifIndex, jnxOpticsPMDayIndex }
     ::= { jnxOpticsPMDayTable 1 }

JnxOpticsPMDayEntry  ::= SEQUENCE {
        jnxOpticsPMDayIndex                       
                                           Unsigned32,
        jnxPMDayMinChromaticDispersion      
                                           Integer32,
        jnxPMDayMaxChromaticDispersion      
                                           Integer32,
        jnxPMDayAvgChromaticDispersion      
                                           Integer32,
        jnxPMDayMinDiffGroupDelay   
                                           Integer32,
        jnxPMDayMaxDiffGroupDelay   
                                           Integer32,
        jnxPMDayAvgDiffGroupDelay   
                                           Integer32,
        jnxPMDayMinPolarState        
                                           Integer32,
        jnxPMDayMaxPolarState        
                                           Integer32,
        jnxPMDayAvgPolarState        
                                           Integer32,
        jnxPMDayMinPolarDependentLoss
                                           Integer32,
        jnxPMDayMaxPolarDependentLoss
                                           Integer32,
        jnxPMDayAvgPolarDependentLoss
                                           Integer32,
        jnxPMDayMinQ                        
                                           Integer32,
        jnxPMDayMaxQ                        
                                           Integer32,
        jnxPMDayAvgQ                        
                                           Integer32,
        jnxPMDayMinSNR                      
                                           Integer32,
        jnxPMDayMaxSNR                      
                                           Integer32,
        jnxPMDayAvgSNR                      
                                           Integer32,
        jnxPMDayMinTxOutputPower            
                                           Integer32,
        jnxPMDayMaxTxOutputPower            
                                           Integer32,
        jnxPMDayAvgTxOutputPower            
                                           Integer32,
        jnxPMDayMinRxInputPower             
                                           Integer32,
        jnxPMDayMaxRxInputPower             
                                           Integer32,
        jnxPMDayAvgRxInputPower             
                                           Integer32,
        jnxPMDayTimeStamp
                                           DateAndTime,
        jnxPMDaySuspectedFlag
                                           TruthValue,
        jnxPMDaySuspectReason
                                           Integer32
    }

    jnxOpticsPMDayIndex OBJECT-TYPE
        SYNTAX         Unsigned32(1..2)
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION
            "This is 1 - cur day/ 2 - prev day "
        ::= { jnxOpticsPMDayEntry 1 }

    jnxPMDayMinChromaticDispersion OBJECT-TYPE
        SYNTAX         Integer32
        UNITS          "ps/nm"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Residual Chromatic Dispersion measured at Rx Transceiver
             port - min in the day"
        ::= { jnxOpticsPMDayEntry 2 }

    jnxPMDayMaxChromaticDispersion OBJECT-TYPE
        SYNTAX         Integer32
        UNITS          "ps/nm"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Residual Chromatic Dispersion measured at Rx Transceiver
             port - max in the day"
        ::= { jnxOpticsPMDayEntry 3 }

    jnxPMDayAvgChromaticDispersion OBJECT-TYPE
        SYNTAX         Integer32
        UNITS          "ps/nm"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Residual Chromatic Dispersion measured at Rx Transceiver
             port - average in the day"
        ::= { jnxOpticsPMDayEntry 4 }

    jnxPMDayMinDiffGroupDelay OBJECT-TYPE
        SYNTAX         Integer32
        UNITS          "ps"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Differential Group Delay measured at Rx Transceiver
             port -- min in the day"
        ::= { jnxOpticsPMDayEntry 5 }

    jnxPMDayMaxDiffGroupDelay OBJECT-TYPE
        SYNTAX         Integer32
        UNITS          "ps"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Differential Group Delay measured at Rx Transceiver
             port -- max in the day"
        ::= { jnxOpticsPMDayEntry 6 }

    jnxPMDayAvgDiffGroupDelay OBJECT-TYPE
        SYNTAX         Integer32
        UNITS          "ps"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Differential Group Delay measured at Rx Transceiver
             port -- average in the day"
        ::= { jnxOpticsPMDayEntry 7 }

    jnxPMDayMinPolarState OBJECT-TYPE
        SYNTAX         Integer32
        UNITS          "rad/s"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Polarization state -- min in the day"
        ::= { jnxOpticsPMDayEntry 8 }

    jnxPMDayMaxPolarState OBJECT-TYPE
        SYNTAX         Integer32
        UNITS          "rad/s"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Polarization state -- max in the day"
        ::= { jnxOpticsPMDayEntry 9 }

    jnxPMDayAvgPolarState OBJECT-TYPE
        SYNTAX         Integer32
        UNITS          "rad/s"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Polarization state -- average in the day"
        ::= { jnxOpticsPMDayEntry 10 }

    jnxPMDayMinPolarDependentLoss OBJECT-TYPE
        SYNTAX         Integer32
        UNITS          "0.1 dB"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Polarization Dependent Loss -- min in the day"
        ::= { jnxOpticsPMDayEntry 11 }

    jnxPMDayMaxPolarDependentLoss OBJECT-TYPE
        SYNTAX         Integer32
        UNITS          "0.1 dB"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Polarization Dependent Loss -- max in the day"
        ::= { jnxOpticsPMDayEntry 12 }

    jnxPMDayAvgPolarDependentLoss OBJECT-TYPE
        SYNTAX         Integer32
        UNITS          "0.1 dB"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Polarization Dependent Loss  -- average in the day
             interval"
        ::= { jnxOpticsPMDayEntry 13 }


    jnxPMDayMinQ OBJECT-TYPE
        SYNTAX         Integer32
        UNITS          "0.1 dB"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Q -- min in the day"
        ::= { jnxOpticsPMDayEntry 14 }

    jnxPMDayMaxQ OBJECT-TYPE
        SYNTAX         Integer32
        UNITS          "0.1 dB"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Q -- max in the day"
        ::= { jnxOpticsPMDayEntry 15 }

    jnxPMDayAvgQ OBJECT-TYPE
        SYNTAX         Integer32
        UNITS          "0.1 dB"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Q -- Avg in the day"
        ::= { jnxOpticsPMDayEntry 16 }

    jnxPMDayMinSNR OBJECT-TYPE
        SYNTAX         Integer32
        UNITS          "0.1 dB"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "SNR -- min in the day"
        ::= { jnxOpticsPMDayEntry 17 }

    jnxPMDayMaxSNR OBJECT-TYPE
        SYNTAX         Integer32
        UNITS          "0.1 dB"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "SNR -- max in the day"
        ::= { jnxOpticsPMDayEntry 18 }

    jnxPMDayAvgSNR OBJECT-TYPE
        SYNTAX         Integer32
        UNITS          "0.1 dB"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "SNR -- avg in the day"
        ::= { jnxOpticsPMDayEntry 19 }

    jnxPMDayMinTxOutputPower OBJECT-TYPE
        SYNTAX         Integer32
        UNITS          "0.01 dbm"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "TxOutputPower -- min in the day"
        ::= { jnxOpticsPMDayEntry 20 }

    jnxPMDayMaxTxOutputPower OBJECT-TYPE
        SYNTAX         Integer32
        UNITS          "0.01 dbm"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "TxOutputPower  -- max in the day."
        ::= { jnxOpticsPMDayEntry 21 }

    jnxPMDayAvgTxOutputPower OBJECT-TYPE
        SYNTAX         Integer32
        UNITS          "0.01 dbm"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "TxOutputPower  -- average in the day."
        ::= { jnxOpticsPMDayEntry 22 }

    jnxPMDayMinRxInputPower OBJECT-TYPE
        SYNTAX         Integer32
        UNITS          "0.01 dbm"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "RxInputPower -- min in the day."
        ::= { jnxOpticsPMDayEntry 23}

    jnxPMDayMaxRxInputPower OBJECT-TYPE
        SYNTAX         Integer32
        UNITS          "0.01 dbm"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "RxInputPower  -- max in the day."
        ::= { jnxOpticsPMDayEntry 24 }

    jnxPMDayAvgRxInputPower OBJECT-TYPE
        SYNTAX         Integer32
        UNITS          "0.01 dbm"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "RxInputPower  -- average in the day."
        ::= { jnxOpticsPMDayEntry 25 }

    jnxPMDayTimeStamp OBJECT-TYPE
        SYNTAX      DateAndTime
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Time for the Day."
        ::= { jnxOpticsPMDayEntry 26 }

    jnxPMDaySuspectedFlag OBJECT-TYPE
        SYNTAX          TruthValue
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "If true, the data in this entry may be unreliable."
        ::= { jnxOpticsPMDayEntry 27 }

    jnxPMDaySuspectReason OBJECT-TYPE
        SYNTAX          Integer32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "If SuspectedFlag is true, the reson for the PM data being suspect.
              0 - not applicable 
              1 - unknown
            "
        ::= { jnxOpticsPMDayEntry 28 }

--
-- Optics Alarm/Alert  Table
--
jnxOpticsNotificationTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF JnxOpticsNotificationEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
         "A table of Notification entries."
    ::= { jnxOpticsAlarm 1 }

jnxOpticsNotificationEntry OBJECT-TYPE
    SYNTAX     JnxOpticsNotificationEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A conceptual entry in the Notification table."
    INDEX { ifIndex, jnxOpticsNotificationLocation,
            jnxOpticsNotificationDirection
    }
    ::= { jnxOpticsNotificationTable 1 }

JnxOpticsNotificationEntry ::= SEQUENCE {
        jnxOpticsNotificationLocation
                            JnxOpticsLocation,
        jnxOpticsNotificationDirection
                            JnxOpticsDirection,
        jnxOpticsNotificationSeverity
                            JnxOpticsSeverity,
        jnxOpticsLastNotificationId
                            JnxOpticsNotificationId,
        jnxOpticsNotificationDate         
                            DateAndTime
    }

    jnxOpticsNotificationLocation OBJECT-TYPE
        SYNTAX      JnxOpticsLocation 
        MAX-ACCESS  accessible-for-notify
        STATUS      current
        DESCRIPTION
            "The object identifies indicates if this entry was for
             Near end/Far end."
        ::= { jnxOpticsNotificationEntry 1 }

    jnxOpticsNotificationDirection OBJECT-TYPE
        SYNTAX      JnxOpticsDirection
        MAX-ACCESS  accessible-for-notify
        STATUS      current
        DESCRIPTION
            "The object identifies indicates if this entry was for
             for the Tx/Rx or both."
        ::= { jnxOpticsNotificationEntry 2 }

    jnxOpticsLastNotificationId OBJECT-TYPE
        SYNTAX      JnxOpticsNotificationId
        MAX-ACCESS  accessible-for-notify
        STATUS      current
        DESCRIPTION
            "The object identifies the OTN alarm that most recently
             was set or cleared."
        ::= { jnxOpticsNotificationEntry 3 }

    jnxOpticsNotificationSeverity  OBJECT-TYPE
        SYNTAX          JnxOpticsSeverity
        MAX-ACCESS      accessible-for-notify
        STATUS          current
        DESCRIPTION
            "The object identifies the severity of the last  alarm/alert
             that most recently was set or cleared."
        ::= { jnxOpticsNotificationEntry 4 }
	
    jnxOpticsNotificationDate OBJECT-TYPE
        SYNTAX      DateAndTime
        MAX-ACCESS  accessible-for-notify
        STATUS      current
        DESCRIPTION
            "This specifies the date and time when this alarm occurred."
        ::= { jnxOpticsNotificationEntry 5 }


--
-- Alarm/Alert Notifications
--

jnxOpticsNotificationPrefix   OBJECT IDENTIFIER ::=
                                         { jnxOpticsNotifications 0 }

    jnxOpticsNotificationSet NOTIFICATION-TYPE
        OBJECTS { 
            jnxOpticsNotificationLocation,
            jnxOpticsNotificationDirection,
            ifDescr,
            jnxOpticsLastNotificationId, 
            jnxOpticsNotificationSeverity,
            jnxOpticsNotificationDate
        }
        STATUS  current
        DESCRIPTION
            "Notification of a recently set optics alarm."
        ::= { jnxOpticsNotificationPrefix 1 }

    jnxOpticsNotificationCleared NOTIFICATION-TYPE
        OBJECTS { 
            jnxOpticsNotificationLocation,
            jnxOpticsNotificationDirection,
            ifDescr,
            jnxOpticsLastNotificationId, 
            jnxOpticsNotificationSeverity,
            jnxOpticsNotificationDate
        }
        STATUS  current
        DESCRIPTION
            "Notification of a recently cleared optics alarm."
        ::= { jnxOpticsNotificationPrefix 2 }


END
