-- INTEL CONFIDENTIAL
-- Copyright 2006, 2007
-- Intel Corporation All Rights Reserved.
--
-- The source code contained or described herein and all documents related to
-- the source code ("Material") are owned by Intel Corporation or its
-- suppliers and licensors. Title to the Material remains with Intel
-- Corporation or its suppliers and licensors. The Material contains trade
-- secrets and proprietary and confidential information of Intel or its
-- suppliers and licensors. The Material is protected by worldwide copyright
-- and trade secret laws and treaty provisions. No part of the Material may be
-- used, copied, reproduced, modified, published, uploaded, posted,
-- transmitted, distributed, or disclosed in any way without Intel's prior
-- express written permission.
--
-- Unless otherwise expressly permitted by Intel in a separate license
-- agreement, use of the Material is subject to the copyright notices,
-- trademarks, warranty, use, and disclosure restrictions reflected on the
-- outside of the media, in the documents themselves, and in the "About" or
-- "Read Me" or similar file contained within this source code. Unless
-- otherwise expressly agreed by Intel in writing, you may not remove
-- or alter such notices in any way.
--

    INTELCORPORATION-MULTI-FLEX-SERVER-PWR-MIB DEFINITIONS ::= BEGIN

        IMPORTS
            MODULE-IDENTITY, OBJECT-TYPE, OBJECT-IDENTITY, Integer32, Unsigned32
                FROM SNMPv2-SMI

            OBJECT-GROUP
                FROM SNMPv2-CONF

            DisplayString
                FROM SNMPv2-TC

            regModule, groups
                FROM INTELCORPORATION-MULTI-FLEX-SERVER-REG

            Index, PowerLedStates, FaultLedStates, PresenceLedStates,
            Presence, Power, INT32withException, IdromBinary16 
                FROM INTELCORPORATION-MULTI-FLEX-SERVER-TC

            chassis
                FROM INTELCORPORATION-MULTI-FLEX-SERVER-MIB;


            multiFlexServerPwrMibModule MODULE-IDENTITY
                LAST-UPDATED "200708161330Z"        -- August 16, 2007 at 13:30 GMT
                ORGANIZATION
                    "Intel Corporation"
                CONTACT-INFO
                    "Brian Kurle
                    Intel Corporation
                    JF5-2-C3
                    Tel: 503-712-5032
                    E-Mail: brianx.j.kurle@intel.com"
                DESCRIPTION
                    "Power Supply Module of the Multi-Flex Server"
                REVISION "200708161330Z"        -- August 16, 2007 at 13:30 GMT
                DESCRIPTION
                    "Fixed up minor errors causing some managers grief
                    (ommission or addition of commas in lists)

                    Reordered Revision to reverse chronological as some
                    browsers choke, cleaned up some other simple nit-picky
                    errors"

                REVISION "200707201530Z"        -- July 20, 2007 at 15:30 GMT
                DESCRIPTION
                    "Cleaned up much of the documentation to provide more
                    accurate usage of the individual objects.
                    Particularly, paid attention to the double usage of the
                    pwrSupplyTable where some columns are relevant only if
                    the pwrSupplyType is a power supply, and others only
                    relevant if it is a fan blank."
                REVISION "200706191130Z"        -- June 19, 2007 at 11:30 GMT
                DESCRIPTION
                    "Finalized the Version information for the MIB based on
                    information available/used by the rest of the system
                    (e.g., the GUI/fwupdate)

                    Dropped pwrSupplyBmcFirmwareVersion.
                    Added pwrSupplyOpCodeVersion & pwrSupplyBootBlockVersion."
                REVISION "200706072030Z"        -- June 07, 2007 at 20:30 GMT
                DESCRIPTION
                    "Added the IdromBinary16 to represent the asset tag,
                    part number, and serial number fields within the IDROM
                    fields."
                REVISION "200706071330Z"        -- June 07, 2007 at 13:30 GMT
                DESCRIPTION
                    "Corrected maximum/nominal IDROM parameters and comments"
                REVISION "200705301900Z"        -- May 30, 2007 at 19:00 GMT
                DESCRIPTION
                    "Introduced the INT32withException type so that
                    enumeration can be managed globally"
                REVISION "200705221400Z"        -- May 22, 2007 at 14:00 GMT
                DESCRIPTION
                    "Added notApplicable and unknown states to various entries
                    Moved Presence to first column so it's obvious in table display"
                REVISION "200704271600Z"        -- April 27, 2007 at 16:00 GMT
                DESCRIPTION
                    "Cleaned up the pwrSupplyTable (removed input VDC and
                    corrected column sequencing"
                REVISION "200704251400Z"        -- April 25, 2007 at 14:00 GMT
                DESCRIPTION
                    "Dropped fanRpmSetting & fanCoefficient from the
                    pwrSupplyFanTable (minor column renumbering).
                    Dropped pwrSupplyNumOfAxis & pwrSupplyFansPerAxis from
                    pwrSupplyTable"
                REVISION "200704181905Z"        -- April 18, 2007 at 19:00 GMT
                DESCRIPTION
                    "Moved the trees and chassis nodes around to accomodate
                    the unique power supply characteristics.  Added the
                    missing numOfPwrUnknowns & pwrSupplyUnknownPresenceMask"
                REVISION "200704091030Z"        -- April 09, 2007 at 10:30 GMT
                DESCRIPTION
                    "Renamed pwrSupplyFirmwareVersion to
                    pwrSupplyBmcFirmwareVersion to be consistent in naming
                    with other subsystems"
                REVISION "200704021100Z"        -- April 2, 2007 at 11:00 GMT
                DESCRIPTION
                    "Updated comments to tag fields that may be either
                    statically returned, or that may potentially be
                    removed
                    
                    Added Power supply sensors/status"
                REVISION "200703131030Z"        -- March 13, 2007 at 10:30 GMT
                DESCRIPTION
                    "pwrSupplyTable data now complies with IDROM (DID/DSD)
                    information.

                    Changed maxPwrSupplies -> maxPwrSupplyFrus
                    Added numOfPwrBlanks & pwrSupplyBlankPresenceMask

                    Added some token information for the expected fan
                    information

                    Renumbered / reorganized accordingly"
                REVISION "200703061030Z"        -- March 06, 2007 at 10:30 GMT
                DESCRIPTION
                    "Changed Mask representations from an Opaque to a
                    DisplayString at the request of the architects such
                    that it now is an ASCII representation of bit string
                    reflecting the presence with the left most 'bit' being
                    bit 1 and max* bits being represented."
                REVISION "200702221700Z"        -- February 22, 2007 at 17:00 GMT
                DESCRIPTION
                    "Renamed MIB file and updated internal relevance to
                    formal product name Multi-Flex Server"
                REVISION "200611070701Z"        -- November 07, 2006 at 07:01 GMT
                DESCRIPTION
                    "Consolodated use of Presence datatype and changed 'chassis' to 'chassis'"
                REVISION "200609291529Z"        -- September 29, 2006 at 15:29 GMT
                DESCRIPTION
                    "Partitioned off and created as it's own module"
                ::= { regModule 17 }


