-- ==================================================================
-- Copyright (c) 2010-2013 Hewlett-Packard Development Company, L.P.
--
-- Description: Device Management MIB
-- Reference:
-- Version: V2.4
-- History:
--      V1.0 (1) Created by Hou Qiang, 2001.06.29
--           (2) Revised by Qi Zhenglin, 2001.12.30 ----r003 revision
--      V1.1 2004/7/20 import hpnicfLswFrameIndex, hpnicfLswSlotIndex
--           FROM HPN-ICF-LSW-DEV-ADM-MIB
--      V1.2 2004/09/10
--           1) change all MIB objects' STATUS from mandatory to current.
--           2) remove statement before hpnicfLswdevMMib
--           3) adjust file format, change tab to space and some small
--              changes.
--           4) change STATUS of hpnicfCfmWriteFlash and hpnicfCfmEraseFlash
--              from write-only to read-write.
--      V2.0 2004-10-12 updated by gaolong
--           Import Gauge32, OBJECT-IDENTITY.
--           Relocate hpnicfLswdevMMib MODULE-IDENTITY clause.
--           Change ACCESS to MAX-ACCESS
--           Change Gauge to Gauge32.
--           Change value of hpnicfDevMFanStatus and hpnicfDevMPowerStatus from underscores to hyphens.
--      V2.1  2005-01-12
--           Change the description of hpnicfFlhTotalSize and hpnicfFlhTotalFree by sunqiang
--      V2.2  2005-06-10 updated by Chen Xi
--           Modify the SYNTAX and DESCRIPTION of hpnicfLinkUpDownTrapEnable
--           and adjust file format.
--      V2.3  2011-11-26 updated by duyanbing
--           Add hpnicfDevMFirstTrapTime.
--      V2.4  2012-04-26
--           Added hpnicfdevMExternalAlarmStatus for reserving by wangcong.
-- ==================================================================
-- ==================================================================
--
-- Varibles and types be imported
--
-- ==================================================================
HPN-ICF-LswDEVM-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, TimeTicks, Gauge32, OBJECT-IDENTITY
        FROM SNMPv2-SMI

    hpnicflswCommon, hpnicfRhw
        FROM HPN-ICF-OID-MIB
    hpnicfLswFrameIndex, hpnicfLswSlotIndex
        FROM HPN-ICF-LSW-DEV-ADM-MIB
        ;

hpnicfLswdevMMib MODULE-IDENTITY
        LAST-UPDATED "201111260000Z"
        ORGANIZATION
            ""
        CONTACT-INFO
            ""
        DESCRIPTION
        ""
        REVISION "200106290000Z"
        DESCRIPTION
        ""
        ::= { hpnicflswCommon  9 }


hpnicfDevice OBJECT IDENTIFIER ::= { hpnicfRhw 8 }

-- ==================================================================
--
-- ======================= definition begin =========================
--
-- ==================================================================

hpnicfCpuTable  OBJECT-TYPE
    SYNTAX  SEQUENCE OF HpnicfCpuEntry
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
            "A table of CPU statistics."
    ::= { hpnicfDevice 1 }

hpnicfCpuEntry  OBJECT-TYPE
    SYNTAX  HpnicfCpuEntry
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
            "The Entries of hpnicfCpuTable."
    INDEX   { hpnicfCpuIndex }
    ::= { hpnicfCpuTable  1 }

HpnicfCpuEntry ::=
   SEQUENCE {
            hpnicfCpuIndex          INTEGER,
            hpnicfCpuCostRate       Gauge32,
            hpnicfCpuCostRatePer1Min       Gauge32,
            hpnicfCpuCostRatePer5Min       Gauge32
           }

hpnicfCpuIndex  OBJECT-TYPE
    SYNTAX  INTEGER
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
            "Index of hpnicfCpuTable. This integer is a  uniq number to
             identify the CPU(s). We recommand two Number Plans in this
             paper, Logical Number or Phisical Number. For the first
             case, hpnicfCpuIndex is a integer, range from 1 to the Maximum
             number, for example 1,2,3,4,5 ..., where 1 represents
             the first CPU, 2 represents the second CPU, etc.  For the
             second case hpnicfCpuIndex represents physical card position
             (Shelf Number, Frame Number, Slot Number, SubSlotNumber)
             where the CPU residing, for example, 0x01020304 represent
             the CPU on the 4th subslot of the 3th slot of the 2nd frame
             of the 1st Shelf. In the condition of multiple CPU system
             where CPU group coordinately  process on one board, we see
             the CPUs as one CPU"
    ::= { hpnicfCpuEntry 1 }

hpnicfCpuCostRate  OBJECT-TYPE
   SYNTAX  Gauge32
   MAX-ACCESS  read-only
   STATUS  current
   DESCRIPTION
           "The overall CPU busy percentage in the last 5 second period. "
   ::= { hpnicfCpuEntry 2 }

