EXTREME-SOFTWARE-MONITOR-MIB DEFINITIONS ::= BEGIN

        IMPORTS
        MODULE-IDENTITY FROM SNMPv2-SMI
        NOTIFICATION-TYPE FROM SNMPv2-SMI
        OBJECT-TYPE     FROM SNMPv2-SMI
                Unsigned32, Counter64    FROM SNMPv2-SMI
                TruthValue      FROM SNMPv2-TC
        DisplayString   FROM RFC1213-MIB
                extremeAgent   FROM EXTREME-BASE-MIB
        extremeImageDescription FROM EXTREME-SYSTEM-MIB 
        PortList    FROM EXTREME-BASE-MIB
                IpAddress       FROM SNMPv2-SMI;

        extremeSwMonitor MODULE-IDENTITY
                LAST-UPDATED "200402140000Z"
                ORGANIZATION "Extreme Networks, Inc."
                CONTACT-INFO "www.extremenetworks.com"
                DESCRIPTION "Extreme Software Monitor objects: objects common to all platforms"
        ::= { extremeAgent 32 }

        extremeSwMonitorCpu OBJECT IDENTIFIER
        ::= { extremeSwMonitor 1 }        
        extremeSwMonitorMemory OBJECT IDENTIFIER
        ::= { extremeSwMonitor 2 }
        extremeSwMonitorNotifications       OBJECT IDENTIFIER 
        ::= { extremeSwMonitor 3 }
        extremeServiceLicense   OBJECT IDENTIFIER 
        ::= { extremeSwMonitor 4 }
        extremeTrialLicense   OBJECT IDENTIFIER 
        ::= { extremeSwMonitor 5 }
        extremeSwMonitorNotificationsPrefix OBJECT IDENTIFIER 
        ::= { extremeSwMonitorNotifications 0 }


--
--  System group
--
--  Objects common to all platforms
--
       extremeCpuMonitorInterval OBJECT-TYPE
            SYNTAX INTEGER (5..60)
            MAX-ACCESS read-only 
            STATUS current
            DESCRIPTION
                "Cpu monitoring interval in seconds. Can not be smaller
                then 5 seconds."
    ::= { extremeSwMonitorCpu 1 }

       extremeCpuMonitorTotalUtilization OBJECT-TYPE
            SYNTAX INTEGER (0..100)
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Total CPU utlization (percentage) as of last sampling."
    ::= { extremeSwMonitorCpu 2 }

