-- *****************************************************************
-- CISCO-PROCESS-MIB.my: MIB for CPU and process statistics
--   
-- August 1998, Ramanathan R. Kavasseri
--   
-- Copyright (c) 1998, 2001, 2003, 2006-2008 by cisco Systems Inc.
-- All rights reserved.
-- *****************************************************************
--   
-- This mib was extracted from RFC xxx

CISCO-PROCESS-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY,
    OBJECT-TYPE,
    Counter32,
    Gauge32,
    Unsigned32,
    NOTIFICATION-TYPE
        FROM SNMPv2-SMI
    MODULE-COMPLIANCE,
    OBJECT-GROUP,
    NOTIFICATION-GROUP
        FROM SNMPv2-CONF
    TimeStamp,
    DisplayString,
    RowStatus,
    TruthValue,
    RowPointer
        FROM SNMPv2-TC
    SnmpAdminString
        FROM SNMP-FRAMEWORK-MIB
    EntPhysicalIndexOrZero
        FROM CISCO-TC
    ciscoMgmt
        FROM CISCO-SMI;


ciscoProcessMIB MODULE-IDENTITY
    LAST-UPDATED    "200703230000Z"
    ORGANIZATION    "Cisco Systems, Inc."
    CONTACT-INFO
            "Cisco Systems
            Customer Service

            Postal: 170 W Tasman Drive
            San Jose, CA  95134
            USA

            Tel: +1 800 553-NETS

            E-mail: cs-snmp@cisco.com"
    DESCRIPTION
        "The MIB module to describe active system processes.
        Virtual Machine refers to those OS which can run the 
        code or process of a different executional model OS.
        Virtual Process assume the executional model 
        of a OS which is different from Native OS. Virtual
        Processes are also referred as Tasks.
        Thread is a sequence of instructions to be executed
        within a program. Thread which adhere to POSIX standard
        is referred as a POSIX thread."
    REVISION        "200703230000Z"
    DESCRIPTION
        "Added new objects to support POSIX compliant OS. Added
        cpmThread, cpmThreadTable, cpmVirtualProcess, 
        cpmVirtualProcessTable and updated cpmCPUTotalTable, 
        cpmProcessExtRevTable. Added cProcessMIBComplianceRev2
        by deprecating cProcessMIBComplianceRev1. Added 
        cpmCPUPosixMemoryGroup, cpmPosixProcessGroup, 
        cpmThreadGroup, cpmVirtualProcessGroup."
    REVISION        "200301220000Z"
    DESCRIPTION
        "cpmCPUThresholdTable, cpmCPUHistoryTable,
        cpmCPUProcessHistoryTable are added for CPU thresholding 
        feature."
    REVISION        "200105180000Z"
    DESCRIPTION
        "The objects cpmProcExtUtil5Sec, cpmProcExtUtil1Min,
        cpmProcExtUtil5Min,cpmCPUTotal5sec, cpmCPUTotal1min 
        and cpmCPUTotal5min are deprecated to increase the
        value range as 0..100. The table cpmProcessExtTable
        is deprecated. The new objects added are 
        cpmProcessExtRevTable, cpmProcExtMemAllocatedRev,
        cpmProcExtMemFreedRev, cpmProcExtInvokedRev, 
        cpmProcExtRuntimeRev, cpmProcExtUtil5SecRev,
        cpmProcExtUtil1MinRev, cpmCPUTotal5MinRev, 
        cpmCPUTotal5secRev, cpmCPUTotal1minRev and 
        cpmCPUTotal5minRev."
    REVISION        "9804150000Z"
    DESCRIPTION
        "Initial version of this MIB."
    ::= { ciscoMgmt 109 }


-- This MIB displays memory and CPU utilization on cisco devices. CPU
-- utilization will give a general idea of how busy the processor is.
-- The numbers are a ratio of the current idle time over the longest
-- idle time. Please note that this information should be used as an
-- estimate only.

ciscoProcessMIBObjects  OBJECT IDENTIFIER
    ::= { ciscoProcessMIB 1 }

cpmCPU  OBJECT IDENTIFIER
    ::= { ciscoProcessMIBObjects 1 }

cpmProcess  OBJECT IDENTIFIER
    ::= { ciscoProcessMIBObjects 2 }

cpmThread  OBJECT IDENTIFIER
    ::= { ciscoProcessMIBObjects 3 }

cpmVirtualProcess  OBJECT IDENTIFIER
    ::= { ciscoProcessMIBObjects 4 }

cpmCPUHistory  OBJECT IDENTIFIER
    ::= { cpmProcess 5 }

-- Cisco CPU Total Table

cpmCPUTotalTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CpmCPUTotalEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "A table of overall CPU statistics."
    ::= { cpmCPU 1 }

cpmCPUTotalEntry OBJECT-TYPE
    SYNTAX          CpmCPUTotalEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "Overall information about the CPU load. Entries in this
        table come and go as CPUs are added and removed from the
        system."
    INDEX           { cpmCPUTotalIndex } 
    ::= { cpmCPUTotalTable 1 }

CpmCPUTotalEntry ::= SEQUENCE {
        cpmCPUTotalIndex                Unsigned32,
        cpmCPUTotalPhysicalIndex        EntPhysicalIndexOrZero,
        cpmCPUTotal5sec                 Gauge32,
        cpmCPUTotal1min                 Gauge32,
        cpmCPUTotal5min                 Gauge32,
        cpmCPUTotal5secRev              Gauge32,
        cpmCPUTotal1minRev              Gauge32,
        cpmCPUTotal5minRev              Gauge32,
        cpmCPUMonInterval               Unsigned32,
        cpmCPUTotalMonIntervalValue     Gauge32,
        cpmCPUInterruptMonIntervalValue Gauge32,
        cpmCPUMemoryUsed                Gauge32,
        cpmCPUMemoryFree                Gauge32,
        cpmCPUMemoryKernelReserved      Gauge32,
        cpmCPUMemoryLowest              Gauge32
}

cpmCPUTotalIndex OBJECT-TYPE
    SYNTAX          Unsigned32 (1..4294967295)
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "An index that uniquely represents a CPU (or group of CPUs)
        whose CPU load information is reported by a row in this table.
        This index is assigned arbitrarily by the engine
        and is not saved over reboots." 
    ::= { cpmCPUTotalEntry 1 }

cpmCPUTotalPhysicalIndex OBJECT-TYPE
    SYNTAX          EntPhysicalIndexOrZero
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The entPhysicalIndex of the physical entity for which
        the CPU statistics in this entry are maintained.
        The physical entity can be a CPU chip, a group of CPUs,
        a CPU card etc. The exact type of this entity is described by
        its entPhysicalVendorType value. If the CPU statistics
        in this entry correspond to more than one physical entity
        (or to no physical entity), or if the entPhysicalTable is
        not supported on the SNMP agent, the value of this object
        must be zero." 
    ::= { cpmCPUTotalEntry 2 }

cpmCPUTotal5sec OBJECT-TYPE
    SYNTAX          Gauge32 (1..100)
    MAX-ACCESS      read-only
    STATUS          deprecated
    DESCRIPTION
        "The overall CPU busy percentage in the last 5 second
        period. This object obsoletes the busyPer object from 
        the OLD-CISCO-SYSTEM-MIB. This object is deprecated
        by cpmCPUTotal5secRev which has the changed range of
        value (0..100)." 
    ::= { cpmCPUTotalEntry 3 }

