Warning: This HTML rendition of the RFC is experimental. It is programmatically generated, and small parts may be missing, damaged, or badly formatted. However, it is much more convenient to read via web browsers, however. Refer to the PostScript or text renditions for the ultimate authority.

Open Software Foundation G. Wilson (IBM)
Request For Comments: 66.0 R. Mandava (IBM)
January 1996

DCE SNMP SUPPORT --

FUNCTIONAL SPECIFICATION

INTRODUCTION

The Distributed Computing Environment (DCE) provides a collection of services to manage distributed computing resources. It is a resource manager similar to an operating system. It needs to be manageable just like other resources or resource managers do in a distributed computing systems environment.

Because of the heterogeneous nature of distributed systems environment, to provide integrated, open, and industry-standard mechanisms of system management for DCE is important to achieve interoperability in managing resources and resource managers.

The Simple Network Management Protocol Version 1 (SNMPv1) has been widely used in the Transmission Control Protocol/Internet Protocol (TCP/IP) environment for network management. A distributed computing environment runs on a network. Due to the proliferation of SNMP products in the marketplace, they can also be used for monitoring of other parts of the system in a distributed computing environment. There are significant number of SNMP managers existing in customer environments that can be used to monitor DCE resources and components without introducing a lot of overhead of management framework and requiring new application programs. Therefore, using SNMP for DCE is a natural extension of network management for distributed systems management. This is a first step in satisfying the requirement to provide integrated network and distributed system management. It is recognized that further steps are necessary to fully satisfy that requirement.

The SNMP support in DCE environment consists of two parts: DCE Management Information Base (MIB) and DCE Subagent.

This document defines a portion of the DCE managed objects for use with SNMP. In particular, it describes managed objects used for managing DCE resources and services. The DCE Subagent is the implementation to support the DCE SNMP MIB.

The definition of DCE performance characteristics can be found in [RFC 32] and [RFC 33]. When these two RFCs are finalized and implemented by vendors, this DCE SNMP MIB should contain those performance attributes.

Changes Since Last Publication

None.

TARGET

The DCE SNMP Support provides manageability of the DCE environment through SNMP. It can be used by system administrators and by system management application programmers.

System administrators can use SNMP managers to monitor the health condition of DCE environment.

Application programmers of SNMP managers can query the values of DCE MIB variables, and respond, as needed, to DCE traps.

GOALS AND NON-GOALS

The goals of providing DCE SNMP Support include:

  1. To provide integrated network and distributed system management capabilities.
  2. To leverage the existing SNMP management application base.
  3. To provide light-weight management framework for monitoring DCE resources.
  4. To define and standardize important characteristics of DCE core services across all DCE providers to assure consistent management in a heterogeneous network.
  5. To specify the implementation of the DCE Subagent to support DCE SNMP MIB.

Although DCE provides cell-wide views due to its location-transparency, the DCE SNMP MIB only provides views on a per node basis.

Since SNMPv2 is only at the draft-standard level, this RFC defines DCE MIB in SNMPv1 Structure of Management Information (SMI). The DCE SNMP subagent supports SNMPv1 only.

Since SNMPv1 does not provide stringent security, there is limited use of the SNMP set function. The MIB variables that can be set are the configurable parameters to control the DCE Subagent, not to affect the DCE services.

The MIB definition applies to OSF DCE 1.1.

TERMINOLOGY

  1. SNMP Manager -- The network management application program that allows the network or system administrator to manage resources in the network environment through SNMP.
  2. SNMP Agent -- A process on the managed node that receives, processes, and responds to SNMP requests from SNMP managers. It also generates asynchronous traps to SNMP managers.
  3. SNMP Subagent -- A program or process that handles a specific portion of the MIB. It registers with the SNMP agent so the agent knows where to send requests for the variables requested.
  4. MIB (Management Information Base) -- The information store of the definition and specification of SNMP managed objects.
  5. Managed Objects -- The abstraction of resources being managed in SNMP. It is primarily used for managed object types.
  6. Variable -- MIB variable is used primarily for managed object instance, but sometimes it is used interchangeably with Managed Object.
  7. Trap -- The SNMP notification of an interesting event, sent from SNMP Agent(s) to SNMP Manager(s).

REQUIREMENTS

The managed objects in DCE SNMP MIB must be essential for system management. In order to retain simplicity and light-weight, a minimum set of managed objects is defined.

The portability of DCE subagent on different vendor platforms should be taken into consideration. The agent-subagent protocol should be an open standard.

The extensibility of the DCE subagent to support SNMPv2 should be taken into consideration.

FUNCTIONAL DEFINITION

The SNMP Overview

An SNMP network management system contains three components:

  1. one or more network elements (nodes), each containing an agent;
  2. at least one network management station (NMS); and
  3. a network management protocol, which is used by the station and the agents to exchange management information.

SNMP employs a request-response message exchange model. The SNMP Manager runs on NMS to monitor and control network elements where each network element has an SNMP Agent running. The SNMP Manager communicates with SNMP Agent on each node individually. The SNMP agent is responsible for performing network management functions requested by SNMP Manager.

Management information is the abstraction of managed resources. They are defined as managed objects. The collection of managed objects are called MIB. SNMP Manager accesses managed objects in the MIB through SNMP Agent by management operations.

The SNMP models all management operations as inspections or alterations of managed objects. Thus, a protocol entity on a logically remote host interacts with the agent resident on the network element in order to retrieve or alter variables. The management operations are: Get, Get-Next, and Set. The agent can emit unsolicited messages through Traps.

Management frameworks are to provide a support structure which isolates management application programmers on managing systems and system and application component programmers from having to deal with the complexity of these protocols so that they can focus on making their components more manageable.

Additional managed resources can be defined as MIB extensions for SNMP Managers to work with, without changing the SNMP functional interfaces. This extensibility preserves the simplicity and stability of the protocol. The MIB extension is supported by the subagent which works with the agent and is transparent to the SNMP Managers.

The strategy implicit in the SNMP is that the monitoring of network state at any significant level of detail is accomplished primarily by polling for appropriate information on the part of the manager. A limited number of unsolicited event notifications (traps) guide the timing and focus of the polling.

System Management Using SNMP

Since SNMP is widely used for network management in the TCP/IP environment, SNMP is chosen to be used for monitoring DCE resources and services.

A principle of SNMP is simplicity. It does not provide guaranteed delivery of messages. Therefore, some messages may be lost due to various reasons such as network congestion. The management strategies to deal with those conflicting requirements include:

  1. Polling -- The management applications can poll the status of managed resources periodically.
  2. Management By Exceptions -- Detect events by receiving SNMP traps, perform trap-directed polling.
  3. Management By Delegation -- Delegates proxy, agent or subagents to perform status polling locally.

The enablement of these strategies have been taken into consideration in the definition of DCE management information and in the design of the DCE Subagent.

SNMP Agent and Subagents on The Managed Host

The enablement of DCE SNMP manageability on a managed DCE host depends on the following:

  1. SNMP Agent running on the host.
  2. SNMP Agent supporting an agent-to-subagent protocol.

The SNMP Agent supports the standard SNMP Protocol Data Unit (PDU) of Get, GetNext, and Set operations as well as event notifications known as Traps. Managed objects are defined in MIB. They are passed in ASN.1 notation. The SNMP Agent handles the encode and decode of the PDU.

In order for SNMP Agent to extend its ability to support additional managed objects in other MIBs, it supports agent-to-subagent protocols. For example, the Internet RFC 1592, SNMP Distributed Program Interface Version 2.0, is used for the reference implementation.

DCE Management Information

Although DCE provides location transparency which means the views can be cell-wide as opposed to node-wide, due to the nature of the SNMP model, the DCE SNMP MIB is defined on a per node basis. A new object identifier by the name SNMP (7) has been registered under the tree iso (1) org (3) osf (22) dce(1). Under this iso.org.osf.dce.SNMP node there are two nodes, namely MIB (1) and subagent (2). The node iso.org.osf.dce.SNMP.MIB specifies the subtree for the DCE SNMP MIB.

The DCE SNMP MIB consists of the following 19 groups and traps:

  1. Component ID Group
  2. Software Component Information Group
  3. DCE Host Information Group
  4. DCE Server Table Group
  5. DCE Host Server Group
  6. DCE EMS Server Group
  7. DCE Security Server Group
  8. DCE CDS Server Group
  9. DCE CDS Advertiser Group
  10. DCE CDS Clerks Group
  11. DCE CDS Clerk Table Group
  12. DCE CDS Clearinghouse Table Group
  13. DCE CDS Cached Clearinghouse Table Group
  14. DCE GDA Server Group
  15. DCE DTS Entity Group
  16. DCE DTS Server Group
  17. DCE DTS Known Server Table Group
  18. DCE Traps

The descriptions of these 19 groups and traps are given in the following 19 subsections. Each subsection has a common format, namely, the objects or traps of the group are listed, and a description of the meaning of each object or trap is specified, thusly:

  1. OBJECT #1 (in the case of DCE Traps, an object is a trap)
      MEANING of OBJECT #1.
  2. OBJECT #2
      MEANING of OBJECT #2.
  3. \&... etc. ...
      \&... etc. ...

Component ID group

This group offers base-level identification of the component and represents the minimum amount of information that a component vendor should provide (when meaningful). The group contains the following attributes:

  1. componentIDGroup
      Group of base-level component information.
  2. aManufacturer
      The company that produced this component.
  3. aProduct
      The name of this component or product.
  4. aVersion
      The version string for this component.
  5. aSerialNumber
      The serial number for this component.
  6. aInstallation
      The time and date of the last install of the component on this system.
  7. aVerify
      The verification level for this component.

Software component information group

