ADTRAN-GENPROCESSES-MIB

-- TITLE:     The ADTRAN Processes MIB
-- PRODUCT:   Metro Ethernet Products
-- VERSION:   1.0
-- DATE:      02/22/10
-- AUTHOR:    Joey Boyd
-- STATUS:    PRELIMINARY

-- This MIB defines the object identifiers (OIDs) for the
-- ADTRAN GENPROCESSES MIB objects

-- HISTORY:
-- 2010/02/22 jlb   STATUS: PRELIMINARY.
-- 2010/02/23 jlb   Added UNITS and DEFVAL clauses to adGenProcessesProvHeapFreeThreshold.
--					Added UNITS clause to all members of adGenProcessesMemStatTable.
--					Changed MAX-ACCESS for entries in adGenProcessesMemStatTable to read-only.
--					Updated the #SUMMARY string for adGenProcessesBlockMgrFreeThreshCrossed.
-- DO NOT MAKE HISTORY COMMENTS HERE!!!! 
-- ******************************************************************************************
DEFINITIONS ::= BEGIN

IMPORTS

   adGenProcesses,
   adGenProcessesID
      FROM ADTRAN-SHARED-CND-SYSTEM-MIB

   OBJECT-TYPE,
   MODULE-IDENTITY,
   NOTIFICATION-TYPE,
   Unsigned32,
   Integer32,
   Counter32
      FROM SNMPv2-SMI

   DisplayString,
   RowStatus,
   TimeStamp
      FROM SNMPv2-TC

   sysName
      FROM SNMPv2-MIB

   InterfaceIndex,
   ifIndex
      FROM IF-MIB

   adGenSlotInfoIndex
      FROM ADTRAN-GENSLOT-MIB

   adTrapInformSeqNum
      FROM ADTRAN-GENTRAPINFORM-MIB
   ;

adGenProcessesMIB MODULE-IDENTITY
   LAST-UPDATED "201706230000Z"
   ORGANIZATION "Adtran, Inc."
   CONTACT-INFO
     "CND Tech Support
         Postal: ADTRAN, Inc.
                 901 Explorer Blvd.
                 Huntsville, AL  35806
                 Tel: +1 800 726-8663
                 Fax: +1 256 963 6217
                 E-mail: support@adtran.com"
   DESCRIPTION
      "This MIB defines the objects for the Processes MIB."


   REVISION "201706230000Z"
   DESCRIPTION "Added adGenProcessesStarvationAlarmEnable, adGenProcessesDeadlockAlarmEnable,
                adGenProcessesStarvationAlarmClr, adGenProcessesStarvationAlarmAct,
                adGenProcessesDeadlockAlarmClr, and adGenProcessesDeadlockAlarmAct"

   REVISION "201109230000Z"
   DESCRIPTION "Added adGenProcessesCpuStatTable, adGenProcessesCpuStatEntry  and
                adGenProcessesCpuStatMaxUtilization"

   REVISION "201002230000Z"
   DESCRIPTION "Added UNITS and DEFVAL clauses to adGenProcessesProvHeapFreeThreshold.
             Added UNITS clause to all members of adGenProcessesMemStatTable."

   REVISION "201002220000Z"
   DESCRIPTION "Created"
::= { adGenProcessesID 1 }

adGenProcessesNotifications               OBJECT IDENTIFIER ::= {adGenProcesses 0}
adGenProcessesProvisioning                OBJECT IDENTIFIER ::= {adGenProcesses 1}
adGenProcessesStatus                      OBJECT IDENTIFIER ::= {adGenProcesses 2}

--==================================================================================================================
-- PROVISIONING
--==================================================================================================================

   adGenProcessesProvTable OBJECT-TYPE
      SYNTAX  SEQUENCE OF AdGenProcessesProvEntry
      MAX-ACCESS  not-accessible
      STATUS  current
      DESCRIPTION
         "The Processes provisioning table."
      ::= { adGenProcessesProvisioning 1 }

   adGenProcessesProvEntry OBJECT-TYPE
      SYNTAX  AdGenProcessesProvEntry
      MAX-ACCESS  not-accessible
      STATUS  current
      DESCRIPTION
         "An entry in the Processes provisioning table."
      INDEX  { adGenSlotInfoIndex }
      ::= { adGenProcessesProvTable 1 }

   AdGenProcessesProvEntry ::=
      SEQUENCE {
         adGenProcessesProvHeapFreeThreshold
            Unsigned32,
         adGenProcessesStarvationAlarmEnable       
            INTEGER,
         adGenProcessesDeadlockAlarmEnable       
            INTEGER	
      }

      adGenProcessesProvHeapFreeThreshold OBJECT-TYPE
         SYNTAX  Unsigned32
       UNITS "bytes"
         MAX-ACCESS  read-write
         STATUS  current
         DESCRIPTION
            "This variable specifies a threshold (in bytes) for the minimum free memory
          in the heap.  Below this setting an alarm will be raised.
          A value of 0 will disable the alarm."
       DEFVAL { 0 }
         ::= { adGenProcessesProvEntry 1}
		  
      adGenProcessesStarvationAlarmEnable OBJECT-TYPE
         SYNTAX         INTEGER {
                        disable(1),
                        enable(2)
                        }
         MAX-ACCESS     read-write
         STATUS         current
         DESCRIPTION
          "Controls whether the adGenProcessesStarvationAlarm alarm is
           generated when the alarm condition is active.
           Valid options listed below:
               disable (1)  -- alarm disabled
               enable  (2)  -- alarm enabled"
         DEFVAL  { enable }
         ::= { adGenProcessesProvEntry 2 }

      adGenProcessesDeadlockAlarmEnable OBJECT-TYPE
         SYNTAX         INTEGER {
                        disable(1),
                        enable(2)
                        }
         MAX-ACCESS     read-write
         STATUS         current
         DESCRIPTION
          "Controls whether the adGenProcessesDeadlockAlarm alarm is
           generated when the alarm condition is active.
           Valid options listed below:
               disable (1)  -- alarm disabled
               enable  (2)  -- alarm enabled"
         DEFVAL  { enable }
         ::= { adGenProcessesProvEntry 3 }