cpmCPUTotal1min OBJECT-TYPE
    SYNTAX          Gauge32 (1..100)
    MAX-ACCESS      read-only
    STATUS          deprecated
    DESCRIPTION
        "The overall CPU busy percentage in the last 1 minute
        period. This object obsoletes the avgBusy1 object from 
        the OLD-CISCO-SYSTEM-MIB. This object is deprecated
        by cpmCPUTotal1minRev which has the changed range
        of value (0..100)." 
    ::= { cpmCPUTotalEntry 4 }

cpmCPUTotal5min OBJECT-TYPE
    SYNTAX          Gauge32 (1..100)
    MAX-ACCESS      read-only
    STATUS          deprecated
    DESCRIPTION
        "The overall CPU busy percentage in the last 5 minute
        period. This object deprecates the avgBusy5 object from 
        the OLD-CISCO-SYSTEM-MIB. This object is deprecated
        by cpmCPUTotal5minRev which has the changed range 
        of value (0..100)." 
    ::= { cpmCPUTotalEntry 5 }

cpmCPUTotal5secRev OBJECT-TYPE
    SYNTAX          Gauge32 (0..100)
    UNITS           "percent"
    MAX-ACCESS      read-only
    STATUS          deprecated
    DESCRIPTION
        "The overall CPU busy percentage in the last 5 second
        period. This object deprecates the object cpmCPUTotal5sec 
        and increases the value range to (0..100). This object
        is deprecated by cpmCPUTotalMonIntervalValue" 
    ::= { cpmCPUTotalEntry 6 }

cpmCPUTotal1minRev OBJECT-TYPE
    SYNTAX          Gauge32 (0..100)
    UNITS           "percent"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The overall CPU busy percentage in the last 1 minute
        period. This object deprecates the object cpmCPUTotal1min 
        and increases the value range to (0..100)." 
    ::= { cpmCPUTotalEntry 7 }

cpmCPUTotal5minRev OBJECT-TYPE
    SYNTAX          Gauge32 (0..100)
    UNITS           "percent"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The overall CPU busy percentage in the last 5 minute
        period. This object deprecates the object cpmCPUTotal5min 
        and increases the value range to (0..100)." 
    ::= { cpmCPUTotalEntry 8 }

cpmCPUMonInterval OBJECT-TYPE
    SYNTAX          Unsigned32
    UNITS           "seconds"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "CPU usage monitoring interval. The value of this
        object in seconds indicates the how often the 
        CPU utilization is calculated and monitored." 
    ::= { cpmCPUTotalEntry 9 }

cpmCPUTotalMonIntervalValue OBJECT-TYPE
    SYNTAX          Gauge32 (0..100)
    UNITS           "percent"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The overall CPU busy percentage in the last
        cpmCPUMonInterval period. 
        This object deprecates the object cpmCPUTotal5secRev." 
    ::= { cpmCPUTotalEntry 10 }

cpmCPUInterruptMonIntervalValue OBJECT-TYPE
    SYNTAX          Gauge32 (0..100)
    UNITS           "percent"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The overall CPU busy percentage in the
        interrupt context in the last cpmCPUMonInterval
        period." 
    ::= { cpmCPUTotalEntry 11 }

cpmCPUMemoryUsed OBJECT-TYPE
    SYNTAX          Gauge32
    UNITS           "kilo-bytes"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The overall CPU wide system memory which is currently
        under use." 
    ::= { cpmCPUTotalEntry 12 }

cpmCPUMemoryFree OBJECT-TYPE
    SYNTAX          Gauge32
    UNITS           "kilo-bytes"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The overall CPU wide system memory which is currently
        free." 
    ::= { cpmCPUTotalEntry 13 }

cpmCPUMemoryKernelReserved OBJECT-TYPE
    SYNTAX          Gauge32
    UNITS           "kilo-bytes"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The overall CPU wide system memory which is reserved
        for kernel usage." 
    ::= { cpmCPUTotalEntry 14 }

cpmCPUMemoryLowest OBJECT-TYPE
    SYNTAX          Gauge32
    UNITS           "bytes"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The lowest free memory that has been recorded since
        device has booted." 
    ::= { cpmCPUTotalEntry 15 }
 

-- Cisco Processes Common Table

cpmProcessTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CpmProcessEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "A table of generic information on all active
        processes on this device."
    ::= { cpmProcess 1 }

cpmProcessEntry OBJECT-TYPE
    SYNTAX          CpmProcessEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "Generic information about an active process on this
        device. Entries in this table come and go as processes are 
        created and destroyed by the device."
    INDEX           {
                        cpmCPUTotalIndex,
                        cpmProcessPID
                    } 
    ::= { cpmProcessTable 1 }

CpmProcessEntry ::= SEQUENCE {
        cpmProcessPID          Unsigned32,
        cpmProcessName         DisplayString,
        cpmProcessuSecs        Unsigned32,
        cpmProcessTimeCreated  TimeStamp,
        cpmProcessAverageUSecs Unsigned32
}

cpmProcessPID OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object contains the process ID. cpmTimeCreated
        should be checked against the last time it was polled,
        and if it has changed the PID has been reused and the
        entire entry should be polled again." 
    ::= { cpmProcessEntry 1 }

