RADLAN-HWENVIROMENT DEFINITIONS ::= BEGIN

IMPORTS
    rnd                                             FROM RADLAN-MIB
    MODULE-IDENTITY, OBJECT-TYPE, Unsigned32        FROM SNMPv2-SMI
    TEXTUAL-CONVENTION, DisplayString,TruthValue    FROM SNMPv2-TC;

rlEnv MODULE-IDENTITY
        LAST-UPDATED "200309210000Z"
        ORGANIZATION "Marvell Semiconductor, Inc."
        CONTACT-INFO
			"5488 Marvell Lane
			Santa Clara, CA 95054
			USA

			Website:  www.marvell.com"
        DESCRIPTION
                "The private MIB module definition for environment of Radlan devices."
        REVISION "200309210000Z"
        DESCRIPTION
                "Added this MODULE-IDENTITY clause."
        ::= { rnd 83 }

RlEnvMonState ::= TEXTUAL-CONVENTION
        STATUS  current
        DESCRIPTION
                "Represents the state of a device being monitored.
                 Valid values are:

                 normal(1):         the environment is good, such as low
                                    temperature or full battery charge.

                 warning(2):        the environment is bad, such as temperature
                                    above normal operation range but not too
                                    high, or battery discharge.

                 critical(3):       the environment is very bad, such as
                                    temperature much higher than normal
                                    operation limit or critically low battery charge.

                 shutdown(4):       the environment is the worst, the system
                                    should be shutdown immediately.

                 notPresent(5):     the environmental monitor is not present,
                                    such as temperature sensors or battery does not exist.

                 notFunctioning(6): the environmental monitor does not
                                    function properly, such as a temperature
                                    sensor generates a abnormal data like
                                    1000 or error happens while reading battery
                                    state.

                 restore(7):        the environment is restoring its normal state,
                                    such as battery recharging.
                "
        SYNTAX  INTEGER {
                        normal(1),
                        warning(2),
                        critical(3),
                        shutdown(4),
                        notPresent(5),
                        notFunctioning(6),
                        restore(7),
                        notAvailable(8),
                        backingUp(9),
                        readingFailed(10)
                }


RlEnvMonDirection ::= TEXTUAL-CONVENTION
        STATUS  current
        DESCRIPTION
                "Represents the state of a device being monitored.
                 Valid values are:

                 unKnown(1):        if the board not support air flow direction.

                 frontToBack(2):    the air flow direction of the fan is front to back.

                 backToFront(3):    the air flow direction of the fan is back to front.

                 clockwise(4):      the air flow direction of the fan is clock wise

                 unClockwise(5):    the air flow direction of the fan is unclock wise

                 insideOutside(6):  the air flow direction of the fan is inside outside

                 outsideInside(7):  the air flow direction of the fan is outside inside

                 rightToLeft(8):    the air flow direction of the fan is from right to left

                 leftToRight(9):    the air flow direction of the fan is from left to right

                "
        SYNTAX  INTEGER {
                        unKnown(1),
                        frontToBack(2),
                        backToFront(3),
                        clockwise(4),
                        unClockwise(5),
                        insideOut(6),
                        outsideIn(7),
                        rightToLeft(8),
                        leftToRight(9)
                }

rlEnvPhysicalDescription OBJECT IDENTIFIER ::= { rlEnv 1 }

rlEnvMonFanStatusTable OBJECT-TYPE
        SYNTAX     SEQUENCE OF RlEnvMonFanStatusEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                "The table of fan status maintained by the environmental
                monitor."
        ::= { rlEnvPhysicalDescription 1 }

rlEnvMonFanStatusEntry OBJECT-TYPE
        SYNTAX     RlEnvMonFanStatusEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                "An entry in the fan status table, representing the status of
                the associated fan maintained by the environmental monitor."
        INDEX   { rlEnvMonFanStatusIndex }
        ::= { rlEnvMonFanStatusTable 1 }

RlEnvMonFanStatusEntry ::=
        SEQUENCE {
                rlEnvMonFanStatusIndex       INTEGER,
                rlEnvMonFanStatusDescr       DisplayString,
                rlEnvMonFanState             RlEnvMonState
        }

rlEnvMonFanStatusIndex OBJECT-TYPE
        SYNTAX     INTEGER
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                "Unique index for the fan being instrumented.
                This index is for SNMP purposes only, and has no
                intrinsic meaning."
        ::= { rlEnvMonFanStatusEntry 1 }

