LUM-IFPHYSICAL-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, Unsigned32
        FROM SNMPv2-SMI
    OBJECT-GROUP, MODULE-COMPLIANCE
        FROM SNMPv2-CONF
    DateAndTime
        FROM SNMPv2-TC
    lumModules, lumIfPhysicalMIB
        FROM LUM-REG
    Unsigned32WithNA, ResetWithNA, SignalStatusWithNA, FaultStatusWithNA,
    DisplayStringWithNA, Integer32WithNA, TrxMediaWithNA, CommandString,
    MgmtNameString
        FROM LUM-TC;

lumIfPhysicalMIBModule MODULE-IDENTITY
    LAST-UPDATED
        "201501230000Z" -- January 23rd 2015
    ORGANIZATION
        "Transmode Systems AB"
    CONTACT-INFO
        "tac@transmode.com"
    DESCRIPTION
        "The MIB module for management of physical port objects.

         This module describes the physical layer in ITU-T Recommendation
         G.709.

        The tables contained in this MIB are:

        (1) The General group contains some general attributes as time stamps
            and tables sizes.

        (2) The Trx group contains information and configuration for all
           transceiver objects.

"
    REVISION
        "201501230000Z" -- January 23rd 2015
    DESCRIPTION
        "Changes made for release r24:
        - Added Optical Layer Mismatch alarm"
    REVISION
        "201409300000Z" -- September 30th 2014
    DESCRIPTION
        "Changes made for release r23.1:
        - Added TRX Rx and Tx State attribute.
        - Added mxp100gotn board."
    REVISION
        "201405160000Z" -- May 16th 2014
    DESCRIPTION
        "Changes made for release r23:
        - Changed board name from tp10gotn to tphex10gotn.
        - Added tpmrHL16G board."
    REVISION
        "201311150000Z" -- November 15th 2013
    DESCRIPTION
        "Changes made for release r22:
        - Added tp10gotn, tp100gotn board."
    REVISION
        "201211200000Z" -- November 20th 2011
    DESCRIPTION
        "The initial revision of this module."
    ::= { lumModules 47 }


-- ----------------------------------------------------
-- Compliance area, containing groups and compliance
-- specifications.
-- ----------------------------------------------------

lumIfPhysicalConfs OBJECT IDENTIFIER ::= { lumIfPhysicalMIB 1 }
lumIfPhysicalGroups OBJECT IDENTIFIER ::= { lumIfPhysicalConfs 1 }
lumIfPhysicalCompl OBJECT IDENTIFIER ::= { lumIfPhysicalConfs 2 }


-- ----------------------------------------------------
-- Root for objects in the IFPHYSICAL MIB
-- ----------------------------------------------------

lumIfPhysicalMIBObjects OBJECT IDENTIFIER ::= { lumIfPhysicalMIB 2 }


-- ----------------------------------------------------
-- This MIB contains the following groups:
-- ----------------------------------------------------

ifPhysicalGeneral OBJECT IDENTIFIER ::= { lumIfPhysicalMIBObjects 1 } 
ifPhysicalTrxList OBJECT IDENTIFIER ::= { lumIfPhysicalMIBObjects 2 }

-- ----------------------------------------------------
-- General group
-- ----------------------------------------------------

ifPhysicalGeneralConfigLastChangeTime OBJECT-TYPE
    SYNTAX      DateAndTime
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The time when the configuration of the MIB was
        last changed.

"
    ::= { ifPhysicalGeneral 1 }

ifPhysicalGeneralStateLastChangeTime OBJECT-TYPE
    SYNTAX      DateAndTime
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The time when the state and/or configuration of
	the MIB was last changed.

"
    ::= { ifPhysicalGeneral 2 }

ifPhysicalGeneralIfPhysicalTrxTableSize OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Size of transceiver table

"
    ::= { ifPhysicalGeneral 3 }

ifPhysicalGeneralIfPhysicalTrxConfigLastChangeTime OBJECT-TYPE
    SYNTAX      DateAndTime
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The time when the configuration of the table was
        last changed.

"
    ::= { ifPhysicalGeneral 4 }

ifPhysicalGeneralIfPhysicalTrxStateLastChangeTime OBJECT-TYPE
    SYNTAX      DateAndTime
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The time when the state and/or configuration of the
	MIB was last changed.

"
    ::= { ifPhysicalGeneral 5 }

-- ----------------------------------------------------
-- Transceiver group
-- ----------------------------------------------------

ifPhysicalTrxTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF IfPhysicalTrxEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The if physical trx interface list."

    ::= { ifPhysicalTrxList 1 }

ifPhysicalTrxEntry OBJECT-TYPE
    SYNTAX      IfPhysicalTrxEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry in the ifPhysical trx list.