This group extends the Component ID group with attributes that further define the software component. The group contains the following:

  1. softwareCompInfoGroup
      Group of identifying information about this software component.
  2. aMajorVersion
      Major version of this software component.
  3. aMinorVersion
      Minor version of this software component.
  4. aRevision
      Revision of this software component.
  5. aBuild
      Manufacturer's internal identifier for this compilation.
  6. aTargetOperatingSystem
      The operating system for which this software component is intended.
  7. aLanguageEdition
      The language edition of this software component.
  8. aIdentificationCode
      Stock Keeping Unit (SKU) for this software component.

DCE host information group

This group must be implemented by all managed DCE hosts. It contains the following generic DCE host information:

  1. dceHostInfoGroup
      The basic information about the DCE host.
  2. aDCEHostName
      The name of the DCE host.
  3. aDCEHostCellName
      The name of the primary cell to which this DCE host belong.
  4. aDCEHostCellNameAliases
      The aliases of the cell to which this DCE host belong.

DCE server table group

This group is a table of entries pertaining the DCE server information on the host. It has the following attributes:

  1. dceSvrTable
      The table of DCE server information on this host.
  2. aDCESvrName
      The type of the DCE server.
  3. aDCESvrState
      The state of this DCE server.
  4. aDCESvrStateValue
      The value of the state of this DCE server.

DCE host server group

This group contains the information of the Host Daemon on the host. It has the following information:

  1. dceHostSvrGroup
      The information about the DCE Host daemon on this host.
  2. aDCEHostSvrPid
      The process ID of the DCE Host daemon.
  3. aDCEHostSvrUid
      The user ID of the DCE Host daemon.
  4. aDCEHostSvrGid
      The group ID of the DCE Host daemon.
  5. aDCEHostSvrInRpcCalls
      The number of RPC calls received by RPC runtime.
  6. aDCEHostSvrOutRpcCalls
      The number of RPC calls initiated by RPC runtime.
  7. aDCEHostSvrInRpcPkts
      The number of network packets received by RPC runtime.
  8. aDCEHostSvrOutRpcPkts
      The number of network packets sent by RPC runtime.
  9. aDCEHostSvrState
      The state of this DCE Host daemon.

DCE EMS server group

This group contains information about the EMS server on the host. The group contains the following:

  1. dceEmsSvrGroup
      The information of EMS server on the host.
  2. aEmsSvrPid
      The process ID of the DCE EMS server.
  3. aEmsSvrUid
      The user ID of the DCE EMS server.
  4. aEmsSvrGid
      The group ID of the DCE EMS server.
  5. aEmsSvrInRpcCalls
      The number of RPC calls received by RPC runtime.
  6. aEmsSvrOutRpcCalls
      The number of RPC calls initiated by RPC runtime.
  7. aEmsSvrInRpcPkts
      The number of network packets received by RPC runtime.
  8. aEmsSvrOutRpcPkts
      The number of network packets sent by RPC runtime.
  9. aEmsSvrState
      The state and status of this EMS server.

DCE security server group

This group must be implemented by all managed DCE nodes which implement Security Service. The group contains the following:

  1. dceSecSvrGroup
      The information of Security Server on the host.
  2. aSecSvrRole
      The role of Security Server: Master or Replica.
  3. aSecSvrMode
      The mode of Security Server: operational or in maintenance.
  4. aSecRgyUpdTime
      The localized date and time the replica was last updated.
  5. aSecRgyUpdSeq
      The sequence number of last update the replica received.
  6. aSecSvrPid
      The process ID of the DCE Security Server.
  7. aSecSvrUid
      The user ID of the DCE Security Server.
  8. aSecSvrGid
      The group ID of the DCE Security Server.
  9. aSecSvrInRpcCalls
      The number of RPC calls received by RPC runtime.
  10. aSecSvrOutRpcCalls
      The number of RPC calls initiated by RPC runtime.
  11. aSecSvrInRpcPkts
      The number of network packets received by RPC runtime.
  12. aSecSvrOutRpcPkts
      The number of network packets sent by RPC runtime.
  13. aSecSvrState
      The state of this DCE Security Server.

DCE CDS server group

This group contains the following:

  1. dceCdsSvrGroup
      The information of CDS Server on the host.
  2. aCdsSvrUpTime
      The time this server was created.
  3. aCdsSvrChildUpdFails
      Number of times the server was unable to contact all the clearinghouses that store a replica of a particular child directory's parent directory and apply the child updates that have occurred since last skulk.
  4. aCdsSvrCrucialReps
      Number of times a user attempted to remove a crucial replica >from this server.
  5. aCdsSvrMaxSkewTime
      Maximum amount of time that a timestamp on a new or modified entry can vary >from local system time.
  6. aCdsSvrLookupPathBrokens
      Number of broken connections between clearinghouses on this server and clearinghouses closer to the root.
  7. aCdsSvrSecFails
      Number of times a server principal for this server was found to have inadequate permissions to perform a request operation.
  8. aCdsSvrSkulkInitd
      Number of skulks initiated by this CDS Server.
  9. aCdsSvrSkulkCmpltd
      Number of skulks successfully completed by this CDS Server.
  10. aCdsSvrReadOps
      Number of read operations directed to this CDS Server.
  11. aCdsSvrWriteOps
      Number of write operations to this CDS Server.
  12. aCdsSvrPid
      The process ID of this CDS Server.
  13. aCdsSvrUid
      The user ID of this CDS Server.
  14. aCdsSvrGid
      The group ID of this CDS Server.
  15. aCdsSvrInRpcCalls
      The number of RPC calls received by RPC runtime.
  16. aCdsSvrOutRpcCalls
      The number of RPC calls initiated by RPC runtime.
  17. aCdsSvrInRpcPkts
      The number of network packets received by RPC runtime.
  18. aCdsSvrOutRpcPkts
      The number of network packets sent by RPC runtime.
  19. aCdsSvrState
      The state of this CDS Server.

DCE CDS advertiser group

This group contains the information about the CDS Advertiser on the host. It has the following attributes:

  1. dceCdsAdvGroup
      The group of CDS Advertiser.
  2. aCdsAdvUpTime
      The start time of CDS advertiser.
  3. aCdsAdvPid
      The process ID of this CDS Advertiser.
  4. aCdsAdvUid
      The user ID of this CDS Advertiser.
  5. aCdsAdvGid
      The group ID of this CDS Advertiser.
  6. aCdsAdvInRpcCalls
      The number of RPC calls received by RPC runtime.
  7. aCdsAdvOutRpcCalls
      The number of RPC calls initiated by RPC runtime.
  8. aCdsAdvInRpcPkts
      The number of network packets received by RPC runtime.
  9. aCdsAdvOutRpcPkts
      The number of network packets sent by RPC runtime.
  10. aCdsAdvState
      The state of this CDS advertiser.

DCE CDS clerks group

This group contains the information about operations performed by the CDS clerks on the host. It has the following attributes:

  1. dceCdsClerksGroup
      The group of operations done by the CDS clerks on the host.
  2. aCdsClerksAuthFails
      The number of times requesting principals failed authentication procedures.
  3. aCdsClerksCacheBypasses
      The number of requests to read attributes for which the clerks were specifically directed by the requesting application to bypass its own cache.
  4. aCdsClerksCacheHits
      Total number of read requests directed to the clerks that were satisfied entirely by its cache.
  5. aCdsClerksMiscOps
      Number of operations other than read and write performed by the clerks.
  6. aCdsClerksReadOps
      Number of lookup operations performed by the clerks.
  7. aCdsClerksWriteOps
      Number of requests to modify data processed by the clerks.

DCE CDS clerk table group

This group contains the information about the CDS clerks on the host. It has the following attributes:

  1. cdsClerkTable
      The group of the CDS clerks on the host.
  2. aClerkUser
      The user name of a clerk on the host.
  3. aClerkUid
      The user ID of a clerk on the host.
  4. aClerkPid
      The process ID of a clerk on the host.
  5. aClerkUpTime
      The start time of a clerk on the host.

DCE CDS clearinghouse table group

This group contains the information about the CDS clearinghouse on the host. It has the following attributes:

  1. cdsCHTable
      The table of CDS clearinghouse on the host.
  2. aChName
      The full name of the clearinghouse.
  3. aChDataCorrupts
      The number of times that the data corruption event was generated.
  4. aChEnableCounts
      The number of times that the clearinghouse was enabled since it was last started.
  5. aChRefReturns
      Number of requests directed to this clearinghouse that resulted in the return of a partial answer instead of satisfying the client's request.
  6. aChSkulkFails
      The number of times that a skulk of a directory, initiated from this clearinghouse, failed to complete.
  7. aChEntryMisses
      The number of times the clearinghouse entry missing event was generated.
  8. aChRootLosts
      The number of times the root lost event was generated.
  9. aChUpgFails
      The number of times that upgrades failed.
  10. aChReadOps
      The number of read operations directed to this clearinghouse.
  11. aChWriteOps
      The number of write operations directed to this clearinghouse.

DCE CDS cached clearinghouse table group

This group has a table of entries of cached clearinghouse on the host. It contains the following:

  1. cdsCachedCHTable
      The table of cached CDS clearinghouse on the host.
  2. aCachedCHName
      The name of the cached clearinghouse.
  3. aCachedCHUpTime
      The date and time at which the clearinghouse was added to the cache.
  4. aCachedCHMiscOps
      The number of operations other than read and write the clerk has performed on the clearinghouse represented by the cache entry.
  5. aCachedCHReadOps
      The number of lookup operations the clerk has performed on the clearinghouse represented by the cache entry.
  6. aCachedCHWriteOps
      The number of write operations the clerk has sent to the clearinghouse represented by the cache entry.

DCE global directory agent server group