-- ----------------------------------------------------------------------------
--
-- Power Supply group.
--
-- This group contains information about Power Supply.
--
-- ----------------------------------------------------------------------------

--
-- Power Supply relevant pieces stored in the chassis
--

        maxPwrSupplies OBJECT-TYPE
            SYNTAX Unsigned32
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Maximum number of Power Supply FRUs (including Power
                Supply Blanks and unknown) possible in this chassis."
            ::= { chassis 17 }

        numOfPwrSupplies OBJECT-TYPE
            SYNTAX Integer32
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The number of Power Supplies (excludes blanks & unknown
                Frus in power supply slots)."
            ::= { chassis 27 }

        numOfPwrBlanks OBJECT-TYPE
            SYNTAX Integer32
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The number of Power Supply Blanks (Fan only) in the
                system."
            ::= { chassis 28 }

        numOfPwrUnknowns OBJECT-TYPE
            SYNTAX Integer32
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The number of FRUs occupying power supply slots that are
                neither recognized as power supplies, nor blanks."
            ::= { chassis 29 }

        pwrSupplyPresenceMask OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "ASCII representation of bit string reflecting the presence
                of a recognized power supply in the power supply slots with
                the left most 'bit' being bit 1 and maxPwrSupplies bits
                being represented.  This excludes fan blanks and
                unrecognized FRUs.

                Thus, '0101' would express that power supply FRUs 2 & 4 are
                recognized power supplies present"
            ::= { chassis 37 }

        pwrSupplyBlankPresenceMask OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "ASCII representation of bit string reflecting the presence
                of a recognized fan blanks in the power supply slots with
                the left most 'bit' being bit 1 and maxPwrSupplies bits
                being represented.  This excludes both recognized and
                unrecognized power supplies.

                Thus, '0010' would express that power supply FRU 3 is a
                recognized fan blank present"
            ::= { chassis 38 }

        pwrSupplyUnknownPresenceMask OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "ASCII representation of bit string reflecting the presence
                of a unrecognized FRUs in the power supply slots with the
                left most 'bit' being bit 1 and maxPwrSupplies bits being
                represented.  This excludes recognized power supplies and
                fan blanks.

                Thus, '1000' would express that an unrecognized FRU is in
                the power supply slot 1 is present"
            ::= { chassis 39 }