hpnicfCpuCostRatePer1Min OBJECT-TYPE
   SYNTAX  Gauge32
   MAX-ACCESS  read-only
   STATUS  current
   DESCRIPTION
           "The overall CPU cost percentage in the last 1 minute period. "
   ::= { hpnicfCpuEntry 3 }

hpnicfCpuCostRatePer5Min OBJECT-TYPE
   SYNTAX  Gauge32
   MAX-ACCESS  read-only
   STATUS  current
   DESCRIPTION
           "The overall CPU cost percentage in the last 5 minutes period. "
   ::= { hpnicfCpuEntry 4 }


hpnicfMem   OBJECT IDENTIFIER ::= { hpnicfDevice 2 }

hpnicfMemTable  OBJECT-TYPE
    SYNTAX  SEQUENCE OF HpnicfMemEntry
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
            "This table contains memory information.  "
    ::= { hpnicfMem 1 }

hpnicfMemEntry  OBJECT-TYPE
    SYNTAX  HpnicfMemEntry
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
            "The Entries of hpnicfMemTable"
    INDEX   { hpnicfMemModuleIndex }
            ::= { hpnicfMemTable  1 }

HpnicfMemEntry ::=
   SEQUENCE {
            hpnicfMemModuleIndex     INTEGER,
            hpnicfMemSize            Gauge32,
            hpnicfMemFree            Gauge32,
            hpnicfMemRawSliceUsed    Gauge32,
            hpnicfMemLgFree          Gauge32,
            hpnicfMemFail            Gauge32,
            hpnicfMemFailNoMem       Gauge32
            }

hpnicfMemModuleIndex   OBJECT-TYPE
    SYNTAX  INTEGER
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
            "Index of hpnicfMemTable. This integer is a  uniq number to
             identify the memory module. We recommand two Number Plans
             in this paper, Logical Number or Phisical Number. For the
             first case, hpnicfMemModuleIndex is a integer, range from 1 to
             the Maximum number, for example 1,2,3,4,5 ..., where 1
             represents the first memory module, 2 represents the second
             memory module, etc.  For the second case hpnicfMemModuleIndex
             represents physical card position (Shelf Number, Frame Number,
             Slot Number, SubSlotNumber) where the memory module residing,
             for example, 0x01020304 represent the memory module on the 4th
             subslot of the 3th slot of the 2nd frame of the 1st Shelf. "
    ::= { hpnicfMemEntry  1 }

hpnicfMemSize OBJECT-TYPE
    SYNTAX  Gauge32
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
           "Indicates the total size of the memory module
            which is on the managed object."
    ::= { hpnicfMemEntry  2 }

hpnicfMemFree OBJECT-TYPE
    SYNTAX  Gauge32
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
           "Indicates the free size of the memory"
    ::= { hpnicfMemEntry  3 }

hpnicfMemRawSliceUsed OBJECT-TYPE
    SYNTAX  Gauge32
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
           "Indicates the used size of the raw slice memory"
    ::= { hpnicfMemEntry  4 }

hpnicfMemLgFree OBJECT-TYPE
    SYNTAX  Gauge32
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
           "The largest free size of the contiguous area in the memory.
           The unit is byte."
    ::= { hpnicfMemEntry  5 }

hpnicfMemFail OBJECT-TYPE
     SYNTAX  Gauge32
     MAX-ACCESS  read-only
     STATUS  current
     DESCRIPTION
             "The times of memory allocation failures"
     ::= { hpnicfMemEntry 6 }

hpnicfMemFailNoMem OBJECT-TYPE
     SYNTAX  Gauge32
     MAX-ACCESS  read-only
     STATUS  current
     DESCRIPTION
             "The times of memory allocation failures due to no free memory."
     ::= { hpnicfMemEntry 7 }


hpnicfBufTable    OBJECT-TYPE
    SYNTAX  SEQUENCE OF HpnicfBufEntry
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
            "This table contains buffer information.  "
    ::= { hpnicfMem 2 }

hpnicfBufEntry   OBJECT-TYPE
    SYNTAX  HpnicfBufEntry
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
            "The Entries of hpnicfBufferTable"
    INDEX   { hpnicfBufModuleIndex , hpnicfBufSize }
    ::= { hpnicfBufTable  1 }

HpnicfBufEntry ::=
   SEQUENCE {
            hpnicfBufModuleIndex     INTEGER,
            hpnicfBufSize            INTEGER,
            hpnicfBufCurrentTotal    Gauge32,
            hpnicfBufCurrentUsed     Gauge32
           }