This group must be implemented by all managed DCE nodes which implement GDA. The group contains the following:

  1. dceGdaSvrGroup
      The group of Global Directory Agent.
  2. aGdaSvrPid
      The process ID of the DCE GDA.
  3. aGdaSvrUid
      The user ID of this DCE GDA.
  4. aGdaSvrGid
      The group ID of this DCE GDA.
  5. aGdaSvrInRpcCalls
      The number of RPC calls received by RPC runtime.
  6. aGdaSvrOutRpcCalls
      The number of RPC calls initiated by RPC runtime.
  7. aGdaSvrInRpcPkts
      The number of network packets received by RPC runtime.
  8. aGdaSvrOutRpcPkts
      The number of network packets sent by RPC runtime.
  9. aGdaSvrState
      The state of this Global Directory Agent.

DCE DTS entity group

This group must be implement by all managed DCE nodes which implement DTS. The group contains the following:

  1. dceDtsEntityGroup
      The information of the DTS entity on this host.
  2. aDtsdCurrTime
      Current time on the DTS node.
  3. aDtsdBadProtocols
      The number of times the local node failed to process a received message containing an incompatible protocol version.
  4. aDtsdBadTimeReps
      The number of times the local node failed to process a received message containing an incompatible timestamp format.
  5. aDtsdInsufRes
      The number of times the node has been unable to allocate virtual memory.
  6. aDtsdLocalNotIntersects
      The number of times the node's time interval failed to intersect with the computed interval of the servers.
  7. aDtsdSyncCmpltd
      The number of times the node successfullt synchronized time.
  8. aDtsdSysErrors
      The number of times a DTS operation detected a system error.
  9. aDtsdTooFewSvrs
      The number of times a node failed to synchronize because it couldn't contact required minimum number of servers.
  10. aDtsdGlobalTo
      The amount of time the node waits for a response to a WAN synchronization request before sending another request or declaring a global to be unavailable.
  11. aDtsdLocalTo
      The amount of time the node waits for a response to a synchronization request before sending another request or declaring a server to be unavailable.
  12. aDtsdPid
      The process ID of this DCE DTS entity.
  13. aDtsdUid
      The user ID of this DCE DTS entity.
  14. aDtsdGid
      The group ID of this DCE DTS entity.
  15. aDtsdInRpcCalls
      The number of RPC calls received by RPC runtime.
  16. aDtsdOutRpcCalls
      The number of RPC calls initiated by RPC runtime.
  17. aDtsdInRpcPkts
      The number of network packets received by RPC runtime.
  18. aDtsdOutRpcPkts
      The number of network packets sent by RPC runtime.
  19. aDtsdState
      The state of this DTS entity.

DCE DTS server group

This group contains the information of local or global DTS servers on this host. It has the following attributes:

  1. dceDtsSvrGroup
      The group of this DTS entity on the host.
  2. aDtsSvrRole
      The role of the node as a DTS Server, local or global.
  3. aDtsSvrCourierRole
      A server's interaction with the set of global servers.
  4. aDtsSvrDiffEpochs
      The number of times the node received time response messages that had epoch number different.
  5. aDtsSvrNoGlobals
      The number of times the clock could not contact any global clocks.
  6. aDtsSvrNotResponds
      The number of times the clock could not contact a specific global clock.
  7. aDtsSvrProviderErrors
      The number of times the external time-provider signaled a failure or the node was unable to access the time-provider.

DCE DTS known server table group

This group contains the information of a list of local or global DTS servers known by this DTS entity. It has the following attributes:

  1. dtsKnownSvrTable
      The table of local or global DTS Servers known by this DTS entity.
  2. aDtsKnownSvrName
      The name of the known DTS Server by this host.
  3. aLastPolled
      The time that the known DTS Server was last polled.
  4. aLastObsSkew
      The last observed time difference of the known DTS Server.
  5. aUsedInLastSync
      The time that the DTS Server was last synchronized.
  6. aLastObsTime
      The time that the known DTS Server was last observed.
  7. aDtsSvrProto
      Transport protocol of the known DTS Server.

DCE traps

Various events emitted by the monitored DCE servers are routed to this subagent via the DCE Event Management System daemon. These are translated into traps and, then, sent to the SNMP agent. The traps emitted by this subagent contain the following information:

  1. aDCEEventType
      The type of the DCE event.
  2. aDCEEventText
      The text associated with the event.
  3. aDCEEventSeverity
      The severity of the event.
  4. aDCECellName
      The name of the DCE cell where the event occurred.
  5. aDCEHostName
      The name of the host where the event occurred.
  6. aDCETime
      The time when the event occurred.
  7. aDCEProgram
      The program name where the event occurred.
  8. aDCEComponent
      The name of the component where the event occurred.
  9. aDCESubComponent
      The name of the subcomponent where the event occurred.
  10. aDCEThreadId
      The ID of the thread where the event occurred.
  11. aDCEFile
      The name of the file where the event occurred.
  12. aDCELine
      The line number where the event occurred.

DCE Subagent

The SNMP Manager communicates with the SNMP Agent on each managed DCE host (see Figure). The SNMP Agent uses the agent-to-subagent protocol to communicate with DCE Subagent, which in turn invokes the DCE APIs to access DCE management information.

+--------------------------------------------------------+
| FIGURE NOT AVAILABLE IN ASCII VERSION OF THIS DOCUMENT |
+--------------------------------------------------------+

"\s10\fRAgent\fP" at 3.112,9.628 "\s10\fRLook up\fP" at 4.487,6.290 "\s10\fRVariables\fP" at 4.487,6.128 "\s10\fRLookup Tree\fP" at 4.425,8.190 "\s10\fRBuild MIB\fP" at 4.425,8.353 "\s10\fRMaintain\fP" at 5.737,5.915 "\s10\fRVariables\fP" at 5.737,5.753 "\s10\fRGenerate\fP" at 5.737,4.853 "\s10\fRTraps\fP" at 5.737,4.690 "\s10\fRComponents:\fP" at 2.487,4.103 ljust "\s10\fR[1] Sub-Agent Framework\fP" at 2.487,3.940 ljust "\s10\fR[2] Variable Implementations\fP" at 2.487,3.778 ljust "\s10\fR[4] Heartbeat Monitor\fP" at 2.487,3.453 ljust "\s10\fR[3] EMS Interface\fP" at 2.487,3.615 ljust "\s10\fRInitialize DCE\fP" at 5.737,8.665 "\s10\fRCommunications\fP" at 5.737,8.503 "\s10\fREvent Classes\fP" at 5.737,7.940 "\s10\fRRegister for SVC\fP" at 5.737,8.103 "\s10\fRRegister\fP" at 4.487,9.290 "\s10\fRMIB\fP" at 4.487,9.128 "\s10\fRVariables\fP" at 4.487,8.965 "\s11\fRProcess\fP" at 5.925,7.418 "\s11\fRSVC Events\fP" at 5.925,7.256 "\s11\fRMonitor\fP" at 5.900,6.793 "\s11\fRHeartbeats\fP" at 5.900,6.631 circle at 4.487,8.012 rad 0.037 circle at 4.300,7.763 rad 0.037 circle at 4.675,7.763 rad 0.037 circle at 4.362,7.513 rad 0.037 circle at 4.175,7.513 rad 0.037 circle at 4.612,7.513 rad 0.037 circle at 4.800,7.513 rad 0.037 circle at 4.675,7.263 rad 0.037 circle at 4.237,7.263 rad 0.037 circle at 4.487,7.263 rad 0.037 box with .sw at (2.74,4.51) width 0.75 height 5.00 box with .sw at (6.99,8.76) width 0.75 height 0.50 box with .sw at (6.99,4.76) width 0.75 height 3.25 line from 4.487,8.012 to 4.300,7.763 line from 4.487,8.012 to 4.675,7.763 line from 4.300,7.763 to 4.175,7.513 line from 4.300,7.763 to 4.362,7.513 line from 4.675,7.763 to 4.612,7.513 line from 4.675,7.763 to 4.800,7.513 line from 4.612,7.513 to 4.487,7.263 line from 4.612,7.513 to 4.675,7.263 line from 4.175,7.513 to 4.237,7.263 line from 3.987,9.512 to 6.487,9.512 line from 3.987,4.513 to 6.487,4.513 line from 6.487,4.513 to 6.487,5.013 dashwid = 0.050i line dashed from 3.987,9.512 to 3.987,4.513 "\s10\fRSNMP\fP" at 3.112,9.790 line dashed from 4.987,9.012 to 6.487,9.012 "\s10\fR (DPI, C++, DCE RPC)\fP" at 5.487,3.453 ljust line dashed from 4.987,9.012 to 4.987,5.013 line from 3.987,5.013 to 4.987,5.013 line -> from 6.487,8.012 to 6.675,8.012 to 6.675,9.137 to 6.987,9.137 line -> from 6.987,8.887 to 6.800,8.887 to 6.800,7.388 to 6.487,7.388 line -> from 7.050,6.763 to 6.487,6.763 line <-> from 6.237,5.263 to 7.050,5.263 line from 4.050,5.388 to 4.050,5.388 line <-> from 3.487,5.388 to 3.987,5.388 line <-> from 2.362,5.388 to 2.737,5.388 dashwid = 0.037i line dotted -> from 4.487,7.138 to 4.487,6.450 line dotted -> from 4.487,6.075 to 4.487,5.700 line dotted -> from 5.487,7.388 to 5.175,7.388 to 5.175,5.888 to 5.425,5.888 line dotted -> from 6.050,5.888 to 6.362,5.888 to 6.362,4.763 to 6.050,4.763 line dotted -> from 5.737,5.450 to 5.737,5.700 line dotted <-> from 4.925,5.325 to 5.300,5.325 line from 6.487,7.700 to 5.362,7.700 to 5.362,6.450 to 6.487,6.450 line from 5.362,7.075 to 6.487,7.075 box with .sw at (1.99,3.26) width 6.00 height 6.75 box with .sw at (2.24,4.51) width 0.12 height 5.00 dashwid = 0.050i line dashed from 6.487,9.512 to 6.487,5.013 line -> from 5.487,3.950 to 5.862,3.950 line dashed from 5.487,3.575 to 5.862,3.575 line from 7.050,8.012 to 7.050,8.075 to 7.800,8.075 to 7.800,4.825 to 7.737,4.825 line from 7.112,8.075 to 7.112,8.137 to 7.862,8.137 to 7.862,4.888 to 7.800,4.888 dashwid = 0.037i line dotted -> from 5.487,3.763 to 5.862,3.763 line <- from 3.487,9.200 to 3.987,9.200 line dotted -> from 5.737,6.513 to 5.737,6.013 line <- from 3.487,4.763 to 5.425,4.763 line <- from 2.362,4.763 to 2.737,4.763 "\s10\fRSNMP Sub-Agent for DCE\fP" at 5.237,9.665 "\s10\fRSVC EMS\fP" at 7.362,9.415 "\s10\fR[1]\fP" at 6.362,9.353 "\s10\fR[2]\fP" at 6.362,8.853 "\s10\fR[4]\fP" at 6.362,6.915 "\s10\fR[3]\fP" at 6.362,7.540 "\s10\fRInitialize Objects\fP" at 5.737,9.228 "\s10\fRProcess get,\fP" at 4.487,5.540 "\s10\fRget_next,\fP" at 4.487,5.378 "\s10\fRset Requests\fP" at 4.487,5.215 "\s10\fRProcess get,\fP" at 5.737,5.353 "\s10\fRset Requests\fP" at 5.737,5.190 "\s10\fRDPI\fP" at 3.987,6.790 "\s10\fRC++\fP" at 4.987,6.790 "\s10\fRNetwork\fP" at 2.300,9.728 "\s10\fRDCE Daemons\fP" at 7.425,8.290 "\s10\fRDCE RPC\fP" at 6.487,6.165 "\s10\fRKey to Symbols:\fP" at 5.487,4.103 ljust "\s10\fR External Process Flows\fP" at 5.487,3.940 ljust "\s10\fR Language Interfaces\fP" at 5.487,3.615 ljust "\s10\fR Internal Process Flows\fP" at 5.487,3.778 ljust "\s10\fR\&\fP" at 1.488,9.790

