MADMAN Working Group                  Glenn Mansfield [glenn@cysols.com]
INTERNET-DRAFT                                      Cyber Solutions Inc.
draft-ietf-madman-dsa-mib-1-05.txt         S.E.Kille [S.Kille@isode.com]
                                                              ISODE Ltd.
                                                               June 1998


                    Directory Server Monitoring MIB


Status of this Memo

   This document is an Internet Draft. Internet Drafts are working
   documents of the Internet Engineering Task Force (IETF), its Areas,
   and its Working Groups. Note that other groups may also distribute
   working documents as Internet Drafts.

   Internet Drafts are draft documents valid for a maximum of six
   months. Internet Drafts may be updated, replaced, or obsoleted by
   other documents at any time.  It is not appropriate to use Internet
   Drafts as reference material or to cite them other than as a "working
   draft" or "work in progress."

   To view the entire list of current Internet-Drafts, please check
   the "1id-abstracts.txt" listing contained in the Internet-Drafts
   Shadow Directories on ftp.is.co.za (Africa), ftp.nordu.net
   (Northern Europe), ftp.nis.garr.it (Southern Europe), munnari.oz.au
   (Pacific Rim), ftp.ietf.org (US East Coast), or ftp.isi.edu
   (US West Coast).

Abstract

   This memo defines a portion of the Management Information Base (MIB)
   for use with network management protocols in the Internet community.
   Specifically, this memo extends the basic Network Services Monitoring
   MIB [9] to allow monitoring of Directory Servers.

Table of Contents

   1.  The SNMPv2 Network Management Framework ....................... 2
   2.  The Directory Services Model .................................. 2
   3.  MIB Model for Directory Server  Management .................... 4
   4.  MIB design .................................................... 5
   5.  The Directory Server Monitoring MIB ........................... 6
   6.  Changes from RFC1567 ..........................................23
   7.  Acknowledgements ..............................................24
   8.  References ....................................................24
   Security Considerations ...........................................25
   Authors' Addresses ................................................25



Expires: December 7, 1998                                       [Page 1]


Internet Draft                                               May 16 1997


1.  The SNMPv2 Network Management Framework.

   The major components of the SNMPv2 Network Management framework  are
   described in the documents listed below.


         o RFC 1902 [1] defines the Structure of Management Information
           (SMI), the mechanisms used for describing and naming objects
           for the purpose of management.

         o STD 17, RFC 1213 [2] defines MIB-II, the core set of managed
           objects (MO) for the Internet suite of protocols.

         o RFC 1905 [3] defines the protocol used for network access to
           managed objects.

   Textual conventions are defined in RFC 1903 [4], and conformance
   statements are defined in RFC 1904 [5].

   The framework is adaptable/extensible by defining new MIBs to suit
   the requirements of specific applications/protocols/situations.

   1.1.  Object Definitions.


   Managed objects are accessed via a virtual information store, the
   MIB.  Objects in the MIB are defined using the subset of Abstract
   Syntax Notation One (ASN.1) defined in the SMI.  In particular, each
   object type is named by an OBJECT IDENTIFIER, which is an
   administratively assigned name.  The object type together with an
   object instance serves to uniquely identify a specific instantiation
   of the object.  For human convenience, often a textual string, termed
   the descriptor, is used to refer to the object type.

   2.  The Directory Services Model.


   The Directory comprises of Directory Servers. Clients or Directory
   User Agents (DUA) are provided access to the Directory which maybe
   local or distributed, by the Directory Servers. The server maybe a
   X.500 Directory System Agent (DSA) [6] running over the OSI suite of
   protocols or, a (C)LDAP[7,8] frontend to the X.500 Directory System
   Agent or, a native LDAP Directory Server running directly over TCP or
   other protocols, or a database acting as a backend to another server,
   or any other application protocol, or any combination of the above. A
   Directory Server has one or more application protocol interfaces.
   Through these interfaces the Directory Server interacts with the DUA
   and with the peer Directory Servers.



Expires: December 7, 1998                                       [Page 2]


