NBS-SIGLANE-MIB DEFINITIONS ::= BEGIN

IMPORTS
    OBJECT-TYPE,
    MODULE-IDENTITY, OBJECT-IDENTITY
        FROM SNMPv2-SMI

    InterfaceIndex
        FROM IF-MIB

    DisplayString
        FROM SNMPv2-TC

    NbsCmmcChannelBand
        FROM NBS-CMMCENUM-MIB

    nbs, NbsTcMHz, NbsTcMilliDb, NbsTcMicroAmp, NbsTcTemperature
        FROM NBS-MIB;

nbsSigLaneMib  MODULE-IDENTITY
    LAST-UPDATED "201503120000Z"  -- March 12, 2015
    ORGANIZATION  "NBS"
    CONTACT-INFO
       "For technical support, please contact your service channel"

    DESCRIPTION
       "Signaling Lane mib - objects for the management of multi-lane
        ports such as QSFP, CXP, and CFP."
    ::= { nbs 236 }

-- *******************************************************************
-- NBS-SIGLANE-MIB local defines
-- *******************************************************************


nbsSigLanePortGrp  OBJECT-IDENTITY
    STATUS    current
    DESCRIPTION
      "Ports which aggregate multiple signaling lanes"
    ::= { nbsSigLaneMib 10 }

nbsSigLaneLaneGrp  OBJECT-IDENTITY
    STATUS    current
    DESCRIPTION
      "Individual signaling lanes within a port"
    ::= { nbsSigLaneMib 20 }


nbsSigLaneTraps  OBJECT-IDENTITY
    STATUS      current
    DESCRIPTION "OBJECT-TYPE macros to be used in SNMP NOTIFICATION macros"
    ::= { nbsSigLaneMib 100 }

nbsSigLaneTraps0  OBJECT-IDENTITY
    STATUS      current
    DESCRIPTION "NOTIFICATION-TYPE macros"
    ::= { nbsSigLaneTraps 0 }


-- *******************************************************************
--
-- the nbsSigLanePortGrp
--
-- *******************************************************************


-- ******************************************************************
--
-- Objects for the Port Signaling Lane group
--
-- ********************************************************************

nbsSigLanePortTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF NbsSigLanePortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "A table that describes signaling lanes for a QSFP[+] or CFP port."
    ::= { nbsSigLanePortGrp 1 }

nbsSigLanePortEntry      OBJECT-TYPE
    SYNTAX      NbsSigLanePortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "Contains a description of a particular port signaling lane."
    INDEX { nbsSigLanePortIfIndex }
    ::= { nbsSigLanePortTable 1 }

NbsSigLanePortEntry::= SEQUENCE {
    nbsSigLanePortIfIndex         InterfaceIndex,
    nbsSigLanePortFacility        INTEGER,
    nbsSigLanePortLanes           INTEGER
--  nbsSigLanePortTherm           NbsTcTemperature   use nbsCmmcPortTemperature
}

nbsSigLanePortIfIndex OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "The index to the MIB-II Interface table entry which represents this
        port.  This value should be 0 if there is no corresponding MIB-II
        interface entry."
    ::= { nbsSigLanePortEntry 1 }

