--
--                               DISCLAIMER
--
-- The software is licensed on an "as is" basis only.  PSO Systems Inc
-- makes no representations or warranties, express or implied.  
-- By way of example but not of limitation, PSO Systems Inc makes no
-- representations or WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY
-- PARTICULAR PURPOSE, that  the use of the licensed software will not
-- infringe any patent, copyright, or trademark, or as to the use (or the
-- results of the use) of the licensed  software or written material in
-- terms of correctness, accuracy, reliability, currentness or otherwise.
-- The entire risk as to the results and performance of the  licensed
-- software is assumed by the user.  PSO Systems , Inc.
-- and any of its trustees, overseers, directors, officers, employees,
-- agents or contractors shall not be liable under any claim, charge, or
-- demand, whether in contract, tort, criminal law, or otherwise, for any
-- and all loss, cost, charge, claim, demand, fee, expense, or damage of
-- every nature and kind arising out of, connected with, resulting from or
-- sustained as a result of using this software. In no event shall PSO be
-- liable for special, direct, indirect or consequential damages, losses,
-- costs, charges, claims, demands, fees or expenses of any  nature or kind.
--
-- See README file for further details on the origin of this software.
--

-- 
-- CUSTOMIZE
--
-- Example MIB
--

PSO-MIB DEFINITIONS ::= BEGIN

IMPORTS
        enterprises, Gauge
            FROM RFC1155-SMI

        OBJECT-TYPE 
            FROM RFC-1212;

  PSO          OBJECT IDENTIFIER ::= { enterprises 9999 }

  VxWorks      OBJECT IDENTIFIER ::= { PSO 1 }

  Task         OBJECT IDENTIFIER ::= { VxWorks 1 }

  --
  --  List of running tasks and their information.
  --  Derived structurally from interfaces group.
  --  Derived content-wise from taskLib.h definition.
  --

  -- the task table

  -- The task table contains information on the 
  -- tasks.  

  taskTable OBJECT-TYPE
      SYNTAX  SEQUENCE OF TaskEntry
      ACCESS  not-accessible
      STATUS  mandatory
      DESCRIPTION
	      "A list of task entries.  The number of
	      entries is given by the value of taskNumber."
      ::= { Task 1 }

  taskEntry OBJECT-TYPE
      SYNTAX  TaskEntry
      ACCESS  not-accessible
      STATUS  mandatory
      DESCRIPTION
	      "A task entry task objects running in the system."
      INDEX   { taskIndex }
      ::= { taskTable 1 }

  --
  -- Based on taskLib.h TASK_DESC structure.
  -- Only some of the top ones, not the entire structure (left
  -- as an exercise for the user).
  --

  TaskEntry ::=
      SEQUENCE {
	  taskIndex
	      INTEGER,
	  taskID
	      INTEGER,
	  taskName
	      OCTET STRING,
	  taskPriority
	      INTEGER,
	  taskStatus
	      INTEGER,
	  taskOptions
	      INTEGER
      }

  taskIndex OBJECT-TYPE
      SYNTAX  INTEGER
      ACCESS  read-only
      STATUS  mandatory


      DESCRIPTION
	      "A unique value for each task.  Its value
	      ranges between 1 and the value of taskNumber.  The
	      value for each interface must remain constant at
	      least from one re-initialization of the entity's
	      network management system to the next re-
	      initialization."
      ::= { taskEntry 1 }

  taskID OBJECT-TYPE
      SYNTAX  INTEGER
      ACCESS  read-only
      STATUS  mandatory
      DESCRIPTION
	      "The VxWorks representation of task's ID"
      ::= { taskEntry 2 }

  taskName OBJECT-TYPE
      SYNTAX  OCTET STRING
      ACCESS  read-only
      STATUS  mandatory
      DESCRIPTION
	      "The task's name"
      ::= { taskEntry 3 }


  taskPriority OBJECT-TYPE
      SYNTAX  INTEGER
      ACCESS  read-only
      STATUS  mandatory
      DESCRIPTION
	      "The task's Priority"
      ::= { taskEntry 4 }


  taskStatus OBJECT-TYPE
      SYNTAX  INTEGER
      ACCESS  read-only
      STATUS  mandatory
      DESCRIPTION
	      "The task's status value"
      ::= { taskEntry 5 }


  taskOptions OBJECT-TYPE
      SYNTAX  INTEGER
      ACCESS  read-only
      STATUS  mandatory
      DESCRIPTION
	      "The task's option value"
      ::= { taskEntry 6 }



--
-- Information related to SNMP agent task itself
--

  snmpd        OBJECT IDENTIFIER ::= { VxWorks 2 }

  agentVersion OBJECT-TYPE
        SYNTAX  OCTET STRING
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "An ASCII string containing the version number of the SNMP
            Universal Agent core."
        ::= { snmpd 1 }

  portVersion  OBJECT-TYPE
        SYNTAX  OCTET STRING
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "An ASCII string containing the version number of the Port
            of this agent to this operating system."
        ::= { snmpd 2 }

  taskPriority OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
            "The task priority of the SNMPD task in the real time OS.
            Setting this value causes the task to change its priority 
            to the value specified."
        ::= { snmpd 3 }


END