Internet Draft                                               May 16 1997


   Fig. 1 shows the case of a Directory Server that receives requests
   and sends back responses in some protocol. Fig. 2 shows one possible
   scenario where the Directory Server speaks multiple protocols.



                              +----------------+
                              |                |
                              |   Directory    | Directory Protocol
                              |     Server     X-------->
                              |                |
                              |                |
                              +----------------+

                                     FIG. 1.


                              +----------------+
                              |                |
               DSP <----------X                X--------> DAP
                              |   Directory    |
             Other            |     Server     |
          Protocol <----------X                X--------> LDAP
                              |                |
                              +----------------+

                                     FIG. 2.


   The Directory contains information in the form of entries. An entry
   is a collection of attributes and is uniquely identified by a name,
   the Distinguished Name (DN). The entries are arranged in a
   hierarchical tree-like structure called the Directory Information
   Tree (DIT).

   A DUA requests a Directory Server to perform some operation on the
   Directory. The Directory Server is responsible for performing the
   operation and after completing its effort to carry out the request,
   returns a response to the DUA.

   A Directory Server may use information stored in its local database
   or interact with (chain the request to) other Directory Servers to
   service the DUA request. Alternatively, a Directory Server may return
   a reference to another Directory Server (referral).

   The local database of a Directory Server consists of the part of the
   Directory that is mastered by the Directory Server, the part of the
   Directory for which it keeps slave copies and cached information that



Expires: December 7, 1998                                       [Page 3]


Internet Draft                                               May 16 1997


   is gathered during the operation of the Directory Server.

   In the connection oriented mode a DUA "binds" to a Directory Server
   with a particular identification. The  Directory Server may
   authenticate the identity of the DUA. In the connectionless mode as
   is employed in CLDAP [CLDAP] no binding and/authentication is carried
   out between the DUA and the Directory Server.  The following type of
   operations are carried out by the Directory Server : Read, Compare,
   Addition of an Entry (AddEntry), Modification of an Entry
   (ModifyEntry), Modification of a DN (ModifyRDN), Deletion of an Entry
   (RemoveEntry), List, Search, Abandon. Some Directory Servers do not
   support some type of operations. For example CLDAP does not support
   AddEntry, ModifyEntry, ModifyRDN, RemoveEntry etc.  In response to
   requests results and/or errors are returned by the Directory Server.

   In the distributed Directory data is often replicated to enhance
   performance and for other advantages. The data to be replicated is
   transferred from the "Supplier" Directory Server to the "Consumer"
   Directory Server according to the replication agreement between the
   supplier and the receiver.



   3.  MIB Model for  Directory  Management.

   A Directory manager should be able to monitor all the Directory
   Servers in his/her domain of management. The Directory Servers may be
   running on one or more hosts and, multiple Directory Servers may be
   running on the same host.

   The manager may wish to monitor  several  aspects of  the operational
   Directory Servers. He/she may want to know the process related
   aspects- the resource utilization of an operational Directory Server;
   the  network service related aspects e.g. inbound-associations,
   outbound-associations, operational status, and finally the
   information specific to the Directory Server application- its
   operations and performance.

   The MIB defined in this document covers the  portion  which is
   specific to Directory services. The network service related part of
   the MIB, and the host-resources related part  of the  MIB, as well as
   other parts of interest to a Manager monitoring the Directory
   services, are covered in separate documents  [9][10].

   The MIB will cover a group of Directory Servers. The grouping will be
   done on some logical basis by the administrator/manager.  In all
   cases, the grouping will be reflected in the pertinent NETWORK-
   SERVICES-MIB which will have an entry corresponding to each Directory



Expires: December 7, 1998                                       [Page 4]


Internet Draft                                               May 16 1997


   Server in the group.



4.  MIB design.

   The basic principle has been to keep the MIB as simple as  possible.
   The Managed objects included in the MIB are divided into three
   tables- dsaTable, dsaOpsTable, and dsaIntTable.

      - The dsaTable contains a list of Directory Servers. The list
      contains a description of the Directory Servers as well as summary
      statistics on the entries held by and the cache performance of
      each Directory Server. The group of servers on this list is likely
      to contain a part of, if not all, the Directory Servers in the
      management domain.

      - The dsaApplIfOpsTable  provides  summary statistics on the
      accesses, operations and errors for each application protocol
      interface of a Directory Server.

      - The dsaIntTable  provides some useful information on the
      interaction of the monitored Directory Servers with peer Directory
      Servers.

   There   are  references   to   the   Directory  itself  for   static
   information  pertaining  to the Directory Server. These references
   are in the form of "Directory Distinguished Name" [11] of the
   corresponding object. It is intended  that  Directory management
   applications will use these references to obtain  further
   information on the objects of interest.




















