-- *****************************************************************
-- MY-MEMORY-MIB.mib:  My Memory MIB file
--
-- $Copyright$
-- 
-- *****************************************************************
--

DES7200-MEMORY-MIB DEFINITIONS ::= BEGIN

IMPORTS
        MODULE-IDENTITY,
        OBJECT-TYPE,
        NOTIFICATION-TYPE,
        Integer32,
        Counter32
                FROM SNMPv2-SMI
        TruthValue,
        DisplayString,
        RowStatus
                FROM SNMPv2-TC
        MODULE-COMPLIANCE,
        OBJECT-GROUP
                FROM SNMPv2-CONF
        myMgmt
                FROM DES7200-SMI;

myMemoryMIB MODULE-IDENTITY
        LAST-UPDATED "200310140000Z"
        ORGANIZATION "D-Link Crop."
        CONTACT-INFO
                " 
                http://support.dlink.com"
        DESCRIPTION
                "This module defines my system mibs."
        REVISION      "200310140000Z"
        DESCRIPTION
                "Initial version of this MIB module."
        ::= { myMgmt 35}

-- Percentage for statistic, etc.
--
Percent ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
        "An integer that is in the range of a percent value."
    SYNTAX INTEGER (0..100)
    
myMemoryPoolMIBObjects OBJECT IDENTIFIER ::= { myMemoryMIB 1 }

    
myMemoryPoolUtilizationTable OBJECT-TYPE
  SYNTAX      SEQUENCE OF MyMemoryPoolUtilizationEntry
  MAX-ACCESS  not-accessible
  STATUS      current
  DESCRIPTION
    "A table of memory pool utilization entries. Each of the
     objects provides a general idea of how much of the memory
     pool has been used over a given period of time."
  ::= { myMemoryPoolMIBObjects 1 }

myMemoryPoolUtilizationEntry OBJECT-TYPE
  SYNTAX      MyMemoryPoolUtilizationEntry
  MAX-ACCESS  not-accessible
  STATUS      current
  DESCRIPTION
    "An entry in the memory pool utilization table."
  INDEX { myMemoryPoolIndex }
  ::= { myMemoryPoolUtilizationTable 1 }

MyMemoryPoolUtilizationEntry ::=
  SEQUENCE {
    myMemoryPoolIndex  Integer32,
    myMemoryPoolName   DisplayString,
    myMemoryPoolCurrentUtilization  Percent,
    myMemoryPoolLowestUtilization  Percent,
    myMemoryPoolLargestUtilization Percent,
	  myMemoryPoolSize   Integer32,
	  myMemoryPoolUsed   Integer32,
	  myMemoryPoolFree   Integer32,
	  myMemoryPoolWarning  Percent,
          myMemoryPoolCritical Percent
  }
    
myMemoryPoolIndex OBJECT-TYPE
    SYNTAX        Integer32
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "An index that uniquely represents a Memory Pool."
    ::= { myMemoryPoolUtilizationEntry 1 }

myMemoryPoolName OBJECT-TYPE
    SYNTAX        DisplayString
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "A textual name assigned to the memory pool.  This
        object is suitable for output to a human operator"
    ::= { myMemoryPoolUtilizationEntry 2 }
    
myMemoryPoolCurrentUtilization OBJECT-TYPE
    SYNTAX        Percent
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "This is the memory pool utilization currently."
    ::= { myMemoryPoolUtilizationEntry 3 }

myMemoryPoolLowestUtilization OBJECT-TYPE
    SYNTAX        Percent
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "This is the memory pool utilization when memory used least."
    ::= { myMemoryPoolUtilizationEntry 4 }

myMemoryPoolLargestUtilization OBJECT-TYPE
    SYNTAX        Percent
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "This is the memory pool utilization when memory used most."
    ::= { myMemoryPoolUtilizationEntry 5 }
        
myMemoryPoolSize OBJECT-TYPE
    SYNTAX        Integer32
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "This is the size of physical memory ."
    ::= { myMemoryPoolUtilizationEntry 6 }

myMemoryPoolUsed OBJECT-TYPE
    SYNTAX        Integer32
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "This is the memory size that has been used."
    ::= { myMemoryPoolUtilizationEntry 7 }

myMemoryPoolFree OBJECT-TYPE
    SYNTAX        Integer32
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "This is the memory size that is free."
    ::= { myMemoryPoolUtilizationEntry 8 }

myMemoryPoolWarning OBJECT-TYPE
    SYNTAX        Percent
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
        "The first warning of memory pool."
    ::= { myMemoryPoolUtilizationEntry 9 }

myMemoryPoolCritical OBJECT-TYPE
    SYNTAX        Percent
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
        "The second warning of memory pool."
    ::= { myMemoryPoolUtilizationEntry 10 }
    
myNodeMemoryPoolTable OBJECT-TYPE
  SYNTAX      SEQUENCE OF MyNodeMemoryPoolEntry
  MAX-ACCESS  not-accessible
  STATUS      current
  DESCRIPTION
    "A table of node's memory pool utilization entries. Each of the
     objects provides a general idea of how much of the memory
     pool has been used over a given period of time."
  ::= { myMemoryPoolMIBObjects 2 }

