AD | Application | AWS | Azure | Cloud | Database | Enterprise | Environmental | Event Log | File System | Infra | IoT | IT Service | Linux | Network/System | Performance | Protocol | SaaS | Security | Service Level | SNMP | Storage | VMware | VoIP | Web | Wireless

Crumbtrail

MonitorTools.com » Technical documentation » SNMP » MIB » Cisco » CISCO-PROCESS-MIB

CISCO-PROCESS-MIB device MIB details by Cisco

CISCO-PROCESS-MIB file content

The SNMP protocol is used to for conveying information and commands between agents and managing entities. SNMP uses the User Datagram Protocol (UDP) as the transport protocol for passing data between managers and agents. The reasons for using UDP for SNMP are, firstly it has low overheads in comparison to TCP, which uses a 3-way hand shake for connection. Secondly, in congested networks, SNMP over TCP is a bad idea because TCP in order to maintain reliability will flood the network with retransmissions.

Management information (MIB) is represented as a collection of managed objects. These objects together form a virtual information base called MIB. An agent may implement many MIBs, but all agents must implement a particular MIB called MIB-II [16]. This standard defines variables for things such as interface statistics (interface speeds, MTU, octets sent, octets received, etc.) as well as various other things pertaining to the system itself (system location, system contact, etc.). The main goal of MIB-II is to provide general TCP/IP management information.

Use ActiveXperts Network Monitor 2024 to import vendor-specific MIB files, inclusing CISCO-PROCESS-MIB.


Vendor: Cisco
Mib: CISCO-PROCESS-MIB  [download]  [view objects]
Tool: ActiveXperts Network Monitor 2024 [download]    (ships with advanced SNMP/MIB tools)
-- *****************************************************************
-- CISCO-PROCESS-MIB.my: MIB for CPU and process statistics
--
-- August 1998, Ramanathan R. Kavasseri
--
-- Copyright (c) 1998, 2001 by cisco Systems, Inc.
-- All rights reserved.
-- *****************************************************************
--

CISCO-PROCESS-MIB DEFINITIONS ::= BEGIN

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

ciscoProcessMIB MODULE-IDENTITY
	LAST-UPDATED	"200301220000Z"
	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."
	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 }
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, -- deprecated
		cpmCPUTotal1min                 Gauge32, -- deprecated
		cpmCPUTotal5min                 Gauge32, -- deprecated
		cpmCPUTotal5secRev              Gauge32, -- deprecated
		cpmCPUTotal1minRev              Gauge32,
		cpmCPUTotal5minRev              Gauge32,
		cpmCPUMonInterval               Unsigned32,
		cpmCPUTotalMonIntervalValue     Gauge32,
		cpmCPUInterruptMonIntervalValue 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 cpmCPUTotalMonInterval"
	::= { 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 }

-- 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, -- deprecated
		cpmProcessAverageUSecs
			Unsigned32,
		cpmProcessTimeCreated
			TimeStamp
	}

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		
	}

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 }

-- 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),     -- Total CPU Utilization
            interrupt(2), -- CPU Utilization in Interrupt context
            process(3)    -- CPU Utilization in process level 
                          -- execution context
	      }
       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 }

-- 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	current
	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 }

-- 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 }
END