hpnicfBufModuleIndex   OBJECT-TYPE
    SYNTAX  INTEGER
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
            "Index of hpnicfBufferTable. This integer is a  uniq number to
             identify the buffer module. We recommand two Number Plans
             in this paper, Logical Number or Phisical Number. For the
             first case, hpnicfBufferModuleIndex is a integer, range from 1 to
             the Maximum number, for example 1,2,3,4,5 ..., where 1
             represents the first buffer module, 2 represents the second
             buffer module, etc.  For the second case hpnicfBufferModuleIndex
             represents physical card position (Shelf Number, Frame Number,
             Slot Number, SubSlotNumber) where the buffer module residing,
             for example, 0x01020304 represent the buffer module on the 4th
             subslot of the 3th slot of the 2nd frame of the 1st Shelf. "
    ::= { hpnicfBufEntry  1 }

hpnicfBufSize OBJECT-TYPE
    SYNTAX  INTEGER
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
            "The size of buffer,unit is byte."
    ::= { hpnicfBufEntry 2 }

hpnicfBufCurrentTotal OBJECT-TYPE
    SYNTAX  Gauge32
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "The total number of buffer currently."
    ::= { hpnicfBufEntry 3 }

hpnicfBufCurrentUsed OBJECT-TYPE
    SYNTAX  Gauge32
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "The number of used buffer currently."
    ::= { hpnicfBufEntry 4 }


hpnicfFlh   OBJECT IDENTIFIER ::= { hpnicfDevice 3 }

-- Local Flash Group
-- This group is present in all products which contain flash"

hpnicfFlhTotalSize OBJECT-TYPE
    SYNTAX  INTEGER
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
           "The flash memory's total size, in kilobyte"
    ::= { hpnicfFlh 1 }

hpnicfFlhTotalFree OBJECT-TYPE
    SYNTAX  INTEGER
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
           "The free space in internal flash memory, in kilobyte"
    ::= { hpnicfFlh 2 }

hpnicfFlhLastDelTime OBJECT-TYPE
    SYNTAX  TimeTicks
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
           "The time since system up of the lastest deleting operation of
            flash memory.The value of Zero indicates there is no erasing operation
            since system up"
    DEFVAL { 0 }
    ::= { hpnicfFlh 3 }

hpnicfFlhDelState OBJECT-TYPE
    SYNTAX  INTEGER {
        executing(1),
        ok(2),
        error(3),
        readOnly(4),
        failtoopen(5),
        blockMallocFail(6),
        noneDelOperationSinceStart(7)
    }
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
           "The state indicates the result of current or
            lastest flash memory deleting operation"
    ::= { hpnicfFlh 4 }

hpnicfFlhState OBJECT-TYPE
    SYNTAX  INTEGER {
        busy(1),
        free(2)
    }
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
           "Busy indicates the flash memory is unavailable due to others may be using it,
            and free indicates the flash memory is available now"
    ::= { hpnicfFlh 5 }

-- ==================================================================

hpnicfLswdevMMibObject OBJECT-IDENTITY
    STATUS current
    DESCRIPTION
        "Description."
    ::= { hpnicfLswdevMMib 1 }

hpnicfdevMFanStatusTable OBJECT-TYPE
        SYNTAX SEQUENCE OF HpnicfDevMFanStatusEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION " Fan status description table "
        ::= { hpnicfLswdevMMibObject  1 }


hpnicfdevMFanStatusEntry OBJECT-TYPE
        SYNTAX HpnicfDevMFanStatusEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION " Fan status description table entry "
        INDEX   { hpnicfDevMFanNum }
        ::= { hpnicfdevMFanStatusTable 1}


HpnicfDevMFanStatusEntry ::=
   SEQUENCE {
                hpnicfDevMFanNum    INTEGER,
                hpnicfDevMFanStatus INTEGER
            }

hpnicfDevMFanNum  OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION " Fan number "
        ::= { hpnicfdevMFanStatusEntry 1 }


hpnicfDevMFanStatus  OBJECT-TYPE
        SYNTAX  INTEGER
        {
        active     (1),
        deactive   (2),
        not-install  (3),
        unsupport    (4)
        }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION " Fan status: active (1), deactive (2) not installed (3) and unsupported (4)"
        ::= { hpnicfdevMFanStatusEntry 2 }


hpnicfdevMPowerStatusTable OBJECT-TYPE
        SYNTAX SEQUENCE OF HpnicfDevMPowerStatusEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION " Power status description table  "
        ::= { hpnicfLswdevMMibObject  2 }


hpnicfdevMPowerStatusEntry OBJECT-TYPE
        SYNTAX HpnicfDevMPowerStatusEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION " Power status description table entry   "
        INDEX   { hpnicfDevMPowerNum }
        ::= { hpnicfdevMPowerStatusTable 1}