--==================================================================================================================
-- STATUS
--==================================================================================================================

   adGenProcessesMemStatTable OBJECT-TYPE
      SYNTAX  SEQUENCE OF AdGenProcessesMemStatEntry
      MAX-ACCESS  not-accessible
      STATUS  current
      DESCRIPTION
         "The Processes status table."
      ::= { adGenProcessesStatus 1 }

   adGenProcessesMemStatEntry OBJECT-TYPE
      SYNTAX  AdGenProcessesMemStatEntry
      MAX-ACCESS  not-accessible
      STATUS  current
      DESCRIPTION
         "An entry in the Processes status table."
      INDEX  { adGenSlotInfoIndex }
      ::= { adGenProcessesMemStatTable 1 }

   AdGenProcessesMemStatEntry ::=
      SEQUENCE {
         adGenProcessesMemStatHeapSize
            Unsigned32,
         adGenProcessesMemStatHeapUsed
            Unsigned32,
         adGenProcessesMemStatHeapFree
            Unsigned32,
         adGenProcessesMemStatBlockMgrSize
            Unsigned32,
         adGenProcessesMemStatBlockMgrUsed
            Unsigned32,
         adGenProcessesMemStatBlockMgrFree
            Unsigned32
      }

      adGenProcessesMemStatHeapSize OBJECT-TYPE
         SYNTAX  Unsigned32
       UNITS "bytes"
         MAX-ACCESS  read-only
         STATUS  current
         DESCRIPTION
            "The total memory size (in bytes) available for the heap."
         ::= { adGenProcessesMemStatEntry 1}

      adGenProcessesMemStatHeapUsed OBJECT-TYPE
         SYNTAX  Unsigned32
       UNITS "bytes"
         MAX-ACCESS  read-only
         STATUS  current
         DESCRIPTION
            "The total heap memory used (in bytes)"
         ::= { adGenProcessesMemStatEntry 2}

      adGenProcessesMemStatHeapFree OBJECT-TYPE
         SYNTAX  Unsigned32
       UNITS "bytes"
         MAX-ACCESS  read-only
         STATUS  current
         DESCRIPTION
            "The total heap memory free (in bytes).  Equal to
          adGenProcessesMemStatHeapSize - adGenProcessesMemStatHeapUsed"
         ::= { adGenProcessesMemStatEntry 3}

      adGenProcessesMemStatBlockMgrSize OBJECT-TYPE
         SYNTAX  Unsigned32
       UNITS "bytes"
         MAX-ACCESS  read-only
         STATUS  current
         DESCRIPTION
            "The total memory size (in bytes) available for the block manager.
          Equivalent to adGenProcessesMemStatHeapUsed."
         ::= { adGenProcessesMemStatEntry 4}

      adGenProcessesMemStatBlockMgrUsed OBJECT-TYPE
         SYNTAX  Unsigned32
       UNITS "bytes"
         MAX-ACCESS  read-only
         STATUS  current
         DESCRIPTION
            "The total block manager memory used (in bytes)"
         ::= { adGenProcessesMemStatEntry 5}

      adGenProcessesMemStatBlockMgrFree OBJECT-TYPE
         SYNTAX  Unsigned32
       UNITS "bytes"
         MAX-ACCESS  read-only
         STATUS  current
         DESCRIPTION
            "The total block manager memory free (in bytes).  Equal to
          adGenProcessesMemStatBlockMgrSize - adGenProcessesMemStatBlockMgrUsed"
         ::= { adGenProcessesMemStatEntry 6}