cpmProcessName OBJECT-TYPE
    SYNTAX          DisplayString (SIZE  (1..32))
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The name associated with this process. If the name is
        longer than 32 characters, it will be truncated to the first
        31 characters, and a `*' will be appended as the last
        character to imply this is a truncated process name." 
    ::= { cpmProcessEntry 2 }

cpmProcessuSecs OBJECT-TYPE
    SYNTAX          Unsigned32
    UNITS           "microseconds"
    MAX-ACCESS      read-only
    STATUS          deprecated
    DESCRIPTION
        "Average elapsed CPU time in microseconds when the
        process was active. This object is deprecated
        by cpmProcessAverageUSecs." 
    ::= { cpmProcessEntry 4 }

cpmProcessTimeCreated OBJECT-TYPE
    SYNTAX          TimeStamp
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The time when the process was created. The process ID
        and the time when the process was created, uniquely 
        identifies a process." 
    ::= { cpmProcessEntry 5 }

cpmProcessAverageUSecs OBJECT-TYPE
    SYNTAX          Unsigned32
    UNITS           "microseconds"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "Average elapsed CPU time in microseconds when the
        process was active. This object deprecates the
        object cpmProcessuSecs." 
    ::= { cpmProcessEntry 6 }
 

-- Cisco processes detail Table.  This table is mandatory on systems
-- that have the internal capability to keep the information.

cpmProcessExtTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CpmProcessExtEntry 
    MAX-ACCESS      not-accessible
    STATUS          deprecated
    DESCRIPTION
        "This table contains information that may or may
        not be available on all cisco devices. It contains
        additional objects for the more general
        cpmProcessTable. This object is deprecated by
        cpmProcessExtRevTable."
    ::= { cpmProcess 2 }

cpmProcessExtEntry OBJECT-TYPE
    SYNTAX          CpmProcessExtEntry
    MAX-ACCESS      not-accessible
    STATUS          deprecated
    DESCRIPTION
        "An entry containing additional information for
        a particular process. This object is deprecated by
        cpmProcessExtRevEntry."
    AUGMENTS           { cpmProcessEntry  } 
 
    ::= { cpmProcessExtTable 1 }

CpmProcessExtEntry ::= SEQUENCE {
        cpmProcExtMemAllocated Gauge32,
        cpmProcExtMemFreed     Gauge32,
        cpmProcExtInvoked      Counter32,
        cpmProcExtRuntime      Counter32,
        cpmProcExtUtil5Sec     Gauge32,
        cpmProcExtUtil1Min     Gauge32,
        cpmProcExtUtil5Min     Gauge32,
        cpmProcExtPriority     INTEGER
}

cpmProcExtMemAllocated OBJECT-TYPE
    SYNTAX          Gauge32
    UNITS           "bytes"
    MAX-ACCESS      read-only
    STATUS          deprecated
    DESCRIPTION
        "The sum of all the dynamically allocated memory that
        this process has received from the system. This includes
        memory that may have been returned. The sum of freed
        memory is provided by cpmProcExtMemFreed. This object
        is deprecated by cpmProcExtMemAllocatedRev." 
    ::= { cpmProcessExtEntry 1 }

cpmProcExtMemFreed OBJECT-TYPE
    SYNTAX          Gauge32
    UNITS           "bytes"
    MAX-ACCESS      read-only
    STATUS          deprecated
    DESCRIPTION
        "The sum of all memory that this process has returned
        to the system. This object is deprecated by 
        cpmProcExtMemFreedRev." 
    ::= { cpmProcessExtEntry 2 }

cpmProcExtInvoked OBJECT-TYPE
    SYNTAX          Counter32
    MAX-ACCESS      read-only
    STATUS          deprecated
    DESCRIPTION
        "The number of times since cpmTimeCreated that
        the process has been invoked. This object is
        deprecated by cpmProcExtInvokedRev." 
    ::= { cpmProcessExtEntry 3 }

cpmProcExtRuntime OBJECT-TYPE
    SYNTAX          Counter32
    UNITS           "microseconds"
    MAX-ACCESS      read-only
    STATUS          deprecated
    DESCRIPTION
        "The amount of CPU time the process has used, in
        microseconds. This object is deprecated by
        cpmProcExtRuntimeRev." 
    ::= { cpmProcessExtEntry 4 }

cpmProcExtUtil5Sec OBJECT-TYPE
    SYNTAX          Gauge32 (1..100)
    MAX-ACCESS      read-only
    STATUS          deprecated
    DESCRIPTION
        "This object provides a general idea of how busy
        a process caused the processor to be over a 5 
        second period. It is determined as a weighted 
        decaying average of the current idle time over 
        the longest idle time. Note that this information 
        should be used as an estimate only. This object is 
        deprecated by cpmProcExtUtil5SecRev which has the 
        changed range of value (0..100)." 
    ::= { cpmProcessExtEntry 5 }

cpmProcExtUtil1Min OBJECT-TYPE
    SYNTAX          Gauge32 (1..100)
    MAX-ACCESS      read-only
    STATUS          deprecated
    DESCRIPTION
        "This object provides a general idea of how busy
        a process caused the processor to be over a 1 
        minute period. It is determined as a weighted 
        decaying average of the current idle time over the 
        longest idle time. Note that this information 
        should be used as an estimate only. This object is 
        deprecated by cpmProcExtUtil1MinRev which has
        the changed range of value (0..100)." 
    ::= { cpmProcessExtEntry 6 }

cpmProcExtUtil5Min OBJECT-TYPE
    SYNTAX          Gauge32 (1..100)
    MAX-ACCESS      read-only
    STATUS          deprecated
    DESCRIPTION
        "This object provides a general idea of how busy
        a process caused the processor to be over a 5 
        minute period. It is determined as a weighted 
        decaying average of the current idle time over 
        the longest idle time. Note that this information 
        should be used as an estimate only. This object
        is deprecated by cpmProcExtUtil5MinRev which
        has the changed range of value (0..100)." 
    ::= { cpmProcessExtEntry 7 }

cpmProcExtPriority OBJECT-TYPE
    SYNTAX          INTEGER  {
                        critical(1),
                        high(2),
                        normal(3),
                        low(4),
                        notAssigned(5)
                    }
    MAX-ACCESS      read-write
    STATUS          deprecated
    DESCRIPTION
        "The priority level at which the process is
        running. This object is deprecated by
        cpmProcExtPriorityRev." 
    ::= { cpmProcessExtEntry 8 }
 


cpmProcessExtRevTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CpmProcessExtRevEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This table contains information that may or may
        not be available on all cisco devices. It contains
        additional objects for the more general
        cpmProcessTable. This object deprecates 
        cpmProcessExtTable."
    ::= { cpmProcess 3 }

cpmProcessExtRevEntry OBJECT-TYPE
    SYNTAX          CpmProcessExtRevEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "An entry containing additional information for
        a particular process. This object deprecates 
        cpmProcessExtEntry."
    INDEX           {
                        cpmCPUTotalIndex,
                        cpmProcessPID
                    } 
    ::= { cpmProcessExtRevTable 1 }

CpmProcessExtRevEntry ::= SEQUENCE {
        cpmProcExtMemAllocatedRev       Gauge32,
        cpmProcExtMemFreedRev           Gauge32,
        cpmProcExtInvokedRev            Counter32,
        cpmProcExtRuntimeRev            Counter32,
        cpmProcExtUtil5SecRev           Gauge32,
        cpmProcExtUtil1MinRev           Gauge32,
        cpmProcExtUtil5MinRev           Gauge32,
        cpmProcExtPriorityRev           INTEGER,
        cpmProcessType                  INTEGER,
        cpmProcessRespawn               TruthValue,
        cpmProcessRespawnCount          Counter32,
        cpmProcessRespawnAfterLastPatch Counter32,
        cpmProcessMemoryCore            INTEGER,
        cpmProcessLastRestartUser       SnmpAdminString,
        cpmProcessTextSegmentSize       Unsigned32,
        cpmProcessDataSegmentSize       Gauge32,
        cpmProcessStackSize             Gauge32,
        cpmProcessDynamicMemorySize     Gauge32
}

cpmProcExtMemAllocatedRev OBJECT-TYPE
    SYNTAX          Gauge32
    UNITS           "bytes"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The sum of all the dynamically allocated memory that
        this process has received from the system. This includes
        memory that may have been returned. The sum of freed
        memory is provided by cpmProcExtMemFreedRev. This object
        deprecates cpmProcExtMemAllocated." 
    ::= { cpmProcessExtRevEntry 1 }

cpmProcExtMemFreedRev OBJECT-TYPE
    SYNTAX          Gauge32
    UNITS           "bytes"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The sum of all memory that this process has returned
        to the system. This object  deprecates 
        cpmProcExtMemFreed." 
    ::= { cpmProcessExtRevEntry 2 }

cpmProcExtInvokedRev OBJECT-TYPE
    SYNTAX          Counter32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The number of times since cpmTimeCreated that
        the process has been invoked. This object 
        deprecates cpmProcExtInvoked." 
    ::= { cpmProcessExtRevEntry 3 }

cpmProcExtRuntimeRev OBJECT-TYPE
    SYNTAX          Counter32
    UNITS           "microseconds"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The amount of CPU time the process has used, in
        microseconds. This object deprecates
        cpmProcExtRuntime." 
    ::= { cpmProcessExtRevEntry 4 }

cpmProcExtUtil5SecRev OBJECT-TYPE
    SYNTAX          Gauge32 (0..100)
    UNITS           "percent"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object provides a general idea of how busy
        a process caused the processor to be over a 5 
        second period. It is determined as a weighted 
        decaying average of the current idle time over 
        the longest idle time. Note that this information 
        should be used as an estimate only. This object
        deprecates cpmProcExtUtil5Sec and increases the 
        value range to (0..100)." 
    ::= { cpmProcessExtRevEntry 5 }

cpmProcExtUtil1MinRev OBJECT-TYPE
    SYNTAX          Gauge32 (0..100)
    UNITS           "percent"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object provides a general idea of how busy
        a process caused the processor to be over a 1 
        minute period. It is determined as a weighted 
        decaying average of the current idle time over the 
        longest idle time. Note that this information 
        should be used as an estimate only. This object 
        deprecates cpmProcExtUtil1Min and increases the value
        range to (0..100)." 
    ::= { cpmProcessExtRevEntry 6 }

cpmProcExtUtil5MinRev OBJECT-TYPE
    SYNTAX          Gauge32 (0..100)
    UNITS           "percent"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object provides a general idea of how busy
        a process caused the processor to be over a 5 
        minute period. It is determined as a weighted 
        decaying average of the current idle time over 
        the longest idle time. Note that this information 
        should be used as an estimate only. This object
        deprecates cpmProcExtUtil5Min and increases the
        value range to (0..100)." 
    ::= { cpmProcessExtRevEntry 7 }

cpmProcExtPriorityRev OBJECT-TYPE
    SYNTAX          INTEGER  {
                        critical(1),
                        high(2),
                        normal(3),
                        low(4),
                        notAssigned(5)
                    }
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The priority level at  which the process is
        running. This object deprecates 
        cpmProcExtPriority." 
    ::= { cpmProcessExtRevEntry 8 }

cpmProcessType OBJECT-TYPE
    SYNTAX          INTEGER  {
                        other(1),
                        posix(2),
                        ios(3)
                    }
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This indicates the kind of process in context." 
    ::= { cpmProcessExtRevEntry 9 }

cpmProcessRespawn OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This indicates whether respawn of a process is enabled
        or not. If enabled the process in context repawns after
        it has crashed/stopped." 
    ::= { cpmProcessExtRevEntry 10 }

cpmProcessRespawnCount OBJECT-TYPE
    SYNTAX          Counter32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This indicates the number of times the process has
        respawned/restarted." 
    ::= { cpmProcessExtRevEntry 11 }

cpmProcessRespawnAfterLastPatch OBJECT-TYPE
    SYNTAX          Counter32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This indicates the number of times a process has
        restarted after the last patch is applied. This is to 
        determine the stability of the last patch." 
    ::= { cpmProcessExtRevEntry 12 }

cpmProcessMemoryCore OBJECT-TYPE
    SYNTAX          INTEGER  {
                        other(1),
                        mainmem(2),
                        mainmemSharedmem(3),
                        mainmemText(4),
                        mainmemTextSharedmem(5),
                        sharedmem(6),
                        sparse(7),
                        off(8)
                    }
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This indicates the part of process memory to be
        dumped when a process crashes. The process 
        memory is used for debugging purposes to trace the 
        root cause of the crash.
        sparse        - Some operating systems support minimal
                        dump of process core like register
                        info, partial stack, partial memory
                        pages especially for critical process
                        to facilitate faster process restart." 
    ::= { cpmProcessExtRevEntry 13 }

cpmProcessLastRestartUser OBJECT-TYPE
    SYNTAX          SnmpAdminString
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This indicate the user that has last restarted the
        process or has taken running coredump of the process." 
    ::= { cpmProcessExtRevEntry 14 }

cpmProcessTextSegmentSize OBJECT-TYPE
    SYNTAX          Unsigned32
    UNITS           "kilo-bytes"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This indicates the text memory of a process and all
        its shared objects." 
    ::= { cpmProcessExtRevEntry 15 }

cpmProcessDataSegmentSize OBJECT-TYPE
    SYNTAX          Gauge32
    UNITS           "kilo-bytes"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This indicates the data segment of a process and
        all its shared objects." 
    ::= { cpmProcessExtRevEntry 16 }

cpmProcessStackSize OBJECT-TYPE
    SYNTAX          Gauge32
    UNITS           "kilo-bytes"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This indicates the amount of stack memory used by the
        process." 
    ::= { cpmProcessExtRevEntry 17 }

cpmProcessDynamicMemorySize OBJECT-TYPE
    SYNTAX          Gauge32
    UNITS           "kilo-bytes"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This indicates the amount of dynamic memory being used
        by the process." 
    ::= { cpmProcessExtRevEntry 18 }
 

-- Threshold Table allows the CPU threshold configurations.
-- When the configured threshold is reached a NMS will be notified
-- with this event.

cpmCPUThresholdTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CpmCPUThresholdEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This table contains the information about the
        thresholding values for CPU , configured by the user."
    ::= { cpmProcess 4 }

cpmCPUThresholdEntry OBJECT-TYPE
    SYNTAX          CpmCPUThresholdEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "An entry containing information about
        CPU thresholding parameters. cpmCPUTotalIndex
        identifies the CPU (or group of CPUs) for which this
        configuration applies."
    INDEX           {
                        cpmCPUTotalIndex,
                        cpmCPUThresholdClass
                    } 
    ::= { cpmCPUThresholdTable 1 }

CpmCPUThresholdEntry ::= SEQUENCE {
        cpmCPUThresholdClass         INTEGER,
        cpmCPURisingThresholdValue   Unsigned32,
        cpmCPURisingThresholdPeriod  Unsigned32,
        cpmCPUFallingThresholdValue  Unsigned32,
        cpmCPUFallingThresholdPeriod Unsigned32,
        cpmCPUThresholdEntryStatus   RowStatus
}

cpmCPUThresholdClass OBJECT-TYPE
    SYNTAX          INTEGER  {
                        total(1),
                        interrupt(2),
                        process(3)
                    }
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "Value of this object indicates the type of
        utilization, which is monitored. The total(1) indicates
        the total CPU utilization, interrupt(2) indicates the
        the CPU utilization in interrupt context and process(3)
        indicates the CPU utilization in the process level
        execution context." 
    ::= { cpmCPUThresholdEntry 1 }

cpmCPURisingThresholdValue OBJECT-TYPE
    SYNTAX          Unsigned32 (1..100)
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "The percentage rising threshold value configured by
        the user. The value indicates, 
        if the percentage CPU utilization is equal to or above
        this value for cpmCPURisingThresholdPeriod duration 
        then send a cpmCPURisingThreshold notification to
        the NMS." 
    ::= { cpmCPUThresholdEntry 2 }

cpmCPURisingThresholdPeriod OBJECT-TYPE
    SYNTAX          Unsigned32 (5..4294967295)
    UNITS           "seconds"
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This is an observation interval.
        The value of this object indicates that 
        the CPU utilization should be above
        cpmCPURisingThresholdValue for this duration to send a 
        cpmCPURisingThreshold notification to the NMS."
    DEFVAL          { 5 } 
    ::= { cpmCPUThresholdEntry 3 }

cpmCPUFallingThresholdValue OBJECT-TYPE
    SYNTAX          Unsigned32 (1..100)
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "The percentage falling threshold value configured by
        the user. The value indicates, if the percentage 
        CPU utilization is equal to or below this value for 
        cpmCPUFallingThresholdPeriod duration
        then send a cpmCPUFallingThreshold notification 
        to the NMS." 
    ::= { cpmCPUThresholdEntry 4 }

cpmCPUFallingThresholdPeriod OBJECT-TYPE
    SYNTAX          Unsigned32 (5..4294967295)
    UNITS           "seconds"
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This is an observation interval. The value of this
        object indicates that CPU utilization should be below
        cpmCPUFallingThresholdValue for this duration to send a 
        cpmCPURisingThreshold notification to the NMS."
    DEFVAL          { 5 } 
    ::= { cpmCPUThresholdEntry 5 }

cpmCPUThresholdEntryStatus OBJECT-TYPE
    SYNTAX          RowStatus
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "The status of this table entry." 
    ::= { cpmCPUThresholdEntry 6 }
 


cpmCPUHistoryThreshold OBJECT-TYPE
    SYNTAX          Unsigned32 (1..100)
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "The user  configured value of this object gives
        the minimum percent CPU utilization of a process
        in the last cpmCPUMonInterval duration required to be a 
        member of history table. When this object is changed
        the new value will have effect in the next interval." 
    ::= { cpmCPUHistory 1 }

cpmCPUHistorySize OBJECT-TYPE
    SYNTAX          Unsigned32 (1..4294967295)
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "A value configured by the user which specifies the
        number of reports in the history table. 
        A report contains set of processes which crossed
        the cpmCPUHistoryThreshold 
        in the last cpmCPUMonInterval along with 
        the time at which this report is
        created, total and interrupt CPU utilizations. 
        When this object is changed
        the new value will have effect in the next interval." 
    ::= { cpmCPUHistory 2 }

cpmCPUHistoryTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CpmCPUHistoryEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "A list of CPU utilization history entries."
    ::= { cpmCPUHistory 3 }

cpmCPUHistoryEntry OBJECT-TYPE
    SYNTAX          CpmCPUHistoryEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "A historical sample of CPU utilization statistics.
        cpmCPUTotalIndex identifies the CPU (or group of CPUs)
        for which this history is collected. 
        When the cpmCPUHistorySize is
        reached the least recent entry is lost."
    INDEX           {
                        cpmCPUTotalIndex,
                        cpmCPUHistoryReportId
                    } 
    ::= { cpmCPUHistoryTable 1 }

CpmCPUHistoryEntry ::= SEQUENCE {
        cpmCPUHistoryReportId      Unsigned32,
        cpmCPUHistoryReportSize    Unsigned32,
        cpmCPUHistoryTotalUtil     Gauge32,
        cpmCPUHistoryInterruptUtil Gauge32,
        cpmCPUHistoryCreatedTime   TimeStamp
}

cpmCPUHistoryReportId OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "All the entries which are created at the same time
        will have same value for this object. When the
        configured threshold for being a part of History table
        is reached then the qualified processes become the
        part of history table. The entries which became the 
        part of history table at one instant will have
        the same value for this object. When this object
        reaches the max index value then it will wrap around." 
    ::= { cpmCPUHistoryEntry 1 }

cpmCPUHistoryReportSize OBJECT-TYPE
    SYNTAX          Unsigned32 (0..4294967295)
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The number of process entries in a report.
        This object gives information about how many processes 
        became a part of history table at one instant." 
    ::= { cpmCPUHistoryEntry 2 }

cpmCPUHistoryTotalUtil OBJECT-TYPE
    SYNTAX          Gauge32 (0..100)
    UNITS           "percent"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "Total percentage of CPU utilization
        at cpmCPUHistoryCreated." 
    ::= { cpmCPUHistoryEntry 3 }

cpmCPUHistoryInterruptUtil OBJECT-TYPE
    SYNTAX          Gauge32 (0..100)
    UNITS           "percent"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "Percentage of CPU utilization in the interrupt context
        at cpmCPUHistoryCreated." 
    ::= { cpmCPUHistoryEntry 4 }

cpmCPUHistoryCreatedTime OBJECT-TYPE
    SYNTAX          TimeStamp
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "Time stamp with respect to sysUpTime indicating
        the time at which this report is created." 
    ::= { cpmCPUHistoryEntry 5 }
 


cpmThreadTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CpmThreadEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This table contains generic information about
        POSIX threads in the device."
    ::= { cpmThread 1 }

cpmThreadEntry OBJECT-TYPE
    SYNTAX          CpmThreadEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "An entry containing the general statistics
        of a POSIX thread."
    INDEX           {
                        cpmCPUTotalIndex,
                        cpmProcessPID,
                        cpmThreadID
                    } 
    ::= { cpmThreadTable 1 }

CpmThreadEntry ::= SEQUENCE {
        cpmThreadID              Unsigned32,
        cpmThreadName            SnmpAdminString,
        cpmThreadPriority        Unsigned32,
        cpmThreadState           INTEGER,
        cpmThreadBlockingProcess RowPointer,
        cpmThreadCpuUtilization  Gauge32,
        cpmThreadStackSize       Gauge32
}

cpmThreadID OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object contains the thread ID. ThreadID is
        Unique per process." 
    ::= { cpmThreadEntry 1 }

cpmThreadName OBJECT-TYPE
    SYNTAX          SnmpAdminString
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object represents the name of the thread.
        Thread names need not be unique. Hence statistics 
        should be analyzed against thread ID." 
    ::= { cpmThreadEntry 2 }

cpmThreadPriority OBJECT-TYPE
    SYNTAX          Unsigned32 (0..63)
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the priority of a POSIX thread.
        The higher the number, the higher the priority of the 
        thread over other threads." 
    ::= { cpmThreadEntry 3 }

cpmThreadState OBJECT-TYPE
    SYNTAX          INTEGER  {
                        other(1),
                        dead(2),
                        running(3),
                        ready(4),
                        stopped(5),
                        send(6),
                        receive(7),
                        reply(8),
                        stack(9),
                        waitpage(10),
                        sigsuspend(11),
                        sigwaitinfo(12),
                        nanosleep(13),
                        mutex(14),
                        condvar(15),
                        join(16),
                        intr(17),
                        sem(18)
                    }
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the current state of a thread.
        Running state means that the thread is actively 
        consumig CPU. All the other states are just waiting 
        states. The valid states are:
        other         - Any other state apart from the listed 
                        ones.
        dead          - Kernel is waiting to release the 
                        thread's resources.
        running       - Actively running on a CPU.
        ready         - Not running on a CPU, but is ready to 
                        run (one or more higher or equal 
                        priority threads are running).
        stopped       - Suspended (SIGSTOP signal).
        send          - Waiting for a server to receive 
                        a message.
        receive       - Waiting for a client to send a message.
        reply         - Waiting for a server to reply to a 
                        message.
        stack         - Waiting for more stack to be allocated.
        waitpage      - Waiting for process manager to 
                        resolve a fault on a page.
        sigsuspend    - Suspended for a signal.
        sigwaitinfo   - Waiting for a signal.
        nanosleep     - Sleeping for a period of time.
        mutex         - Waiting to acquire a mutex
        condvar       - Waiting for a condition variable to be 
                        signalled.
        join          - Waiting for the completion of another 
                        thread.
        intr          - Waiting for an interrupt.
        sem           - Waiting to acquire a semaphore." 
    ::= { cpmThreadEntry 4 }

cpmThreadBlockingProcess OBJECT-TYPE
    SYNTAX          RowPointer
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object identifies the process on which the
        current thread is blocked on. This points to the 
        cpmProcessTable of the process on which the thread 
        in context is blocked. This is valid only to threads
        which are either in send/reply states. For the 
        rest of the threads it is returned as 0.0" 
    ::= { cpmThreadEntry 5 }

cpmThreadCpuUtilization OBJECT-TYPE
    SYNTAX          Gauge32
    UNITS           "milliseconds"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object provides a general idea on how busy
        the thread in context caused the processor to be." 
    ::= { cpmThreadEntry 6 }

cpmThreadStackSize OBJECT-TYPE
    SYNTAX          Gauge32
    UNITS           "bytes"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the stack size allocated to
        the thread in context." 
    ::= { cpmThreadEntry 7 }
 


cpmVirtualProcessTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CpmVirtualProcessEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This table contains information about virtual
        processes in a virtual machine."
    ::= { cpmVirtualProcess 1 }

cpmVirtualProcessEntry OBJECT-TYPE
    SYNTAX          CpmVirtualProcessEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "An entry containing the general statistics of a
        virtual process in a virtual machine."
    INDEX           {
                        cpmCPUTotalIndex,
                        cpmProcessPID,
                        cpmVirtualProcessID
                    } 
    ::= { cpmVirtualProcessTable 1 }

CpmVirtualProcessEntry ::= SEQUENCE {
        cpmVirtualProcessID           Unsigned32,
        cpmVirtualProcessName         SnmpAdminString,
        cpmVirtualProcessUtil5Sec     Gauge32,
        cpmVirtualProcessUtil1Min     Gauge32,
        cpmVirtualProcessUtil5Min     Gauge32,
        cpmVirtualProcessMemAllocated Gauge32,
        cpmVirtualProcessMemFreed     Gauge32,
        cpmVirtualProcessInvokeCount  Counter32,
        cpmVirtualProcessRuntime      Counter32
}

cpmVirtualProcessID OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object indicates the process ID of a virtual
        process. PID is unique only inside one address space.
        Virtual process PID should be considered along with 
        Parent process cpmProcessPID." 
    ::= { cpmVirtualProcessEntry 1 }

cpmVirtualProcessName OBJECT-TYPE
    SYNTAX          SnmpAdminString (SIZE  (1..32))
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the name of a virtual process.
        If the name is longer than 32 characters, it will be
        truncated to the first 31 characters, and a `*' will be
        appended as the last character to imply this is a
        truncated process name." 
    ::= { cpmVirtualProcessEntry 2 }