--
-- The CPU Task table lists all executing processs 
--
        extremeCpuMonitorTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF ExtremeCpuMonitorEntry
        MAX-ACCESS  not-accessible
        STATUS current
                DESCRIPTION
                  "Table of CPU processes that are active."
    ::= { extremeSwMonitorCpu 3 }

        extremeCpuMonitorEntry OBJECT-TYPE
        SYNTAX  ExtremeCpuMonitorEntry
        MAX-ACCESS  not-accessible
        STATUS current
        DESCRIPTION
                  "An entry in table of describes a single process."
        INDEX { extremeCpuMonitorSlotId, IMPLIED extremeCpuMonitorProcessName }
    ::= { extremeCpuMonitorTable 1 }

    ExtremeCpuMonitorEntry ::=
        SEQUENCE {
            extremeCpuMonitorSlotId
                Unsigned32,
            extremeCpuMonitorProcessName
                DisplayString,
            extremeCpuMonitorProcessId
                Unsigned32,
            extremeCpuMonitorProcessState
                DisplayString,
            extremeCpuMonitorUtilization5secs
                DisplayString,
            extremeCpuMonitorUtilization10secs
                DisplayString,
            extremeCpuMonitorUtilization30secs
                DisplayString,
            extremeCpuMonitorUtilization1min
                DisplayString,
            extremeCpuMonitorUtilization5mins
                DisplayString,
            extremeCpuMonitorUtilization30mins
                DisplayString,
            extremeCpuMonitorUtilization1hour
                DisplayString,
            extremeCpuMonitorMaxUtilization
                DisplayString,
            extremeCpuMonitorUserTime
                DisplayString,
            extremeCpuMonitorSystemTime
                DisplayString
        }

        extremeCpuMonitorSlotId OBJECT-TYPE
            SYNTAX Unsigned32
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                  "Slot Id of the process monitored."
    ::= { extremeCpuMonitorEntry 1 }

        extremeCpuMonitorProcessName OBJECT-TYPE
            SYNTAX DisplayString (SIZE(1..31))
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                  "Name associated with the reported process id."
    ::= { extremeCpuMonitorEntry 2 }

        extremeCpuMonitorProcessId OBJECT-TYPE
            SYNTAX Unsigned32
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                  "Process identifier assigned by the operating system when
                   this process is created."
    ::= { extremeCpuMonitorEntry 3 }

    
        extremeCpuMonitorProcessState OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                  "The current state of the process as reported by Extremeware XOS."
    ::= { extremeCpuMonitorEntry 4 }

        extremeCpuMonitorUtilization5secs OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                  "The CPU utilization by this process. This
           is the utilization of the process in the last 5 seconds."
    ::= { extremeCpuMonitorEntry 5 }

        extremeCpuMonitorUtilization10secs OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                  "The CPU utilization by this process. This
           is the utilization of the process in the last 10 seconds."
    ::= { extremeCpuMonitorEntry 6 }

        extremeCpuMonitorUtilization30secs OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                  "The CPU utilization by this process. This
           is the utilization of the process in the last 30 seconds."
    ::= { extremeCpuMonitorEntry 7 }

        extremeCpuMonitorUtilization1min OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                  "The CPU utilization by this process. This
           is the utilization of the process in the last 1 minute."
    ::= { extremeCpuMonitorEntry 8 }


       extremeCpuMonitorUtilization5mins OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                  "The CPU utilization by this process. This
           is the utilization of the process in the last 5 minutes."
    ::= { extremeCpuMonitorEntry 9 }

       extremeCpuMonitorUtilization30mins OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                  "The CPU utilization by this process. This
           is the utilization of the process in the last 30 minutes."
    ::= { extremeCpuMonitorEntry 10 }

      extremeCpuMonitorUtilization1hour OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                  "The CPU utilization by this process. This
           is the utilization of the process in the last 1 hour."
    ::= { extremeCpuMonitorEntry 11 }

        extremeCpuMonitorMaxUtilization OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                  "The maximum CPU utilization by this process since
           the time the start started executing. "
    ::= { extremeCpuMonitorEntry 12 }

        extremeCpuMonitorUserTime OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                  "The amount of time process spend in application space from 
           the time the process started executing. "
    ::= { extremeCpuMonitorEntry 13 }


       extremeCpuMonitorSystemTime OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                  "The amount of time process spend in kernel space from
           the time the process started executing. "
    ::= { extremeCpuMonitorEntry 14 }

