-- *****************************************************************
-- MY-PROCESS-MIB.mib:  My Process MIB file
--
-- $Copyright$
-- 
-- *****************************************************************
--

DES7200-PROCESS-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;

myProcessMIB 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 36}

-- 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)
    
myCPUMIBObjects OBJECT IDENTIFIER ::= { myProcessMIB 1 }

-- general mib
myCpuGeneralMibsGroup OBJECT IDENTIFIER ::= { myCPUMIBObjects 1 }

myCPUUtilization5Sec OBJECT-TYPE
    SYNTAX        Percent
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "This is the CPU utilization for 5 seconds."
    ::= { myCpuGeneralMibsGroup 1 }

myCPUUtilization1Min OBJECT-TYPE
    SYNTAX        Percent
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "This is the CPU utilization for 1 minutes."
    ::= { myCpuGeneralMibsGroup 2 }

myCPUUtilization5Min OBJECT-TYPE
    SYNTAX        Percent
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "This is the CPU utilization for 5 minutes."
    ::= { myCpuGeneralMibsGroup 3 }

myCPUUtilizationWarning OBJECT-TYPE
    SYNTAX        Percent
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
        "This is the first warning of cpu using rate."
    ::= { myCpuGeneralMibsGroup 4 }
    
myCPUUtilizationCritical OBJECT-TYPE
    SYNTAX        Percent
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
        "This is the second warning of cpu using rate."
    ::= { myCpuGeneralMibsGroup 5 } 

---Node's CPU utilization table
myNodeCPUTotalTable OBJECT-TYPE
  SYNTAX      SEQUENCE OF MyNodeCPUTotalEntry
  MAX-ACCESS  not-accessible
  STATUS      current
  DESCRIPTION
    "A table of line cards's CPU utilization entries. Each of the
     objects provides a general idea of how much of the CPU resource
     of a line card has been used over a given period of time."
  ::= { myCPUMIBObjects 2 }

myNodeCPUTotalEntry OBJECT-TYPE
  SYNTAX      MyNodeCPUTotalEntry
  MAX-ACCESS  not-accessible
  STATUS      current
  DESCRIPTION
    "An entry in the node's CPU utilization table."
  INDEX { myNodeCPUTotalIndex }
  ::= { myNodeCPUTotalTable 1 }

MyNodeCPUTotalEntry ::=
  SEQUENCE {
    myNodeCPUTotalIndex  Integer32,
    myNodeCPUTotalName   DisplayString,
    myNodeCPUTotal5sec   Percent,
    myNodeCPUTotal1min   Percent,
    myNodeCPUTotal5min   Percent,
    myNodeCPUTotalWarning  Percent,
    myNodeCPUTotalCritical Percent
  }
    
myNodeCPUTotalIndex OBJECT-TYPE
    SYNTAX        Integer32
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "An index that uniquely represents a Memory Pool."
    ::= { myNodeCPUTotalEntry 1 }
   
myNodeCPUTotalName OBJECT-TYPE
    SYNTAX        DisplayString
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "The name of a node, for example, slot x is the x slot."
    ::= { myNodeCPUTotalEntry 2 } 
   
myNodeCPUTotal5sec OBJECT-TYPE
    SYNTAX        Percent
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "This is the CPU utilization of a node for 5 seconds."
    ::= { myNodeCPUTotalEntry 3 }

myNodeCPUTotal1min OBJECT-TYPE
    SYNTAX        Percent
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "This is the CPU utilization of a node for 1 minutes."
    ::= { myNodeCPUTotalEntry 4 }

myNodeCPUTotal5min OBJECT-TYPE
    SYNTAX        Percent
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "This is the CPU utilization of a node for 5 minutes."
    ::= { myNodeCPUTotalEntry 5 }

myNodeCPUTotalWarning OBJECT-TYPE
    SYNTAX        Percent
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
        "This is the first warning of the node's cpu using rate."
    ::= { myNodeCPUTotalEntry 6 }
    
myNodeCPUTotalCritical OBJECT-TYPE
    SYNTAX        Percent
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
        "This is the second warning of the node's cpu using rate."
    ::= { myNodeCPUTotalEntry 7 }  

        
myProcessMIBConformance OBJECT IDENTIFIER ::= { myProcessMIB 2 }
myProcessMIBCompliances OBJECT IDENTIFIER ::= { myProcessMIBConformance 1 }
myProcessMIBGroups      OBJECT IDENTIFIER ::= { myProcessMIBConformance 2 }

-- compliance statements

myProcessMIBCompliance MODULE-COMPLIANCE
        STATUS  current
        DESCRIPTION
                "The compliance statement for entities which implement
                the My Process MIB"
        MODULE  -- this module
                MANDATORY-GROUPS { myCPUUtilizationMIBGroup
                 }
        ::= { myProcessMIBCompliances 1 }
                
-- units of conformance

myCPUUtilizationMIBGroup OBJECT-GROUP
        OBJECTS {
          myCPUUtilization5Sec,
          myCPUUtilization1Min,
          myCPUUtilization5Min
        }
        STATUS  current
        DESCRIPTION
                "A collection of objects providing CPU utilization to a My agent."
        ::= { myProcessMIBGroups 1 } 

myNodeCPUTotalGroups OBJECT-GROUP
        OBJECTS {
          myNodeCPUTotalIndex,
          myNodeCPUTotalName,
          myNodeCPUTotal5sec,
          myNodeCPUTotal1min,
          myNodeCPUTotal5min,
          myNodeCPUTotalWarning,
          myNodeCPUTotalCritical
        }
        STATUS  current
        DESCRIPTION
                "A collection of objects providing node's CPU utilization to a My agent."
        ::= { myProcessMIBGroups 2 } 
  
END