cpmVirtualProcessUtil5Sec OBJECT-TYPE
    SYNTAX          Gauge32 (0..100)
    UNITS           "percent"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This indicates an estimated CPU utilization by
        a virtual process over the last 5 seconds." 
    ::= { cpmVirtualProcessEntry 3 }

cpmVirtualProcessUtil1Min OBJECT-TYPE
    SYNTAX          Gauge32 (0..100)
    UNITS           "percent"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This indicates an estimated CPU utilization by
        a virtual process over the last one minute." 
    ::= { cpmVirtualProcessEntry 4 }

cpmVirtualProcessUtil5Min OBJECT-TYPE
    SYNTAX          Gauge32 (0..100)
    UNITS           "percent"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This indicates an estimated CPU utilization by
        a virtual process over the last 5 minutes." 
    ::= { cpmVirtualProcessEntry 5 }

cpmVirtualProcessMemAllocated OBJECT-TYPE
    SYNTAX          Gauge32
    UNITS           "bytes"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the memory allocated by the
        virtual process inside the address space of a 
        process running on Native OS." 
    ::= { cpmVirtualProcessEntry 6 }

cpmVirtualProcessMemFreed OBJECT-TYPE
    SYNTAX          Gauge32
    UNITS           "bytes"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the memory freed by the virtual
        process inside the address space of a process running 
        on Native OS." 
    ::= { cpmVirtualProcessEntry 7 }