--
-- Power Supply Tree
--

        pwrSupplies OBJECT-IDENTITY
            STATUS current
            DESCRIPTION
                "Container for Power Supply specific information as well as all
                components logically contained within."
            ::= { chassis 207 }


        pwrSupplyTable OBJECT-TYPE
            SYNTAX SEQUENCE OF PwrSupplyEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "Each row describes a Power Supply FRU in the chassis"
            ::= { pwrSupplies 1 }

        pwrSupplyEntry OBJECT-TYPE
            SYNTAX PwrSupplyEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                ".."
            INDEX { pwrSupplyIndex }
            ::= { pwrSupplyTable 1 }

        PwrSupplyEntry ::=
            SEQUENCE {

                pwrSupplyIndex                      Index,
                pwrSupplyPresence                   Presence,
                pwrSupplyVendor                     DisplayString,
                pwrSupplyMfgDate                    DisplayString,
                pwrSupplyDeviceName                 DisplayString,
                pwrSupplyPart                       IdromBinary16,
                pwrSupplySerialNo                   IdromBinary16,
                pwrSupplyMaximumPower               Power,
                pwrSupplyNominalPower               Power,
                pwrSupplyAssetTag                   IdromBinary16,
                pwrSupplyPowerLed                   PowerLedStates,
                pwrSupplyFaultLed                   FaultLedStates,
                pwrSupplyOpCodeVersion              DisplayString,
                pwrSupplyBootBlockVersion           DisplayString,
                pwrSupplyType                       INTEGER,
                pwrSupplyNumOfFans                  INT32withException,
                pwrSupplyInletTemperature           INT32withException,
                pwrSupplyOutputVdc                  INT32withException,
                pwrSupplyOutputAmp                  INT32withException,
                pwrSupplyOutputPickAmp              INT32withException,
                pwrSupplyHotspotTemp                INT32withException,
                pwrSupplyEmbTemp                    INT32withException,
                pwrSupplyStatus                     BITS

             }

        pwrSupplyIndex OBJECT-TYPE
            SYNTAX Index
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "column used to identify a particular Power Supply."
            ::= { pwrSupplyEntry 1 }

        pwrSupplyPresence OBJECT-TYPE
            SYNTAX Presence
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Flag whether something is occupying the the power
                supply slot (being either a power supply, a power supply
                blank, or unknown device)
                
                pwrSupplyType within this row should be consulted to
                determine what is occupying the slot."
            ::= { pwrSupplyEntry 2 }

        pwrSupplyVendor OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Device manufacturer"
            ::= { pwrSupplyEntry 3 }

        pwrSupplyMfgDate OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Manufacture date/time"
            ::= { pwrSupplyEntry 4 }

        pwrSupplyDeviceName OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Device Name"
            ::= { pwrSupplyEntry 5 }

        pwrSupplyPart OBJECT-TYPE
            SYNTAX IdromBinary16
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Device Part Number"
            ::= { pwrSupplyEntry 6 }

        pwrSupplySerialNo OBJECT-TYPE
            SYNTAX IdromBinary16
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Device Serial Number"
            ::= { pwrSupplyEntry 7 }

        pwrSupplyMaximumPower OBJECT-TYPE
            SYNTAX Power
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Static maximum power generation / consumption (in watts):

                <0      - Negative numbers indicate device consumes power (in watts)
                >0      - Positive numbers indicate device generates power (in watts)
                0       - Device is passive (does not not consume or generate power)
                -1      - Maximum power generation/consumption not known or specified"
            ::= { pwrSupplyEntry 8 }

        pwrSupplyNominalPower OBJECT-TYPE
            SYNTAX Power
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Static Nominal power generation / consumption (in watts):

                <0      - Negative numbers indicate device consumes power (in watts)
                >0      - Positive numbers indicate device generates power (in watts)
                0       - Device is passive (does not not consume or generate power)
                -1      - Nominal power generation/consumption not known or specified"
            ::= { pwrSupplyEntry 9 }

        pwrSupplyAssetTag OBJECT-TYPE
            SYNTAX IdromBinary16
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Asset Tag # of device"
            ::= { pwrSupplyEntry 10 }

        pwrSupplyPowerLed OBJECT-TYPE
            SYNTAX PowerLedStates
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "State of the Power LED on the Power Supply"
            ::= { pwrSupplyEntry 11 }

        pwrSupplyFaultLed OBJECT-TYPE
            SYNTAX FaultLedStates
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "State of the Fault LED on the Power Supply (and optionally
                intiate identification)"
            ::= { pwrSupplyEntry 12 }

        pwrSupplyOpCodeVersion OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "BMC Firmware version on the Fan Blank (only)"
            ::= { pwrSupplyEntry 13 }

        pwrSupplyBootBlockVersion OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "BMC Firmware version on the Fan Blank (only)"
            ::= { pwrSupplyEntry 14 }

        pwrSupplyType OBJECT-TYPE
            SYNTAX INTEGER {
                    notApplicable(-32),
                    unknown(-16),
                    powerSuppy(1),
                    powerSupplyBank(2)
                }
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Enumeration telling what kind of power supply FRU is in the slot"
            ::= { pwrSupplyEntry 15 }

        pwrSupplyNumOfFans OBJECT-TYPE
            SYNTAX INT32withException
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Number of Fans contained within this FRU
                
                May be static data given the FRU"
            ::= { pwrSupplyEntry 16 }

        pwrSupplyInletTemperature OBJECT-TYPE
            SYNTAX INT32withException
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Power supply Fan blank FRU Inlet Temperature in Degrees
                Celsius (not applicable to power supplies that do not have
                an Inlet Temperature"
            ::= { pwrSupplyEntry 17 }


--
-- Power supply sensors
--

        pwrSupplyOutputVdc OBJECT-TYPE
            SYNTAX INT32withException
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Power supply's output voltage in millivolts

                notApplicable     - if a power supply fan blank, or isn't
                                    present
                unknown           - if device type is unknown"
            ::= { pwrSupplyEntry 18 }
            
        pwrSupplyOutputAmp OBJECT-TYPE
            SYNTAX INT32withException
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Power supply's output amperage in milliamps

                notApplicable     - if a power supply fan blank, or isn't
                                    present
                unknown           - if device type is unknown"
            ::= { pwrSupplyEntry 19 }

        pwrSupplyOutputPickAmp OBJECT-TYPE
            SYNTAX INT32withException
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Power supply's output pick amperage in milliiamps

                notApplicable     - if a power supply fan blank, or isn't
                                    present
                unknown           - if device type is unknown"
            ::= { pwrSupplyEntry 20 }

        pwrSupplyHotspotTemp OBJECT-TYPE
            SYNTAX INT32withException
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Power supply's Hotspot Temperature in degrees Celsius

                degrees Celsius   - when power supply is present
                notApplicable     - if a power supply fan blank, or isn't
                                    present
                unknown           - if device type is unknown"
            ::= { pwrSupplyEntry 21 }

        pwrSupplyEmbTemp OBJECT-TYPE
            SYNTAX INT32withException
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Power supply's EMB Temperature in degrees Celsius

                degrees Celsius   - when power supply is present
                notApplicable     - if a power supply fan blank, or isn't
                                    present
                unknown           - if device type is unknown"
            ::= { pwrSupplyEntry 22 }

        pwrSupplyStatus OBJECT-TYPE
            SYNTAX BITS {
                    unused1(0),
                    unused2(1),
                    powerSupplyOn(2),
                    powerOK(3),
                    unused(4),
                    overTemp(5),
                    overCurrent(6),
                    supplyFault(7)
                }
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Power supply's status bits (power supply only)
                This is used to provide multiple enumerations (by bits) of
                the status.  E.g., powerSupplyOn(2) powerOK(3).
                "
            ::= { pwrSupplyEntry 23 }


--
-- Individual Fans within a power supply or power supply blank
--

        pwrSupplyFanTable OBJECT-TYPE
            SYNTAX SEQUENCE OF PwrSupplyFanEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "Each row describes a Fan in a Fan FRU (indexed by the Fan
                FRU and by individual Fan)

                Current, this should include the 3 Fan FRUs (the two system
                Fan FRUs and the I/O Fan FRU)

                The number of Fans is dependent upon the FRU (see
                pwrSupplyFanFruNumOfFans in the fanFruTable for a particular FRU)"
            ::= { pwrSupplies 2 }

        pwrSupplyFanEntry OBJECT-TYPE
            SYNTAX PwrSupplyFanEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                ".."
            INDEX { pwrSupplyIndex, pwrSupplyFanIndex }
            ::= { pwrSupplyFanTable 1 }

        PwrSupplyFanEntry ::=
            SEQUENCE {

                pwrSupplyFanIndex                   Index,
                pwrSupplyFanRpmMinimum              Integer32,
                pwrSupplyFanRpmMaximum              Integer32,
                pwrSupplyFanRpmReading              INTEGER

             }

        pwrSupplyFanIndex OBJECT-TYPE
            SYNTAX Index
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "which pwrSupplyFan within a FRU we're talking about"
            ::= { pwrSupplyFanEntry 1 }

        pwrSupplyFanRpmMinimum OBJECT-TYPE
            SYNTAX Integer32
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Minimum settable RPM
                
                Potentially to be removed - See Murali/Niel"
            ::= { pwrSupplyFanEntry 2 }

        pwrSupplyFanRpmMaximum OBJECT-TYPE
            SYNTAX Integer32
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Maximum settable RPM
                
                Potentially to be removed - See Murali/Niel"
            ::= { pwrSupplyFanEntry 3 }

        pwrSupplyFanRpmReading OBJECT-TYPE
            SYNTAX INTEGER {
                    notApplicable(-32),
                    unknown(-16),
                    notspinning (0)
            }
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Fan's current RPM reading:

                 0            - Fan not spinning
                unknown       - Indeterminate data (no communications, or unknown device present)
                notApplicable - Not present"
            ::= { pwrSupplyFanEntry 4 }