Expires: December 7, 1998                                       [Page 5]


Internet Draft                                               May 16 1997


   5.  The Directory Monitoring MIB.


   DSA-SERVER-MIB DEFINITIONS ::= BEGIN

    IMPORTS
      MODULE-IDENTITY,  Counter32, Gauge32, OBJECT-TYPE,
                 FROM SNMPv2-SMI
      DisplayString,    TimeStamp,
                 FROM SNMPv2-TC
      MODULE-COMPLIANCE, OBJECT-GROUP
                 FROM SNMPv2-CONF
      applIndex, DistinguishedName, URLString,
      applTCPProtoID,          applUDPProtoID,
                 FROM NETWORK-SERVICES-MIB

    dsaMIB MODULE-IDENTITY
       LAST-UPDATED "9806070000Z"
       ORGANIZATION "IETF Mail and Directory Management Working
                     Group"
       CONTACT-INFO
              "        Glenn Mansfield
               Postal: Cyber Solutions Inc.
                       6-6-3, Minami Yoshinari
                       Aoba-ku, Sendai, Japan 989-3204.

               Tel:    +81-22-303-4012
               Fax:    +81-22-303-4015
               E-mail: glenn@cysols.com"
       DESCRIPTION
               " The MIB module for monitoring Directory Services."
            ::= { experimental XXX}


    dsaTable OBJECT-TYPE
        SYNTAX SEQUENCE OF DsaTableEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
          " The table holding information related to the Directory
            Servers."
        ::= {dsaMIB 1}

    dsaTableEntry OBJECT-TYPE
        SYNTAX DsaTableEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION



Expires: December 7, 1998                                       [Page 6]


Internet Draft                                               May 16 1997


          " Entry containing summary description for a Directory
            Server."
        INDEX { applIndex }
        ::= {dsaTable 1}

   -- General description of the Directory Server application will be
   -- available in the applTable of the NETWORK-SERVICES-MIB indexed by
   -- applIndex.

    DsaTableEntry ::= SEQUENCE {
        dsaServerType
            INTEGER,
        dsaServerDescription
            DisplayString,

    -- Entry statistics/Cache performance
        dsaMasterEntries
            Gauge32,
        dsaCopyEntries
            Gauge32,
        dsaCacheEntries
            Gauge32,
        dsaCacheHits
            Counter32,
        dsaSlaveHits
            Counter32
    }

    dsaServerType OBJECT-TYPE
        SYNTAX INTEGER (0..3)
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
          " A value which indicates whether the server is
           a frontend or, a backend or, both.

           The value is a sum of 2^(code-1) for each code
           corresponding to the service roles of the  Directory
           Server.
                  code Service role
                    1  frontend Directory Server
                    2  backend  Directory Server
          "
        ::= {dsaTableEntry 1}

    dsaServerDescription
       SYNTAX DisplayString
       MAX-ACCESS read-only



Expires: December 7, 1998                                       [Page 7]


Internet Draft                                               May 16 1997


       STATUS current
       DESCRIPTION
         "A text description of the application.  This information
          is intended to identify and briefly describe the
          application in a status display."
        ::= {dsaTableEntry 2}


   -- A (C)LDAP frontend to the X.500 Directory will not have
   -- MasterEntries, CopyEntries; the following counters will
   -- be inaccessible for LDAP/CLDAP frontends to the X.500
   -- directory: dsaMasterEntries, dsaCopyEntries, dsaSlaveHits.

    dsaMasterEntries OBJECT-TYPE
        SYNTAX Gauge32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
          " Number of entries mastered in the Directory Server."
        ::= {dsaTableEntry 3}

    dsaCopyEntries OBJECT-TYPE
        SYNTAX Gauge32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
          " Number of entries for which systematic (slave)
            copies are maintained in the Directory Server."
        ::= {dsaTableEntry 4}

    dsaCacheEntries OBJECT-TYPE
        SYNTAX Gauge32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
          " Number of entries cached (non-systematic copies) in
            the Directory Server. This will include the entries that
            are cached partially. The negative cache is not counted."
        ::= {dsaTableEntry 5}