"
    INDEX { ifPhysicalTrxIndex }
    ::= { ifPhysicalTrxTable 1 }

IfPhysicalTrxEntry ::=
    SEQUENCE {
        ifPhysicalTrxIndex                        Unsigned32,
        ifPhysicalTrxName                         MgmtNameString,
        ifPhysicalTrxConnIfBasicIfIndex           Unsigned32WithNA,
        ifPhysicalTrxLaserBias                    Unsigned32WithNA,
        ifPhysicalTrxLaserTemp                    Integer32WithNA,
        ifPhysicalTrxTrxClass                     DisplayStringWithNA,
        ifPhysicalTrxTrxMedia                     TrxMediaWithNA,
        ifPhysicalTrxActualTrxMedia               TrxMediaWithNA,
        ifPhysicalTrxTxSignalStatus               SignalStatusWithNA,
        ifPhysicalTrxRxSignalStatus               SignalStatusWithNA,
        ifPhysicalTrxTransmitterFailed            FaultStatusWithNA,
        ifPhysicalTrxNonQualifiedTrx              FaultStatusWithNA,
        ifPhysicalTrxTrxMissing                   FaultStatusWithNA,
        ifPhysicalTrxTrxMediaMismatch             FaultStatusWithNA,
        ifPhysicalTrxTrxRxState                   DisplayStringWithNA,
        ifPhysicalTrxTrxTxState                   DisplayStringWithNA ,
        ifPhysicalTrxOpticalLayerMappingMismatch  FaultStatusWithNA,
        ifPhysicalTrxPowerCycleReset              ResetWithNA}

ifPhysicalTrxIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "An index assigned to each entry.

"
    ::= { ifPhysicalTrxEntry 1 }

ifPhysicalTrxName OBJECT-TYPE
    SYNTAX      MgmtNameString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The management name of the transceiver, for example
        'trx:1:2:1-2', where the first number indicates
        subrack, the second slot number and the third/fourth
        are the physical port numbers.

"
    ::= { ifPhysicalTrxEntry 2 }

ifPhysicalTrxConnIfBasicIfIndex OBJECT-TYPE
    SYNTAX      Unsigned32WithNA
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "An index describing to which index in ifBasicIf table
        this object is related to.

"
    ::= { ifPhysicalTrxEntry 3 }

ifPhysicalTrxLaserBias OBJECT-TYPE
    SYNTAX      Unsigned32WithNA
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Measures laser bias current value in tenth of
        mA (0.1 mA).

"
    ::= { ifPhysicalTrxEntry 4 }

ifPhysicalTrxLaserTemp OBJECT-TYPE
    SYNTAX      Integer32WithNA
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The actual laser temperature in units of
        0.1 degrees Centigrades.

"
    ::= { ifPhysicalTrxEntry 5 }

ifPhysicalTrxTrxClass OBJECT-TYPE
    SYNTAX      DisplayStringWithNA
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "String that describes the transceiver class.

"
    DEFVAL { "" }
    ::= { ifPhysicalTrxEntry 6 }

ifPhysicalTrxTrxMedia OBJECT-TYPE
    SYNTAX      TrxMediaWithNA
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Defines the media and capability of the TRX.

"
    DEFVAL { optical }
    ::= { ifPhysicalTrxEntry 7 }

ifPhysicalTrxActualTrxMedia OBJECT-TYPE
    SYNTAX      TrxMediaWithNA
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Defines the media and capabillity of the TRX.

"
    DEFVAL { optical }
    ::= { ifPhysicalTrxEntry 8 }

ifPhysicalTrxTxSignalStatus OBJECT-TYPE
    SYNTAX      SignalStatusWithNA
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The state for outgoing (TX) signal
        of the interface.

        down - A major fault has occurred.

        degraded - The signal quality is impaired.

        up - The signal is OK.


"
    ::= { ifPhysicalTrxEntry 9 }

ifPhysicalTrxRxSignalStatus OBJECT-TYPE
    SYNTAX      SignalStatusWithNA
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The state for incoming (RX) signal
        of the interface.

        down - A major fault has occurred.

        degraded - The signal quality is impaired.

        up - The signal is OK.

"
    ::= { ifPhysicalTrxEntry 10 }

ifPhysicalTrxTransmitterFailed OBJECT-TYPE
    SYNTAX      FaultStatusWithNA
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Transmitter failed.

        The transceiver hardware has detected a failure
        in the transmitter part.

        Alarm - The transmitter has failed

        Ok - The transmitter is OK again

"
    ::= { ifPhysicalTrxEntry 11 }

