Submission for Power Supplies and Environmental Sensors

Bob Stewart <rlstewart@eng.xyplex.com> Tue, 29 September 1992 22:27 UTC

Return-Path: <owner-chassismib>
Received: by CS.UTK.EDU (5.61++/2.8s-UTK) id AA26030; Tue, 29 Sep 92 18:27:21 -0400
Received: from xap.xyplex.com by CS.UTK.EDU with SMTP (5.61++/2.8s-UTK) id AA26026; Tue, 29 Sep 92 18:27:07 -0400
Received: by xap.xyplex.com id <AA05332@xap.xyplex.com>; Tue, 29 Sep 92 18:25:29 -0500
Date: Tue, 29 Sep 1992 18:25:29 -0500
Message-Id: <9209292325.AA05332@xap.xyplex.com>
From: Bob Stewart <rlstewart@eng.xyplex.com>
To: chassismib@cs.utk.edu
Subject: Submission for Power Supplies and Environmental Sensors


Finally, here's my long-overdue submission for the power supply and
environmental sensor groups for the Chassis MIB.  They're essentially as I'd
described them in the informal description I sent out some time ago.  As I did
the environmental part, it struck me that the way we decided to do it lost the
easy ability to relate a temperature warning to a particular power supply,
which was a reason to have the sensor table indexed by power supply.  On the
other hand, the power supply could have its own overall warnings and problems.

----------------------------

-- Textual Conventions

AutonomousType    ::= OBJECT IDENTIFIER

-- The object identifier is an independently extensible type
-- identification value.  It may, for example indicate a
-- particular sub-tree with further MIB definitions, or
-- define something like a protocol type or type of
-- hardware.



-- the Power Supply group

chasPowerSupply     OBJECT IDENTIFIER ::= { chassis 5 }

-- the Power Supply table

chasPowerSupplyTable OBJECT-TYPE
    SYNTAX SEQUENCE OF ChasPowerSupplyEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "A list of power supply entries, one for each power supply in the 
        chassis."
    ::= { chasPowerSupply 1 }

chasPowerSupplyEntry OBJECT-TYPE
    SYNTAX ChasPowerSupplyEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "Values for a power supply."
    INDEX { chasPowerSupplyIndex }
    ::= { chasPowerSupplyTable 1 }

ChasPowerSupplyEntry ::=
    SEQUENCE {
        chasPowerSupplyIndex
            INTEGER,
        chasPowerSupplyDescr
            DisplayString,
        chasPowerSupplyAdminStatus
            INTEGER,
        chasPowerSupplyOperStatus
            INTEGER,
        chasPowerSupplyHealthText
            DisplayString,
        chasPowerSupplyWarnings
            Counter,
        chasPowerSupplyFailures
            Counter
    }

chasPowerSupplyIndex OBJECT-TYPE
    SYNTAX INTEGER
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "An index value that uniquely identifies a power supply.  This may 
        correspond to a hardware power supply slot, which may or may not be 
        the same as a network device slot (chasSlotIndex)."
    ::= { chasPowerSupplyEntry 1 }

chasPowerSupplyDescr OBJECT-TYPE
    SYNTAX DisplayString (SIZE (0..255))
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "A textual description of the power supply, including the vendor's 
        name and version."
    ::= { chasPowerSupplyEntry 2 }

chasPowerSupplyAdminStatus OBJECT-TYPE
    SYNTAX INTEGER { unknown(1), enable(2), disable(3) }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "Desired status of the power supply."
    ::= { chasPowerSupplyEntry 3 }

chasPowerSupplyOperStatus OBJECT-TYPE
    SYNTAX INTEGER { unknown(1), empty(2), disabled(3), bad(4), warning(5),
                     standby(6), engaged(7), redundant(8) }
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "Actual status of the power supply:

        unknown     status not known
        empty       no power supply installed in slot
        disabled    unable to supply power due to 
        chasPowerSupplyAdminStatus
        bad         unable to supply power due to failure
        warning     supplying power but an output or sensor is bad or 
        warning
        standby     believed usable but not supplying power
        engaged     supplying power
        redundant   supplying power but not needed

        It is an implementation specific matter whether the agent keeps 
        entries with status 'unknown' or 'empty' in the table."
    ::= { chasPowerSupplyEntry 4 }

chasPowerSupplyHealthText OBJECT-TYPE
    SYNTAX DisplayString (SIZE (0..255))
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "A textual description of the power supply's operational status.  
        Agents may use this string to provide detailed information on 
        current failures, including how they were detected, and/or 
        instructions for problem resolution. The contents are 
        agent-specific."
    ::= { chasPowerSupplyEntry 5 }

chasPowerSupplyWarnings OBJECT-TYPE
    SYNTAX Counter
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "The number of times chasPowerSupplyOperStatus has gone to 
        'warning'."
    ::= { chasPowerSupplyEntry 6 }

chasPowerSupplyFailures OBJECT-TYPE
    SYNTAX Counter
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "The number of times chasPowerSupplyOperStatus has gone to 'bad'."
    ::= { chasPowerSupplyEntry 7 }


-- the Power Supply Output table

chasPowerSupplyOutputTable OBJECT-TYPE
    SYNTAX SEQUENCE OF ChasPowerSupplyOutputEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "A list of power supply output entries, one for each output of each 
        power supply in the chassis."
    ::= { chasPowerSupply 2 }