--
-- The CPU System table lists cpu utilization history for system processes on each slot 
--
        extremeCpuMonitorSystemTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF ExtremeCpuMonitorSystemEntry
        MAX-ACCESS  not-accessible
        STATUS current
                DESCRIPTION
                  "Table of CPU utilization for system processes."
    ::= { extremeSwMonitorCpu 4 }

        extremeCpuMonitorSystemEntry OBJECT-TYPE
        SYNTAX  ExtremeCpuMonitorSystemEntry
        MAX-ACCESS  not-accessible
        STATUS current
        DESCRIPTION
                  "An entry in table of describes a single slot CPU 
                    utilization."
        INDEX { extremeCpuMonitorSystemSlotId }
    ::= { extremeCpuMonitorSystemTable 1 }

    ExtremeCpuMonitorSystemEntry ::=
        SEQUENCE {
            extremeCpuMonitorSystemSlotId
                Unsigned32,
            extremeCpuMonitorSystemUtilization5secs
                DisplayString,
            extremeCpuMonitorSystemUtilization10secs
                DisplayString,
            extremeCpuMonitorSystemUtilization30secs
                DisplayString,
            extremeCpuMonitorSystemUtilization1min
                DisplayString,
            extremeCpuMonitorSystemUtilization5mins
                DisplayString,
            extremeCpuMonitorSystemUtilization30mins
                DisplayString,
            extremeCpuMonitorSystemUtilization1hour
                DisplayString,
            extremeCpuMonitorSystemMaxUtilization
                DisplayString
        }
        extremeCpuMonitorSystemSlotId OBJECT-TYPE
            SYNTAX Unsigned32
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                  "Slot Id of the system monitored."
    ::= { extremeCpuMonitorSystemEntry 1 }
        extremeCpuMonitorSystemUtilization5secs OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                  "The CPU utilization by set of system resources. This
           is the utilization of the process in the last 5 seconds."
    ::= { extremeCpuMonitorSystemEntry 5 }

        extremeCpuMonitorSystemUtilization10secs OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                  "The CPU utilization by set of system resources This
           is the utilization of the system resources in the last 10 seconds."
    ::= { extremeCpuMonitorSystemEntry 6 }

        extremeCpuMonitorSystemUtilization30secs OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                  "The CPU utilization by system resources process. This
           is the utilization of the system resources in the last 30 seconds."
    ::= { extremeCpuMonitorSystemEntry 7 }

        extremeCpuMonitorSystemUtilization1min OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                  "The CPU utilization by system resources. This
           is the utilization of the system resources in the last 1 minute."
    ::= { extremeCpuMonitorSystemEntry 8 }


       extremeCpuMonitorSystemUtilization5mins OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                  "The CPU utilization by system resources. This
           is the utilization of the system resourcesin the last 5 minutes."
    ::= { extremeCpuMonitorSystemEntry 9 }

       extremeCpuMonitorSystemUtilization30mins OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                  "The CPU utilization by system resources. This
           is the utilization of the system resources in the last 30 minutes."
    ::= { extremeCpuMonitorSystemEntry 10 }

      extremeCpuMonitorSystemUtilization1hour OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                  "The CPU utilization by this process. This
           is the utilization of the process in the last 1 hour."
    ::= { extremeCpuMonitorSystemEntry 11 }

        extremeCpuMonitorSystemMaxUtilization OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                  "The maximum CPU utilization by this process since
           the time the start started executing. "
    ::= { extremeCpuMonitorSystemEntry 12 }

--
-- The System Memory  table lists total, system usage of memory utilization 
--
       extremeMemoryMonitorSystemTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF ExtremeMemoryMonitorSystemEntry
        MAX-ACCESS  not-accessible
        STATUS current
                DESCRIPTION
                  "Table of Memory consumption for processes that are active."
    ::= { extremeSwMonitorMemory 2 }

        extremeMemoryMonitorSystemEntry OBJECT-TYPE
        SYNTAX  ExtremeMemoryMonitorSystemEntry
        MAX-ACCESS  not-accessible
        STATUS current
        DESCRIPTION
                  "An entry in table of describes a single process."
        INDEX { extremeMemoryMonitorSystemSlotId }
    ::= { extremeMemoryMonitorSystemTable 1 }

    ExtremeMemoryMonitorSystemEntry ::=
        SEQUENCE {
            extremeMemoryMonitorSystemSlotId
                Unsigned32,
            extremeMemoryMonitorSystemTotal
                DisplayString,
            extremeMemoryMonitorSystemFree
                DisplayString,
            extremeMemoryMonitorSystemUsage
                DisplayString,
            extremeMemoryMonitorUserUsage
                DisplayString
        }

        extremeMemoryMonitorSystemSlotId OBJECT-TYPE
            SYNTAX Unsigned32
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                  "Slot Id of the MSM monitored."
    ::= { extremeMemoryMonitorSystemEntry 1 }

        extremeMemoryMonitorSystemTotal OBJECT-TYPE
            SYNTAX DisplayString (SIZE(0..8))
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                  "Total amount of DRAM in Kbytes in the system."
    ::= { extremeMemoryMonitorSystemEntry 2 }

        extremeMemoryMonitorSystemFree OBJECT-TYPE
            SYNTAX DisplayString (SIZE(0..8))
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                  "Total amount of free memory in Kbytes in the system."
    ::= { extremeMemoryMonitorSystemEntry 3 }

        extremeMemoryMonitorSystemUsage OBJECT-TYPE
            SYNTAX DisplayString (SIZE(0..8))
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                  "Total amount of memory used by system services in Kbytes in the system."
    ::= { extremeMemoryMonitorSystemEntry 4 }

        extremeMemoryMonitorUserUsage OBJECT-TYPE
            SYNTAX DisplayString (SIZE(0..8))
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                  "Total amount of memory used by applications in Kbytes in the system."
    ::= { extremeMemoryMonitorSystemEntry 5 }


