-- ===========================================================
-- Copyright (c) 2004-2022 New H3C Tech. Co., Ltd.  All rights reserved.
--
-- Description:  Transceiver MIB
-- Reference:  IF-MIB
-- Version:  V2.3
-- History:
-- V1.0 created by liuhongxu and zoudian.
--   Initial version 2006-01-10
-- V1.1 2006-06-08 Updated by chenzhaojie
--   Change description of hh3cTransceiverWaveLength
-- V1.2 2009-12-29 Updated by jinyi
--   Add the objects of hh3cTransceiverDiagnostic, hh3cTransceiverCurTXPower,
--   hh3cTransceiverMaxTXPower, hh3cTransceiverMinTXPower, hh3cTransceiverCurRXPower,
--   hh3cTransceiverMaxRXPower, hh3cTransceiverMinRXPower, hh3cTransceiverTemperature,
--   hh3cTransceiverVoltage, hh3cTransceiverBiasCurrent
-- V1.3 2012-06-06 Updated by jixugang
--   Add the objects of hh3cTransceiverTempHiAlarm, hh3cTransceiverTempLoAlarm,
--   hh3cTransceiverTempHiWarn, hh3cTransceiverTempLoWarn, hh3cTransceiverVccHiAlarm,
--   hh3cTransceiverVccLoAlarm, hh3cTransceiverVccHiWarn, hh3cTransceiverVccLoWarn,
--   hh3cTransceiverBiasHiAlarm, hh3cTransceiverBiasLoAlarm, hh3cTransceiverBiasHiWarn,
--   hh3cTransceiverBiasLoWarn, hh3cTransceiverPwrOutHiAlarm, hh3cTransceiverPwrOutLoAlarm,
--   hh3cTransceiverPwrOutHiWarn, hh3cTransceiverPwrOutLoWarn, hh3cTransceiverRcvPwrHiAlarm,
--   hh3cTransceiverRcvPwrLoAlarm, hh3cTransceiverRcvPwrHiWarn, hh3cTransceiverRcvPwrLoWarn,
--   hh3cTransceiverErrors
-- V1.4 2013-06-06 Updated by chenyixian
--   Add hh3cTransceiverChannelTable to transceiver channel statistics.
-- V1.5 2014-08-11 Updated by SongHao
--   Add hh3cTransceiverVendorOUI and hh3cTransceiverRevisionNumber.
-- V1.6 2015-12-25 Updated by zhouliping
--   Added hh3cTransceiverFrequency and hh3cTransceiverActiveITUChannel to hh3cTransceiverInfoTable.
--   Added hh3cTransceiverITUChanTable for ITU channel information.
-- V1.7 2016-03-09 Updated by zhouliping
--   Added hh3cTransceiverCurWaveErr, hh3cTransceiverWaveErrHiAlarm, hh3cTransceiverWaveErrLoAlarm,
--   hh3cTransceiverCurFreqErr, hh3cTransceiverFreqErrHiAlarm and hh3cTransceiverFreqErrLoAlarm
--   to hh3cTransceiverInfoTable.
--     2018-01-03 Updated by zhouliping
--   Added hh3cTransceiverChannelBiasHiAm, hh3cTransceiverChannelBiasLoAm,
--   hh3cTransceiverChannelTXPwrHiAm, hh3cTransceiverChannelTXPwrLoAm
--   to hh3cTransceiverChannelTable.
-- V1.8 2019-01-03 Updated by luozelei
--   Added hh3cTransceiverPartNumber and hh3cTransceiverProductCode
--   to hh3cTransceiverInfoTable.
-- V1.9 2019-08-09 Updated by yuhaiyan
--   Added hh3cTransceiverOriginalSN to hh3cTransceiverInfoTable.
-- V2.0 2021-03-18 Updated by hezheng
--   Add the objects of hh3cTransceiverPwrOutHiAlarmDbm, hh3cTransceiverPwrOutLoAlarmDbm,
--   hh3cTransceiverPwrOutHiWarnDbm, hh3cTransceiverPwrOutLoWarnDbm, hh3cTransceiverRcvPwrHiAlarmDbm,
--   hh3cTransceiverRcvPwrLoAlarmDbm, hh3cTransceiverRcvPwrHiWarnDbm, hh3cTransceiverRcvPwrLoWarnDbm.
--   Added hh3cTransceiverChanTXPwrHiAmDbm, hh3cTransceiverChanTXPwrLoAmDbm
--   to hh3cTransceiverChannelTable.
-- V2.1 2021-12-02 Updated by fangliwen
--   Added hh3cTransceiverExtrAlarmEnable and hh3cTransceiverMaybeFake.
-- V2.2 2022-2-22 Updated by liziyi
--   Add the hh3cTransceiverLaneTable.
--   Added hh3cTransceiverLaneCurRxPower、hh3cTransceiverLaneCurTxPower and hh3cTransceiverLaneBiasCurrent
--   to hh3cTransceiverLaneTable.
-- V2.3 2022-05-12 Updated by fangliwen
--   Add hh3cTransceiverRelySlotMfgName and hh3cTransceiverRelySlotMfgDate
--   to hh3cTransceiverInfoTable.
-- =================================================================
HH3C-TRANSCEIVER-INFO-MIB DEFINITIONS ::= BEGIN
IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, Integer32, Unsigned32, NOTIFICATION-TYPE
        FROM SNMPv2-SMI
    TruthValue, DateAndTime
        FROM SNMPv2-TC
    ifIndex, ifName
        FROM IF-MIB
    hh3cCommon
        FROM HH3C-OID-MIB;

    hh3cTransceiver MODULE-IDENTITY
        LAST-UPDATED "202205120000Z"
        ORGANIZATION
            "New H3C Technologies Co., Ltd."
        CONTACT-INFO
            "Platform Team New H3C Technologies Co., Ltd.
            Hai-Dian District Beijing P.R. China
            http://www.h3c.com
            Zip:100085"
        DESCRIPTION
            "The objects in this MIB module are used to display the
            information of transceiver on interface."
        REVISION "202205120000Z"
        DESCRIPTION
            "Add hh3cTransceiverRelySlotMfgName and hh3cTransceiverRelySlotMfgDate
            to hh3cTransceiverInfoTable."
        REVISION "202202220000Z"
        DESCRIPTION
            "Add the hh3cTransceiverLaneTable. Added hh3cTransceiverLaneCurRxPower,
             hh3cTransceiverLaneCurTxPower and hh3cTransceiverLaneBiasCurrent to hh3cTransceiverLaneTable."
        REVISION "202112020000Z"
        DESCRIPTION
            "Add the objects of hh3cTransceiverExtrAlarmEnable and hh3cTransceiverMaybeFake."
        REVISION "202103180000Z"
        DESCRIPTION
            "Add the objects of hh3cTransceiverPwrOutHiAlarmDbm, hh3cTransceiverPwrOutLoAlarmDbm,
            hh3cTransceiverPwrOutHiWarnDbm, hh3cTransceiverPwrOutLoWarnDbm, hh3cTransceiverRcvPwrHiAlarmDbm,
            hh3cTransceiverRcvPwrLoAlarmDbm, hh3cTransceiverRcvPwrHiWarnDbm, hh3cTransceiverRcvPwrLoWarnDbm.
            Added hh3cTransceiverChanTXPwrHiAmDbm, hh3cTransceiverChanTXPwrLoAmDbm
            to hh3cTransceiverChannelTable."
        REVISION "201908090000Z"
        DESCRIPTION
            "Added hh3cTransceiverOriginalSN to hh3cTransceiverInfoTable."
        REVISION "201901030000Z"
        DESCRIPTION
            "Added hh3cTransceiverPartNumber and hh3cTransceiverProductCode
            to hh3cTransceiverInfoTable."
        REVISION "201801030000Z"
        DESCRIPTION
            "Added hh3cTransceiverChannelBiasHiAm, hh3cTransceiverChannelBiasLoAm,
            hh3cTransceiverChannelTXPwrHiAm, hh3cTransceiverChannelTXPwrLoAm
            to hh3cTransceiverChannelTable."
        REVISION "201603090000Z"
        DESCRIPTION
            "Added hh3cTransceiverCurWaveErr, hh3cTransceiverWaveErrHiAlarm, hh3cTransceiverWaveErrLoAlarm,
            hh3cTransceiverCurFreqErr, hh3cTransceiverFreqErrHiAlarm and hh3cTransceiverFreqErrLoAlarm
            to hh3cTransceiverInfoTable."
        REVISION "201512250000Z"
        DESCRIPTION
            "Added hh3cTransceiverFrequency and hh3cTransceiverActiveITUChannel to hh3cTransceiverInfoTable.
            Added hh3cTransceiverITUChanTable for ITU channel information."
        REVISION "201408111050Z"
        DESCRIPTION
            "Add hh3cTransceiverVendorOUI and hh3cTransceiverRevisionNumber."
        REVISION "201306060000Z"
        DESCRIPTION
            "Add hh3cTransceiverChannelTable to transceiver channel statistics."
        REVISION "201206060000Z"
        DESCRIPTION
            "Add the objects of hh3cTransceiverTempHiAlarm, hh3cTransceiverTempLoAlarm,
            hh3cTransceiverTempHiWarn, hh3cTransceiverTempLoWarn, hh3cTransceiverVccHiAlarm,
            hh3cTransceiverVccLoAlarm, hh3cTransceiverVccHiWarn, hh3cTransceiverVccLoWarn,
            hh3cTransceiverBiasHiAlarm, hh3cTransceiverBiasLoAlarm, hh3cTransceiverBiasHiWarn,
            hh3cTransceiverBiasLoWarn, hh3cTransceiverPwrOutHiAlarm, hh3cTransceiverPwrOutLoAlarm,
            hh3cTransceiverPwrOutHiWarn, hh3cTransceiverPwrOutLoWarn, hh3cTransceiverRcvPwrHiAlarm,
            hh3cTransceiverRcvPwrLoAlarm, hh3cTransceiverRcvPwrHiWarn, hh3cTransceiverRcvPwrLoWarn,
            hh3cTransceiverErrors."
        REVISION "200912290000Z"
        DESCRIPTION
            "Add the objects of hh3cTransceiverDiagnostic, hh3cTransceiverCurTXPower,
            hh3cTransceiverMaxTXPower, hh3cTransceiverMinTXPower, hh3cTransceiverCurRXPower,
            hh3cTransceiverMaxRXPower, hh3cTransceiverMinRXPower, hh3cTransceiverTemperature,
            hh3cTransceiverVoltage, hh3cTransceiverBiasCurrent."
        REVISION "200606080000Z"
        DESCRIPTION
            "Change description of hh3cTransceiverWaveLength."
        REVISION "200601100000Z"
        DESCRIPTION
            "The initial revision of this MIB module."
            ::= { hh3cCommon 70 }

    hh3cTransceiverInfoAdm OBJECT IDENTIFIER ::= { hh3cTransceiver 1 }

    hh3cTransceiverInfoTable OBJECT-TYPE
        SYNTAX SEQUENCE OF Hh3cTransceiverInfoEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "This table shows transceiver information on an interface."
        ::= { hh3cTransceiverInfoAdm 1 }

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

    Hh3cTransceiverInfoEntry ::=
        SEQUENCE {
            hh3cTransceiverHardwareType      OCTET STRING,
            hh3cTransceiverType              OCTET STRING,
            hh3cTransceiverWaveLength        Integer32,
            hh3cTransceiverVendorName        OCTET STRING,
            hh3cTransceiverSerialNumber      OCTET STRING,
            hh3cTransceiverFiberDiameterType INTEGER,
            hh3cTransceiverTransferDistance  Integer32,
            hh3cTransceiverDiagnostic        TruthValue,
            hh3cTransceiverCurTXPower        Integer32,
            hh3cTransceiverMaxTXPower        Integer32,
            hh3cTransceiverMinTXPower        Integer32,
            hh3cTransceiverCurRXPower        Integer32,
            hh3cTransceiverMaxRXPower        Integer32,
            hh3cTransceiverMinRXPower        Integer32,
            hh3cTransceiverTemperature       Integer32,
            hh3cTransceiverVoltage           Integer32,
            hh3cTransceiverBiasCurrent       Integer32,
            hh3cTransceiverTempHiAlarm       Integer32,
            hh3cTransceiverTempLoAlarm       Integer32,
            hh3cTransceiverTempHiWarn        Integer32,
            hh3cTransceiverTempLoWarn        Integer32,
            hh3cTransceiverVccHiAlarm        Integer32,
            hh3cTransceiverVccLoAlarm        Integer32,
            hh3cTransceiverVccHiWarn         Integer32,
            hh3cTransceiverVccLoWarn         Integer32,
            hh3cTransceiverBiasHiAlarm       Integer32,
            hh3cTransceiverBiasLoAlarm       Integer32,
            hh3cTransceiverBiasHiWarn        Integer32,
            hh3cTransceiverBiasLoWarn        Integer32,
            hh3cTransceiverPwrOutHiAlarm     Integer32,
            hh3cTransceiverPwrOutLoAlarm     Integer32,
            hh3cTransceiverPwrOutHiWarn      Integer32,
            hh3cTransceiverPwrOutLoWarn      Integer32,
            hh3cTransceiverRcvPwrHiAlarm     Integer32,
            hh3cTransceiverRcvPwrLoAlarm     Integer32,
            hh3cTransceiverRcvPwrHiWarn      Integer32,
            hh3cTransceiverRcvPwrLoWarn      Integer32,
            hh3cTransceiverErrors            BITS,
            hh3cTransceiverVendorOUI         OCTET STRING,
            hh3cTransceiverRevisionNumber    OCTET STRING,
            hh3cTransceiverFrequency         Integer32,
            hh3cTransceiverActiveITUChannel  Unsigned32,
            hh3cTransceiverCurWaveErr        Integer32,
            hh3cTransceiverWaveErrHiAlarm    Integer32,
            hh3cTransceiverWaveErrLoAlarm    Integer32,
            hh3cTransceiverCurFreqErr        Integer32,
            hh3cTransceiverFreqErrHiAlarm    Integer32,
            hh3cTransceiverFreqErrLoAlarm    Integer32,
            hh3cTransceiverPartNumber        OCTET STRING,
            hh3cTransceiverProductCode       OCTET STRING,
            hh3cTransceiverOriginalSN        OCTET STRING,
            hh3cTransceiverPwrOutHiAlarmDbm  Integer32,
            hh3cTransceiverPwrOutLoAlarmDbm  Integer32,
            hh3cTransceiverPwrOutHiWarnDbm   Integer32,
            hh3cTransceiverPwrOutLoWarnDbm   Integer32,
            hh3cTransceiverRcvPwrHiAlarmDbm  Integer32,
            hh3cTransceiverRcvPwrLoAlarmDbm  Integer32,
            hh3cTransceiverRcvPwrHiWarnDbm   Integer32,
            hh3cTransceiverRcvPwrLoWarnDbm   Integer32,
            hh3cTransceiverRelySlotMfgName   OCTET STRING,
            hh3cTransceiverRelySlotMfgDate   DateAndTime
        }

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

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

    hh3cTransceiverWaveLength OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Wave length of the interface, measured in nanometer.
            The unit is nm."
        ::= { hh3cTransceiverInfoEntry 3 }

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

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

    hh3cTransceiverFiberDiameterType 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."
        ::= { hh3cTransceiverInfoEntry 6 }

    hh3cTransceiverTransferDistance OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The maximum distance which the interface can transmit,
            measured in meter."
        ::= { hh3cTransceiverInfoEntry 7 }

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

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

    hh3cTransceiverMaxTXPower OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Indicating the maximum transmitted power.
            The unit is in hundredths of dBm."
        ::= { hh3cTransceiverInfoEntry 10 }

    hh3cTransceiverMinTXPower OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Indicating the minimum transmitted power.
            The unit is in hundredths of dBm."
        ::= { hh3cTransceiverInfoEntry 11 }

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

    hh3cTransceiverMaxRXPower OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Indicating the maximum received power.
            The unit is in hundredths of dBm."
        ::= { hh3cTransceiverInfoEntry 13 }

    hh3cTransceiverMinRXPower OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Indicating the minimum received power.
            The unit is in hundredths of dBm."
        ::= { hh3cTransceiverInfoEntry 14 }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    hh3cTransceiverErrors 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),
                tecError(17),
                wavelengthUnlocked(18),
                txIsNotReadyDueToTuning(19)
            }
        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)
             TEC error(17)
             Wavelength unlocked(18)
             Tx is not ready due to tuning(19)
             Unused(20-31)"
        ::= { hh3cTransceiverInfoEntry 38 }

    hh3cTransceiverVendorOUI OBJECT-TYPE
        SYNTAX OCTET STRING (SIZE (0..255))
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Vendor OUI of the interface."
        ::= { hh3cTransceiverInfoEntry 39 }

    hh3cTransceiverRevisionNumber OBJECT-TYPE
        SYNTAX OCTET STRING (SIZE (0..255))
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Revision number of the interface."
        ::= { hh3cTransceiverInfoEntry 40 }

    hh3cTransceiverFrequency OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The frequency of the current ITU channel on the connected transceiver.
            The unit is hundredths of THz."
        ::= { hh3cTransceiverInfoEntry 41 }

    hh3cTransceiverActiveITUChannel OBJECT-TYPE
        SYNTAX      Unsigned32 (1..4294967295)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "The index of the current ITU channel on the connected transceiver.
            The maximum index number for the ITU channel might vary by transceiver model.
            The value of this node depends on the hh3cTransceiverITUChanIdx node of hh3cTransceiverITUChanTable.
            The value of this node affects the frequency or wavelength."
        ::= { hh3cTransceiverInfoEntry 42 }

    hh3cTransceiverCurWaveErr OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The current wavelength error of the current ITU channel
            on the connected transceiver.
            The unit is thousandths of nm."
        ::= { hh3cTransceiverInfoEntry 43 }

    hh3cTransceiverWaveErrHiAlarm OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The high wavelength error alarm threshold of the
            current ITU channel on the connected transceiver.
            The unit is thousandths of nm."
        ::= { hh3cTransceiverInfoEntry 44 }

    hh3cTransceiverWaveErrLoAlarm OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The low wavelength error alarm threshold of the
            current ITU channel on the connected transceiver.
            The unit is thousandths of nm."
        ::= { hh3cTransceiverInfoEntry 45 }

    hh3cTransceiverCurFreqErr OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The current frequency error of the current ITU channel
            on the connected transceiver.
            The unit is tenths of GHz."
        ::= { hh3cTransceiverInfoEntry 46 }

    hh3cTransceiverFreqErrHiAlarm OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The high frequency error alarm threshold of the current
            ITU channel on the connected transceiver.
            The unit is tenths of GHz."
        ::= { hh3cTransceiverInfoEntry 47 }

    hh3cTransceiverFreqErrLoAlarm OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The low frequency error alarm threshold of the current
            ITU channel on the connected transceiver.
            The unit is tenths of GHz."
        ::= { hh3cTransceiverInfoEntry 48 }

    hh3cTransceiverPartNumber OBJECT-TYPE
        SYNTAX OCTET STRING
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "PartNumber of the interface.
            As an example: 1110409083."
        ::= { hh3cTransceiverInfoEntry 49 }

    hh3cTransceiverProductCode OBJECT-TYPE
        SYNTAX OCTET STRING
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Product Code of the interface.
            As an example: MRC00CD."
        ::= { hh3cTransceiverInfoEntry 50 }

    hh3cTransceiverOriginalSN OBJECT-TYPE
        SYNTAX OCTET STRING
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Orginal serial number of the interface."
        ::= { hh3cTransceiverInfoEntry 51 }

    hh3cTransceiverPwrOutHiAlarmDbm OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Transceiver transmit power high alarm
             threshold in hundredths of dBm.
             As an example: 100 milliwatts is 20 dBms."
        ::= { hh3cTransceiverInfoEntry 52 }

    hh3cTransceiverPwrOutLoAlarmDbm OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Transceiver transmit power low alarm
             threshold in hundredths of dBm.
             As an example: 100 milliwatts is 20 dBms."
        ::= { hh3cTransceiverInfoEntry 53 }

    hh3cTransceiverPwrOutHiWarnDbm OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Transceiver transmit power high warning
             threshold in hundredths of dBm.
             As an example: 100 milliwatts is 20 dBms."
        ::= { hh3cTransceiverInfoEntry 54 }

    hh3cTransceiverPwrOutLoWarnDbm OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Transceiver transmit power low warning
             threshold in hundredths of dBm.
             As an example: 100 milliwatts is 20 dBms."
        ::= { hh3cTransceiverInfoEntry 55 }

    hh3cTransceiverRcvPwrHiAlarmDbm OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Transceiver receive power high alarm
             threshold in hundredths of dBm.
             As an example: 100 milliwatts is 20 dBms."
        ::= { hh3cTransceiverInfoEntry 56 }

    hh3cTransceiverRcvPwrLoAlarmDbm OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Transceiver receive power low alarm
             threshold in hundredths of dBm.
             As an example: 100 milliwatts is 20 dBms."
        ::= { hh3cTransceiverInfoEntry 57 }

    hh3cTransceiverRcvPwrHiWarnDbm OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Transceiver receive power high warning
             threshold in hundredths of dBm.
             As an example: 100 milliwatts is 20 dBms."
        ::= { hh3cTransceiverInfoEntry 58 }

    hh3cTransceiverRcvPwrLoWarnDbm OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Transceiver receive power low warning
             threshold in hundredths of dBm.
             As an example: 100 milliwatts is 20 dBms."
        ::= { hh3cTransceiverInfoEntry 59 }

    hh3cTransceiverRelySlotMfgName OBJECT-TYPE
        SYNTAX      OCTET STRING
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Vendor name of the card on which the transceiver is installed."
        ::= { hh3cTransceiverInfoEntry 60 }

    hh3cTransceiverRelySlotMfgDate OBJECT-TYPE
        SYNTAX      DateAndTime
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Manufacturing date of the card on which the transceiver is installed."
        ::= { hh3cTransceiverInfoEntry 61 }