Expires: December 7, 1998                                       [Page 8]


Internet Draft                                               May 16 1997


    dsaCacheHits OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
          " Number of operations that were serviced from
            the locally held cache since application
            startup."
        ::= {dsaTableEntry 6}

    dsaSlaveHits  OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
          " Number of operations that were serviced from
            the locally held object replications ( copy-
            entries) since application startup."
        ::= {dsaTableEntry 7}

    dsaApplIfOpsTable OBJECT-TYPE
        SYNTAX SEQUENCE OF DsaApplIfOpsEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
          " The table holding information related to the
            Directory Server operations."
        ::= {dsaMIB 2}

    dsaApplIfOpsEntry OBJECT-TYPE
        SYNTAX DsaApplIfOpsEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
          " Entry containing operations related statistics
            for a Directory Server."
        INDEX { applIndex, dsaApplIfProtocolIndex }
        ::= {dsaOpsTable 1}

    DsaApplIfOpsEntry ::= SEQUENCE {

        dsaApplIfProtocolIndex
             INTEGER,
        dsaApplIfProtocol
             OBJECT IDENTIFIER,

    -- Bindings




Expires: December 7, 1998                                       [Page 9]


Internet Draft                                               May 16 1997


        dsaAnonymousBinds
            Counter32,
        dsaUnauthBinds
            Counter32,
        dsaSimpleAuthBinds
            Counter32,
        dsaStrongAuthBinds
            Counter32,
        dsaBindSecurityErrors
            Counter32,

    -- In-coming operations

        dsaInOps
            Counter32,
        dsaReadOps
            Counter32,
        dsaCompareOps
            Counter32,
        dsaAddEntryOps
            Counter32,
        dsaRemoveEntryOps
            Counter32,
        dsaModifyEntryOps
            Counter32,
        dsaModifyRDNOps
            Counter32,
        dsaListOps
            Counter32,
        dsaSearchOps
            Counter32,
        dsaOneLevelSearchOps
            Counter32,
        dsaWholeSubtreeSearchOps
            Counter32,

    -- Out going operations

        dsaReferrals
            Counter32,
        dsaChainings
            Counter32,

    -- Errors

        dsaSecurityErrors
            Counter32,
        dsaErrors



Expires: December 7, 1998                                      [Page 10]


Internet Draft                                               May 16 1997


            Counter32,

   --  replications

        dsaReplicationUpdatesIn
            Counter32,
        dsaReplicationUpdatesOut
            Counter32,

    -- Traffic Volume

        dsaInBytes
            Counter32,
        dsaOutBytes
            Counter32
    }

    -- CLDAP does not use binds; for the CLDAP interface of a Directory
    -- Server the bind related counters will be inaccessible.
    --
    -- CLDAP and LDAP implement "Read" and "List" operations
    -- indirectly via the "search" operation; the following
    -- counters will be inaccessible for the CLDAP and LDAP interfaces of
    -- Directory Servers:  dsaReadOps, dsaListOps
    --
    -- CLDAP does not implement "Compare", "Add", "Remove",
    -- "Modify", "ModifyRDN"; the following counters will be
    -- inaccessible for the CLDAP interfaces of Directory Servers:
    -- dsaCompareOps, dsaAddEntryOps,  dsaRemoveEntryOps,
    -- dsaModifyEntryOps, dsaModifyRDNOps.
    --
    -- CLDAP Directory Servers do not return Referrals
    -- the following fields will remain inaccessible for
    -- CLDAP interfaces of Directory Servers: dsaReferrals.

    dsaApplIfProtocolIndex OBJECT-TYPE
        SYNTAX INTEGER (1..2147483647)
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
         "An index to uniquely identify the application-layer protocol
          interface. This attribute is the index used for lexicographic
          ordering of the table."
        ::= {dsaOpsEntry 1}

    dsaApplIfProtocol OBJECT-TYPE
        SYNTAX OBJECT IDENTIFIER
        MAX-ACCESS read-only



Expires: December 7, 1998                                      [Page 11]