cpmVirtualProcessInvokeCount OBJECT-TYPE
    SYNTAX          Counter32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The number of times a virtual process is invoked." 
    ::= { cpmVirtualProcessEntry 8 }

cpmVirtualProcessRuntime OBJECT-TYPE
    SYNTAX          Counter32
    UNITS           "microseconds"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The amount of CPU time a virtual process has used in
        microseconds." 
    ::= { cpmVirtualProcessEntry 9 }
 

-- History table contains the statistics for the processes
-- qualified to be a part of history table.
-- The statistics are the CPU utilization of processes
-- for past 5 second period.

cpmCPUProcessHistoryTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CpmCPUProcessHistoryEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "A list of process history entries. This table contains
        CPU utilization of processes which crossed the 
        cpmCPUHistoryThreshold."
    ::= { cpmCPUHistory 4 }

cpmCPUProcessHistoryEntry OBJECT-TYPE
    SYNTAX          CpmCPUProcessHistoryEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "A historical sample of process utilization
        statistics. The entries in this table will have
        corresponding entires in the cpmCPUHistoryTable.
        The entries in this table get deleted when the entry
        associated with this entry in the cpmCPUHistoryTable 
        gets deleted."
    INDEX           {
                        cpmCPUTotalIndex,
                        cpmCPUHistoryReportId,
                        cpmCPUProcessHistoryIndex
                    } 
    ::= { cpmCPUProcessHistoryTable 1 }