-- Transceiver Channel Table

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

    hh3cTransceiverChannelEntry OBJECT-TYPE
        SYNTAX Hh3cTransceiverChannelEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The entry of the hh3cTransceiverChannelTable."
        INDEX { ifIndex, hh3cTransceiverChannelIndex }
        ::= { hh3cTransceiverChannelTable 1 }

    Hh3cTransceiverChannelEntry ::=
        SEQUENCE {
            hh3cTransceiverChannelIndex             Integer32,
            hh3cTransceiverChannelCurTXPower        Integer32,
            hh3cTransceiverChannelCurRXPower        Integer32,
            hh3cTransceiverChannelTemperature       Integer32,
            hh3cTransceiverChannelBiasCurrent       Integer32,
            hh3cTransceiverChannelBiasHiAm          Integer32,
            hh3cTransceiverChannelBiasLoAm          Integer32,
            hh3cTransceiverChannelTXPwrHiAm         Integer32,
            hh3cTransceiverChannelTXPwrLoAm         Integer32,
            hh3cTransceiverChanTXPwrHiAmDbm         Integer32,
            hh3cTransceiverChanTXPwrLoAmDbm         Integer32
        }

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

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

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

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

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

    hh3cTransceiverChannelBiasHiAm OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Transceiver bias high alarm threshold in microamps."
        ::= { hh3cTransceiverChannelEntry 6 }

    hh3cTransceiverChannelBiasLoAm OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Transceiver bias low alarm threshold in microamps."
        ::= { hh3cTransceiverChannelEntry 7 }

    hh3cTransceiverChannelTXPwrHiAm OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Transceiver transmit power high alarm threshold in tenths of microwatts."
        ::= { hh3cTransceiverChannelEntry 8 }

    hh3cTransceiverChannelTXPwrLoAm OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Transceiver transmit power low alarm threshold in tenths of microwatts."
        ::= { hh3cTransceiverChannelEntry 9 }

    hh3cTransceiverChanTXPwrHiAmDbm OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Transceiver transmit power high alarm threshold in hundredths of dBm."
        ::= { hh3cTransceiverChannelEntry 10 }

    hh3cTransceiverChanTXPwrLoAmDbm OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Transceiver transmit power low alarm threshold in hundredths of dBm."
        ::= { hh3cTransceiverChannelEntry 11 }