The agent works with the subagent through agent-to-subagent protocol. There are more than one way to implement a subagent. SMUX is one protocol often used on Unix platforms. DPI has been widely used by IBM and other vendors. The agent-to-subagent protocol used in IBM DCE products is DPI.

The DCE Subagent invokes the DCE APIs to access information of DCE resources or services and return the results to SNMP Agent. It is expected that the DCE Subagent accesses local information only.

The DCE Subagent registers with the DCE Event Management Service (EMS) as an event consumer to receive DCE event notifications of severity SVC_FATAL and SVC_ERROR. It also receives events that are specified in the file /opt/dcelocal/etc/snmptrap.tbl. This file contains message indices for the DCE events that can be of any severity (including SVC_NOTICE and SVC_NOTICE_VERBOSE). Additional events of interest can be added to this file by the administrator. Once these events are received through event filters by the Subagent from the EMS daemon, the Subagent converts these into SNMP traps and sends them to the SNMP agent, which, in turn, will route the traps to the listening manager applications. The mechanism to set up event filters, register and listen for events is described in the OSF RFC 67.0.

Subagent external interfaces

The DCE Subagent does not provide external functional interfaces to end users. However, there are interfaces provided to system administrators or management applications to configure, unconfigure, start and stop the Subagent. The SNMP Managers use standard SNMP requests to access DCE management information.

Configuration

The DCE SNMP Subagent can be configured by the command mkdceagt. It initially ensures that the Subagent is not already configured and that the EMS daemon is configured. Then it establishes the specified cell administration credentials, configures the DCE SNMP Subagent, and adds the DCE MIB to the SNMP MIB database.

Its command line interface is:

mkdceagt CellAdminId CellAdminPassword [ TrapDestinationHost ... ]

where:

  1. CellAdminId specifies the DCE account name for the cell administration (required argument; typically cell_admin).
  2. CellAdminPassword specifies the DCE password for the cell administration account, CellAdminId (required argument; typically _dce_).
  3. TrapDestinationHost specifies the hostname of the host to which SNMP traps should be sent. Multiple hostnames can be specified, in which case, traps will be sent to all these hosts upon generation. This argument is optional, and if not specified, traps will be sent to the local host.

Unconfiguration

The DCE Subagent can be unconfigured by the command rmdceagt. This command unconfigures the DCE SNMP Subagent. It initially ensures that the Subagent is not already unconfigured. Then it removes the DCE MIB from the SNMP MIB database. Subsequently, it establishes the cell administration credentials, and unconfigures the DCE SNMP Subagent.

Its command line interface is:

rmdceagt CellAdminId CellAdminPassword

where:

  1. CellAdminId specifies the DCE account name for the cell administration (required argument; typically cell_admin).
  2. CellAdminPassword specifies the DCE password for the cell administration account, CellAdminId (required argument; typically _dce_).

Starting

The DCE Subagent can be started by its command line interface. Its command line interface is:

dceagtd [ -h hostname -c community -d debuglevel -shm -p poll -s scope -i info ]

where:

  1. -p is for local polling interval in seconds (integer greater than 0; default: 60).
  2. -s is for the scope of polling on DCE services (integer, range 0 to 15; default: 0).
  3. -i is for the level of DCE return information (integer, range 0 to 4; default: 0).
  4. -h is for the host to send requests to (hostname conforming to TCP/IP naming conventions; default: local host).
  5. -c is for the community (default: dcesnmp).
  6. -shm is for connecting over shared memory (default: TCP).
  7. -d is for the debug level (integer, range 0 to 9; default: 0).

If the configurable parameters are not given on the command line, the DCE Subagent will use pre-defined default values. Values for some of these parameters (-p, -s and -i) can also be set using Set request operations from the management applications, provided the selected community allows write access to the Subagent.

The DCE Subagent can also be started by the command agtstart. This command checks to see if the Subagent is not already running, the EMS daemon is running and the Subagent is configured. If these conditions are met, it starts the DCE SNMP Subagent.

Its command line interface is:

agtstart

The system administrator has to be the root user to start this subagent.

Stopping

The DCE Subagent can be stopped by the command agtstop. Its command line interface is:

agtstop

The DCE Subagent can also be stopped by Ctrl-Break or Ctrl-C.

Subagent content

The design of subagent is similar to that of SNMP Agent. Efforts have been made for ease of migration to future subagent.

The functional interfaces used between agent and subagent are provided by agent-to-subagent protocol. That includes:

  1. Initialization.
  2. Opening of agent-to-subagent connection.
  3. Registration of DCE management information.
  4. Waiting for request messages from SNMP Agent.
  5. Conveying response to SNMP Agent.
  6. Sending traps to SNMP Agent.
  7. Closing of agent-to-subagent connection.

Logically, the subagent can be structured into the following components, as described in the implementation specifications:

  1. Control Module.
  2. Object Handler.
  3. Heartbeat Monitor.
  4. Trap Generator.

DCE subagent design

The subagent has four main functions:

  1. Interface to the SNMP Agent via the Internet RFC 1592.
  2. Interface to DCE resources (services and databases) through DCE APIs to perform functions to retrieve or modify management information base (MIB) of the resources monitored.
  3. Interface to DCE servers through DCE APIs to periodically monitor the servers and report the change of status through SNMP traps to the SNMP Agent.
  4. Interface to the Event Management System as an event consumer to listen for event notifications coming from various DCE servers and applications and convert these into SNMP traps and send the traps to the SNMP Agent.

When the subagent is started, it will try to establish the connection with the SNMP Agent. Then, it will perform initialization to allocate memory for internal data structures. Then it will spawn threads to establish and maintain a login context and to manage the key in the keytab file. The subagent will also spawn threads for event receiving and heartbeat monitoring.

After initialization, the subagent enters a main loop. This main loop waits for incoming service requests from the SNMP Agent. When a request arrives, the message is decoded and the appropriate functions are performed to serve the request.

Control module

The subagent Control Module consists of the following functions:

  1. Initialization of environments.
  2. Handling of input arguments.
  3. Loading in the management information.
  4. Establishing a DCE login context and spawning threads to maintain it and to manage the key.
  5. Initialization of the connection to SNMP Agent via Internet RFC
  6. Spawning a thread to monitor heartbeats of the DCE servers.
  7. Spawning a thread to listen for event notifications.
  8. Main Loop.
  9. System-dependent functions.

The system-dependent library of SNMP agent can be used by the subagent.

Object handler

This module takes as input a pointer to the request data structure, which contains the VarBind list, operation, requestID, and some other elements.

It finds the variables in the MIB tree, makes sure the operation requested is allowed to perform on this variable, and performs the function, giving it the VarBind(s) and operation as parameters.

On return, the function informs the Object Handler, whether the operation was carried out successfully, and what the result is. The value part of the appropriate VarBind will have the value of the variable requested.

Heartbeat monitor

The Heartbeat Monitor periodically polls the DCE daemons to ensure that they are still up and running. When one is found to be down, the Heartbeat Monitor informs the Object Handler which will call the Trap Generator. The polling scope and interval can be controlled by variables in the DCE MIB. The administrator can issue SNMP request to set the value of these variables on demand.

Trap Generator