Internet Draft                                               May 16 1997


        STATUS current
        DESCRIPTION
         "An identification of the protocol being used by the application
          on this interface.  For an OSI Application, this will be the
          Application Context.  For Internet applications, the IANA
          maintains a registry of the OIDs which correspond to
          well-known applications.  If the application protocol is
          not listed in the registry, an OID value of the form
          {applTCPProtoID port} or {applUDProtoID port} are used for
          TCP-based and UDP-based protocols, respectively. In either
          case 'port' corresponds to the primary port number being
          used by the protocol."
        ::= {dsaOpsEntry 2}

    dsaAnonymousBinds OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
          " Number of incoming anonymous bind requests from DUAs,
            since application startup."
        ::= {dsaOpsEntry 3}

    dsaUnauthBinds OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
          " Number of un-authenticated bind requests received since
            application startup."
        ::= {dsaOpsEntry 4}

    dsaSimpleAuthBinds OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
          " Number of bind requests that were authenticated
            using simple authentication procedures like password
            checks since application startup. This includes the
            password authentication using SASL mechanisms like
            CRAM-MD5."
        ::= {dsaOpsEntry 5}








Expires: December 7, 1998                                      [Page 12]


Internet Draft                                               May 16 1997


    dsaStrongAuthBinds OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
          " Number of bind requests that were authenticated
            using TLS and X.500 strong authentication procedures since
            application start. This includes the binds that were
            authenticated using external authentication procedures
            since application startup."
        ::= {dsaOpsEntry 6}

    dsaBindSecurityErrors OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
          " Number of bind requests that have been rejected
            due to inappropriate authentication or
            invalid credentials since application startup."
        ::= {dsaOpsEntry 7}

    dsaInOps OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
          " Number of requests received from DUAs or other
            Directory Servers since application startup."
        ::= {dsaOpsEntry 8}

    dsaReadOps OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
          " Number of read requests  received
            since application startup."
        ::= {dsaOpsEntry 9}

    dsaCompareOps OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
          " Number of compare requests received
            since application startup."
        ::= {dsaOpsEntry 10}



Expires: December 7, 1998                                      [Page 13]


Internet Draft                                               May 16 1997


    dsaAddEntryOps OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
          " Number of addEntry requests received
            since application startup."
        ::= {dsaOpsEntry 11}

    dsaRemoveEntryOps OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
          " Number of removeEntry requests received
            since application startup."
        ::= {dsaOpsEntry 12}

    dsaModifyEntryOps OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
          " Number of modifyEntry requests received
            since application startup."
        ::= {dsaOpsEntry 13}

    dsaModifyRDNOps OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
          " Number of modifyRDN requests received
            since application startup."
        ::= {dsaOpsEntry 14}

    dsaListOps OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
          " Number of list requests received
            since application startup."
        ::= {dsaOpsEntry 15}







Expires: December 7, 1998                                      [Page 14]


Internet Draft                                               May 16 1997


    dsaSearchOps OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
          " Number of search requests- baseObject searches,
            oneLevel searches and  whole subtree searches,
            received, since application startup."
        ::= {dsaOpsEntry 16}

    dsaOneLevelSearchOps OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
          " Number of oneLevel search requests received
            Server since application startup."
        ::= {dsaOpsEntry 17}

    dsaWholeSubtreeSearchOps   OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
          " Number of whole subtree search requests received
            since application startup."
        ::= {dsaOpsEntry 18}

    dsaReferrals OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
          " Number of referrals returned in response
            to requests for operations since application startup."
        ::= {dsaOpsEntry 19}

    dsaChainings OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
          " Number of operations forwarded by this Directory Server
            to other Directory Servers since application startup."
        ::= {dsaOpsEntry 20}






Expires: December 7, 1998                                      [Page 15]


Internet Draft                                               May 16 1997


    dsaSecurityErrors OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
          " Number of requests received
            which did not meet the security requirements. "
        ::= {dsaOpsEntry 21}

    dsaErrors  OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
          " Number of requests that could not be serviced
            due to errors other than security errors, and
            referrals.
            A partially serviced operation will not be counted
            as an error.
            The errors include naming-related, update-related,
            attribute-related and service-related errors."
        ::= {dsaOpsEntry 22}

   -- Replication operations

    dsaReplicationUpdatesIn OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
          " Number of replication updates fetched or received from
            supplier Directory Servers since application startup."
        ::= {dsaOpsEntry 23}

    dsaReplicationUpdatesOut OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
          " Number of replication updates sent to or taken by
            consumer Directory Servers since application startup."
        ::= {dsaOpsEntry 24}

    dsaInBytes  OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION



Expires: December 7, 1998                                      [Page 16]


Internet Draft                                               May 16 1997


          " Incoming traffic, in bytes, on the interface.
            This will include requests from DUAs as well
            responses from other Directory Servers."
        ::= {dsaOpsEntry 25}

    dsaOutBytes OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
          " Outgoing traffic in bytes on the interface.
            This will include responses to DUAs and Directory
            Servers as well as requests to other Directory Servers."
        ::= {dsaOpsEntry 26}


    -- The dsaIntTable contains statistical data on the peer
    -- Directory Servers  with which the monitored Directory
    -- Server (attempt to) interact. This  table is expected
    -- to provide a useful insight into the effect of neigh-
    -- bours on the Directory Server's performance.
    -- The table keeps track of the last "N" Directory Servers
    -- with which  the  monitored   Directory  has  interacted
    -- (attempted to interact), where "N" is a locally-defined
    -- constant.

    dsaIntTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF DsaIntEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
          " Each row of this table contains some details
            related to the history of the interaction
            of the monitored Directory Server with its
            peer Directory Servers."
        ::= { dsaMIB 3 }

    dsaIntEntry OBJECT-TYPE
        SYNTAX  DsaIntEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
          " Entry containing interaction details of a Directory
            Server with a peer Directory Server."
        INDEX { applIndex,dsaIntIndex, dsaApplIFProtocolIndex }
        ::= { dsaIntTable 1 }

    DsaIntEntry ::= SEQUENCE {



Expires: December 7, 1998                                      [Page 17]


Internet Draft                                               May 16 1997


       dsaIntIndex
                 INTEGER,
       dsaName
                 DistinguishedName,
       dsaTimeOfCreation
                 TimeStamp,
       dsaTimeOfLastAttempt
                 TimeStamp,
       dsaTimeOfLastSuccess
                 TimeStamp,
       dsaFailuresSinceLastSuccess
                 Counter32,
       dsaFailures
                 Counter32,
       dsaSuccesses
                 Counter32,
       dsaURL
                 URLString
    }

    dsaIntIndex  OBJECT-TYPE
        SYNTAX INTEGER (1..2147483647)
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
          " Together with applIndex it forms the unique key to
            identify the conceptual row which contains useful info
            on the (attempted) interaction between the Directory
            Server (referred to by applIndex) and a peer Directory
            Server."
        ::= {dsaIntEntry 1}

    dsaName  OBJECT-TYPE
        SYNTAX DistinguishedName
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
          " Distinguished Name of the peer Directory Server to
            which this entry pertains."
        ::= {dsaIntEntry 2}

    dsaTimeOfCreation  OBJECT-TYPE
        SYNTAX TimeStamp
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
          " The value of sysUpTime when this row was created.
            If the entry was created before the network management



Expires: December 7, 1998                                      [Page 18]


Internet Draft                                               May 16 1997


            subsystem was initialized, this object will contain
            a value of zero."
        ::= {dsaIntEntry 3}

    dsaTimeOfLastAttempt  OBJECT-TYPE
        SYNTAX TimeStamp
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
          " The value of sysUpTime when the last attempt was made
            to contact the peer Directory Server. If the last attempt
            was made before the network management subsystem was
            initialized, this object will contain a value of zero."
        ::= {dsaIntEntry 4}

    dsaTimeOfLastSuccess  OBJECT-TYPE
        SYNTAX TimeStamp
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
          " The value of sysUpTime when the last attempt made to
            contact the peer Directory Server was successful. If there
            have been no successful attempts this entry will have a value
            of zero. If the last successful attempt was made before
            the network management subsystem was initialized, this
            object will contain a value of zero."
        ::= {dsaIntEntry 5}

    dsaFailuresSinceLastSuccess  OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
          " The number of failures since the last time an
            attempt to contact the peer Directory Server was successful.
            If there has been no successful attempts, this counter
            will contain the number of failures since this entry
            was created."
        ::= {dsaIntEntry 6}












Expires: December 7, 1998                                      [Page 19]