-- Transceiver ITUChannel Table

    hh3cTransceiverITUChanTable OBJECT-TYPE
        SYNTAX SEQUENCE OF Hh3cTransceiverITUChanEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "This table provides information about ITU channels supported on the transceiver that is connected to this interface."
        ::= { hh3cTransceiverInfoAdm 3 }

    hh3cTransceiverITUChanEntry OBJECT-TYPE
        SYNTAX Hh3cTransceiverITUChanEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The entry of the hh3cTransceiverITUChanTable."
        INDEX { ifIndex, hh3cTransceiverITUChanIdx }
        ::= { hh3cTransceiverITUChanTable 1 }

    Hh3cTransceiverITUChanEntry ::=
        SEQUENCE {
            hh3cTransceiverITUChanIdx            Unsigned32,
            hh3cTransceiverITUChanFreq          Integer32,
            hh3cTransceiverITUChanWaveLth        Integer32
        }

    hh3cTransceiverITUChanIdx OBJECT-TYPE
        SYNTAX      Unsigned32 (1..4294967295)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "The index of the specified ITU channel on the transceiver that is connected to this interface."
        ::= { hh3cTransceiverITUChanEntry 1 }

    hh3cTransceiverITUChanFreq OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The frequency of the specified ITU channel on the transceiver that is connected to this interface.
            The unit is hundredths of THz."
        ::= { hh3cTransceiverITUChanEntry 2 }

    hh3cTransceiverITUChanWaveLth OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The wave length of the specified ITU channel on the transceiver that is connected to this interface.
            The unit is pm."
        ::= { hh3cTransceiverITUChanEntry 3 }

    hh3cTransceiverSystemPara OBJECT IDENTIFIER ::= {  hh3cTransceiver 2  }