--
-- The Memory Task table lists all executing processs 
--
        extremeMemoryMonitorTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF ExtremeMemoryMonitorEntry
        MAX-ACCESS  not-accessible
        STATUS current
                DESCRIPTION
                  "Table of Memory consumption for processes that are active."
    ::= { extremeSwMonitorMemory 3 }

        extremeMemoryMonitorEntry OBJECT-TYPE
        SYNTAX  ExtremeMemoryMonitorEntry
        MAX-ACCESS  not-accessible
        STATUS current
        DESCRIPTION
                  "An entry in table of describes a single process."
        INDEX { extremeMemoryMonitorSlotId, IMPLIED extremeMemoryMonitorProcessName }
    ::= { extremeMemoryMonitorTable 1 }

    ExtremeMemoryMonitorEntry ::=
        SEQUENCE {
            extremeMemoryMonitorSlotId
                Unsigned32,
            extremeMemoryMonitorProcessName
                DisplayString,
            extremeMemoryMonitorUsage
                Unsigned32,
            extremeMemoryMonitorLimit
                Unsigned32,
            extremeMemoryMonitorZone
                DisplayString,
            extremeMemoryMonitorGreenZoneCount
                Unsigned32,
            extremeMemoryMonitorYellowZoneCount
                Unsigned32,
            extremeMemoryMonitorOrangeZoneCount
                Unsigned32,
            extremeMemoryMonitorRedZoneCount
                Unsigned32,
            extremeMemoryMonitorGreenZoneThreshold
                Unsigned32,
            extremeMemoryMonitorYellowZoneThreshold
                Unsigned32,
            extremeMemoryMonitorOrangeZoneThreshold
                Unsigned32,
            extremeMemoryMonitorRedZoneThreshold
                Unsigned32
        }

        extremeMemoryMonitorSlotId OBJECT-TYPE
            SYNTAX Unsigned32
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                  "Slot Id of the process monitored."
    ::= { extremeMemoryMonitorEntry 1 }

        extremeMemoryMonitorProcessName OBJECT-TYPE
            SYNTAX DisplayString (SIZE(1..31))
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                  "Name associated with the reported process."
    ::= { extremeMemoryMonitorEntry 2 }

        extremeMemoryMonitorUsage OBJECT-TYPE
            SYNTAX Unsigned32
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                  "Current memory consumption in Kbytes for the process."
    ::= { extremeMemoryMonitorEntry 3 }

        extremeMemoryMonitorLimit OBJECT-TYPE
            SYNTAX Unsigned32
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                  "Maximum memory consumption in Kbytes for the process."
    ::= { extremeMemoryMonitorEntry 4 }

        extremeMemoryMonitorZone OBJECT-TYPE
            SYNTAX DisplayString (SIZE(0..8))
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                  "Current process memory consumption zone. Zones are Green (up to 70% cosumption), Yellow (70-80%), Orange (80-90%), Red (90-95%) either total cpu consumption or memory consumption limit configured per process."
    ::= { extremeMemoryMonitorEntry 5 }

    
        extremeMemoryMonitorGreenZoneCount OBJECT-TYPE
            SYNTAX Unsigned32
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                  "Number of times process moved to green zone."
    ::= { extremeMemoryMonitorEntry 6 }

        extremeMemoryMonitorYellowZoneCount OBJECT-TYPE
            SYNTAX Unsigned32
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                  "Number of times process moved from green to yellow zone."
    ::= { extremeMemoryMonitorEntry 7 }


        extremeMemoryMonitorOrangeZoneCount OBJECT-TYPE
            SYNTAX Unsigned32
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                  "Number of times process moved from yellow zone to orange."
    ::= { extremeMemoryMonitorEntry 8 }

        extremeMemoryMonitorRedZoneCount OBJECT-TYPE
            SYNTAX Unsigned32
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                  "Number of times process moved from orange zone to red."
    ::= { extremeMemoryMonitorEntry 9 }

        extremeMemoryMonitorGreenZoneThreshold OBJECT-TYPE
            SYNTAX Unsigned32
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                  "Percentage of memory consumption that defines green zone."
    ::= { extremeMemoryMonitorEntry 10 }

        extremeMemoryMonitorYellowZoneThreshold OBJECT-TYPE
            SYNTAX Unsigned32
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                  "Percentage of memory consumption that defines yellow zone."
    ::= { extremeMemoryMonitorEntry 11 }

        extremeMemoryMonitorOrangeZoneThreshold OBJECT-TYPE
            SYNTAX Unsigned32
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                  "Percentage of memory consumption that defines orange zone."
    ::= { extremeMemoryMonitorEntry 12 }

        extremeMemoryMonitorRedZoneThreshold OBJECT-TYPE
            SYNTAX Unsigned32
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                  "Percentage of memory consumption that defines red zone."
    ::= { extremeMemoryMonitorEntry 13 }


 
  extremeCpuMonitorThreshold OBJECT-TYPE
        SYNTAX INTEGER (0..100)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
                 "Threshold for CPU Aggregation utilization trap"
    ::= { extremeSwMonitorCpu 5 }

    extremeCpuMonitorCurrentUtilization OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS accessible-for-notify
        STATUS current
        DESCRIPTION
        "Cpu utilization value reported in extremeSwMonitorCpuUtilization trap."
   ::= { extremeSwMonitorCpu 6 }


    extremeSwMonitorCpuUtilization NOTIFICATION-TYPE
            OBJECTS { extremeCpuMonitorSlotId,
                      extremeCpuMonitorProcessName,
                      extremeCpuMonitorCurrentUtilization,
                      extremeCpuMonitorThreshold }
            STATUS   current
            DESCRIPTION
            "Notification of process exceeding CPU utilization threshold. Notification is send every extremeCpuMonitorInterval value in seconds until utilization falls below threshold."
        ::= { extremeSwMonitorNotificationsPrefix 1 }


    extremeServiceLicenseExpiryDate OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS accessible-for-notify
        STATUS current
        DESCRIPTION
        "This report the expiration date of the license."
   ::= { extremeServiceLicense 1 }

    extremeServiceLicenseType OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS accessible-for-notify
        STATUS current
        DESCRIPTION
        "This report the service license type."
   ::= { extremeServiceLicense 2 }

    imageDescription OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS accessible-for-notify
        STATUS current
        DESCRIPTION
        "This report the image version on which license was enabled."
   ::= { extremeServiceLicense 3 }

    noOfDaysLeft OBJECT-TYPE
        SYNTAX INTEGER (0..90)
        MAX-ACCESS accessible-for-notify
        STATUS current
        DESCRIPTION
        "This report the number of days left to service license expire."
   ::= { extremeServiceLicense 4 }

    trialPeriod OBJECT-TYPE
        SYNTAX INTEGER (0..90)
        MAX-ACCESS accessible-for-notify
        STATUS current
        DESCRIPTION
        "This report the number of days left to service license expire."
   ::= { extremeTrialLicense 1 }

    extremeServiceLicenseExpiration NOTIFICATION-TYPE
            OBJECTS { extremeServiceLicenseExpiryDate,
                      extremeServiceLicenseType,
                      imageDescription,
                      noOfDaysLeft       
                }
            STATUS   current
            DESCRIPTION
            "The service expiry notification is generated about 90 days service contract expiration, then 60,30,7 days and daily after that."
        ::= { extremeSwMonitorNotificationsPrefix 2 }

    extremeTrialLicenseExpiration NOTIFICATION-TYPE
            OBJECTS { trialPeriod,
                      imageDescription,
                      noOfDaysLeft       
                }
            STATUS   current
            DESCRIPTION
            "Trial license expiry notification is generated every day."
        ::= { extremeSwMonitorNotificationsPrefix 3 }

END

-- ################################################################################