--
-- (Power Supply) Group information
--

        pwrSupplyGroup OBJECT-GROUP
            OBJECTS {

                maxPwrSupplies,
                numOfPwrSupplies,
                numOfPwrBlanks,
                numOfPwrUnknowns,
                pwrSupplyPresenceMask,
                pwrSupplyBlankPresenceMask,
                pwrSupplyUnknownPresenceMask,

                pwrSupplyIndex,
                pwrSupplyVendor,
                pwrSupplyMfgDate,
                pwrSupplyDeviceName,
                pwrSupplyPart,
                pwrSupplySerialNo,
                pwrSupplyMaximumPower,
                pwrSupplyNominalPower,
                pwrSupplyAssetTag,
                pwrSupplyPowerLed,
                pwrSupplyFaultLed,
                pwrSupplyOpCodeVersion,
                pwrSupplyBootBlockVersion,
                pwrSupplyPresence,
                pwrSupplyType,
                pwrSupplyNumOfFans,
                pwrSupplyInletTemperature,
                pwrSupplyOutputVdc,
                pwrSupplyOutputAmp,
                pwrSupplyOutputPickAmp,
                pwrSupplyHotspotTemp,
                pwrSupplyEmbTemp,
                pwrSupplyStatus,

                pwrSupplyFanIndex,
                pwrSupplyFanRpmMinimum,
                pwrSupplyFanRpmMaximum,
                pwrSupplyFanRpmReading

            }
            STATUS current
            DESCRIPTION
                "Description."
            ::= { groups 17 }


    END

--  vim:ts=4:ai:nohls:nowrap:expandtab