When the DCE Subagent detects interesting events either through polling or through receiving DCE event notifications, it will pass the information to the SNMP Agent to generate SNMP traps to the registered SNMP Managers. It initially sets up event filters with Event Management System to receive events of severity SVC_ERROR, SVC_FATAL and specific events as specified in the file /opt/dcelocal/etc/snmptrap.tbl. It then registers with the EMS and listens for the EMS events.

SNMP DATA

The SNMP users or applications use SNMP PDU to communicate with SNMP agent. The SNMP agent decodes the message and put the information into the PDU data structures of agent-to-subagent protocol. For further information, see Internet RFC 1157 (SNMPv1).

USER INTERFACES

There is no direct user interface to the DCE Subagent to query and set MIB objects. However, SNMP users communicate with SNMP agent which in turn interfaces with the Subagent. There are command line interfaces provided to configure, unconfigure, and start the Subagent, which are explained in the section Subagent External Interfaces.

API'S

The implementation of DCE subagent does not provide any external APIs. Users or application programs use SNMP APIs to communicate with SNMP agent which routes the requests to the Subagent and then receives the responses back.

REMOTE INTERFACES

There are no remote interfaces for DCE subagent. All remote SNMP requests are sent to the SNMP agent on the node.

MANAGEMENT INTERFACES

The external management interface provided by the subagent are the config, unconfigure, start and stop functions. The command line interfaces for these functions are explained in the section Subagent External Interfaces.

RESTRICTIONS AND LIMITATIONS

The DCE Subagent uses the Distributed Program Interface (DPI) 2.0 which is explained in the Internet RFC 1592.

OTHER COMPONENT DEPENDENCIES

The DCE subagent depends on the existence of SNMP agent and the agent-to-subagent support on the managed DCE nodes.

COMPATIBILITY

The Subagent works with the hosts running DCE 1.1 or later.

STANDARDS

The DCE SNMP Support follows the Internet IETF standards on defining the MIB and on specifying the subagent implementation complying with SNMPv1:

  1. RFC 1155, Structure and Identification of Management Information for TCP/IP-based Internets.
  2. RFC 1157, A Simple Network Management Protocol.
  3. RFC 1227, SNMP MUX Protocol and MIB.
  4. RFC 1592, SNMP Distributed Program Interface Version 2.0.

OPEN ISSUES

The SNMP agent-to-subagent interface is an issue for discussion. Since SMUX has been deprecated by IETF, DPI 2.0 is a prime candidate for this purpose.

The DFS managed objects will be modelled in future.

DCE MIB DEFINITIONS

IBMDCE-MIB DEFINITIONS ::= BEGIN

-- This component represents the base configuration of a DCE system
-- produced by OSF members.  The groups defined are as follows:
--      the Component ID group,
--      the Software Component Information group,
--      the DCE Host Information group,
--      the DCE Server Table group,
--      the DCE Host Server group,
--      the DCE EMS Server group,
--      the DCE Security Server group,
--      the DCE CDS Server group,
--      the DCE CDS Advertiser group,
--      the DCE CDS Clerks group,
--      the DCE CDS Clerk Table group,
--      the DCE CDS Clearinghouse Table group,
--      the DCE CDS Cached Clearinghouse Table group,
--      the DCE GDA Server group,
--      the DCE DTS Entity group,
--      the DCE DTS Server group,
--      the DCE DTS Known Server Table group, and
--      the DCE Traps.

IMPORTS
     Counter, enterprises
             FROM RFC1155-SMI
     OBJECT-TYPE
             FROM RFC-1212
     DisplayString
             FROM RFC1213-MIB
     TRAP-TYPE
             FROM RFC-1215;

Date                ::= OCTET STRING (SIZE (50))
osf                 OBJECT IDENTIFIER ::= { org 22 }
dce                 OBJECT IDENTIFIER ::= { osf  1 }
SNMP                OBJECT IDENTIFIER ::= { dce 7 }
MIB                 OBJECT IDENTIFIER ::= { SNMP 1 }
subagent            OBJECT IDENTIFIER ::= { SNMP 2 }

-- Component ID Group ===============================================

componentIDGroup OBJECT IDENTIFIER ::= {MIB 1}

aManufacturer OBJECT-TYPE
        SYNTAX          DisplayString (SIZE (0..64))
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The name of the manufacturer that produces
                        this component.
        ::= {componentIDGroup 1}

aProduct OBJECT-TYPE
        SYNTAX          DisplayString (SIZE (0..64))
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The name of the product for this component.
        ::= {componentIDGroup 2}

aVersion OBJECT-TYPE
        SYNTAX          DisplayString (SIZE (0..64))
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The version number of this component.
        ::= {componentIDGroup 3}

aSerialNumber OBJECT-TYPE
        SYNTAX          DisplayString (SIZE (0..64))
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The serial number for this instance of this
                        component.
        ::= {componentIDGroup 4}

aInstallation OBJECT-TYPE
        SYNTAX          Date
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The installation date of this component.
                        The Service Layer assigns this value, the
                        manufacturer should leave it blank.
        ::= {componentIDGroup 5}

aVerify OBJECT-TYPE
        SYNTAX          INTEGER
--      {
--              vAnErrorOccurred;CheckStatusCode                 (0),
--              vThisComponentDoesNotExist                       (1),
--              vTheVerifyIsNotSupported                         (2),
--              vReserved                                        (3),
--              vComponent'sFunctionalityUntested                (4),
--              vComponent'sFunctionalityUnknown                 (5),
--              vComponentIsNotFunctioningCorrectly              (6),
--              vComponentFunctionsCorrectly                     (7)
--      }
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "A code that provides a level of verification
                        that the component is still installed and
                        working.
        ::= {componentIDGroup 6}

-- Software Component Information Group =============================

softwareCompInfoGroup OBJECT IDENTIFIER ::= {MIB 2}

aMajorVersion OBJECT-TYPE
        SYNTAX          DisplayString (SIZE (0..32))
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "Major version of this software component.
        ::= {softwareCompInfoGroup 1}

aMinorVersion OBJECT-TYPE
        SYNTAX          DisplayString (SIZE (0..32))
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "Minor version of this software component.
        ::= {softwareCompInfoGroup 2}

aRevision OBJECT-TYPE
        SYNTAX          DisplayString (SIZE (0..32))
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "Revision of this software component.
        ::= {softwareCompInfoGroup 3}

aBuild OBJECT-TYPE
        SYNTAX          DisplayString (SIZE (0..32))
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "Manufacturer's internal identifier for this
                        compilation.
        ::= {softwareCompInfoGroup 4}

aTargetOperatingSystem OBJECT-TYPE
        SYNTAX          INTEGER
--      {
--              vOther                                           (0),
--              vDos                                             (1),
--              vMacos                                           (2),
--              vOs2                                             (3),
--              vUnix                                            (4),
--              vWin16                                           (5),
--              vWin32                                           (6),
--              vOpenvms                                         (7)
--      }
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The operating system for which this software
                        component is intended.
        ::= {softwareCompInfoGroup 5}

aLanguageEdition OBJECT-TYPE
        SYNTAX          DisplayString (SIZE (0..32))
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "This identifies the language edition of this
                        component.
        ::= {softwareCompInfoGroup 6}

aIdentificationCode OBJECT-TYPE
        SYNTAX          DisplayString (SIZE (0..32))
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "Stock Keeping Unit (SKU) or Part Number for
                        this software component.
        ::= {softwareCompInfoGroup 7}

-- DCE Host Information Group =======================================

dceHostInfoGroup OBJECT IDENTIFIER ::= {MIB 3}

aDCEHostName OBJECT-TYPE
        SYNTAX          DisplayString (SIZE (0..64))
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "An administratively-assigned name for this
                        managed DCE host.
        ::= {dceHostInfoGroup 1}

aDCEHostCellName OBJECT-TYPE
        SYNTAX          DisplayString (SIZE (0..255))
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "An administratively-assigned name for the
                        DCE cell to which this managed DCE host
                        belongs.
        ::= {dceHostInfoGroup 2}

aDCEHostCellNameAliases OBJECT-TYPE
        SYNTAX          DisplayString (SIZE (0..255))
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The aliases the host believes are defined
                        for the cell it belongs to.
        ::= {dceHostInfoGroup 3}

-- DCE  Server Table ================================================

dceSvrTable OBJECT-TYPE
        SYNTAX          SEQUENCE OF DCEHostSvrEntry
        ACCESS          not-accessibleMIB
        STATUS          mandatory
        DESCRIPTION     "A list of server entries configured on this
                        managed DCE host.
        ::= {MIB 4}

dceHostSvrEntry OBJECT-TYPE
        SYNTAX          DCEHostSvrEntry
        ACCESS          not-accessible
        STATUS          mandatory
        DESCRIPTION     "
--      INDEX           {aDCESvrName}
        ::= {dceSvrTable 1}

DCEHostSvrEntry ::= SEQUENCE {
        aDCESvrName                                    DisplayString,
        aDCESvrState                                   DisplayString,
        aDCESvrStateValue                              INTEGER
}

aDCESvrName OBJECT-TYPE
        SYNTAX          DisplayString (SIZE (0..32))
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The type of this DCE server in this entry.
        ::= {dceHostSvrEntry 1}

aDCESvrState OBJECT-TYPE
        SYNTAX          DisplayString (SIZE (0..16))
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The state information of DCE Server on the
                        host.
        ::= {dceHostSvrEntry 2}

aDCESvrStateValue OBJECT-TYPE
        SYNTAX          INTEGER
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The state value of DCE Server on the host.
        ::= {dceHostSvrEntry 3}

-- DCE Host Server Group ============================================

dceHostSvrGroup OBJECT IDENTIFIER ::= {MIB 5}

