-- 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-FAN-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;


            multiFlexServerFanMibModule MODULE-IDENTITY
                LAST-UPDATED "200708161300Z"        -- August 16, 2007 at 13:00 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
                    "Fan Module of the Multi-Flex Server"
                REVISION "200708161300Z"        -- August 16, 2007 at 13:00 GMT
                DESCRIPTION
                    "Corrected a few entries that were marked as read-write
                    when they should have been read-only"
                REVISION "200706190030Z"        -- June 19, 2007 at 00: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 fanFruBmcFirmwareVersion.
                    Added fanFruOpCodeVersion & fanFruBootBlockVersion."
                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
                    "Moved Presence column to just after the index within
                    fanFruTable"
                REVISION "200705211700Z"        -- May 21, 2007 at 17:00 GMT
                DESCRIPTION
                    "Added notApplicable and unknown states to various entries"
                REVISION "200704251700Z"        -- April 25, 2007 at 17:00 GMT
                DESCRIPTION
                    "Dropped fanFruNumOfAxis & fanFruFansPerAxis from
                    fanFruTable"
                REVISION "200704241630Z"        -- April 24, 2007 at 16:30 GMT
                DESCRIPTION
                    "Dropped fanRpmSetting & fanCoefficient from the
                    fanTable (minor column renumbering)"
                REVISION "200704181905Z"        -- April 18, 2007 at 19:00 GMT
                DESCRIPTION
                    "Moved the trees and chassis nodes around to accomodate
                    the unique power supply characteristics"
                REVISION "200704091030Z"        -- April 09, 2007 at 10:30 GMT
                DESCRIPTION
                    "Renamed fanFruFirmwareVersion to
                    fanFruBmcFirmwareVersion to be consistent in naming
                    with the other subsystems"
                REVISION "200704021030Z"        -- April 2, 2007 at 10:30 GMT
                DESCRIPTION
                    "Updated comments to tag fields that may be either
                    statically returned, or that may potentially be
                    removed"
                REVISION "200703141700Z"        -- March 14, 2007 at 17:00 GMT
                DESCRIPTION
                    "Added fanFruNumOfFans, fanFruNumOfAxis,
                    fanFruFansPerAxis, & fanFruInletTemperature to
                    fanFruTable
                    Dropped fanCoolingStatus & fanCoolingSpeed from fanFruTable

                    Added new (replaced) doubly indexed fanTable (indices
                    being the fan FRU and the individual fan within the fan
                    FRU)

                    Renumbered / reorganized accordingly"
                REVISION "200703131500Z"        -- March 13, 2007 at 15:00 GMT
                DESCRIPTION
                    "fanFruTable data now complies with IDROM (DID/DSD)
                    information.

                    Renumbered / reorganized accordingly"
                REVISION "200703061030Z"        -- March 06, 2007 at 10:30 GMT
                DESCRIPTION
                    "Changed Mask representation 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 "200611071130Z"        -- November 07, 2006 at 11:30 GMT
                DESCRIPTION
                    "Consolodated use of Presence datatype and changed 'chassis' to 'chassis'"
                REVISION "200610020629Z"        -- October 02, 2006 at 06:29 GMT
                DESCRIPTION
                    "Partitioned off and created as it's own module"
                ::= { regModule 16 }



-- ----------------------------------------------------------------------------
--
-- Fan group.
--
-- This group contains information about Fan.
--
-- ----------------------------------------------------------------------------

--
-- Fan relevant pieces stored in the chassis
--

        maxFanFrus OBJECT-TYPE
            SYNTAX Unsigned32
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Maximum number of Fans possible in this chassis."
            ::= { chassis 16 }

        numOfFanFrus OBJECT-TYPE
            SYNTAX Integer32
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The number of Fans in the system."
            ::= { chassis 26 }

        fanFruPresenceMask OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "ASCII representation of bit string reflecting the presence
                of the fans with the left most 'bit' being bit 1 and
                maxFans bits being represented.

                Thus, '11011' would express that all fans (of five
                fans) are present except fan 3"
            ::= { chassis 36 }

