--===========================================================
-- Copyright (c) 2010-2013 Hewlett-Packard Development Company, L.P.
--
-- Description:  Transceiver MIB
-- Reference:  IF-MIB
-- Version:  V1.4
-- History:
-- V1.0 created by liuhongxu and zoudian.
--   Initial version 2006-01-10
-- V1.1 2006-06-08 Updated by chenzhaojie
--   Change description of hpnicfTransceiverWaveLength
-- V1.2 2009-12-29 Updated by jinyi
--   Add the objects of hpnicfTransceiverDiagnostic, hpnicfTransceiverCurTXPower,
--   hpnicfTransceiverMaxTXPower, hpnicfTransceiverMinTXPower, hpnicfTransceiverCurRXPower,
--   hpnicfTransceiverMaxRXPower, hpnicfTransceiverMinRXPower, hpnicfTransceiverTemperature,
--   hpnicfTransceiverVoltage, hpnicfTransceiverBiasCurrent
-- V1.3 2012-06-06 Updated by jixugang
--   Add the objects of hpnicfTransceiverTempHiAlarm, hpnicfTransceiverTempLoAlarm,
--   hpnicfTransceiverTempHiWarn, hpnicfTransceiverTempLoWarn, hpnicfTransceiverVccHiAlarm,
--   hpnicfTransceiverVccLoAlarm, hpnicfTransceiverVccHiWarn, hpnicfTransceiverVccLoWarn,
--   hpnicfTransceiverBiasHiAlarm, hpnicfTransceiverBiasLoAlarm, hpnicfTransceiverBiasHiWarn,
--   hpnicfTransceiverBiasLoWarn, hpnicfTransceiverPwrOutHiAlarm, hpnicfTransceiverPwrOutLoAlarm,
--   hpnicfTransceiverPwrOutHiWarn, hpnicfTransceiverPwrOutLoWarn, hpnicfTransceiverRcvPwrHiAlarm,
--   hpnicfTransceiverRcvPwrLoAlarm, hpnicfTransceiverRcvPwrHiWarn, hpnicfTransceiverRcvPwrLoWarn,
--   hpnicfTransceiverErrors
-- V1.4 2012-06-06 Updated by chenyixian
--   Add hpnicfTransceiverChannelTable to transceiver channel statistics.
--=================================================================
HPN-ICF-TRANSCEIVER-INFO-MIB DEFINITIONS ::= BEGIN
IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, Integer32
        FROM SNMPv2-SMI
    TruthValue
        FROM SNMPv2-TC
    ifIndex
        FROM IF-MIB
    hpnicfCommon
        FROM HPN-ICF-OID-MIB;

    hpnicfTransceiver MODULE-IDENTITY
        LAST-UPDATED "201307231650Z"
        ORGANIZATION
            ""
        CONTACT-INFO
            ""
        DESCRIPTION
            "The objects in this MIB module are used to display the
            information of transceiver on interface."
        REVISION "201307231650Z"
        DESCRIPTION
            " Add hpnicfTransceiverChannelTable."
        REVISION "200912291650Z"
        DESCRIPTION
            "The initial revision of this MIB module."
            ::= { hpnicfCommon 70 }

    hpnicfTransceiverInfoAdm OBJECT IDENTIFIER ::= { hpnicfTransceiver 1 }

    hpnicfTransceiverInfoTable OBJECT-TYPE
        SYNTAX SEQUENCE OF HpnicfTransceiverInfoEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "This table show the information of transceiver on interface."
        ::= { hpnicfTransceiverInfoAdm 1 }

    hpnicfTransceiverInfoEntry OBJECT-TYPE
        SYNTAX HpnicfTransceiverInfoEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The entry of the hpnicfTransceiverInfoTable."
        INDEX { ifIndex }
        ::= { hpnicfTransceiverInfoTable 1 }

    HpnicfTransceiverInfoEntry ::=
        SEQUENCE {
            hpnicfTransceiverHardwareType      OCTET STRING,
            hpnicfTransceiverType              OCTET STRING,
            hpnicfTransceiverWaveLength        Integer32,
            hpnicfTransceiverVendorName        OCTET STRING,
            hpnicfTransceiverSerialNumber      OCTET STRING,
            hpnicfTransceiverFiberDiameterType INTEGER,
            hpnicfTransceiverTransferDistance  Integer32,
            hpnicfTransceiverDiagnostic        TruthValue,
            hpnicfTransceiverCurTXPower        Integer32,
            hpnicfTransceiverMaxTXPower        Integer32,
            hpnicfTransceiverMinTXPower        Integer32,
            hpnicfTransceiverCurRXPower        Integer32,
            hpnicfTransceiverMaxRXPower        Integer32,
            hpnicfTransceiverMinRXPower        Integer32,
            hpnicfTransceiverTemperature       Integer32,
            hpnicfTransceiverVoltage           Integer32,
            hpnicfTransceiverBiasCurrent       Integer32,
            hpnicfTransceiverTempHiAlarm       Integer32,
            hpnicfTransceiverTempLoAlarm       Integer32,
            hpnicfTransceiverTempHiWarn        Integer32,
            hpnicfTransceiverTempLoWarn        Integer32,
            hpnicfTransceiverVccHiAlarm        Integer32,
            hpnicfTransceiverVccLoAlarm        Integer32,
            hpnicfTransceiverVccHiWarn         Integer32,
            hpnicfTransceiverVccLoWarn         Integer32,
            hpnicfTransceiverBiasHiAlarm       Integer32,
            hpnicfTransceiverBiasLoAlarm       Integer32,
            hpnicfTransceiverBiasHiWarn        Integer32,
            hpnicfTransceiverBiasLoWarn        Integer32,
            hpnicfTransceiverPwrOutHiAlarm     Integer32,
            hpnicfTransceiverPwrOutLoAlarm     Integer32,
            hpnicfTransceiverPwrOutHiWarn      Integer32,
            hpnicfTransceiverPwrOutLoWarn      Integer32,
            hpnicfTransceiverRcvPwrHiAlarm     Integer32,
            hpnicfTransceiverRcvPwrLoAlarm     Integer32,
            hpnicfTransceiverRcvPwrHiWarn      Integer32,
            hpnicfTransceiverRcvPwrLoWarn      Integer32,
            hpnicfTransceiverErrors            BITS
        }

    hpnicfTransceiverHardwareType OBJECT-TYPE
        SYNTAX OCTET STRING
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Hardware type of the interface, such as SM(single mode)."
        ::= { hpnicfTransceiverInfoEntry 1 }

    hpnicfTransceiverType OBJECT-TYPE
        SYNTAX OCTET STRING
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Type of the interface, such as SFP/XFP/GBIC."
        ::= { hpnicfTransceiverInfoEntry 2 }

    hpnicfTransceiverWaveLength OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Wave length of the interface, measured in nanometer."
        ::= { hpnicfTransceiverInfoEntry 3 }

    hpnicfTransceiverVendorName OBJECT-TYPE
        SYNTAX OCTET STRING
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Vendor name of the interface."
        ::= { hpnicfTransceiverInfoEntry 4 }

    hpnicfTransceiverSerialNumber OBJECT-TYPE
        SYNTAX OCTET STRING
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Serial number of the interface."
        ::= { hpnicfTransceiverInfoEntry 5 }

    hpnicfTransceiverFiberDiameterType OBJECT-TYPE
        SYNTAX INTEGER
            {
              fiber9(1),
              fiber50(2),
              fiber625(3),
              copper(4),
              unknown(65535)
            }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The diameter of the fiber, measured in micron.
            fiber9 - 9 micron multi-mode fiber
            fiber50 - 50 micron multi-mode fiber
            fiber625 - 62.5 micron multi-mode fiber
            copper - copper cable."
        ::= { hpnicfTransceiverInfoEntry 6 }

    hpnicfTransceiverTransferDistance OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The maximal distance which the interface could transmit,
            measured in meter."
        ::= { hpnicfTransceiverInfoEntry 7 }

    hpnicfTransceiverDiagnostic OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Indicating the digital diagnostic monitoring function ."
        ::= { hpnicfTransceiverInfoEntry 8 }

    hpnicfTransceiverCurTXPower OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Indicating the current transmitted power .
            The unit is in hundredths of dBM."
        ::= { hpnicfTransceiverInfoEntry 9 }

    hpnicfTransceiverMaxTXPower OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Indicating the maximal transmitted power .
            The unit is in hundredths of dBM."
        ::= { hpnicfTransceiverInfoEntry 10 }

    hpnicfTransceiverMinTXPower OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Indicating the minimal transmitted power .
            The unit is in hundredths of dBM."
        ::= { hpnicfTransceiverInfoEntry 11 }

    hpnicfTransceiverCurRXPower OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Indicating the current received power .
            The unit is in hundredths of dBM."
        ::= { hpnicfTransceiverInfoEntry 12 }

    hpnicfTransceiverMaxRXPower OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Indicating the maximal received power .
            The unit is in hundredths of dBM."
        ::= { hpnicfTransceiverInfoEntry 13 }

    hpnicfTransceiverMinRXPower OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Indicating the minimal received power .
            The unit is in hundredths of dBM."
        ::= { hpnicfTransceiverInfoEntry 14 }

    hpnicfTransceiverTemperature OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Indicating the current temperature.
             The unit is Celsius centigrade."
        ::= { hpnicfTransceiverInfoEntry 15 }

    hpnicfTransceiverVoltage OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Indicating the current voltage .
            The unit is in hundredths of V"
        ::= { hpnicfTransceiverInfoEntry 16 }

    hpnicfTransceiverBiasCurrent OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Indicating the current bias electric current .
            The unit is in hundredths of mA"
        ::= { hpnicfTransceiverInfoEntry 17 }

    hpnicfTransceiverTempHiAlarm OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Transceiver temperature high alarm threshold
             limit in thousandths of degrees Celsius.
             As an example: 49120 is 49.120 degrees Celsius."
        ::= { hpnicfTransceiverInfoEntry 18 }

    hpnicfTransceiverTempLoAlarm OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Transceiver temperature low alarm threshold
             limit in thousandths of degrees Celsius.
             As an example: 49120 is 49.120 degrees Celsius."
        ::= { hpnicfTransceiverInfoEntry 19 }

    hpnicfTransceiverTempHiWarn OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Transceiver temperature high warning threshold
             limit in thousandths of degrees Celsius.
             As an example: 49120 is 49.120 degrees Celsius."
        ::= { hpnicfTransceiverInfoEntry 20 }

    hpnicfTransceiverTempLoWarn OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Transceiver temperature low warning threshold
             limit in thousandths of degrees Celsius.
             As an example: 49120 is 49.120 degrees Celsius."
        ::= { hpnicfTransceiverInfoEntry 21 }

    hpnicfTransceiverVccHiAlarm OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Transceiver VCC high alarm threshold
             limit in hundreds of microvolts.
             As an example: 32928 is 3.2928 volts.
             Returns zero if not supported on the transceiver."
        ::= { hpnicfTransceiverInfoEntry 22 }

    hpnicfTransceiverVccLoAlarm OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Transceiver VCC low alarm threshold
             limit in hundreds of microvolts.
             As an example: 32928 is 3.2928 volts.
             Returns zero if not supported on the transceiver."
        ::= { hpnicfTransceiverInfoEntry 23 }

    hpnicfTransceiverVccHiWarn OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Transceiver VCC high warning threshold
             limit in hundreds of microvolts.
             As an example: 32928 is 3.2928 volts.
             Returns zero if not supported on the transceiver."
        ::= { hpnicfTransceiverInfoEntry 24 }

    hpnicfTransceiverVccLoWarn OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Transceiver VCC low warning threshold
             limit in hundreds of microvolts.
             As an example: 32928 is 3.2928 volts.
             Returns zero if not supported on the transceiver."
        ::= { hpnicfTransceiverInfoEntry 25 }

    hpnicfTransceiverBiasHiAlarm OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Transceiver bias high alarm threshold limit in microamps."
        ::= { hpnicfTransceiverInfoEntry 26 }

    hpnicfTransceiverBiasLoAlarm OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Transceiver bias low alarm threshold limit in microamps."
        ::= { hpnicfTransceiverInfoEntry 27 }

    hpnicfTransceiverBiasHiWarn OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Transceiver bias high warning threshold limit in microamps."
        ::= { hpnicfTransceiverInfoEntry 28 }

    hpnicfTransceiverBiasLoWarn OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Transceiver bias low warning threshold limit in microamps."
        ::= { hpnicfTransceiverInfoEntry 29 }

    hpnicfTransceiverPwrOutHiAlarm OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Transceiver transmit power high alarm
             threshold limit in tenths of microwatts.
             As an example: 10000 is 1 milliwatt."
        ::= { hpnicfTransceiverInfoEntry 30 }

    hpnicfTransceiverPwrOutLoAlarm OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Transceiver transmit power low alarm
             threshold limit in tenths of microwatts.
             As an example: 10000 is 1 milliwatt."
        ::= { hpnicfTransceiverInfoEntry 31 }

    hpnicfTransceiverPwrOutHiWarn OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Transceiver transmit power high warning
             threshold limit in tenths of microwatts
             As an example: 10000 is 1 milliwatt."
        ::= { hpnicfTransceiverInfoEntry 32 }

    hpnicfTransceiverPwrOutLoWarn OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Transceiver transmit power low warning
             threshold limit in tenths of microwatts.
             As an example: 10000 is 1 milliwatt."
        ::= { hpnicfTransceiverInfoEntry 33 }

    hpnicfTransceiverRcvPwrHiAlarm OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Transceiver receive power high alarm
             threshold limit in tenths of microwatts.
             As an example: 10000 is 1 milliwatt."
        ::= { hpnicfTransceiverInfoEntry 34 }

    hpnicfTransceiverRcvPwrLoAlarm OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Transceiver receive power low alarm
             threshold limit in tenths of microwatts.
             As an example: 10000 is 1 milliwatt."
        ::= { hpnicfTransceiverInfoEntry 35 }

    hpnicfTransceiverRcvPwrHiWarn OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Transceiver receive power high warning
             threshold limit in tenths of microwatts.
             As an example: 10000 is 1 milliwatt."
        ::= { hpnicfTransceiverInfoEntry 36 }

    hpnicfTransceiverRcvPwrLoWarn OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Transceiver receive power low warning
             threshold limit in tenths of microwatts.
             As an example: 10000 is 1 milliwatt."
        ::= { hpnicfTransceiverInfoEntry 37 }

    hpnicfTransceiverErrors OBJECT-TYPE
        SYNTAX      BITS
            {
                xcvrIOError(0),
                xcvrChecksum(1),
                xcvrTypeAndPortConfigMismatch(2),
                xcvrTypeNotSupported(3),
                wisLocalFault(4),
                rcvOpticalPowerFault(5),
                pmapmdReceiverLocalFault(6),
                pcsReceiveLocalFault(7),
                phyXSReceiveLocalFault(8),
                laserBiasCurrentFault(9),
                laserTemperatureFault(10),
                laserOutputPowerFault(11),
                txFault(12),
                pmapmdTransmitterLocalFault(13),
                pcsTransmitLocalFault(14),
                phyXSTransmitLocalFault(15),
                rxLossOfSignal(16)
            }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Bitmask indicating transceiver errors.
             Transceiver information I/O error(0)
             Transceiver information checksum error(1)
             Transceiver type and port configuration mismatch(2)
             Transceiver type not supported by port hardware(3)
             WIS local fault(4)
             Receive optical power fault(5)
             PMA/PMD receiver local fault(6)
             PCS receive local fault(7)
             PHY XS receive local fault(8)
             Laser bias current fault(9)
             Laser temperature fault(10)
             Laser output power fault(11)
             TX fault(12)
             PMA/PMD transmitter local fault(13)
             PCS transmit local fault(14)
             PHY XS Transmit Local Fault(15)
             RX loss of signal(16)
             Unused(17-31)"
        ::= { hpnicfTransceiverInfoEntry 38 }