aHostSvrPid OBJECT-TYPE
        SYNTAX          INTEGER
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The process ID of this DCE server on the
                        host.
        ::= {dceHostSvrGroup 1}

aHostSvrUid OBJECT-TYPE
        SYNTAX          INTEGER
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The POSIX identifier of the user the server
                        should be run as on the host.
        ::= {dceHostSvrGroup 2}

aHostSvrGid OBJECT-TYPE
        SYNTAX          INTEGER
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The POSIX identifier of the primary group
                        the server should be run as on the host.
        ::= {dceHostSvrGroup 3}

aHostSvrInRpcCalls OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The number of RPC calls received by RPC
                        runtime.
        ::= {dceHostSvrGroup 4}

aHostSvrOutRpcCalls OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The number of RPC calls initiated by RPC
                        runtime.
        ::= {dceHostSvrGroup 5}

aHostSvrInRpcPkts OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The number of RPC packets received by RPC
                        runtime.
        ::= {dceHostSvrGroup 6}

aHostSvrOutRpcPkts OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The number of RPC packets initiated by RPC
                        runtime.
        ::= {dceHostSvrGroup 7}

aHostSvrState OBJECT-TYPE
        SYNTAX          INTEGER
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The state information of DCED Server on the
                        host.
        ::= {dceHostSvrGroup 8}

-- DCE EMS Server Group =============================================

dceEmsSvrGroup OBJECT IDENTIFIER ::= {MIB 6}

aEmsSvrPid OBJECT-TYPE
        SYNTAX          INTEGER
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The process ID of this server.
        ::= {dceEmsSvrGroup 1}

aEmsSvrUid OBJECT-TYPE
        SYNTAX          INTEGER
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The POSIX identifier of the user the server
                        should be run as on the host.
        ::= {dceEmsSvrGroup 2}

aEmsSvrGid OBJECT-TYPE
        SYNTAX          INTEGER
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The POSIX identifier of the primary group
                        the server should be run as on the host.
        ::= {dceEmsSvrGroup 3}

aEmsSvrInRpcCalls OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The number of RPC calls received by RPC
                        runtime.
        ::= {dceEmsSvrGroup 4}

aEmsSvrOutRpcCalls OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The number of RPC calls initiated by RPC
                        runtime.
        ::= {dceEmsSvrGroup 5}

aEmsSvrInRpcPkts OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The number of RPC packets received by RPC
                        runtime.
        ::= {dceEmsSvrGroup 6}

aEmsSvrOutRpcPkts OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The number of RPC packets initiated by RPC
                        runtime.
        ::= {dceEmsSvrGroup 7}

aEmsSvrState OBJECT-TYPE
        SYNTAX          INTEGER
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The state information of EMS Server on the
                        host.
        ::= {dceEmsSvrGroup 8}

-- DCE Security Server Group ========================================

dceSecSvrGroup OBJECT IDENTIFIER ::= {MIB 7}

aSecSvrRole OBJECT-TYPE
        SYNTAX          INTEGER
--      {
--              vUnknown                                         (0),
--              vMastersecsvr                                    (1),
--              vReplica                                         (2)
--      }
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The role of the Security server.
        ::= {dceSecSvrGroup 1}

aSecSvrMode OBJECT-TYPE
        SYNTAX          INTEGER
--      {
--              vUnknown                                         (0),
--              vOperation                                       (1),
--              vMaintenance                                     (2)
--      }
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The mode of the Security server.
        ::= {dceSecSvrGroup 2}

aSecRgyUpdTime OBJECT-TYPE
        SYNTAX          Date
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The localized date and time the replica was
                        last updated.
        ::= {dceSecSvrGroup 3}

aSecRgyUpdSeq OBJECT-TYPE
        SYNTAX          INTEGER
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The sequence number of last update the
                        replica received.
        ::= {dceSecSvrGroup 4}

aSecSvrPid OBJECT-TYPE
        SYNTAX          INTEGER
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The process ID of this server.
        ::= {dceSecSvrGroup 5}

aSecSvrUid OBJECT-TYPE
        SYNTAX          INTEGER
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The POSIX identifier of the user the server
                        should be run as on the host.
        ::= {dceSecSvrGroup 6}

aSecSvrGid OBJECT-TYPE
        SYNTAX          INTEGER
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The POSIX identifier of the primary group
                        the server should be run as on the host.
        ::= {dceSecSvrGroup 7}

aSecSvrInRpcCalls OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The number of RPC calls received by RPC
                        runtime.
        ::= {dceSecSvrGroup 8}

aSecSvrOutRpcCalls OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The number of RPC calls initiated by RPC
                        runtime.
        ::= {dceSecSvrGroup 9}

aSecSvrInRpcPkts OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The number of RPC packets received by RPC
                        runtime.
        ::= {dceSecSvrGroup 10}

aSecSvrOutRpcPkts OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The number of RPC packets initiated by RPC
                        runtime.
        ::= {dceSecSvrGroup 11}

aSecSvrState OBJECT-TYPE
        SYNTAX          INTEGER
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The state information of the DCE Security
                        Server.
        ::= {dceSecSvrGroup 12}

-- DCE CDS Server Group =============================================

dceCdsSvrGroup OBJECT IDENTIFIER ::= {MIB 8}

aCdsSvrUpTime OBJECT-TYPE
        SYNTAX          Date
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The time this server was created.
        ::= {dceCdsSvrGroup 1}

aCdsSvrChildUpdFails OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "Number of times the server was unable to
                        contact all the clearinghouses that store a
                        replica of a particular child directory's
                        parent directory and apply the child updates
                        that have occurred since last skulk.
        ::= {dceCdsSvrGroup 2}

aCdsSvrCrucialReps OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "Number of times a user attempted to remove a
                        crucial replica from from this server.
        ::= {dceCdsSvrGroup 3}

aCdsSvrMaxSkewTime OBJECT-TYPE
        SYNTAX          INTEGER
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "Maximum amount of time that a timestamp on a
                        new or modified entry can vary from local
                        system time.
        ::= {dceCdsSvrGroup 4}

aCdsSvrLookupPathBrokens OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "Number of broken connections between
                        clearinghouses on this server and
                        clearinghouses closer to the root.
        ::= {dceCdsSvrGroup 5}

aCdsSvrSecFails OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "Number of times a server principal for this
                        server was found to have inadequate
                        permissions to perform a request operation.
        ::= {dceCdsSvrGroup 6}

aCdsSvrSkulkInitd OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "Number of skulks initiated by this CDS
                        server.
        ::= {dceCdsSvrGroup 7}

aCdsSvrSkulkCmpltd OBJECT-TYPE
        SYNTAX          INTEGER
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "Number of skulks successfully completed by
                        this CDS server.
        ::= {dceCdsSvrGroup 8}

aCdsSvrReadOps OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "Number of read operations directed to this
                        CDS server.
        ::= {dceCdsSvrGroup 9}

aCdsSvrWriteOps OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "Number of write operations to this CDS
                        server.
        ::= {dceCdsSvrGroup 10}

aCdsSvrPid OBJECT-TYPE
        SYNTAX          INTEGER
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The process ID of this server.
        ::= {dceCdsSvrGroup 11}

aCdsSvrUid OBJECT-TYPE
        SYNTAX          INTEGER
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The POSIX identifier of the user the server
                        should be run as on the host.
        ::= {dceCdsSvrGroup 12}

aCdsSvrGid OBJECT-TYPE
        SYNTAX          INTEGER
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The POSIX identifier of the primary group
                        the server should be run as on the host.
        ::= {dceCdsSvrGroup 13}

aCdsSvrInRpcCalls OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The number of RPC calls received by RPC
                        runtime.
        ::= {dceCdsSvrGroup 14}

aCdsSvrOutRpcCalls OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The number of RPC calls initiated by RPC
                        runtime.
        ::= {dceCdsSvrGroup 15}

aCdsSvrInRpcPkts OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The number of RPC packets received by RPC
                        runtime.
        ::= {dceCdsSvrGroup 16}

aCdsSvrOutRpcPkts OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The number of RPC packets initiated by RPC
                        runtime.
        ::= {dceCdsSvrGroup 17}


aCdsSvrState OBJECT-TYPE
        SYNTAX          INTEGER
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The state information of this CDS Server.
        ::= {dceCdsSvrGroup 18}

-- DCE CDS Advertiser Group =========================================

dceCdsAdvGroup OBJECT IDENTIFIER ::= {MIB 9}

aCdsAdvUpTime OBJECT-TYPE
        SYNTAX          Date
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The start time of CDS advertiser.
        ::= {dceCdsAdvGroup 1}

aCdsAdvPid OBJECT-TYPE
        SYNTAX          INTEGER
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The process ID of CDS advertiser.
        ::= {dceCdsAdvGroup 2}

aCdsAdvUid OBJECT-TYPE
        SYNTAX          INTEGER
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The POSIX identifier of the user the server
                        should be run as on the host.
        ::= {dceCdsAdvGroup 3}

aCdsAdvGid OBJECT-TYPE
        SYNTAX          INTEGER
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The POSIX identifier of the primary group
                        the server should be run as on the host.
        ::= {dceCdsAdvGroup 4}

aCdsAdvInRpcCalls OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The number of RPC calls received by RPC
                        runtime.
        ::= {dceCdsAdvGroup 5}

aCdsAdvOutRpcCalls OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The number of RPC calls initiated by RPC
                        runtime.
        ::= {dceCdsAdvGroup 6}

aCdsAdvInRpcPkts OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The number of RPC packets received by RPC
                        runtime.
        ::= {dceCdsAdvGroup 7}

aCdsAdvOutRpcPkts OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The number of RPC packets initiated by RPC
                        runtime.
        ::= {dceCdsAdvGroup 8}