chasPowerSupplyOutputEntry OBJECT-TYPE
    SYNTAX ChasPowerSupplyEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "Values for a power supply output."
    INDEX { chasPowerSupplyIndex, chasPowerSupplyOutputIndex }
    ::= { chasPowerSupplyOutputTable 1 }

ChasPowerSupplyOutputEntry ::=
    SEQUENCE {
        chasPowerSupplyOutputIndex
            INTEGER,
        chasPowerSupplyOutputStatus
            INTEGER,
        chasPowerSupplyOutputNominalVoltage
            Gauge,
        chasPowerSupplyOutputOfferedVoltage
            Gauge,
        chasPowerSupplyOutputOfferedWattage
            Gauge,
        chasPowerSupplyOutputWarnings
            Counter,
        chasPowerSupplyOutputFailures
            Counter
    }

chasPowerSupplyOutputIndex OBJECT-TYPE
    SYNTAX INTEGER
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "An index value that uniquely identifies an output for the power 
        supply."
    ::= { chasPowerSupplyOutputEntry 1 }

chasPowerSupplyOutputStatus OBJECT-TYPE
    SYNTAX INTEGER { unknown(1), bad(2), warning(3), good(4) }
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "Actual status of the power supply:

        unknown     status not known
        bad         unable to supply power due to failure
        warning     supplying power but marginally
        good        supplying power

        It is an implementation specific matter whether the agent keeps 
        entries with status 'unknown' in the table.  If 'unknown', offered 
        values and counters are meaningless."
    ::= { chasPowerSupplyOutputEntry 2 }

chasPowerSupplyOutputNominalVoltage OBJECT-TYPE
    SYNTAX Gauge
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "In hundredths of a volt, the voltage the output is supposed to 
        supply, such as -5, +5, +12, -15, etc."
    ::= { chasPowerSupplyOutputEntry 3 }

chasPowerSupplyOutputOfferedVoltage OBJECT-TYPE
    SYNTAX Gauge
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "In hundredths of a volt, the voltage actually offered by the 
        output.  If chasPowerSupplyOutputStatus is 'good', the value 0 means 
        offered voltage is not available."
    ::= { chasPowerSupplyOutputEntry 4 }

chasPowerSupplyOutputOfferedWattage OBJECT-TYPE
    SYNTAX Gauge
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "In hundredths of a watt, the wattage actually offered by the 
        output.  If chasPowerSupplyOutputStatus is 'good', the value 0 means 
        offered wattage is not available."
    ::= { chasPowerSupplyOutputEntry 5 }

chasPowerSupplyOutputWarnings OBJECT-TYPE
    SYNTAX Counter
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "The number of times chasPowerSupplyOutputStatus has gone to 
        'warning'."
    ::= { chasPowerSupplyOutputEntry 6 }

chasPowerSupplyOutputFailures OBJECT-TYPE
    SYNTAX Counter
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "The number of times chasPowerSupplyOutputStatus has gone to 
        'bad'."
    ::= { chasPowerSupplyOutputEntry 7 }


-- the Environment group

chasEnviron     OBJECT IDENTIFIER ::= { chassis 6 }

-- the Environment table

chasEnvironTable OBJECT-TYPE
    SYNTAX SEQUENCE OF ChasEnvironEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "A list of environmental entries, one for each environmental sensor 
        in the chassis."
    ::= { chasEnviron 1 }

chasEnvironEntry OBJECT-TYPE
    SYNTAX ChasEnvironEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "Values for a environmental sensor."
    INDEX { chasEnvironIndex }
    ::= { chasEnvironTable 1 }

ChasEnvironEntry ::=
    SEQUENCE {
        chasEnvironSensor
            AutonomousType,
        chasEnvironStatus
            INTEGER,
        chasEnvironWarnings
            Counter,
        chasEnvironFailures
            Counter
    }

chasEnvironSensor OBJECT-TYPE
    SYNTAX AutonomousType
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "The identification of an environmental sensor.  Other 
        AutonomousType values may be defined elsewhere, in association with 
        specific protocols.  However, this document assigns those of known 
        interest as of this writing."
    ::= { chasEnvironEntry 1 }

wellKnownSensors OBJECT IDENTIFIER ::= { chasEnviron 2 }

sensorOther          OBJECT IDENTIFIER ::= { wellKnownSensors 1 }
sensorTemperature    OBJECT IDENTIFIER ::= { wellKnownSensors 2 }
sensorFans           OBJECT IDENTIFIER ::= { wellKnownSensors 3 }
sensorHumidity       OBJECT IDENTIFIER ::= { wellKnownSensors 4 }

chasEnvironStatus OBJECT-TYPE
    SYNTAX INTEGER { unknown(1), bad(2), warning(3), good(4) }
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "Actual status indicated by the sensor.  It is an implementation 
        specific matter whether the agent keeps entries with status 
        'unknown' in the table.  If 'unknown', counters are meaningless."
    ::= { chasEnvironEntry 2 }

chasEnvironWarnings OBJECT-TYPE
    SYNTAX Counter
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "The number of times chasEnvironStatus has gone to 'warning'."
    ::= { chasEnvironEntry 3 }

chasEnvironFailures OBJECT-TYPE
    SYNTAX Counter
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "The number of times chasEnvironStatus has gone to 'bad'."
    ::= { chasEnvironEntry 4 }