nbsSigLanePortFacility OBJECT-TYPE
    SYNTAX      INTEGER {
        other   (1),
        fiber   (2),
        lambda  (3)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "fiber(2) indicates that lane signaling is conducted on separate
        fibers.

        lambda(3) indicates that lane signaling is conducted on different
        wavelengths on a single SMF fiber."
    ::= { nbsSigLanePortEntry 10 }

nbsSigLanePortLanes OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "The number of signaling lanes in this port"
    ::= { nbsSigLanePortEntry 20 }




-- *******************************************************************
--
-- the nbsSigLaneLaneGrp
--
-- *******************************************************************

nbsSigLaneLaneTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF NbsSigLaneLaneEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "A table that describes (fiber/lambda) network signaling lanes for a
        multi-lane port."
    ::= { nbsSigLaneLaneGrp 1 }

nbsSigLaneLaneEntry      OBJECT-TYPE
    SYNTAX      NbsSigLaneLaneEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "Contains a description of a particular (fiber/lambda) signaling lane."
    INDEX { nbsSigLaneLaneIfIndex, nbsSigLaneLaneIndex }
    ::= { nbsSigLaneLaneTable 1 }


NbsSigLaneLaneEntry ::= SEQUENCE {
    nbsSigLaneLaneIfIndex         InterfaceIndex,
    nbsSigLaneLaneIndex           INTEGER,
    nbsSigLaneLaneFrequency       NbsTcMHz,
    nbsSigLaneLaneWavelengthX     DisplayString,
    nbsSigLaneLaneChannelBand     NbsCmmcChannelBand,
    nbsSigLaneLaneChannelNumber   INTEGER,
    nbsSigLaneLaneTxPowerLevel    INTEGER,
    nbsSigLaneLaneTxPower         NbsTcMilliDb,
    nbsSigLaneLaneRxPowerLevel    INTEGER,
    nbsSigLaneLaneRxPower         NbsTcMilliDb,
    nbsSigLaneLaneBiasAmpsLevel   INTEGER,
    nbsSigLaneLaneBiasAmps        NbsTcMicroAmp,
    nbsSigLaneLaneLaserTempLevel  INTEGER,
    nbsSigLaneLaneLaserTemp       NbsTcTemperature
}

nbsSigLaneLaneIfIndex OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "The index to the MIB-II Interface table entry which contains this
        (fiber/lambda) lane."
    ::= { nbsSigLaneLaneEntry 1 }

nbsSigLaneLaneIndex OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "Ordinal index for the signaling lane in a port:
            1..4  for QSFP[+] 4 x 10G
            1..4  for CFP 4 x 25G
            1..4  for CFP 4 x 28G
            1..10 for CFP 10 x 10G"
    ::= { nbsSigLaneLaneEntry 2 }

nbsSigLaneLaneFrequency   OBJECT-TYPE
    SYNTAX      NbsTcMHz
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "The nominal frequency, in MHz."
    ::= { nbsSigLaneLaneEntry 10 }

nbsSigLaneLaneWavelengthX   OBJECT-TYPE
    SYNTAX      DisplayString(SIZE(4..8))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "The nominal wavelength (nanometers) is an ASCII string
        to be human-readable. CWDM wavelengths use 4 digits.
        DWDM wavelengths use seven digits and a decimal point.

        Not supported value: 'N/A'"
    ::= { nbsSigLaneLaneEntry 11 }

nbsSigLaneLaneChannelBand OBJECT-TYPE
        SYNTAX      NbsCmmcChannelBand
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
          "The ITU grid labels DWDM channels with a letter 'band' and a
           numeric channel.  Within this mib, the band is indicated by
           this object, and the channel number is shown in the object
           nbsOsaChannelNumber.

           Frequencies of at least 180100 GHz but less than 190100 GHz
           are considered the L spectrum, and frequencies of at least
           190100 but less than 200100 GHz are considered the C spectrum.

           Frequencies evenly divisible by 100 GHz are designated with
           a 'C' or 'L' prepended to the channel number.  Frequencies
           that are offset by 50 GHz are designated 'H' within the C
           spectrum, and 'Q' within the L spectrum."
        ::= { nbsSigLaneLaneEntry 12 }

nbsSigLaneLaneChannelNumber OBJECT-TYPE
        SYNTAX      INTEGER
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
          "The channel number can be derived by extracting the two middle
           digits from the six digit frequency in GHz."
        ::= { nbsSigLaneLaneEntry 13 }


nbsSigLaneLaneTxPowerLevel  OBJECT-TYPE
    SYNTAX      INTEGER {
        notSupported (1),
        lowAlarm     (2),
        lowWarning   (3),
        ok           (4),
        highWarning  (5),
        highAlarm    (6)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "This object indicates the status of this lane's
        measured received power, reported in nbsSigLaneLaneTxPower:

        notSupported(1), if (nbsSigLaneLaneTxPower = 0x80000000);

        lowAlarm(2),
          if nbsSigLaneLaneTxPower < nbsSigLanePortTxPowerVendorMin;

        lowWarning(3),
          if nbsSigLaneLaneTxPower > nbsSigLanePortTxPowerVendorMin
          and nbsSigLaneLaneTxPower < nbsSigLanePortTxPowerUserMin;

        ok(4), if nbsSigLaneLaneTxPower is within thresholds;

        highWarning(5),
          if nbsSigLaneLaneTxPower < nbsSigLanePortTxPowerVendorMax
          and nbsSigLaneLaneTxPower > nbsSigLanePortTxPowerUserMax;

        highAlarm(6),
          if nbsSigLaneLaneTxPower > nbsSigLanePortTxPowerVendorMax"
    DEFVAL { ok }
    ::= { nbsSigLaneLaneEntry 20 }

nbsSigLaneLaneTxPower OBJECT-TYPE
    SYNTAX      NbsTcMilliDb
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "The output power (in milli dBm) of this lane.

        Not supported value: 0x80000000"
    DEFVAL { -2147483648 }
    ::= { nbsSigLaneLaneEntry 21 }

nbsSigLaneLaneRxPowerLevel  OBJECT-TYPE
    SYNTAX      INTEGER {
        notSupported (1),
        lowAlarm     (2),
        lowWarning   (3),
        ok           (4),
        highWarning  (5),
        highAlarm    (6)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "This object indicates the status of this lane's
        measured received power, reported in nbsSigLaneLaneRxPower:

        notSupported(1), if (nbsSigLaneLaneRxPower = 0x80000000);

        lowAlarm(2),
          if nbsSigLaneLaneRxPower < nbsSigLanePortRxPowerVendorMin;

        lowWarning(3),
          if nbsSigLaneLaneRxPower > nbsSigLanePortRxPowerVendorMin
          and nbsSigLaneLaneRxPower < nbsSigLanePortRxPowerUserMin;

        ok(4), if nbsSigLaneLaneRxPower is within thresholds;

        highWarning(5),
          if nbsSigLaneLaneRxPower < nbsSigLanePortRxPowerVendorMax
          and nbsSigLaneLaneRxPower > nbsSigLanePortRxPowerUserMax;

        highAlarm(6),
          if nbsSigLaneLaneRxPower > nbsSigLanePortRxPowerVendorMax"
    DEFVAL { ok }
    ::= { nbsSigLaneLaneEntry 30 }

nbsSigLaneLaneRxPower OBJECT-TYPE
    SYNTAX      NbsTcMilliDb
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "The received optical power (in milli dBm) of this lane.

        Not supported value: 0x80000000"
    DEFVAL { -2147483648 }
    ::= { nbsSigLaneLaneEntry 31 }

nbsSigLaneLaneBiasAmpsLevel  OBJECT-TYPE
    SYNTAX      INTEGER {
        notSupported (1),
        lowAlarm     (2),
        lowWarning   (3),
        ok           (4),
        highWarning  (5),
        highAlarm    (6)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "This object indicates the status of laser bias current,
        as reported in nbsSigLaneLaneBiasAmps:

        notSupported(1), if (nbsSigLaneLaneBiasAmps = -1);

        lowAlarm(2), if below nbsSigLanePortBiasAmpsVendorMin;

        ok(4), if within the recommended operating range;

        highAlarm(6), if above nbsSigLanePortBiasAmpsVendorMax."
    DEFVAL { ok }
    ::= { nbsSigLaneLaneEntry 40 }

nbsSigLaneLaneBiasAmps OBJECT-TYPE
    SYNTAX      NbsTcMicroAmp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "The bias current (in microAmps) of this lane.

        Not supported value: -1"
    DEFVAL { -1 }
    ::= { nbsSigLaneLaneEntry 41 }

nbsSigLaneLaneLaserTempLevel  OBJECT-TYPE
    SYNTAX      INTEGER {
        notSupported (1),
        lowAlarm     (2),
        lowWarning   (3),
        ok           (4),
        highWarning  (5),
        highAlarm    (6)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "This object indicates the status of laser temperature,
        as reported in nbsSigLaneLaneLaserTemp:

        notSupported(1), if (nbsSigLaneLaneLaserTemp = 0x80000000);

        lowAlarm(2), if below nbsSigLanePortLaserTempVendorMin;

        ok(4), if within the recommended operating range;

        highAlarm(6), if above nbsSigLanePortLaserTempVendorMax."
    DEFVAL { ok }
    ::= { nbsSigLaneLaneEntry 50 }

nbsSigLaneLaneLaserTemp OBJECT-TYPE
    SYNTAX      NbsTcTemperature
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "The temperature (in degrees Celsius) of this lane.

        Not supported value: 0x80000000"
    DEFVAL { -2147483648 }
    ::= { nbsSigLaneLaneEntry 51 }


END