aCdsAdvState OBJECT-TYPE
        SYNTAX          INTEGER
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The state information of DCE CDS
                        Advertiser.
        ::= {dceCdsAdvGroup 9}

-- DCE CDS Clerks Group =============================================

dceCdsClerksGroup OBJECT IDENTIFIER ::= {MIB 10}

aCdsClerksAuthFails OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The number of times requesting principals
                        failed authentication procedures.
        ::= {dceCdsClerksGroup 1}

aCdsClerksCacheBypasses OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The number of requests to read attributes
                        for which the clerks were specifically
                        directed by the requesting application to
                        bypass its own cache.
        ::= {dceCdsClerksGroup 2}

aCdsClerksCacheHits OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "Total number of read requests directed to
                        the clerks that were satisfied entirely by
                        its cache.
        ::= {dceCdsClerksGroup 3}

aCdsClerksMiscOps OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "Number of operations other than Read and
                        Write performed by the clerks.
        ::= {dceCdsClerksGroup 4}

aCdsClerksReadOps OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "Number of lookup operations performed by the
                        clerks.
        ::= {dceCdsClerksGroup 5}

aCdsClerksWriteOps OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "Number of requests to modify data processed
                        by the clerks.
        ::= {dceCdsClerksGroup 6}

-- CDS Clerk Table ==================================================

cdsClerkTable OBJECT-TYPE
        SYNTAX          SEQUENCE OF CdsClerkEntry
        ACCESS          not-accessible
        STATUS          mandatory
        DESCRIPTION     "A list of CDS clerks on the host.
        ::= {MIB 11}

cdsClerkEntry OBJECT-TYPE
        SYNTAX          CdsClerkEntry
        ACCESS          not-accessible
        STATUS          mandatory
        DESCRIPTION     "
--      INDEX           {aClerkPid}
        ::= {cdsClerkTable 1}

CdsClerkEntry ::= SEQUENCE {
        aClerkUser                                     DisplayString,
        aClerkUid                                      INTEGER,
        aClerkPid                                      INTEGER,
        aClerkUpTime                                   Date
}

aClerkUser OBJECT-TYPE
        SYNTAX          DisplayString (SIZE (0..64))
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The user name of a clerk on the host.
        ::= {cdsClerkEntry 1}

aClerkUid OBJECT-TYPE
        SYNTAX          INTEGER
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The user ID of a clerk on the host.
        ::= {cdsClerkEntry 2}

aClerkPid OBJECT-TYPE
        SYNTAX          INTEGER
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The process ID of a clerk on the host.
        ::= {cdsClerkEntry 3}

aClerkUpTime OBJECT-TYPE
        SYNTAX          Date
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The start time of a clerk on the host.
        ::= {cdsClerkEntry 4}
-- CDS Clearinghouse Table ==========================================

cdsCHTable OBJECT-TYPE
        SYNTAX          SEQUENCE OF CdsCHEntry
        ACCESS          not-accessible
        STATUS          mandatory
        DESCRIPTION     "A list of clearinghouses on the host.
        ::= {MIB 12}

cdsCHEntry OBJECT-TYPE
        SYNTAX          CdsCHEntry
        ACCESS          not-accessible
        STATUS          mandatory
        DESCRIPTION     "
--      INDEX           {aChName}
        ::= {cdsCHTable 1}

CdsCHEntry ::= SEQUENCE {
        aChName                                        DisplayString,
        aChDataCorrupts                                Counter,
        aChEnableCounts                                Counter,
        aChDisableCounts                               Counter,
        aChRefReturns                                  Counter,
        aChSkulkFails                                  Counter,
        aChEntryMisses                                 Counter,
        aChRootLosts                                   Counter,
        aChUpgFails                                    Counter,
        aChReadOps                                     Counter,
        aChWriteOps                                    Counter
}

aChName OBJECT-TYPE
        SYNTAX          DisplayString (SIZE (0..255))
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The full name of the clearinghouse.
        ::= {cdsCHEntry 1}

aChDataCorrupts OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The number of times that the data corruption
                        event was generated 
        ::= {cdsCHEntry 2}

aChEnableCounts OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The number of times that the clearinghouse
                        was enabled since it was last started.
        ::= {cdsCHEntry 3}

aChDisableCounts OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The number of times that the clearinghouse
                        was disabled since it was last started.
        ::= {cdsCHEntry 4}

aChRefReturns OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The number of requests directed to this
                        clearinghouse that resulted in the return of
                        a partial answer instead of satisfying the
                        client's request.
        ::= {cdsCHEntry 5}

aChSkulkFails OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The number of times that a skulk of a
                        directory, initiated from this clearinghouse,
                        failed to complete.
        ::= {cdsCHEntry 6}

aChEntryMisses OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The number of times the clearinghouse entry
                        missing event was generated.
        ::= {cdsCHEntry 7}

aChRootLosts OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The number of times the root lost event was
                        generated.
        ::= {cdsCHEntry 8}

aChUpgFails OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The number of times that upgrades failed.
        ::= {cdsCHEntry 9}

aChReadOps OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The number of read operations directed to
                        this clearinghouse.
        ::= {cdsCHEntry 10}

aChWriteOps OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The number of write operations directed to
                        this clearinghouse.
        ::= {cdsCHEntry 11}

-- CDS Cached Clearinghouse Table ===================================

cdsCachedCHTable OBJECT-TYPE
        SYNTAX          SEQUENCE OF CdsCachedCHEntry
        ACCESS          not-accessible
        STATUS          mandatory
        DESCRIPTION     "A list of cached clearinghouses on the
                        host.
        ::= {MIB 13}

cdsCachedCHEntry OBJECT-TYPE
        SYNTAX          CdsCachedCHEntry
        ACCESS          not-accessible
        STATUS          mandatory
        DESCRIPTION     "
--      INDEX           {aCachedCHName}
        ::= {cdsCachedCHTable 1}

CdsCachedCHEntry ::= SEQUENCE {
        aCachedCHName                                  DisplayString,
        aCachedCHUpTime                                Date,
        aCachedCHMiscOps                               Counter,
        aCachedCHReadOps                               Counter,
        aCachedCHWriteOps                              Counter
}

aCachedCHName OBJECT-TYPE
        SYNTAX          DisplayString (SIZE (0..255))
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The name of the cached clearinghouse.
        ::= {cdsCachedCHEntry 1}

aCachedCHUpTime OBJECT-TYPE
        SYNTAX          Date
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The date and time at which the clearinghouse
                        was added to the cache.
        ::= {cdsCachedCHEntry 2}

aCachedCHMiscOps OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The number of operations other than Read and
                        Write the clerk has performed on the
                        clearinghouse represented by the cache
                        entry.
        ::= {cdsCachedCHEntry 3}

aCachedCHReadOps OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The number of lookup operations the clerk
                        has performed on the clearinghouse
                        represented by the cache entry.
        ::= {cdsCachedCHEntry 4}

aCachedCHWriteOps OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The number of Write operations the clerk has
                        sent to the clearinghouse represented by the
                        cache entry.
        ::= {cdsCachedCHEntry 5}

-- DCE GDA Server Group =============================================

dceGdaSvrGroup OBJECT IDENTIFIER ::= {MIB 14}

aGdaSvrPid OBJECT-TYPE
        SYNTAX          INTEGER
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The process ID of Global Directory Agent.
        ::= {dceGdaSvrGroup 1}

aGdaSvrUid OBJECT-TYPE
        SYNTAX          INTEGER
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The POSIX identifier of the user the GDA
                        should be run as on the host.
        ::= {dceGdaSvrGroup 2}

aGdaSvrGid OBJECT-TYPE
        SYNTAX          INTEGER
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The POSIX identifier of the primary group
                        the GDA should be run as on the host.
        ::= {dceGdaSvrGroup 3}

aGdaSvrInRpcCalls OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The number of RPC calls received by RPC
                        runtime.
        ::= {dceGdaSvrGroup 4}

aGdaSvrOutRpcCalls OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The number of RPC calls initiated by RPC
                        runtime.
        ::= {dceGdaSvrGroup 5}

aGdaSvrInRpcPkts OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The number of RPC packets received by RPC
                        runtime.
        ::= {dceGdaSvrGroup 6}

aGdaSvrOutRpcPkts OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The number of RPC packets initiated by RPC
                        runtime.
        ::= {dceGdaSvrGroup 7}

aGdaSvrState OBJECT-TYPE
        SYNTAX          INTEGER
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The state information of Global directory
                        Agent.
        ::= {dceGdaSvrGroup 8}

-- DCE DTS Entity Group =============================================

dceDtsEntityGroup OBJECT IDENTIFIER ::= {MIB 15}

aDtsdCurrTime OBJECT-TYPE
        SYNTAX          Date
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "Current time on the node.
        ::= {dceDtsEntityGroup 1}

aDtsdBadProtocols OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The number of times the local node failed to
                        process a received message containing an
                        incompatible protocol version.
        ::= {dceDtsEntityGroup 2}

aDtsdBadTimeReps OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The number of times the local node failed to
                        process a received message containing an
                        incompatible timestamp format.
        ::= {dceDtsEntityGroup 3}

aDtsdInsufRes OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The number of times the node has been unable
                        to allocate virtual memory.
        ::= {dceDtsEntityGroup 4}

aDtsdLocalNotIntersects OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The number of times the node's time interval
                        failed to intersect with the computed
                        interval of the servers.
        ::= {dceDtsEntityGroup 5}

aDtsdSyncCmpltd OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The number of times the node successfully
                        synchronized time.
        ::= {dceDtsEntityGroup 6}

aDtsdSysErrors OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The number of times a DTS process detected a
                        system error.
        ::= {dceDtsEntityGroup 7}