ifPhysicalTrxNonQualifiedTrx OBJECT-TYPE
    SYNTAX      FaultStatusWithNA
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Non-qualified transceiver.

        The inserted transceiver does not have a legal
        manufacturer code.

        Alarm - A non-qualified transceiver is inserted.

        Ok - The transceiver is qualified.

"
    ::= { ifPhysicalTrxEntry 12 }

ifPhysicalTrxTrxMissing OBJECT-TYPE
    SYNTAX      FaultStatusWithNA
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Transceiver missing.

        An expected transceiver is missing.

        Alarm - An expected transceiver is missing.

        Ok - The missing transceiver is inserted.

"
    ::= { ifPhysicalTrxEntry 13 }

ifPhysicalTrxTrxMediaMismatch OBJECT-TYPE
    SYNTAX      FaultStatusWithNA
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Transceiver media mismatch.

        The TRX media does not match the expected one.

        Alarm - Invalid or mismatching trx media is
        detected.

        Ok - The (pluggable) transceiver or board is
        replaced, or the configuration is changed.

"
    ::= { ifPhysicalTrxEntry 14 }

ifPhysicalTrxTrxRxState OBJECT-TYPE
    SYNTAX      DisplayStringWithNA
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The current Rx state of the transciever, in case it is
        a coherent CFP. The unit is ready if state=Ready.

        The states could be one of the followings:

        Rx State: Init started.

        Rx State: Init ready.

        Rx State: Frequency ready.

        Rx State: Input signal received.

        Rx State: A/D Converter ready.

        Rx State: Dispersion compensated.

        Rx State: Ready.

"
    DEFVAL { "" }
    ::= { ifPhysicalTrxEntry 15 }

ifPhysicalTrxTrxTxState OBJECT-TYPE
    SYNTAX      DisplayStringWithNA
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The current Tx state of the transciever, in case it is
        a coherent CFP. The unit is ready if state=Ready.

        The states could be one of the followings:

        Tx State: Init started.

        Tx State: Init ready.

        Tx State: Data path locked.

        Tx State: Laser ready off.

        Tx State: Laser ready.

        Tx State: Laser bias ready.

        Tx State: Ready.

"
    DEFVAL { "" }
    ::= { ifPhysicalTrxEntry 16 }

ifPhysicalTrxOpticalLayerMappingMismatch OBJECT-TYPE
    SYNTAX      FaultStatusWithNA
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The inserted transceiver does not support the
        configuration of the optical layer mapping.

        alarm: A transceiver with other supported optical layer
               mapping than the requested mapping is inserted.

        ok: The transceiver with the non-requested optical
            layer mapping is removed, or the object is reconfigured.

"
    ::= { ifPhysicalTrxEntry 17 }
    
ifPhysicalTrxPowerCycleReset OBJECT-TYPE
    SYNTAX      ResetWithNA
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "When the attribute is set to reset the trx power cycle
        is re-initialised, meaning the trx is cold started. Then the attribute is set to normal again
        automatically.
        
        Note: This function is only to be used as a last resort to resolve a TRX deadlock. Please read I&C manual for further details before usage.

        reset - Re-initialises the trx power cycle
        normal - The trx power cycle is in normal state
        
"
    DEFVAL { normal }
    ::= { ifPhysicalTrxEntry 18 }

-- ----------------------------------------------------
-- Notifications
-- ----------------------------------------------------


-- ----------------------------------------------------
-- Object and event groups
-- ----------------------------------------------------

ifPhysicalGeneralGroupV1 OBJECT-GROUP
    OBJECTS {
        ifPhysicalGeneralConfigLastChangeTime,
        ifPhysicalGeneralStateLastChangeTime,
        ifPhysicalGeneralIfPhysicalTrxTableSize,
        ifPhysicalGeneralIfPhysicalTrxConfigLastChangeTime,
        ifPhysicalGeneralIfPhysicalTrxStateLastChangeTime }

    STATUS      current
    DESCRIPTION
        "The general objects."
    ::= { lumIfPhysicalGroups 1 }

ifPhysicalTrxGroupV1 OBJECT-GROUP
    OBJECTS {
        ifPhysicalTrxIndex,
        ifPhysicalTrxName,
        ifPhysicalTrxConnIfBasicIfIndex,
        ifPhysicalTrxLaserBias,
        ifPhysicalTrxLaserTemp,
        ifPhysicalTrxTrxClass,
        ifPhysicalTrxTrxMedia,
        ifPhysicalTrxActualTrxMedia,
        ifPhysicalTrxTxSignalStatus,
        ifPhysicalTrxRxSignalStatus,
        ifPhysicalTrxTransmitterFailed,
        ifPhysicalTrxNonQualifiedTrx,
        ifPhysicalTrxTrxMissing,
        ifPhysicalTrxTrxMediaMismatch }
    STATUS      deprecated
    DESCRIPTION
        "The ifPhysical transceiver objects (R20.0)."
    ::= { lumIfPhysicalGroups 2 }

