CAMBIUM-NETWORKS-TRANSCEIVER-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, NOTIFICATION-TYPE, OBJECT-TYPE, 
    Unsigned32, Integer32, Counter32
            FROM SNMPv2-SMI
    MODULE-COMPLIANCE, OBJECT-GROUP
            FROM SNMPv2-CONF
    SnmpAdminString
            FROM SNMP-FRAMEWORK-MIB
    ifIndex
            FROM IF-MIB
    RowStatus, TruthValue
            FROM SNMPv2-TC;

cnTransceiverMib MODULE-IDENTITY
    LAST-UPDATED "202209290000Z"     -- September 29, 2022
    ORGANIZATION "Cambium Networks, Inc."
    CONTACT-INFO "cambiumnetworks.com"
    DESCRIPTION
        "This MIB module contains objects related to the 
        transceiver information support."

    REVISION    "202209290000Z" -- September 29, 2022
    DESCRIPTION "Ver 2:  Added diagnostic information."

    REVISION    "201812180000Z" -- December 18, 2018
    DESCRIPTION "Ver 1:  Initial version."

    ::= { 1 3 6 1 4 1 2076 81 18 1 }

cnTransceiverNotifications OBJECT IDENTIFIER ::= { cnTransceiverMib 0 }
cnTransceiverObjects       OBJECT IDENTIFIER ::= { cnTransceiverMib 1 }
cnTransceiverNotifyObjects OBJECT IDENTIFIER ::= { cnTransceiverMib 2 }

--
-- Transceiver Port Table support
--

cnTransceiverPortTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF CnTransceiverPortEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "Port-specific data related to the transceivers"

    ::= { cnTransceiverObjects 11 }

cnTransceiverPortEntry OBJECT-TYPE
    SYNTAX         CnTransceiverPortEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "Port-specific data related to the transceivers"

    INDEX { cnTransceiverPortIfIndex }
    ::= { cnTransceiverPortTable 1 }

CnTransceiverPortEntry ::= SEQUENCE {
    cnTransceiverPortIfIndex    Integer32,
    cnTransceiverTxEnabled      INTEGER,
    cnTransceiverType           INTEGER,
    cnTransceiverWavelength     Integer32,
    cnTransceiverVendorName     OCTET STRING,
    cnTransceiverVendorOUI      OCTET STRING,
    cnTransceiverVendorPartNo   OCTET STRING,
    cnTransceiverVendorRevision OCTET STRING,
    cnTransceiverVendorSerial   OCTET STRING,
    cnTransceiverDateCode       OCTET STRING,
    cnTransceiverTemperature    Integer32,
    cnTransceiverVoltage        Integer32,
    cnTransceiverTxBias         Integer32,
    cnTransceiverTxPower        Integer32,
    cnTransceiverRxPower        Integer32
}

cnTransceiverPortIfIndex OBJECT-TYPE
    SYNTAX         Integer32(1..65535)
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "Port (ifIndex) identifier attribute"

    ::= { cnTransceiverPortEntry 1 }

cnTransceiverTxEnabled OBJECT-TYPE
    SYNTAX         INTEGER {
                       enabled(1),
                       disabled(2)
                   }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "Get the TX status of SFP ports"

    ::= { cnTransceiverPortEntry 2 }

cnTransceiverType OBJECT-TYPE
    SYNTAX         INTEGER {
                       cn1000BASE-T(1),
                       cn1000BASE-CX(2),
                       cn1000BASE-LX(3),
                       cn1000BASE-SX(4),
                       cn10GBASE-SR(5),
                       cn10GBASE-LR(6),
                       cn10GBASE-ER(7),
                       cn10GBASE-LRM(8),
                       cn10GBASE-SW(9),
                       cn10GBASE-LW(10),
                       cn10GBASE-EW(11)
                   }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "Read transceiver capabilities"

    ::= { cnTransceiverPortEntry 3 }

cnTransceiverWavelength OBJECT-TYPE
    SYNTAX         Integer32(1..65535)
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "Read the transceiver wavelength"

    ::= { cnTransceiverPortEntry 4 }

cnTransceiverVendorName OBJECT-TYPE
    SYNTAX         OCTET STRING (SIZE(0..32))
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "Read the transceiver vendor name"

    ::= { cnTransceiverPortEntry 5 }

cnTransceiverVendorOUI OBJECT-TYPE
    SYNTAX         OCTET STRING (SIZE(0..32))
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "Read the transceiver vendor Organizational Unique Identifier"

    ::= { cnTransceiverPortEntry 6 }

cnTransceiverVendorPartNo OBJECT-TYPE
    SYNTAX         OCTET STRING (SIZE(0..32))
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "Read the transceiver vendor part number"

    ::= { cnTransceiverPortEntry 7 }

cnTransceiverVendorRevision OBJECT-TYPE
    SYNTAX         OCTET STRING (SIZE(0..32))
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "Read the transceiver vendor revision"

    ::= { cnTransceiverPortEntry 8 }

cnTransceiverVendorSerial OBJECT-TYPE
    SYNTAX         OCTET STRING (SIZE(0..32))
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "Read the transceiver vendor serial"

    ::= { cnTransceiverPortEntry 9 }

cnTransceiverDateCode OBJECT-TYPE
    SYNTAX         OCTET STRING (SIZE(0..32))
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "Read the transceiver manufacturing date code"

    ::= { cnTransceiverPortEntry 10 }

cnTransceiverTemperature OBJECT-TYPE
    SYNTAX         Integer32(-32768..32767)
    UNITS          "celsius"
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "Internally measured transceiver temperature. A value of -32768 indicates that the temperature is unknown."

    ::= { cnTransceiverPortEntry 11 }

cnTransceiverVoltage OBJECT-TYPE
    SYNTAX         Integer32(-2147483648..2147483647)
    UNITS          "milli-volts"
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "Internally measured supply voltage in transceiver. A value of -32768 indicates that the voltage is unknown."

    ::= { cnTransceiverPortEntry 12 }

cnTransceiverTxBias OBJECT-TYPE
    SYNTAX         Integer32(-2147483648..2147483647)
    UNITS          "micro-amps"
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "Internally measured TX Bias Current. A value of -32768 indicates that the TX Bias Current is unknown."

    ::= { cnTransceiverPortEntry 13 }

cnTransceiverTxPower OBJECT-TYPE
    SYNTAX         Integer32(-2147483648..2147483647)
    UNITS          "micro-watts"
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "Measured TX output power. A value of -32768 indicates that the TX output power is unknown."

    ::= { cnTransceiverPortEntry 14 }

cnTransceiverRxPower OBJECT-TYPE
    SYNTAX         Integer32(-2147483648..2147483647)
    UNITS          "micro-watts"
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "Measured RX input power.. A value of -32768 indicates that the RX input power is unknown."

    ::= { cnTransceiverPortEntry 15 }

END
