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

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

cnRPSMib MODULE-IDENTITY
    LAST-UPDATED "202305092000Z" -- May 09, 2023
    ORGANIZATION "Cambium Networks, Inc."
    CONTACT-INFO "cambiumnetworks.com"
    DESCRIPTION
        "This MIB module contains objects related to the
        Removable Power Supply support."

    REVISION    "202305092000Z" -- May 09, 2023
    DESCRIPTION "Ver 3:
    - Rename cnRPSMaximumVoltage to cnRPSOutputVoltage
    - Rename cnRPSMaximumWatts to cnRPSMaximumPower
    - Add cnRPSCurrentInputPower
    - Add cnRPSMinimumInputVoltageRating
    - Add cnRPSMaximumInputVoltageRating
    - Add cnRPSTemperature
    - Add cnRPSFaults
    - Add cnRPSType
    - Add cnRPSModel
    - Add cnRPSSerial"
    REVISION    "202209082000Z" -- September 08, 2022
    DESCRIPTION "Ver 2: Add cnRPSCurrentInputVoltage"
    REVISION    "202007030000Z" -- July 03, 2020
    DESCRIPTION "Ver 1: Initial version."

    ::= { enterprises 17713 24 6 }

--
-- Removable Power Supply attributes
--

cnRPSTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF CnRPSTableEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
        "RPS entry"

    ::= { cnRPSMib 1 }

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

    INDEX { cnRPSIndex }
    ::= { cnRPSTable 1 }

CnRPSTableEntry ::= SEQUENCE {
    cnRPSIndex                      Integer32,
    cnRPSOutputVoltage              Integer32,
    cnRPSMaximumCurrent             Integer32,
    cnRPSMaximumPower               Integer32,
    cnRPSStatus                     INTEGER,
    cnRPSCurrentInputVoltage        Integer32,
    cnRPSCurrentInputPower          Integer32,
    cnRPSMinimumInputVoltageRating  Integer32,
    cnRPSMaximumInputVoltageRating  Integer32,
    cnRPSTemperature                Integer32,
    cnRPSFaults                     BITS,
    cnRPSType                       INTEGER,
    cnRPSModel                      DisplayString,
    cnRPSSerial                     DisplayString
}

cnRPSIndex OBJECT-TYPE
    SYNTAX         Integer32(1..2)
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "RPS index identifier attribute"

    ::= { cnRPSTableEntry 1 }

cnRPSOutputVoltage OBJECT-TYPE
    SYNTAX         Integer32
    UNITS          "volts"
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "Rated output voltage of power supply."

    ::= { cnRPSTableEntry 2 }

cnRPSMaximumCurrent OBJECT-TYPE
    SYNTAX         Integer32
    UNITS          "amps"
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "Maximum output current rating of the power supply."

    ::= { cnRPSTableEntry 3 }

cnRPSMaximumPower OBJECT-TYPE
    SYNTAX         Integer32
    UNITS          "watts"
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "Maximum output power rating of the power supply."

    ::= { cnRPSTableEntry 4 }

cnRPSStatus OBJECT-TYPE
    SYNTAX         INTEGER{
                       ok(1),
                       error(2),
                       notpresent(3)
                   }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "Status of power supply."

    ::= { cnRPSTableEntry 5 }

cnRPSCurrentInputVoltage OBJECT-TYPE
    SYNTAX         Integer32
    UNITS          "volts"
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "Current input voltage applied to the power supply."

    ::= { cnRPSTableEntry 6 }

cnRPSCurrentInputPower OBJECT-TYPE
    SYNTAX         Integer32
    UNITS          "watts"
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "Current input power drawn by the power supply."

    ::= { cnRPSTableEntry 7 }

cnRPSMinimumInputVoltageRating OBJECT-TYPE
    SYNTAX          Integer32
    UNITS           "volts"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "Minimum input voltage rating of the power supply."
    ::= { cnRPSTableEntry 8 }

cnRPSMaximumInputVoltageRating OBJECT-TYPE
    SYNTAX          Integer32
    UNITS           "volts"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "Maximum input voltage rating of the power supply."
    ::= { cnRPSTableEntry 9 }

cnRPSTemperature OBJECT-TYPE
    SYNTAX          Integer32
    UNITS           "celsius"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "Current temperature of the power supply."
    ::= { cnRPSTableEntry 10 }

cnRPSFaults OBJECT-TYPE
    SYNTAX          BITS {  noFault(0),
                            cml(1),
                            temperature(2),
                            inputUnderVoltage(3),
                            outputOverCurrent(4),
                            outputOverVoltage(5),
                            disabled(6),
                            busy(7),
                            unknown(8),
                            other(9),
                            fan(10),
                            notPowerGood(11),
                            mfr(12),
                            input(13),
                            outputPower(14),
                            outputVoltage(15),

                            invalidCommand(16),
                            invalidData(17),
                            packetErrorCheckFailed(18),
                            memoryFaultDetected(19),
                            processorFaultDetected(20),
                            otherCommunicationFault(22),
                            otherMemoryOrLogicFault(23),

                            overTemperatureFault(24),
                            overTemperatureWarning(25),
                            underTemperatureWarning(26),
                            underTemperatureFault(27),

                            outputOverCurrentFault(32),
                            outputOverCurrentFaultLVShutdown(33),
                            outputOverCurrentWarning(34),
                            outputUnderCurrentFault(35),
                            currentShareFault(36),
                            inPowerLimitingMode(37),
                            outputOverPowerFault(38),
                            outputOverPowerWarning(39),

                            outputOverVoltageFault(40),
                            outputOverVoltageWarning(41),
                            outputUnderVoltageWarning(42),
                            outputUnderVoltageFault(43),
                            outputMaxMinWarning(44),
                            tonMaxFault(45),
                            toffMaxWarning(46),
                            outputVoltageTrackingError(47),

                            inputOverVoltageFault(48),
                            inputOverVoltageWarning(49),
                            inputUnderVoltageWarning(50),
                            inputUnderVoltageFault(51),
                            unitOffForLowInputVoltage(52),
                            inputOverCurrentFault(53),
                            inputOverCurrentWarning(54),
                            inputOverPowerWarning(55),

                            fan1Fault(56),
                            fan2Fault(57),
                            fan1Warning(58),
                            fan2Warning(59),
                            fan1SpeedOverride(60),
                            fan2SpeedOverride(61),
                            airFlowFault(62),
                            airFlowWarning(63)
                        }
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "Faults reported by the power supply."
    ::= { cnRPSTableEntry 11 }

cnRPSType OBJECT-TYPE
    SYNTAX          INTEGER {
                        ac(1),
                        dc(2)
                    }
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "Power supply type."

    ::= { cnRPSTableEntry 12 }

cnRPSModel OBJECT-TYPE
    SYNTAX          DisplayString(SIZE(16))
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "Power supply model name."

    ::= { cnRPSTableEntry 13 }

cnRPSSerial OBJECT-TYPE
    SYNTAX          DisplayString(SIZE(16))
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "Power supply serial number."

    ::= { cnRPSTableEntry 14 }

cnRPSTrapMsg NOTIFICATION-TYPE
     OBJECTS      {
                    cnRPSMaximumPower,
                    cnRPSStatus,
                    cnRPSIndex
                  }
     STATUS       current
     DESCRIPTION
         "This notification is sent out whenever a status change occurs on a power supply."
     ::= { cnRPSMib 2 }

END