ifPhysicalTrxGroupV2 OBJECT-GROUP
    OBJECTS {
        ifPhysicalTrxIndex,
        ifPhysicalTrxName,
        ifPhysicalTrxConnIfBasicIfIndex,
        ifPhysicalTrxLaserBias,
        ifPhysicalTrxLaserTemp,
        ifPhysicalTrxTrxClass,
        ifPhysicalTrxTrxMedia,
        ifPhysicalTrxActualTrxMedia,
        ifPhysicalTrxTxSignalStatus,
        ifPhysicalTrxRxSignalStatus,
        ifPhysicalTrxTransmitterFailed,
        ifPhysicalTrxNonQualifiedTrx,
        ifPhysicalTrxTrxMissing,
        ifPhysicalTrxTrxMediaMismatch,
        ifPhysicalTrxTrxRxState,
        ifPhysicalTrxTrxTxState }
    STATUS      deprecated
    DESCRIPTION
        "The ifPhysical transceiver objects (R23.1)."
    ::= { lumIfPhysicalGroups 3 }
    
ifPhysicalTrxGroupV3 OBJECT-GROUP
    OBJECTS {
        ifPhysicalTrxIndex,
        ifPhysicalTrxName,
        ifPhysicalTrxConnIfBasicIfIndex,
        ifPhysicalTrxLaserBias,
        ifPhysicalTrxLaserTemp,
        ifPhysicalTrxTrxClass,
        ifPhysicalTrxTrxMedia,
        ifPhysicalTrxActualTrxMedia,
        ifPhysicalTrxTxSignalStatus,
        ifPhysicalTrxRxSignalStatus,
        ifPhysicalTrxTransmitterFailed,
        ifPhysicalTrxNonQualifiedTrx,
        ifPhysicalTrxTrxMissing,
        ifPhysicalTrxTrxMediaMismatch,
        ifPhysicalTrxTrxRxState,
        ifPhysicalTrxTrxTxState,
        ifPhysicalTrxOpticalLayerMappingMismatch }
    STATUS      deprecated
    DESCRIPTION
        "The ifPhysical transceiver objects (R24)."
    ::= { lumIfPhysicalGroups 4 }

ifPhysicalTrxGroupV4 OBJECT-GROUP
    OBJECTS {
        ifPhysicalTrxIndex,
        ifPhysicalTrxName,
        ifPhysicalTrxConnIfBasicIfIndex,
        ifPhysicalTrxLaserBias,
        ifPhysicalTrxLaserTemp,
        ifPhysicalTrxTrxClass,
        ifPhysicalTrxTrxMedia,
        ifPhysicalTrxActualTrxMedia,
        ifPhysicalTrxTxSignalStatus,
        ifPhysicalTrxRxSignalStatus,
        ifPhysicalTrxTransmitterFailed,
        ifPhysicalTrxNonQualifiedTrx,
        ifPhysicalTrxTrxMissing,
        ifPhysicalTrxTrxMediaMismatch,
        ifPhysicalTrxTrxRxState,
        ifPhysicalTrxTrxTxState,
        ifPhysicalTrxOpticalLayerMappingMismatch,
        ifPhysicalTrxPowerCycleReset }
    STATUS      current
    DESCRIPTION
        "The ifPhysical transceiver objects (R25)."
    ::= { lumIfPhysicalGroups 5 }
-- ----------------------------------------------------
-- Compliance
-- ----------------------------------------------------

lumIfPhysicalComplV1 MODULE-COMPLIANCE
    STATUS      deprecated
    DESCRIPTION
        "Basic implementation requirements for the ifPhysical MIB. (R20.0)"
    MODULE
        MANDATORY-GROUPS {
            ifPhysicalGeneralGroupV1,
            ifPhysicalTrxGroupV1 }
    ::= { lumIfPhysicalCompl 1 }

lumIfPhysicalComplV2 MODULE-COMPLIANCE
    STATUS      deprecated
    DESCRIPTION
        "Basic implementation requirements for the ifPhysical MIB. (R23.1)"
    MODULE
        MANDATORY-GROUPS {
            ifPhysicalGeneralGroupV1,
            ifPhysicalTrxGroupV2 }
    ::= { lumIfPhysicalCompl 2 }
    
lumIfPhysicalComplV3 MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION
        "Basic implementation requirements for the ifPhysical MIB. (R24)"
    MODULE
        MANDATORY-GROUPS {
            ifPhysicalGeneralGroupV1,
            ifPhysicalTrxGroupV3 }
    ::= { lumIfPhysicalCompl 3 }

END