HpnicfDevMPowerStatusEntry ::=
   SEQUENCE {
                hpnicfDevMPowerNum          INTEGER,
                hpnicfDevMPowerStatus       INTEGER
            }


hpnicfDevMPowerNum  OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION "Power number "
        ::= { hpnicfdevMPowerStatusEntry 1 }


hpnicfDevMPowerStatus OBJECT-TYPE
        SYNTAX  INTEGER
        {
        active     (1),
        deactive   (2),
        not-install (3),
        unsupport    (4)
        }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION " Power status: active (1), deactive (2) not installed (3) and unsupported    "
        ::= { hpnicfdevMPowerStatusEntry 2 }


hpnicfdevMSlotEnvironmentTable OBJECT-TYPE
        SYNTAX SEQUENCE OF HpnicfdevMSlotEnvironmentEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION " environment description table  "
        ::= { hpnicfLswdevMMibObject  3 }


hpnicfdevMSlotEnvironmentEntry OBJECT-TYPE
        SYNTAX HpnicfdevMSlotEnvironmentEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION " environment description table entry   "
        INDEX   { hpnicfLswFrameIndex, hpnicfLswSlotIndex, hpnicfdevMSlotEnvironmentType }
        ::= { hpnicfdevMSlotEnvironmentTable 1 }


HpnicfdevMSlotEnvironmentEntry ::=
   SEQUENCE {
                hpnicfdevMSlotEnvironmentType               INTEGER,
                hpnicfDevMSlotEnvironmentStatus             INTEGER,
                hpnicfDevMSlotEnvironmentValue              INTEGER,
                hpnicfDevMSlotEnvironmentUpperLimit         INTEGER,
                hpnicfDevMSlotEnvironmentLowerLimit         INTEGER
           }


hpnicfdevMSlotEnvironmentType  OBJECT-TYPE
        SYNTAX  INTEGER
        {
        temperature(1),
        humidity(2),
        fog(3)
        }
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION "Environment type "
        ::= { hpnicfdevMSlotEnvironmentEntry 1 }

hpnicfDevMSlotEnvironmentStatus OBJECT-TYPE
        SYNTAX  INTEGER
        {
        normal(1),
        upper(2),
        lower(3)
        }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION " Environment status"
        ::= { hpnicfdevMSlotEnvironmentEntry 2 }

hpnicfDevMSlotEnvironmentValue OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION " Environment value"
        ::= { hpnicfdevMSlotEnvironmentEntry 3 }

hpnicfDevMSlotEnvironmentUpperLimit  OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION "Environment upper limit "
        ::= { hpnicfdevMSlotEnvironmentEntry 4 }


hpnicfDevMSlotEnvironmentLowerLimit OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION " Environment Lower limit"
        ::= { hpnicfdevMSlotEnvironmentEntry 5 }


hpnicfLinkUpDownTrapEnable  OBJECT-TYPE
        SYNTAX  INTEGER
        {
        enableBoth(1) ,
        disableBoth(2) ,
        enableLinkUpTrapOnly(3) ,
        enableLinkDownTrapOnly(4)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
        "Enable/Disable linkUp/linkDown traps of the device, determining whether
         to enable linkUp/linkDown traps with that of the interface.
         When the value is enableBoth(1), the linkUp/linkDown traps are both
         enabled.
         When the value is disableBoth(2), the linkUp/linkDown traps are both
         disabled.
         When the value is enableLinkUpTrapOnly(3), the linkUp traps is enabled
         and the linkDown traps is disabled.
         When the value is enableLinkDownTrapOnly(4), the linkUp traps is
         disabled and the linkDown traps is enabled. "
        ::= { hpnicfLswdevMMibObject  9 }

hpnicfdot1qTpFdbLearnStatus OBJECT-TYPE
        SYNTAX  INTEGER
        {
                enabled(1),
                disabled(2)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION " Enable/Disable the address learning."
        ::= { hpnicfLswdevMMibObject  10 }



hpnicfCfmWriteFlash OBJECT-TYPE
        SYNTAX  INTEGER
        {
                write(1)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION " Write the current effective configuration into the Flash memory.
                      This object does not support read operation."
        ::= { hpnicfLswdevMMibObject  11 }


hpnicfCfmEraseFlash OBJECT-TYPE
        SYNTAX  INTEGER
        {
                erase(1)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION " Delete the configuration from the Flash memory.
                      This object does not support read operation."
        ::= { hpnicfLswdevMMibObject  12 }

hpnicfDevMFirstTrapTime OBJECT-TYPE
    SYNTAX      TimeTicks
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "Represents the first trap time."
    ::= { hpnicfLswdevMMibObject 13 }

hpnicfdevMExternalAlarmStatus OBJECT IDENTIFIER ::= { hpnicfLswdevMMibObject 14 }

END