--==================================================================================================================
-- CPU STATUS
--==================================================================================================================

   adGenProcessesCpuStatTable OBJECT-TYPE
      SYNTAX  SEQUENCE OF AdGenProcessesCpuStatEntry
      MAX-ACCESS  not-accessible
      STATUS  current
      DESCRIPTION
         "The Processes CPU status table."
      ::= { adGenProcessesStatus 2 }

   adGenProcessesCpuStatEntry OBJECT-TYPE
      SYNTAX  AdGenProcessesCpuStatEntry
      MAX-ACCESS  not-accessible
      STATUS  current
      DESCRIPTION
         "An entry in the Processes CPU status table."
      INDEX  { adGenSlotInfoIndex }
      ::= { adGenProcessesCpuStatTable 1 }

   AdGenProcessesCpuStatEntry ::=
      SEQUENCE {
         adGenProcessesCpuStatCurUtilization
            Integer32,
         adGenProcessesCpuStatMaxUtilization
            Integer32
      }

      adGenProcessesCpuStatCurUtilization OBJECT-TYPE
         SYNTAX     Integer32 (0..10000)
         MAX-ACCESS  read-only
         STATUS  current
         DESCRIPTION
            "The current percent utilization of the CPU.
             Divide by hundred to get the actual percentage value.
            examples: 1%    = 100, 10%    = 1000, 80%    = 8000, 100% = 10000, 6.99% = 699
                      1.10% = 110, 10.56% = 1056, 80.66% = 8066, 5.5% = 550,"
         ::= { adGenProcessesCpuStatEntry 1}

      adGenProcessesCpuStatMaxUtilization OBJECT-TYPE
         SYNTAX     Integer32 (0..10000)
         MAX-ACCESS  read-only
         STATUS  current
         DESCRIPTION
            "The maximum percent utilization of the CPU.
             Divide by hundred to get the actual percentage value.
             examples: 1%    = 100, 10%    = 1000, 80%    = 8000, 100% = 10000, 6.99% = 699
                       1.10% = 110, 10.56% = 1056, 80.66% = 8066, 5.5% = 550,"
         ::= { adGenProcessesCpuStatEntry 2}

--==================================================================================================================
-- NOTIFICATIONS
--==================================================================================================================
adGenProcessesHeapFreeThreshCrossed  NOTIFICATION-TYPE
       OBJECTS	{
           adTrapInformSeqNum,
           sysName,
           adGenSlotInfoIndex,
         adGenProcessesProvHeapFreeThreshold,
         adGenProcessesMemStatHeapFree
           }
       STATUS          current
       DESCRIPTION    	"Heap Free Memory Threhold has been crossed"
      --#TYPE         "Warning - Heap Free Memory Threhold has been crossed"
      --#SUMMARY		"Shelf: %s, Slot: %d"
      --#SEVERITY		WARNING
      --#ARGUMENTS    {1,2}
        ::= {adGenProcessesNotifications 1}

adGenProcessesStarvationAlarmClr  NOTIFICATION-TYPE
       OBJECTS        {
                      adTrapInformSeqNum,
                      sysName,
                      adGenSlotInfoIndex
                      }
       STATUS         current
       DESCRIPTION    "Thread Starvation Alarm Clear - epilogue_main CPU usage
                       and IDLE percentage are within normal limits."
       --#TYPE        "Status - Alarm"
       --#SUMMARY     "Shelf: %s, Slot: %d"
       --#SEVERITY    MAJOR
       --#ARGUMENTS   {1,2}
       ::= {adGenProcessesNotifications 2}

adGenProcessesStarvationAlarmAct  NOTIFICATION-TYPE
       OBJECTS        {
                      adTrapInformSeqNum,
                      sysName,
                      adGenSlotInfoIndex
                      }
       STATUS         current
       DESCRIPTION    "Thread Starvation Alarm Active - epilogue_main CPU usage
                       and IDLE percentage have crossed starvation thresholds."
       --#TYPE        "Status - Alarm"
       --#SUMMARY     "Shelf: %s, Slot: %d"
       --#SEVERITY    MAJOR
       --#ARGUMENTS   {1,2}
       ::= {adGenProcessesNotifications 3}

adGenProcessesDeadlockAlarmClr  NOTIFICATION-TYPE
       OBJECTS        {
                      adTrapInformSeqNum,
                      sysName,
                      adGenSlotInfoIndex
                      }
       STATUS         current
       DESCRIPTION    "Possible Deadlock Alarm Clear - epilogue_main CPU usage
                       and IDLE percentage are within normal limits."
      --#TYPE         "Status - Alarm"
      --#SUMMARY      "Shelf: %s, Slot: %d"
      --#SEVERITY     MAJOR
      --#ARGUMENTS    {1,2}
        ::= {adGenProcessesNotifications 4}

adGenProcessesDeadlockAlarmAct  NOTIFICATION-TYPE
       OBJECTS        {
                      adTrapInformSeqNum,
                      sysName,
                      adGenSlotInfoIndex
                      }
       STATUS         current
       DESCRIPTION    "Possible Deadlock Alarm Active - FPGA backpressure 
                       mechanism has not resolved thread starvation."
      --#TYPE         "Status - Alarm"
      --#SUMMARY      "Shelf: %s, Slot: %d"
      --#SEVERITY     MAJOR
      --#ARGUMENTS    {1,2}
        ::= {adGenProcessesNotifications 5}

--==================================================================================================================
END