--
-- fans tree 
--

        fans OBJECT-IDENTITY
            STATUS current
            DESCRIPTION
                "Container for Fan specific information as well as all
                components logically contained within."
            ::= { chassis 206 }


        fanFruTable OBJECT-TYPE
            SYNTAX SEQUENCE OF FanFruEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "Each row describes a Fan FRU in the chassis

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

                All system FRUs rows will be present"
            ::= { fans 1 }

        fanFruEntry OBJECT-TYPE
            SYNTAX FanFruEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                ".."
            INDEX { fanFruIndex }
            ::= { fanFruTable 1 }

        FanFruEntry ::=
            SEQUENCE {

                fanFruIndex                         Index,
                fanFruPresence                      Presence,
                fanFruVendor                        DisplayString,
                fanFruMfgDate                       DisplayString,
                fanFruDeviceName                    DisplayString,
                fanFruPart                          IdromBinary16,
                fanFruSerialNo                      IdromBinary16,
                fanFruMaximumPower                  Power,
                fanFruNominalPower                  Power,
                fanFruAssetTag                      IdromBinary16,
                fanFruPowerLed                      PowerLedStates,
                fanFruFaultLed                      FaultLedStates,
                fanFruOpCodeVersion                 DisplayString,
                fanFruBootBlockVersion              DisplayString,
                fanFruNumOfFans                     INT32withException,
                fanFruInletTemperature              INT32withException

             }

        fanFruIndex OBJECT-TYPE
            SYNTAX Index
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "column used to identify a particular Fan FRU."
            ::= { fanFruEntry 1 }

        fanFruPresence OBJECT-TYPE
            SYNTAX Presence
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Flag whether this Fan FRU is present"
            ::= { fanFruEntry 2 }

--
-- IDROM data
--

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

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

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

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

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

        fanFruMaximumPower 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"
            ::= { fanFruEntry 8 }

        fanFruNominalPower 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"
            ::= { fanFruEntry 9 }

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

--
-- Physical attributes
--

        fanFruPowerLed OBJECT-TYPE
            SYNTAX PowerLedStates
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "State of the Power LED on the Fan FRU"
            ::= { fanFruEntry 11 }

        fanFruFaultLed OBJECT-TYPE
            SYNTAX FaultLedStates
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "State of the Fault LED on the Fan FRU"
            ::= { fanFruEntry 12 }

        fanFruOpCodeVersion OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Op code version on the Fan FRU"
            ::= { fanFruEntry 13 }

        fanFruBootBlockVersion OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Boot Block version on the Fan FRU"
            ::= { fanFruEntry 14 }

--
-- Additional IMPI data
--

        fanFruNumOfFans 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"
            ::= { fanFruEntry 15 }

        fanFruInletTemperature OBJECT-TYPE
            SYNTAX INT32withException
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "FRU Inlet Temperature in Degrees Celsius"
            ::= { fanFruEntry 16 }

---

        fanTable OBJECT-TYPE
            SYNTAX SEQUENCE OF FanEntry
            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
                fanFruNumOfFans in the fanFruTable for a particular FRU)"
            ::= { fans 2 }

        fanEntry OBJECT-TYPE
            SYNTAX FanEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                ".."
            INDEX { fanFruIndex, fanIndex }
            ::= { fanTable 1 }

        FanEntry ::=
            SEQUENCE {

                fanIndex                            Index,
                fanRpmMinimum                       INTEGER,
                fanRpmMaximum                       INTEGER,
                fanRpmReading                       INTEGER

             }

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

        fanRpmMinimum OBJECT-TYPE
            SYNTAX INTEGER {
                    notApplicable(-2),
                    unknown(-1)
                }
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Minimum settable RPM
                
                Potentially to be removed - See Murali/Niel"
            ::= { fanEntry 2 }

        fanRpmMaximum OBJECT-TYPE
            SYNTAX INTEGER {
                    notApplicable(-2),
                    unknown(-1)
                }
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Maximum settable RPM
                
                Potentially to be removed - See Murali/Niel"
            ::= { fanEntry 3 }

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

                0       - Fan not spinning
                ffffh   - Fan speed is currently in transition (not valid)"
            ::= { fanEntry 4 }


--
-- (Fan) Group information
--

        fanGroup OBJECT-GROUP
            OBJECTS {

                maxFanFrus,
                numOfFanFrus,
                fanFruPresenceMask,

                fanFruIndex,
                fanFruVendor,
                fanFruMfgDate,
                fanFruDeviceName,
                fanFruPart,
                fanFruSerialNo,
                fanFruMaximumPower,
                fanFruNominalPower,
                fanFruAssetTag,
                fanFruPowerLed,
                fanFruFaultLed,
                fanFruOpCodeVersion,
                fanFruBootBlockVersion,
                fanFruPresence,
                fanFruNumOfFans,
                fanFruInletTemperature,

                fanIndex,
                fanRpmMinimum,
                fanRpmMaximum,
                fanRpmReading

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


    END

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