CpmCPUProcessHistoryEntry ::= SEQUENCE {
        cpmCPUProcessHistoryIndex Unsigned32,
        cpmCPUHistoryProcId       Unsigned32,
        cpmCPUHistoryProcName     DisplayString,
        cpmCPUHistoryProcCreated  TimeStamp,
        cpmCPUHistoryProcUtil     Gauge32
}

cpmCPUProcessHistoryIndex OBJECT-TYPE
    SYNTAX          Unsigned32 (1..4294967295)
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "An index that uniquely identifies an entry in
        the cmpCPUProcessHistory table among those in the 
        same report. This index is between 1 to N, 
        where N is the cpmCPUHistoryReportSize." 
    ::= { cpmCPUProcessHistoryEntry 1 }

cpmCPUHistoryProcId OBJECT-TYPE
    SYNTAX          Unsigned32 (1..2147483647)
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The process Id associated with this entry." 
    ::= { cpmCPUProcessHistoryEntry 2 }

cpmCPUHistoryProcName OBJECT-TYPE
    SYNTAX          DisplayString
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The process name associated with this entry." 
    ::= { cpmCPUProcessHistoryEntry 3 }

cpmCPUHistoryProcCreated OBJECT-TYPE
    SYNTAX          TimeStamp
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The time when the process was created. The process ID
        and the time when the process was created, uniquely 
        identifies a process." 
    ::= { cpmCPUProcessHistoryEntry 4 }

cpmCPUHistoryProcUtil OBJECT-TYPE
    SYNTAX          Gauge32 (0..100)
    UNITS           "percent"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The percentage CPU utilization of a process at
        cpmCPUHistoryCreatedTime." 
    ::= { cpmCPUProcessHistoryEntry 5 }
 

-- notifications

ciscoProcessMIBNotifPrefix  OBJECT IDENTIFIER
    ::= { ciscoProcessMIB 2 }

ciscoProcessMIBNotifs  OBJECT IDENTIFIER
    ::= { ciscoProcessMIBNotifPrefix 0 }