aDtsdTooFewSvrs OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The number of times a node failed to
                        synchronize because it couldn't contact
                        required minimum number of servers.
        ::= {dceDtsEntityGroup 8}

aDtsdGlobalTo OBJECT-TYPE
        SYNTAX          Date
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The amount of time the node waits for a
                        response to a WAN synchronization request
                        before sending another request or declaring a
                        global server to be unavailable.
        ::= {dceDtsEntityGroup 9}

aDtsdLocalTo OBJECT-TYPE
        SYNTAX          Date
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The amount of time the node waits for a
                        response to a synchronization request before
                        sending another request or declaring a server
                        to be unavailable.
        ::= {dceDtsEntityGroup 10}

aDtsdPid OBJECT-TYPE
        SYNTAX          INTEGER
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The process ID of DTS entity.
        ::= {dceDtsEntityGroup 11}
aDtsdUid OBJECT-TYPE
        SYNTAX          INTEGER
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The POSIX identifier of the user the DTS
                        entity should be run as on the host.
        ::= {dceDtsEntityGroup 12}

aDtsdGid OBJECT-TYPE
        SYNTAX          INTEGER
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The POSIX identifier of the primary group
                        the DTS entity should be run as on the host.
        ::= {dceDtsEntityGroup 13}

aDtsdInRpcCalls OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The number of RPC calls received by RPC
                        runtime.
        ::= {dceDtsEntityGroup 14}

aDtsdOutRpcCalls OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The number of RPC calls initiated by RPC
                        runtime.
        ::= {dceDtsEntityGroup 15}
aDtsdInRpcPkts OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The number of RPC packets received by RPC
                        runtime.
        ::= {dceDtsEntityGroup 16}

aDtsdOutRpcPkts OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The number of RPC packets initiated by RPC
                        runtime.
        ::= {dceDtsEntityGroup 17}

aDtsdState OBJECT-TYPE
        SYNTAX          INTEGER
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The state information of this DTS entity.
        ::= {dceDtsEntityGroup 18}

-- DCE DTS Server Group =============================================

dceDtsSvrGroup OBJECT IDENTIFIER ::= {MIB 16}

aDtsSvrRole OBJECT-TYPE
        SYNTAX          Counter
--      {
--              vUnknown                                         (0),
--              vDtslocalsvr                                     (1),
--              vDtsglobalsvr                                    (2)
--      }
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The role of the DTS server, local or
                        global.
        ::= {dceDtsSvrGroup 1}

aDtsSvrCourierRole OBJECT-TYPE
        SYNTAX          INTEGER
--      {
--              vUnknown                                         (0),
--              vCourier                                         (1),
--              vBackupcourier                                   (2),
--              vNoncourier                                      (3)
--      }
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "A server's interaction with the set of
                        global servers.
        ::= {dceDtsSvrGroup 2}

aDtsSvrDiffEpochs OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The number of times the node received time
                        response messages from servers or clerks that
                        had epoch numbers different from its own.
        ::= {dceDtsSvrGroup 3}


aDtsSvrNoGlobals OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The number of times the clock could not
                        contact any global clock.
        ::= {dceDtsSvrGroup 4}

aDtsSvrNotResponds OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The number of times the clock could not
                        contact a specific global clock.
        ::= {dceDtsSvrGroup 5}

aDtsSvrProviderErrors OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The number of times the external
                        time-provider signaled a failure or the node
                        was unable to access the time-provider.
        ::= {dceDtsSvrGroup 6}

dtsKnownSvrTable OBJECT-TYPE
        SYNTAX          SEQUENCE OF DtsKnownSvrEntry
        ACCESS          not-accessible
        STATUS          mandatory
        DESCRIPTION     "A list of DTS local or global servers known
                        by this DTS entity.
        ::= {MIB 17}

dtsKnownSvrEntry OBJECT-TYPE
        SYNTAX          DtsKnownSvrEntry
        ACCESS          not-accessible
        STATUS          mandatory
        DESCRIPTION     "
--      INDEX           {aDtsKnownSvrName}
        ::= {dtsKnownSvrTable 1}

DtsKnownSvrEntry ::= SEQUENCE {
        aDtsKnownSvrName                               DisplayString,
        aLastPolled                                    Date,
        aLastObsSkew                                   Date,
        aUsedInLastSync                                Date,
        aLastObsTime                                   Date,
        aDtsSvrProto                                   INTEGER
}

aDtsKnownSvrName OBJECT-TYPE
        SYNTAX          DisplayString (SIZE (0..255))
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The name of the DTS server known by this
                        host.
        ::= {dtsKnownSvrEntry 1}

aLastPolled OBJECT-TYPE
        SYNTAX          Date
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The time that the known DTS Server was last
                        polled.
        ::= {dtsKnownSvrEntry 2}
aLastObsSkew OBJECT-TYPE
        SYNTAX          Date
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The last observed time difference of the
                        known DTS server.
        ::= {dtsKnownSvrEntry 3}

aUsedInLastSync OBJECT-TYPE
        SYNTAX          Date
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The time that the known DTS server was last
                        synchronized.
        ::= {dtsKnownSvrEntry 4}

aLastObsTime OBJECT-TYPE
        SYNTAX          Date
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The time that the known DTS server was last
                        observed.
        ::= {dtsKnownSvrEntry 5}

aDtsSvrProto OBJECT-TYPE
        SYNTAX          INTEGER
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "The transport protocol of the known DTS
                        server.
        ::= {dtsKnownSvrEntry 6}

-- DCE Traps  =======================================================

dceTrapsGroup OBJECT IDENTIFIER ::= {MIB 18}

aEventType  OBJECT-TYPE
        SYNTAX          DisplayString
        ACCESS          not-accessible
        STATUS          mandatory
        DESCRIPTION     "Type of the event.
        ::= {dceTrapsGroup 1}

aEventText  OBJECT-TYPE
        SYNTAX          DisplayString
        ACCESS          not-accessible
        STATUS          mandatory
        DESCRIPTION     "Text of the event.
        ::= {dceTrapsGroup 2}

aEventSeverity  OBJECT-TYPE
        SYNTAX          DisplayString
        ACCESS          not-accessible
        STATUS          mandatory
        DESCRIPTION     "Severity of the event.
        ::= {dceTrapsGroup 3}

aCellName  OBJECT-TYPE
        SYNTAX          DisplayString
        ACCESS          not-accessible
        STATUS          mandatory
        DESCRIPTION     "Name of the cell where the event occurred.
        ::= {dceTrapsGroup 4}

aHostName  OBJECT-TYPE
        SYNTAX          DisplayString
        ACCESS          not-accessible
        STATUS          mandatory
        DESCRIPTION     "Name of the host where the event occurred.
        ::= {dceTrapsGroup 5}

aTime  OBJECT-TYPE
        SYNTAX          DisplayString
        ACCESS          not-accessible
        STATUS          mandatory
        DESCRIPTION     "Time when the event occurred
        ::= {dceTrapsGroup 6}

aProgram  OBJECT-TYPE
        SYNTAX          DisplayString
        ACCESS          not-accessible
        STATUS          mandatory
        DESCRIPTION     "Name of the program where the event
                        occurred.
        ::= {dceTrapsGroup 7}

aComponent  OBJECT-TYPE
        SYNTAX          DisplayString
        ACCESS          not-accessible
        STATUS          mandatory
        DESCRIPTION     "Name of the component where the event
                        occurred.
        ::= {dceTrapsGroup 8}

aSubComponent  OBJECT-TYPE
        SYNTAX          DisplayString
        ACCESS          not-accessible
        STATUS          mandatory
        DESCRIPTION     "Name of the subcomponent where the event
                        occurred.
        ::= {dceTrapsGroup 9}

aThreadId  OBJECT-TYPE
        SYNTAX          Integer
        ACCESS          not-accessible
        STATUS          mandatory
        DESCRIPTION     "Id of the thread where the event occurred.
        ::= {dceTrapsGroup 10}

aFile  OBJECT-TYPE
        SYNTAX          DisplayString
        ACCESS          not-accessible
        STATUS          mandatory
        DESCRIPTION     "Name of the file where the event occurred.
        ::= {dceTrapsGroup 11}

aLine  OBJECT-TYPE
        SYNTAX          Integer
        ACCESS          not-accessible
        STATUS          mandatory
        DESCRIPTION     "Line number where the event occurred
        ::= {dceTrapsGroup 12}

END

REFERENCES

[RFC 1155]
Internet RFC, Structure and Identification of Management Information for TCP/IP-based Internets.
[RFC 1227]
Internet RFC, SNMP MUX Protocol and MIB.
[RFC 1592]
Internet RFC, SNMP Distributed Program Interface Version 2.0.
[RFC 32]
R. Friedrich, Requirements for Performance Instrumentation of DCE RPC and CDS Services, June 1993.
[RFC 33]
R. Friedrich, S. Saunders, G. Zaidenweber, D. Bachmann, S. Blumson, Standardized Performance Instrumentation and Interface Specification for Monitoring DCE-Based Applications, July 1995.
[RFC 47]
J. Bowe, D. Mackey, R. Salz, P. Wang, DCE-RFC 47.3, DCED: The DCE Host Daemon, April 1994.
[RFC 67]
R. Cohen, G. Wilson, OSF RFC 67.0, Event Management System, January 1996.

AUTHORS' ADDRESSES

Gregg Wilson Internet email: gwilson@austin.ibm.com IBM
IBM Corporation Telephone: +1-512-838-2244
11400 Burnet Road, Zip 9132
Austin, TX 78758
USA

Ravi Mandava Internet email: ravikm@austin.ibm.com
IBM Corporation Telephone: +1-512-838-8254
11400 Burnet Road, Zip 9132
Austin, TX 78758
USA