Internet Draft                                               May 16 1997


    dsaFailures  OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
          " Cumulative failures since the creation of
            this entry."
        ::= {dsaIntEntry 7}

    dsaSuccesses  OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
          " Cumulative successes since the creation of
            this entry."
        ::= {dsaIntEntry 8}

    dsaURL  OBJECT-TYPE
        SYNTAX URLString
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
          " URL of the peer Directory Server."
        ::= {dsaIntEntry 9}


























Expires: December 7, 1998                                      [Page 20]


Internet Draft                                               May 16 1997


    -- Conformance information

    dsaConformance OBJECT IDENTIFIER ::= { dsaMIB 4 }

    dsaGroups      OBJECT IDENTIFIER ::= { dsaConformance 1 }
    dsaCompliances OBJECT IDENTIFIER ::= { dsaConformance 2 }

    -- Compliance statements

    dsaEntryCompliance MODULE-COMPLIANCE
        STATUS  current
        DESCRIPTION
                "The compliance statement for SNMPv2 entities
                which implement the DIRECTORY-SERVER-MIB for
                a summary overview of the Directory Servers ."

        MODULE  -- this module
            MANDATORY-GROUPS { dsaEntryGroup }

        ::= { dsaCompliances 1 }

    dsaOpsCompliance MODULE-COMPLIANCE
        STATUS  current
        DESCRIPTION
                "The compliance statement for SNMPv2 entities
                which implement the DIRECTORY-SERVER-MIB for monitoring
                Directory Server operations,  entry statistics and cache
                performance."

        MODULE  -- this module
            MANDATORY-GROUPS { dsaEntryGroup, dsaOpsGroup }

        ::= { dsaCompliances 2 }

    dsaIntCompliance MODULE-COMPLIANCE
        STATUS  current
        DESCRIPTION
                " The compliance statement  for SNMPv2  entities
                  which implement the DIRECTORY-SERVER-MIB for monitoring
                  Directory Server operations and the interaction of the
                  Directory Server with peer Directory Servers."

        MODULE  -- this module
        MANDATORY-GROUPS { dsaEntryGroup, dsaIntGroup }

        ::= { dsaCompliances 3 }

    dsaIntCompliance MODULE-COMPLIANCE



Expires: December 7, 1998                                      [Page 21]


Internet Draft                                               May 16 1997


        STATUS  current
        DESCRIPTION
                " The compliance statement  for SNMPv2  entities
                  which implement the DIRECTORY-SERVER-MIB for monitoring
                  Directory Server operations and the interaction of the
                  Directory Server with peer Directory Servers."

        MODULE  -- this module
        MANDATORY-GROUPS { dsaEntryGroup, dsaOpsGroup, dsaIntGroup }

        ::= { dsaCompliances 4 }








































Expires: December 7, 1998                                      [Page 22]


Internet Draft                                               May 16 1997


    -- Units of conformance

    dsaEntryGroup    OBJECT-GROUP
        OBJECTS {dsaServerType,  dsaServerDescription,   dsaMasterEntries,
                 dsaCopyEntries, dsaCacheEntries,        dsaCacheHits,
                 dsaSlaveHits}
        STATUS  current
        DESCRIPTION
                " A collection of objects for a summary overview of the
                  Directory Servers."
        ::= { dsaGroups 1 }

    dsaOpsGroup    OBJECT-GROUP
        OBJECTS {
          dsaApplIfProtoIndex,  dsaApplIfProtocol,
          dsaAnonymousBinds,  dsaUnauthBinds,       dsaSimpleAuthBinds,
          dsaStrongAuthBinds, dsaBindSecurityErrors,dsaInOps,
          dsaReadOps,         dsaCompareOps,        dsaAddEntryOps,
          dsaRemoveEntryOps,  dsaModifyEntryOps,    dsaModifyRDNOps,
          dsaListOps,         dsaSearchOps,         dsaOneLevelSearchOps,
          dsaWholeSubtreeSearchOps,dsaReferrals,    dsaChainings,
          dsaSecurityErrors,  dsaErrors,            dsaReplicationUpdatesIn
          dsaReplicationUpdatesOut, dsaInBytes,     dsaOutBytes      }
        STATUS  current
        DESCRIPTION
                " A collection of objects for monitoring the Directory
                  Server operations."
        ::= { dsaGroups 2 }

    dsaIntGroup    OBJECT-GROUP
        OBJECTS {
          dsaName,              dsaTimeOfCreation, dsaTimeOfLastAttempt,
          dsaTimeOfLastSuccess, dsaFailuresSinceLastSuccess,dsaFailures,
          dsaSuccesses,         dsaURL}
        STATUS  current
        DESCRIPTION
                " A collection of objects for monitoring the Directory
                  Server's interaction with peer Directory Servers."
        ::= { dsaGroups 3 }


   END