cpmCPURisingThreshold NOTIFICATION-TYPE
    OBJECTS         {
                        cpmCPURisingThresholdValue,
                        cpmCPUTotalMonIntervalValue,
                        cpmCPUInterruptMonIntervalValue,
                        cpmProcExtUtil5SecRev,
                        cpmProcessTimeCreated
                    }
    STATUS          current
    DESCRIPTION
        "A cpmCPURisingThreshold notification is sent
        when configured rising CPU utilization threshold
        (cpmCPURisingThresholdValue) is reached and
        CPU utilization remained above the threshold 
        for configured interval(cpmCPURisingThresholdPeriod)
        and such a notification is requested. 
        The cpmProcExtUtil5SecRev and cpmProcessTimeCreated 
        objects can be repeated multiple times
        in a notification indicating the top users of CPU."
   ::= { ciscoProcessMIBNotifs 1 }

cpmCPUFallingThreshold NOTIFICATION-TYPE
    OBJECTS         {
                        cpmCPUFallingThresholdValue,
                        cpmCPUTotalMonIntervalValue,
                        cpmCPUInterruptMonIntervalValue
                    }
    STATUS          current
    DESCRIPTION
        "A cpmCPUFallingThresholdTrap is sent when the
        configured falling threshold
        (cpmCPURisingThresholdValue) 
        is reached and CPU utilization remained under 
        threshold for configured 
        interval (cpmCPUFallingThresholdPeriod) 
        and such a notification is requested."
   ::= { ciscoProcessMIBNotifs 2 }
-- conformance information

ciscoProcessMIBConformance  OBJECT IDENTIFIER
    ::= { ciscoProcessMIB 3 }

cpmCompliances  OBJECT IDENTIFIER
    ::= { ciscoProcessMIBConformance 1 }

cpmGroups  OBJECT IDENTIFIER
    ::= { ciscoProcessMIBConformance 2 }


cProcessMIBCompliance MODULE-COMPLIANCE
    STATUS          deprecated
    DESCRIPTION
        "The compliance statement for entities which implement
        the Cisco Process MIB. This is deprecated and new 
        compliance cProcessMIBComplianceRev is added."
    MODULE          -- this module
    MANDATORY-GROUPS {
                        cpmCPUTotalGroup,
                        cpmProcessGroup
                    }

    GROUP           cpmProcessExtGroup
    DESCRIPTION
        "The cpmProcessExtGroup is optional for all entities."

    OBJECT          cpmProcExtPriority
    MIN-ACCESS      read-only
    DESCRIPTION
        "Write access is not required."
    ::= { cpmCompliances 1 }

cProcessMIBComplianceRev MODULE-COMPLIANCE
    STATUS          deprecated
    DESCRIPTION
        "The compliance statement for entities which implement
        the Cisco Process MIB. This compliance module
        deprecates cProcessMIBCompliance."
    MODULE          -- this module
    MANDATORY-GROUPS {
                        cpmCPUTotalGroupRev,
                        cpmProcessGroupRev
                    }

    GROUP           cpmProcessExtGroupRev
    DESCRIPTION
        "The cpmProcessExtGroupRev is optional for all
        entities. This object is defined after deprecating
        cpmProcessExtGroup."
    ::= { cpmCompliances 2 }

cProcessMIBComplianceRev1 MODULE-COMPLIANCE
    STATUS          deprecated
    DESCRIPTION
        "The compliance statement for entities which implement
        the Cisco Process MIB. This compliance module
        deprecates cProcessMIBComplianceRev."
    MODULE          -- this module
    MANDATORY-GROUPS {
                        cpmCPUThresholdGroup,
                        cpmCPUTotalGroupRev1
                    }

    GROUP           cpmCPUHistoryGroup
    DESCRIPTION
        "The cpmCPUHistoryGroup is optional and gives
        the information about process CPU utilization history."

    GROUP           cpmCPUThresholdNotificationGroup
    DESCRIPTION
        "The cpmCPUThresholdNotificationGroup is optional and
        these traps indicates that 
        configured threshold is reached."
    ::= { cpmCompliances 3 }

cProcessMIBComplianceRev2 MODULE-COMPLIANCE
    STATUS          current
    DESCRIPTION
        "The compliance statement for entities which implement
        the Cisco Process MIB. This compliance module
        deprecates cProcessMIBComplianceRev1."
    MODULE          -- this module
    MANDATORY-GROUPS { cpmCPUTotalGroupRev1 }

    GROUP           cpmCPUHistoryGroup
    DESCRIPTION
        "The cpmCPUHistoryGroup is optional and gives
        the information about process CPU utilization history."

    GROUP           cpmCPUThresholdNotificationGroup
    DESCRIPTION
        "The cpmCPUThresholdNotificationGroup is optional and
        these traps indicates that configured threshold 
        is reached."

    GROUP           cpmProcessExtGroupRev
    DESCRIPTION
        "The cpmProcessExtGroupRev is optional and gives
        detailed process monitoring information."

    GROUP           cpmCPUThresholdGroup
    DESCRIPTION
        "The cpmCPUThresholdGroup is optional and provides
        information on configuring threshold values."

    GROUP           cpmProcessGroupRev
    DESCRIPTION
        "The cpmProcessGroupRev is optional and provides common
        process monitoring information."

    GROUP           cpmCPUPosixMemoryGroup
    DESCRIPTION
        "The cpmCPUPosixMemoryGroup gives information about
        CPU wide system memory of POSIX OS.
        cpmCPUPosixMemoryGroup is mandatory if the Operating
        System of the managed system supports Posix standard
        kernel."

    GROUP           cpmPosixProcessGroup
    DESCRIPTION
        "The cpmPosixProcessGroup gives information about
        POSIX process. cpmPosixProcessGroup is mandatory if
        the Operating System of the managed system
        supports Posix standard kernel."

    GROUP           cpmThreadGroup
    DESCRIPTION
        "The cpmThreadGroup gives information about POSIX
        threads. cpmThreadGroup is mandatory if the Operating
        System of the managed system supports Posix standard
        kernel."

    GROUP           cpmVirtualProcessGroup
    DESCRIPTION
        "The cpmVirtualProcessGroup gives information about
        virtual process. cpmVirtualProcessGroup is mandatory
        Operating System of the managed system supports
        Posix standard kernel."
    ::= { cpmCompliances 4 }

-- units of conformance

cpmCPUTotalGroup OBJECT-GROUP
    OBJECTS         {
                        cpmCPUTotalPhysicalIndex,
                        cpmCPUTotal5sec,
                        cpmCPUTotal1min,
                        cpmCPUTotal5min
                    }
    STATUS          deprecated
    DESCRIPTION
        "A collection of objects providing CPU load monitoring
        information. This group is mandatory for all cisco devices.
        This group is deprecated since the objects cpmCPUTotal5sec,
        cpmCPUTotal1min and cpmCPUTotal5min are
        deprecated. A new object cpmCPUTotalGroupRev is
        added in place of it."
    ::= { cpmGroups 1 }

cpmProcessGroup OBJECT-GROUP
    OBJECTS         {
                        cpmProcessPID,
                        cpmProcessName,
                        cpmProcessuSecs,
                        cpmProcessTimeCreated
                    }
    STATUS          deprecated
    DESCRIPTION
        "A collection of objects providing common process
        monitoring information. This group is mandatory for 
        all cisco devices. This object is deprecated
        by cpmProcessGroupRev."
    ::= { cpmGroups 2 }