-- ==================================================================

    hh3cTransceiverExtrAlarmEnable OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "Enable alarming upon detection of a third-party transceiver."
        DEFVAL      { true }
        ::= { hh3cTransceiverSystemPara 1 }

    hh3cTransceiverTrap OBJECT IDENTIFIER ::= {  hh3cTransceiver 3  }

    hh3cTransceiverTrapPrefix OBJECT IDENTIFIER ::= { hh3cTransceiverTrap 0 }

  -- ==================================================================

    hh3cTransceiverMaybeFake NOTIFICATION-TYPE
      OBJECTS { ifName, hh3cTransceiverType, hh3cTransceiverSerialNumber }
      STATUS  current
      DESCRIPTION
          "The transceiver is suspected to be a counterfeit/pirated/unauthorized transceiver."
      ::= { hh3cTransceiverTrapPrefix 1 }

  -- ==================================================================

    hh3cTransceiverLaneTable OBJECT-TYPE
        SYNTAX SEQUENCE OF Hh3cTransceiverLaneEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "This table provides statistics about transceiver ."
        ::= { hh3cTransceiverInfoAdm 4 }

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

    Hh3cTransceiverLaneEntry ::=
        SEQUENCE {
            hh3cTransceiverLaneCurTxPower    OCTET STRING,
            hh3cTransceiverLaneCurRxPower    OCTET STRING,
            hh3cTransceiverLaneBiasCurrent   OCTET STRING
        }

    hh3cTransceiverLaneCurTxPower OBJECT-TYPE
        SYNTAX      OCTET STRING
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Indicating the current transmitted power.
            The unit is in hundredths of dBm."
        ::= { hh3cTransceiverLaneEntry 1 }

    hh3cTransceiverLaneCurRxPower OBJECT-TYPE
        SYNTAX      OCTET STRING
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Indicating the current received power.
            The unit is in hundredths of dBm."
        ::= { hh3cTransceiverLaneEntry 2 }

    hh3cTransceiverLaneBiasCurrent  OBJECT-TYPE
        SYNTAX      OCTET STRING
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Indicating the current bias electric current.
            The unit is in hundredths of mA."
        ::= { hh3cTransceiverLaneEntry 3 }
END