rlEnvMonFanStatusDescr OBJECT-TYPE
        SYNTAX     DisplayString (SIZE (0..32))
        MAX-ACCESS read-only

        STATUS     current
        DESCRIPTION
                "Textual description of the fan being instrumented.
                This description is a short textual label, suitable as a
                human-sensible identification for the rest of the
                information in the entry."
        ::= { rlEnvMonFanStatusEntry 2 }

rlEnvMonFanState OBJECT-TYPE
        SYNTAX     RlEnvMonState
        MAX-ACCESS read-only

        STATUS     current
        DESCRIPTION
                "The mandatory  state of the fan being instrumented."
        ::= { rlEnvMonFanStatusEntry 3 }



rlEnvMonSupplyStatusTable OBJECT-TYPE
        SYNTAX     SEQUENCE OF RlEnvMonSupplyStatusEntry
        MAX-ACCESS not-accessible

        STATUS     current
        DESCRIPTION
                "The table of power supply status maintained by the
                environmental monitor card."
        ::= { rlEnvPhysicalDescription 2 }

rlEnvMonSupplyStatusEntry OBJECT-TYPE
        SYNTAX     RlEnvMonSupplyStatusEntry
        MAX-ACCESS not-accessible

        STATUS     current
        DESCRIPTION
                "An entry in the power supply status table, representing the
                status of the associated power supply maintained by the
                environmental monitor card."
        INDEX   { rlEnvMonSupplyStatusIndex }
        ::= { rlEnvMonSupplyStatusTable 1  }

RlEnvMonSupplyStatusEntry ::=
        SEQUENCE {
                rlEnvMonSupplyStatusIndex    INTEGER ,
                rlEnvMonSupplyStatusDescr    DisplayString,
                rlEnvMonSupplyState          RlEnvMonState,
                rlEnvMonSupplySource         INTEGER,
                rlEnvMonSupplyFanDirection   RlEnvMonDirection
        }

rlEnvMonSupplyStatusIndex OBJECT-TYPE
        SYNTAX     INTEGER (0..2147483647)
        MAX-ACCESS not-accessible

        STATUS     current
        DESCRIPTION
                "Unique index for the power supply being instrumented.
                This index is for SNMP purposes only, and has no
                intrinsic meaning."
        ::= { rlEnvMonSupplyStatusEntry 1 }

rlEnvMonSupplyStatusDescr OBJECT-TYPE
        SYNTAX     DisplayString (SIZE (0..32))
        MAX-ACCESS read-only

        STATUS     current
        DESCRIPTION
                "Textual description of the power supply being instrumented.
                This description is a short textual label, suitable as a
                human-sensible identification for the rest of the
                information in the entry."
        ::= { rlEnvMonSupplyStatusEntry 2 }

rlEnvMonSupplyState OBJECT-TYPE
        SYNTAX     RlEnvMonState
        MAX-ACCESS read-only

        STATUS     current
        DESCRIPTION
                "The mandatory  state of the power supply being instrumented."
        ::= { rlEnvMonSupplyStatusEntry 3 }

rlEnvMonSupplySource OBJECT-TYPE
        SYNTAX INTEGER {
                        unknown(1),
                        ac(2),
                        dc(3),
                        externalPowerSupply(4),
                        internalRedundant(5)
                }
        MAX-ACCESS read-only

        STATUS     current
        DESCRIPTION
                "The power supply source.
                 unknown - Power supply source unknown
                 ac      - AC power supply
                 dc      - DC power supply
                 externalPowerSupply - External power supply
                 internalRedundant - Internal redundant power supply
                "
        ::= { rlEnvMonSupplyStatusEntry 4 }

rlEnvMonSupplyFanDirection OBJECT-TYPE
        SYNTAX     RlEnvMonDirection
        MAX-ACCESS read-only

        STATUS     current
        DESCRIPTION
                "The direction of the power supply's fan."
        ::= { rlEnvMonSupplyStatusEntry 5 }

--------------------------------------------------------------------------------
-- rlEnvMonIndexTable
--------------------------------------------------------------------------------

rlEnvMonIndexTable OBJECT-TYPE
        SYNTAX     SEQUENCE OF RlEnvMonIndexEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                "The table that can help building indexes for EnvMon tables."
        ::= { rlEnvPhysicalDescription 10 }

rlEnvMonIndexEntry OBJECT-TYPE
        SYNTAX     RlEnvMonIndexEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                "An entry in table, representing the index input parameters."
        INDEX   { rlEnvMonIndexUnitId, rlEnvMonIndexObjType, rlEnvMonIndexObjIndex }
        ::= { rlEnvMonIndexTable 1 }

RlEnvMonIndexEntry ::=
        SEQUENCE {
                rlEnvMonIndexUnitId       INTEGER,
                rlEnvMonIndexObjType      INTEGER,
                rlEnvMonIndexObjIndex     INTEGER,
                rlEnvMonIndexValue        INTEGER
        }