cpmProcessExtGroup OBJECT-GROUP
    OBJECTS         {
                        cpmProcExtMemAllocated,
                        cpmProcExtMemFreed,
                        cpmProcExtInvoked,
                        cpmProcExtRuntime,
                        cpmProcExtUtil5Sec,
                        cpmProcExtUtil1Min,
                        cpmProcExtUtil5Min,
                        cpmProcExtPriority
                    }
    STATUS          deprecated
    DESCRIPTION
        "A collection of objects providing additional and
        more detailed process monitoring information. This 
        group is mandatory for all cisco devices that have 
        the internal capability to keep this information. 
        This group is deprecated and new group
        cpmProcessExtGroupRev is added."
    ::= { cpmGroups 3 }

cpmCPUTotalGroupRev OBJECT-GROUP
    OBJECTS         {
                        cpmCPUTotalPhysicalIndex,
                        cpmCPUTotal5secRev,
                        cpmCPUTotal1minRev,
                        cpmCPUTotal5minRev
                    }
    STATUS          deprecated
    DESCRIPTION
        "A collection of objects providing CPU load monitoring
        information. This group is mandatory for all cisco
        devices. This group deprecates cpmCPUTotalGroup.
        This group is deprecated since the object
        cpmCPUTotal5secRev is deprecated.
        A new object cpmCPUTotalGroupRev1 is
        added in place of it."
    ::= { cpmGroups 4 }

cpmProcessExtGroupRev OBJECT-GROUP
    OBJECTS         {
                        cpmProcExtMemAllocatedRev,
                        cpmProcExtMemFreedRev,
                        cpmProcExtInvokedRev,
                        cpmProcExtRuntimeRev,
                        cpmProcExtUtil5SecRev,
                        cpmProcExtUtil1MinRev,
                        cpmProcExtUtil5MinRev,
                        cpmProcExtPriorityRev
                    }
    STATUS          current
    DESCRIPTION
        "A collection of objects providing additional and
        more detailed process monitoring information. This 
        group is mandatory for all cisco devices that have 
        the internal capability to keep this information.
        This group is formed after deprecating cpmProcessExtGroup.
        cpmProcExtMemAllocatedRev, cpmProcExtMemFreedRev,
        cpmProcExtInvokedRev, cpmProcExtRuntimeRev,
        cpmProcExtUtil5SecRev, cpmProcExtUtil1MinRev and 
        cpmProcExtUtil5MinRev are the new objects added."
    ::= { cpmGroups 5 }

cpmProcessGroupRev OBJECT-GROUP
    OBJECTS         {
                        cpmProcessPID,
                        cpmProcessName,
                        cpmProcessAverageUSecs,
                        cpmProcessTimeCreated
                    }
    STATUS          current
    DESCRIPTION
        "A collection of objects providing common process
        monitoring information. This group is mandatory for 
        all cisco devices. This object deprecates
        cpmProcessGroup."
    ::= { cpmGroups 6 }

cpmCPUTotalGroupRev1 OBJECT-GROUP
    OBJECTS         {
                        cpmCPUTotalPhysicalIndex,
                        cpmCPUTotal1minRev,
                        cpmCPUTotal5minRev,
                        cpmCPUMonInterval,
                        cpmCPUTotalMonIntervalValue,
                        cpmCPUInterruptMonIntervalValue
                    }
    STATUS          current
    DESCRIPTION
        "A collection of objects providing CPU load monitoring
        information. This group is mandatory for all cisco
        devices. This group deprecates cpmCPUTotalGroupRev."
    ::= { cpmGroups 7 }

cpmCPUThresholdGroup OBJECT-GROUP
    OBJECTS         {
                        cpmCPURisingThresholdValue,
                        cpmCPURisingThresholdPeriod,
                        cpmCPUFallingThresholdValue,
                        cpmCPUFallingThresholdPeriod,
                        cpmCPUThresholdEntryStatus
                    }
    STATUS          current
    DESCRIPTION
        "A collection of objects used for configuration
        of thresholding."
    ::= { cpmGroups 8 }

cpmCPUHistoryGroup OBJECT-GROUP
    OBJECTS         {
                        cpmCPUHistorySize,
                        cpmCPUHistoryThreshold,
                        cpmCPUHistoryTotalUtil,
                        cpmCPUHistoryInterruptUtil,
                        cpmCPUHistoryCreatedTime,
                        cpmCPUHistoryReportSize,
                        cpmCPUHistoryProcId,
                        cpmCPUHistoryProcName,
                        cpmCPUHistoryProcCreated,
                        cpmCPUHistoryProcUtil
                    }
    STATUS          current
    DESCRIPTION
        "A collection of objects providing information
        about CPU utilization history."
    ::= { cpmGroups 9 }

cpmCPUThresholdNotificationGroup NOTIFICATION-GROUP
   NOTIFICATIONS    {
                        cpmCPURisingThreshold,
                        cpmCPUFallingThreshold
                    }
    STATUS          current
    DESCRIPTION
        "A group of notifications."
    ::= { cpmGroups 10 }

cpmCPUPosixMemoryGroup OBJECT-GROUP
    OBJECTS         {
                        cpmCPUMemoryUsed,
                        cpmCPUMemoryFree,
                        cpmCPUMemoryKernelReserved,
                        cpmCPUMemoryLowest
                    }
    STATUS          current
    DESCRIPTION
        "A collection of common objects providing
        CPU wide System memory information running
        POSIX compliant OS."
    ::= { cpmGroups 11 }

cpmPosixProcessGroup OBJECT-GROUP
    OBJECTS         {
                        cpmProcessType,
                        cpmProcessRespawn,
                        cpmProcessRespawnCount,
                        cpmProcessRespawnAfterLastPatch,
                        cpmProcessMemoryCore,
                        cpmProcessLastRestartUser,
                        cpmProcessTextSegmentSize,
                        cpmProcessDataSegmentSize,
                        cpmProcessStackSize,
                        cpmProcessDynamicMemorySize
                    }
    STATUS          current
    DESCRIPTION
        "A collection of common objects providing Process
        information on devices running POSIX compliant OS."
    ::= { cpmGroups 12 }

cpmThreadGroup OBJECT-GROUP
    OBJECTS         {
                        cpmThreadName,
                        cpmThreadPriority,
                        cpmThreadState,
                        cpmThreadBlockingProcess,
                        cpmThreadCpuUtilization,
                        cpmThreadStackSize
                    }
    STATUS          current
    DESCRIPTION
        "A collection of objects providing thread information
        information on devices running POSIX compliant OS."
    ::= { cpmGroups 13 }

cpmVirtualProcessGroup OBJECT-GROUP
    OBJECTS         {
                        cpmVirtualProcessName,
                        cpmVirtualProcessUtil5Sec,
                        cpmVirtualProcessUtil1Min,
                        cpmVirtualProcessUtil5Min,
                        cpmVirtualProcessMemAllocated,
                        cpmVirtualProcessMemFreed,
                        cpmVirtualProcessInvokeCount,
                        cpmVirtualProcessRuntime
                    }
    STATUS          current
    DESCRIPTION
        "A collection of objects providing virtual process
        information on devices that can run virtual machines."
    ::= { cpmGroups 14 }

END



