-- =================================================================
-- Copyright (C) 2001,2002 by  HUAWEI TECHNOLOGIES. All rights reserved.
--
-- Description: the huawei memory mib from huawei-device-mib
-- Reference:
-- Version:     V1.0
-- History:
--    
-- =================================================================

HUAWEI-MEMORY-MIB DEFINITIONS ::= BEGIN

    IMPORTS
        hwDev
            FROM HUAWEI-MIB
        hwFrameIndex, hwSlotIndex
            FROM HUAWEI-DEVICE-MIB            
        OBJECT-GROUP, MODULE-COMPLIANCE            
            FROM SNMPv2-CONF            
        OBJECT-TYPE, MODULE-IDENTITY, Unsigned32, Integer32
            FROM SNMPv2-SMI;

    hwMemoryDev MODULE-IDENTITY
        LAST-UPDATED "200212290900Z"
        ORGANIZATION
            "HAUWEI MIB Standard community
             "
        CONTACT-INFO
            "
            ADDR: HUAWEI TECHNOLOGY CO.,LTD,SHEZHEN CHINA
            Tel: 86-755-26540808
            "
        DESCRIPTION
            "
            This mib module defines the memory information. NMS can query memory
            utilization statistics from device by the mib.
            "                        
        ::= { hwDev 5 }            
    
    hwMemoryDevTable OBJECT-TYPE
        SYNTAX SEQUENCE OF HwMemoryDevEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "
            This table provides the information of all memory utilization statistics
            of device. It contains the total size, the free size, the used size, and
            so on.
            "
        ::= { hwMemoryDev 1 }
    
    hwMemoryDevEntry OBJECT-TYPE
        SYNTAX HwMemoryDevEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "
            The Entries of hwMemoryDevTable.
                            
            The table is indexed by hwFrameIndex, hwSlotIndex and hwMemoryDevModuleIndex,
            
            hwFrameIndex  - the index of frame of the device. for example, hwFrameIndex
            equals 0 in NE16.
            hwSlotIndex   - the slot number of the device, the MAX value varies with
            different devices.
            hwMemoryDevModuleIndex - for the purpose of extension.In single CPU devices
            (NE16,eg.), its value equals 0.
            "
        INDEX { hwFrameIndex, hwSlotIndex, hwMemoryDevModuleIndex }
        ::= { hwMemoryDevTable 1 }
    
    HwMemoryDevEntry ::=
        SEQUENCE { 
            hwMemoryDevModuleIndex
                Integer32,
            hwMemoryDevSize
                Unsigned32,
            hwMemoryDevFree
                Unsigned32,
            hwMemoryDevRawSliceUsed
                Unsigned32,
            hwMemoryDevLargestFree
                Unsigned32,
            hwMemoryDevFail
                Integer32,
            hwMemoryDevFailNoMem
                Integer32
            }

    hwMemoryDevModuleIndex OBJECT-TYPE
        --SYNTAX Integer32 (1..65535)
        -- VRPV8R1 Capability 20100828 modify value scope
        SYNTAX Integer32 (0..65535)
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "
            The object is used only for the purpose of extension,In single CPU 
            devices (NE16,eg.), hwMemoryDevModuleIndex equals 0.
            "
        ::= { hwMemoryDevEntry 1 }
    
    hwMemoryDevSize OBJECT-TYPE
        SYNTAX Unsigned32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "
            The object indicates the total size of the memory in bytes,
            which is on the managed object.
            "
        ::= { hwMemoryDevEntry 2 }
    
    hwMemoryDevFree OBJECT-TYPE
        SYNTAX Unsigned32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "
            The object indicates the free size of the memory in bytes.
            "
        ::= { hwMemoryDevEntry 3 }
    
    hwMemoryDevRawSliceUsed OBJECT-TYPE
        SYNTAX Unsigned32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "
            The object indicates the used size of the raw slice memory in bytes.
            "
        ::= { hwMemoryDevEntry 4 }
    
    hwMemoryDevLargestFree OBJECT-TYPE
        SYNTAX Unsigned32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "
            The object indicates the largest number of contiguous bytes
            from the memory that are currently unused on the managed object.
            "
        ::= { hwMemoryDevEntry 5 }
    
    hwMemoryDevFail OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "
            The object indicates the count of memory allocation failures.
            "
        ::= { hwMemoryDevEntry 6 }
    
    hwMemoryDevFailNoMem OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "
            The object indicates the count of memory allocation
            failures due to no free memory.
            "
        ::= { hwMemoryDevEntry 7 }
    
    hwBufferTable OBJECT-TYPE
        SYNTAX SEQUENCE OF HwBufferEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "
            This table provides the inquiry of buffer utilization statistics
            of device. The type of the buffer is classified by size: 32 bytes,
            64 bytes,...,etc.
            "
        ::= { hwMemoryDev 2 }
    
    hwBufferEntry OBJECT-TYPE
        SYNTAX HwBufferEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "
            The Entries of hwBufferTable.

            The hwBufferTable is indexed by hwFrameIndex, hwSlotIndex,
            hwBufferModuleIndex and hwBufferSize.
            
            hwFrameIndex  - the index of frame of the device. for example, hwFrameIndex
            equals 0 in NE16.
            hwSlotIndex   - the slot number of the device, the MAX value varies with
            different types of devices.
            hwBufferModuleIndex - for the purpose of extension.In single CPU devices
            (NE16,eg.),hwBufferModuleIndex equals 0.
            hwBufferSize  - the size in bytes of the buffer,such as 32 bytes,64 bytes,
            ...,etc.
            "
        INDEX { hwFrameIndex, hwSlotIndex, hwBufferModuleIndex, hwBufferSize }
        ::= { hwBufferTable 1 }
    
    HwBufferEntry ::=
        SEQUENCE { 
            hwBufferModuleIndex
                Integer32,
            hwBufferSize
                Integer32,
            hwBufferCurrentTotal
                Integer32,
            hwBufferCurrentUsed
                Integer32
            }

    hwBufferModuleIndex OBJECT-TYPE
        SYNTAX Integer32 (0..65535)
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "
            The object is used only for the purpose of extension,In single CPU
            devices (NE16,eg.),hwBufferModuleIndex equals 0. 
            "
        ::= { hwBufferEntry 1 }
    
    hwBufferSize OBJECT-TYPE
        SYNTAX Integer32 (1..65535)
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "
            The object indicates the size of the buffers in bytes, such as 32 bytes,
            64 bytes,...,etc.
            "
        ::= { hwBufferEntry 2 }
    
    hwBufferCurrentTotal OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "
            The object indicates the total number of the buffer currently.
            "
        ::= { hwBufferEntry 3 }
    
    hwBufferCurrentUsed OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "
            The object indicates the used number of the buffer currently.
            "
        ::= { hwBufferEntry 4 }

END