rlEnvMonIndexUnitId OBJECT-TYPE
        SYNTAX     INTEGER
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                "Unit ID."
        ::= { rlEnvMonIndexEntry 1 }

rlEnvMonIndexObjType OBJECT-TYPE
        SYNTAX     INTEGER {
                        powerSupply(5),
                        fan(6),
                        thermalSensorUnderCard(14)
                   }
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                "Object type."
        ::= { rlEnvMonIndexEntry 2 }

rlEnvMonIndexObjIndex OBJECT-TYPE
        SYNTAX     INTEGER
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                "Index of object."
        ::= { rlEnvMonIndexEntry 3 }

rlEnvMonIndexValue OBJECT-TYPE
        SYNTAX     INTEGER
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                "Calculated index value."
        ::= { rlEnvMonIndexEntry 4 }

rlEnvFanData OBJECT IDENTIFIER ::= { rlEnv 5 }

rlEnvFanDataTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF RlEnvFanDataEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "For each unit in a stack"
    ::= { rlEnvFanData 1 }

rlEnvFanDataEntry OBJECT-TYPE
    SYNTAX      RlEnvFanDataEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry of this table specifies a unit"
    INDEX  { rlEnvFanDataStackUnit }
    ::= { rlEnvFanDataTable 1 }

RlEnvFanDataEntry ::= SEQUENCE {
    rlEnvFanDataStackUnit      INTEGER,
    rlEnvFanDataTemp           INTEGER,
    rlEnvFanDataSpeed          INTEGER,
    rlEnvFanDataOperLevel      INTEGER,
    rlEnvFanDataAdminLevel     INTEGER,
    rlEnvFanDataDirection      RlEnvMonDirection
}

rlEnvFanDataStackUnit OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of the stack unit"
    ::= { rlEnvFanDataEntry 1 }

rlEnvFanDataTemp OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The unit temperature"
    ::= { rlEnvFanDataEntry 2 }

rlEnvFanDataSpeed OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Fan speed in RPM"
    ::= { rlEnvFanDataEntry 3 }

rlEnvFanDataOperLevel OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Fan speed operative level"
    ::= { rlEnvFanDataEntry 4 }

rlEnvFanDataAdminLevel OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Configured fan speed level"
    ::= { rlEnvFanDataEntry 5 }

rlEnvFanDataDirection OBJECT-TYPE
        SYNTAX     RlEnvMonDirection
        MAX-ACCESS read-only

        STATUS     current
        DESCRIPTION
                "The direction of the system's fan."
        ::= { rlEnvFanDataEntry 6 }


-- ************ Redundant Fan ************** --

RlEnvRedundantFanStatus ::= TEXTUAL-CONVENTION
        STATUS  current
        DESCRIPTION
                "Represents the status of a redundant fan.
                                Valid values are:
                                Ready(1):        fan is ready and not active (all fans are O.K)
                                Active(2):        fan is active (one or more fan failed)
                                Failure(3): fan failure "

        SYNTAX  INTEGER {
                        ready(1),
                        active(2),
                        failure(3),
                        notPresent(4)
        }

rlEnvRedundantFanTable OBJECT-TYPE
        SYNTAX     SEQUENCE OF RlEnvRedundantFanEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                "Table of redundant fan status"
        ::= { rlEnv 6 }

rlEnvRedundantFanEntry OBJECT-TYPE
        SYNTAX     RlEnvRedundantFanEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                "An entry in the redundant fan status table, representing the status of the associated fan "
        INDEX   { rlEnvRedundantFanUnitId, rlEnvRedundantFanIndex }
        ::= { rlEnvRedundantFanTable 1 }

RlEnvRedundantFanEntry ::=
        SEQUENCE {
            rlEnvRedundantFanUnitId     Unsigned32,
            rlEnvRedundantFanIndex      INTEGER,
            rlEnvRedundantFanStatus     RlEnvRedundantFanStatus
        }

rlEnvRedundantFanUnitId OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of the stack unit"
    ::= { rlEnvRedundantFanEntry 1 }

rlEnvRedundantFanIndex OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The fan index"
    ::= { rlEnvRedundantFanEntry 2 }

rlEnvRedundantFanStatus OBJECT-TYPE
    SYNTAX      RlEnvRedundantFanStatus
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The fan status"
    ::= { rlEnvRedundantFanEntry 3 }

rlEnvRedundantFanSupported  OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Defines whether Redundant Fan feature is supported"
    ::= { rlEnv 7 }

END