-- Transceiver Channel Table

    hpnicfTransceiverChannelTable OBJECT-TYPE
        SYNTAX SEQUENCE OF HpnicfTransceiverChannelEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "This table provides statistics about transceiver with multi-channel."
        ::= { hpnicfTransceiverInfoAdm 2 }

    hpnicfTransceiverChannelEntry OBJECT-TYPE
        SYNTAX HpnicfTransceiverChannelEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The entry of the hpnicfTransceiverChannelTable."
        INDEX { ifIndex, hpnicfTransceiverChannelIndex }
        ::= { hpnicfTransceiverChannelTable 1 }

    HpnicfTransceiverChannelEntry ::=
        SEQUENCE {
            hpnicfTransceiverChannelIndex             Integer32,
            hpnicfTransceiverChannelCurTXPower        Integer32,
            hpnicfTransceiverChannelCurRXPower        Integer32,
            hpnicfTransceiverChannelTemperature       Integer32,
            hpnicfTransceiverChannelBiasCurrent       Integer32
        }

    hpnicfTransceiverChannelIndex OBJECT-TYPE
        SYNTAX      Integer32(1..2147483647)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "The channel index of transceiver.
            Indicating one channel of the interface."
        ::= { hpnicfTransceiverChannelEntry 1 }

    hpnicfTransceiverChannelCurTXPower OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Indicating the current transmission power.
            The unit is in hundredths of dBM."
        ::= { hpnicfTransceiverChannelEntry 2 }

    hpnicfTransceiverChannelCurRXPower OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Indicating the current received power.
            The unit is in hundredths of dBM."
        ::= { hpnicfTransceiverChannelEntry 3 }

    hpnicfTransceiverChannelTemperature OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Indicating the current temperature.
            The unit is Celsius centigrade."
        ::= { hpnicfTransceiverChannelEntry 4 }

    hpnicfTransceiverChannelBiasCurrent OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Indicating the current bias electric current.
            The unit is in hundredths of mA."
        ::= { hpnicfTransceiverChannelEntry 5 }

END