myNodeMemoryPoolEntry OBJECT-TYPE
  SYNTAX      MyNodeMemoryPoolEntry
  MAX-ACCESS  not-accessible
  STATUS      current
  DESCRIPTION
    "An entry in the node's memory pool utilization table."
  INDEX { myNodeMemoryPoolIndex }
  ::= { myNodeMemoryPoolTable 1 }

MyNodeMemoryPoolEntry ::=
  SEQUENCE {
    myNodeMemoryPoolIndex  Integer32,
    myNodeMemoryPoolName   DisplayString,
    myNodeMemoryPoolCurrentUtilization  Percent,
    myNodeMemoryPoolLowestUtilization  Percent,
    myNodeMemoryPoolLargestUtilization Percent,
	  myNodeMemoryPoolSize   Integer32,
	  myNodeMemoryPoolUsed   Integer32,
	  myNodeMemoryPoolFree   Integer32,
	  myNodeMemoryPoolWarning  Percent,
	  myNodeMemoryPoolCritical Percent
  }
    
myNodeMemoryPoolIndex OBJECT-TYPE
    SYNTAX        Integer32
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "An index that uniquely represents a node's Memory Pool."
    ::= { myNodeMemoryPoolEntry 1 }

myNodeMemoryPoolName OBJECT-TYPE
    SYNTAX        DisplayString
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "A textual name assigned to the node's memory pool.  This
        object is suitable for output to a human operator"
    ::= { myNodeMemoryPoolEntry 2 }
    
myNodeMemoryPoolCurrentUtilization OBJECT-TYPE
    SYNTAX        Percent
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "This is the node's memory pool utilization currently."
    ::= { myNodeMemoryPoolEntry 3 }

myNodeMemoryPoolLowestUtilization OBJECT-TYPE
    SYNTAX        Percent
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "This is the node's memory pool utilization when memory used least."
    ::= { myNodeMemoryPoolEntry 4 }

myNodeMemoryPoolLargestUtilization OBJECT-TYPE
    SYNTAX        Percent
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "This is the node's memory pool utilization when memory used most."
    ::= { myNodeMemoryPoolEntry 5 }
        
myNodeMemoryPoolSize OBJECT-TYPE
    SYNTAX        Integer32
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "This is the size of the node's physical memory ."
    ::= { myNodeMemoryPoolEntry 6 }

myNodeMemoryPoolUsed OBJECT-TYPE
    SYNTAX        Integer32
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "This is the node's memory size that has been used."
    ::= { myNodeMemoryPoolEntry 7 }

myNodeMemoryPoolFree OBJECT-TYPE
    SYNTAX        Integer32
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "This is the node's memory size that is free."
    ::= { myNodeMemoryPoolEntry 8 }
    
myNodeMemoryPoolWarning OBJECT-TYPE
    SYNTAX        Percent
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
        "This is the first warning of the node's memory."
    ::= { myNodeMemoryPoolEntry 9 }
    
myNodeMemoryPoolCritical OBJECT-TYPE
    SYNTAX        Percent
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
        "This is the second warning of the node's memory."
    ::= { myNodeMemoryPoolEntry 10 }   

myMemoryMIBConformance OBJECT IDENTIFIER ::= { myMemoryMIB 2 }
myMemoryMIBCompliances OBJECT IDENTIFIER ::= { myMemoryMIBConformance 1 }
myMemoryMIBGroups      OBJECT IDENTIFIER ::= { myMemoryMIBConformance 2 }


-- compliance statements

myMemoryMIBCompliance MODULE-COMPLIANCE
        STATUS  current
        DESCRIPTION
                "The compliance statement for entities which implement
                the My Memory MIB"
        MODULE  -- this module
                MANDATORY-GROUPS { myMemoryPoolUtilizationMIBGroup
                 }
        ::= { myMemoryMIBCompliances 1 }
                
-- units of conformance

myMemoryPoolUtilizationMIBGroup OBJECT-GROUP
        OBJECTS {
          myMemoryPoolIndex,
          myMemoryPoolName,
          myMemoryPoolCurrentUtilization,
          myMemoryPoolLowestUtilization,
          myMemoryPoolLargestUtilization,
	        myMemoryPoolSize,
	        myMemoryPoolUsed,
	        myMemoryPoolFree,
	        myMemoryPoolWarning,
	        myMemoryPoolCritical
        }
        STATUS  current
        DESCRIPTION
                "A collection of objects providing memory pool utilization to a My agent."
        ::= { myMemoryMIBGroups 1 } 
  
myNodeMemoryPoolMIBGroup OBJECT-GROUP
        OBJECTS {
          myNodeMemoryPoolIndex,
          myNodeMemoryPoolName,
          myNodeMemoryPoolCurrentUtilization,
          myNodeMemoryPoolLowestUtilization,
          myNodeMemoryPoolLargestUtilization,
	        myNodeMemoryPoolSize,
	        myNodeMemoryPoolUsed,
	        myNodeMemoryPoolFree,
	        myNodeMemoryPoolWarning,
	        myNodeMemoryPoolCritical 
        }
        STATUS  current
        DESCRIPTION
                "A collection of objects providing node's memory pool utilization to a My agent."
        ::= { myMemoryMIBGroups 2 } 
  
END