6.  Changes from RFC1567.

     A more general Directory model in which, several Directory
     protocols coexist, has been adopted for the purpose of the MIB
     design. The result is a generic Directory Server Monitoring MIB.



Expires: December 7, 1998                                      [Page 23]


Internet Draft                                               May 16 1997


7.  Acknowledgements

This draft is the product of discussions and deliberations carried out
in the Mail and Directory Management Working Group (ietf-madman-wg).

8.  References

   [1] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "Structure
       of Management Information for version 2 of the Simple Network
       Management Protocol (SNMPv2)", RFC 1902, SNMP Research,Inc.,
       Hughes LAN Systems, Dover Beach Consulting, Inc., Carnegie Mellon
       University, January 1996.

   [2] McCloghrie, K., and M. Rose, Editors, "Management Information
       Base for Network Management of TCP/IP-based internets: MIB-II",
       STD 17, RFC 1213, Hughes LAN Systems, Performance Systems
       International, March 1991.

   [3] Case, J., McCloghrie, K., Rose, M., and S, Waldbusser, "Protocol
       Operations for version 2 of the Simple Network Management
       Protocol (SNMPv2)", RFC 1905, SNMP Research,Inc., Hughes LAN
       Systems, Dover Beach Consulting, Inc., Carnegie Mellon
       University, January 1996.

   [4] Case, J., McCloghrie, K., Rose, M., Waldbusser, S., "Textual
       Conventions for Version 2 of the Simple Network Management Protocol
       (SNMPv2)", RFC 1903, January 1996.

   [5] Case, J., McCloghrie, K., Rose, M., Waldbusser, S., "Conformance
       Statements for Version 2 of the Simple Network Management Protocol
       (SNMPv2)", RFC 1904, January 1996.

   [6] ITU-T Rec. X.501, "The Directory: Models", 1993.

   [7] Wahl, M., Howes, T., and S. Kille, "Lightweight Directory Access
       Protocol (v3)", RFC 2251, December 1997.

   [8] Young, A., "Connection-less Lightweight X.500 Directory
       Access Protocol", RFC 1798, ISODE Consortium, June 1995.

   [9] Freed N. and Kille, S., "Network Services
       Monitoring MIB", RFC 2248, January 1994.

   [10]Grillo, P., and S. Waldbusser, "Host Resources MIB", RFC 1514,
       Network Innovations, Intel Corporation, Carnegie Mellon
       University, September 1993.

   [11]Kille, S., "A String Representation of Distinguished Names"



Expires: December 7, 1998                                      [Page 24]


Internet Draft                                               May 16 1997


       RFC 1779, March 1995.

   [12]Kille, S., Huizer, E., Cerf, V., Hobby, R., and S. Kent, "A
       Strategic Plan for Deploying an Internet X.500 Directory
       Service", RFC 1430, ISODE Consortium, SURFnet bv, Corporation for
       National Research Initiatives, University of California, Davis,
       Bolt, Beranek and Newman, February 1993.

Security Considerations

   This defined MIB provides read-only access to information. Thus it
   cannot be used for active attacks on the system.  However, the
   information itself may partly reveal the configuration of the system
   and passively increase its vulnerability. The information could also
   be used to analyze network usage and traffic patterns.

Authors' Addresses

   Glenn Mansfield
   Cyber Solutions Inc.
   6-6-3 Minami Yoshinari
   Aoba-ku, Sendai 989-3204
   Japan

   Phone: +81-22-303-4012
   EMail: glenn@cysols.com


   Steve E. Kille
   ISODE Ltd.
   The Dome, The Square
   Richmond TW9 1DT
   UK

   Phone: +44-181-332-9091
   EMail: S.Kille@isode.com















Expires: December 7, 1998                                      [Page 25]