Network Working Group                                          V. Rangan
INTERNET-DRAFT                                    Rhapsody Networks Inc.
                                                           February 2001


              NFS version 4 MIB for Server Implementations
                    draft-rangan-nfsv4-mib-00.txt 


Status of this Memo

   This document is an Internet-Draft and is in full conformance with
   all provisions of Section 10 of RFC 2026 [1].

   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 and may be updated, replaced, or obsoleted by other
   documents at any time. It is inappropriate to use Internet-Drafts as
   Reference material or to cite them other than as ``work in
   progress''.

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/lid-abstracts.txt

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html

1. Abstract This memo defines an experimental portion of the Management
   Information Base (MIB) for use with network management protocols in
   the Internet Community.  In particular, it defines objects used for
   the management of NFS version 4 Protocol (NFSv4) implementations.

1.1 Copyright Notice

   Copyright (C) The Internet Society (2001).  All Rights Reserved.


   The SNMP Management Framework presently consists of five major
   components:  An overall architecture, described in RFC 2571
   [RFC2571].  Mechanisms for describing and naming objects and events
   for the purpose of management.  The first version of this Structure
   of Management Information (SMI) is called SMIv1 and described in STD
   16, RFC 1155 [RFC1155], STD 16, RFC 1212 [RFC1212] and RFC 1215
   [RFC1215].  The second version, called SMIv2, is described in STD 58,
   RFC 2578 [RFC2578], STD 58, RFC 2579 [RFC2579] and STD 58, RFC 2580
   [RFC2580].  Message protocols for transferring management
   information.  The first version of the SNMP message protocol is



Rangan, et al.                                                  [Page 1]

Internet-Draft             NFS version 4 MIB               February 2001


   called SNMPv1 and described in STD 15, RFC 1157 [RFC1157].  A second
   version of the SNMP message protocol, which is not an Internet
   standards track protocol, is called SNMPv2c and described in RFC 1901
   [RFC1901] and RFC 1906 [RFC1906].  The third version of the message
   protocol is called SNMPv3 and described in RFC 1906 [RFC1906], RFC
   2572 [RFC2572] and RFC 2574 [RFC2574].  Protocol operations for
   accessing management information.  The first set of protocol
   operations and associated PDU formats is described in STD 15, RFC
   1157 [RFC1157].  A second set of protocol operations and associated
   PDU formats is described in RFC 1905 [RFC1905].  A set of fundamental
   applications described in RFC 2573 [RFC2573] and the view-based
   access control mechanism described in RFC 2575 [RFC2575].

   A more detailed introduction to the current SNMP Management Framework
   can be found in RFC 2570 [RFC2570].

   Managed objects are accessed via a virtual information store, termed
   the Management Information Base or MIB.  Objects in the MIB are
   defined using the mechanisms defined in the SMI.

   This memo specifies a MIB module that is compliant to the SMIv2.  A
   MIB conforming to the SMIv1 can be produced through the appropriate
   translations.  The resulting translated MIB must be semantically
   equivalent, except where objects or events are omitted because no
   translation is possible (use of Counter64).  Some machine readable
   information in SMIv2 will be converted into textual descriptions in
   SMIv1 during the translation process.  However, this loss of machine
   readable information is not considered to change the semantics of the
   MIB.


4. Discussion

The reader of this MIB is assumed to be familiar with the NFS version 4
protocol, as defined in [RFC3010].  In the tradition of the Simple
Network Management Protocol (SNMP) this MIB defines the minimum number
of objects necessary for providing as rich a set of management
information. Thus, this MIB provides a set of objects from which other
management information may be derived.  Additionally, this MIB structure
is intended to satisfy fault, configuration, performance, accounting,
and security management for an NFS version 4 server implementation.
There may be a need for providing a MIB for the client side
implementation of the protocol, as well as intermediaries such as a file
cache. This will be covered in a future MIB definition.

It is currently structured around objects such as clients, filesystems
and operations in the context of a filesystem.  Note that while it may
be possible to provide information at the granularity of a file, that



Rangan, et al.                                                  [Page 2]

Internet-Draft             NFS version 4 MIB               February 2001


would potentially increase the amount of information that would have to
be collected.

The root of the objects in this MIB is the nfsv4mgmt object.  Below this
object, the following tables exist.

serverTable lists all server instances that the SNMP agent provides
objects for.

fsTable lists all root-level filesystem instances known.  This table
contains an entry for each fs_root pathname that this server would
present in a fs_locations attribute.

fsLockTable lists all locks and information related to locks, on a per
file system basis.

Each object contains a fairly standard list of statistics.  Some would
appear to be redundant, and could be computed from lower-level objects.
However, some of the objects are transient (clients, and even
filesystems), so we felt that duplicating them was not too high of a
price for the availability of good information.

There are no doubt still some important statistics and other information
still missing; the authors would welcome any comments. One area where
there could be quite a bit of value is in tracking the RPC layer as
well.

5.  MIB Definitions

nfsV4-MIB DEFINITIONS  ::= BEGIN

IMPORTS
      MODULE-IDENTITY, OBJECT-IDENTITY, OBJECT-TYPE, Unsigned32,
      IpAddress, Counter32, Counter64,
      experimental
-- mib-2
               FROM SNMPv2-SMI
           TEXTUAL-CONVENTION, RowStatus, DisplayString, TruthValue,
           DateAndTime
               FROM SNMPv2-TC
           InterfaceIndex
               FROM IF-MIB
           MODULE-COMPLIANCE, OBJECT-GROUP --   MODULE-COMPLIANCE,
        OBJECT-GROUP, NOTIFICATION-GROUP
               FROM SNMPv2-CONF
           ;

nfsv4Module MODULE-IDENTITY



Rangan, et al.                                                  [Page 3]

Internet-Draft             NFS version 4 MIB               February 2001


                LAST-UPDATED                "0002280001Z" -- Feb. 28, 2001
                ORGANIZATION                "NFS v4 Working Group"
                CONTACT-INFO
                       "
                        Venkat Rangan

                        Postal: Rhapsody Networks, Inc
                                3450 West Warrent Av.
                                Fremont, CA
                                USA 94859

                        Tel: +1 510-743-3000
                        Fax: +1 510-743-3001

                        E-mail: venkat@rhapsodynetworks.com"

                DESCRIPTION
                        "First version of MIB for NFS v4 Server implementationss"
        ::= { experimental 1 }

-- We need to get an experimental number for this MIB.
            nfsv4Objects OBJECT-IDENTITY
               STATUS                         current
               DESCRIPTION
                  "NFSv4 MIB objects are all defined in this branch."
               ::= { nfsv4Module 1 }

            nfsv4ServerObjects OBJECT-IDENTITY
               STATUS                         current
               DESCRIPTION
                  "NFSv4 MIB objects available at the Server implementation
                                  are all defined in this branch."
               ::= { nfsv4Objects 1 }

            nfsv4ClientObjects OBJECT-IDENTITY
               STATUS                         current
               DESCRIPTION
                  "NFSv4 MIB objects available at the Client implementation
                                  are all defined in this branch."
               ::= { nfsv4Objects 2 }

            nfsv4Notifications OBJECT-IDENTITY
               STATUS                         current
               DESCRIPTION
                  "NFSv4 MIB objects for providing traps and notifications."
               ::= { nfsv4Objects 3 }

            nfsv4Conformance OBJECT-IDENTITY



Rangan, et al.                                                  [Page 4]

Internet-Draft             NFS version 4 MIB               February 2001


               STATUS                         current
               DESCRIPTION
                  "NFSv4 MIB objects for describing conformance."
               ::= { nfsv4Objects 4 }

-- Textual Conventions

FsStateId ::= TEXTUAL-CONVENTION
        DISPLAY-HINT    "255a"
        STATUS          current
        DESCRIPTION
                        "Opaque State ID."
        SYNTAX          OCTET STRING (SIZE(0..8))

FsClientId ::= TEXTUAL-CONVENTION
        DISPLAY-HINT "255a"
        STATUS          current
        DESCRIPTION
                        "Opaque Client handle."
        SYNTAX          OCTET STRING (SIZE(0..8))

FsFileHandle ::= TEXTUAL-CONVENTION
        DISPLAY-HINT "255a"
        STATUS          current
        DESCRIPTION
                        "Corresponds to the filehandle conventions."
        SYNTAX          OCTET STRING (SIZE(0..128))

-- Object Definitions
serverCount  OBJECT-TYPE
        SYNTAX                       Unsigned32
        MAX-ACCESS                   read-only
        STATUS                       current
        DESCRIPTION
            "The number of server instances exported by the server.
            In a multi-homed server implementation, each interface
            could export a server."
::= { nfsv4ServerObjects 1 }

--
-- we define an overall server table that descibes all the servers
-- that are exported through this SNMP agent. In most cases, there is
-- a single SNMP agent that services SNMP MIB requests for a multi-server,
-- multi-homed system.
serverTable OBJECT-TYPE
    SYNTAX                       SEQUENCE OF ServerEntry
    MAX-ACCESS                   not-accessible
    STATUS                       current



Rangan, et al.                                                  [Page 5]

Internet-Draft             NFS version 4 MIB               February 2001


    DESCRIPTION
        "This table describes overall objects and counters for
        each server that is exported."
::= { nfsv4ServerObjects 2 }

serverEntry OBJECT-TYPE
    SYNTAX                       ServerEntry
    MAX-ACCESS                   not-accessible
    STATUS                       current
    DESCRIPTION
        "This describes each entry of the server table. This table
        is indexed by the serverIndex object."
    INDEX                        { serverIndex }
::= { serverTable 1 }

-- the errors and counters maintained are per-server, regardless of
-- filesystems. in most cases, these error counters are updated
-- whenever the server replies with the particular error to the client.
-- in some cases however, the server generates an error on its own, without
-- a client request tirggering the error
ServerEntry ::= SEQUENCE {
        serverIndex             Unsigned32,
        serverName              DisplayString,
        serverDescription       DisplayString,
        numFs                   Counter32,
        numClients              Counter32,
        nfsOkOps                Counter32,
        accessErrs              Counter32,
        badHandleErrs           Counter32,
        badTypeErrs             Counter32,
        badCookieErrs           Counter32,
        badSeqIdErrs            Counter32,
        badStateIdErrs          Counter32,
        clidInuseErrs           Counter32,
        delayErrs               Counter32,
        deniedErrs              Counter32,
        dquotErrs               Counter32,
        existsErrs              Counter32,
        expiredErrs             Counter32,
        fBigErrs                Counter32,
        fhExpiredErrs           Counter32,
        graceErrs               Counter32,
        invalErrs               Counter32,
        ioErrs                  Counter32,
        isDirErrs               Counter32,
        leaseMovedErrs          Counter32,
        lockedErrs              Counter32,
        lockRangeErrs           Counter32,



Rangan, et al.                                                  [Page 6]

Internet-Draft             NFS version 4 MIB               February 2001


        verMisMatchErrs         Counter32,
        numLinkErrs             Counter32,
        movedErrs               Counter32,
        nameTooLongErrs         Counter32,
        noDevErrs               Counter32,
        noEntErrs               Counter32,
        noFileHandleErrs        Counter32,
        noSpaceErrs             Counter32,
        notDirErrs              Counter32,
        notEmptyErrs            Counter32,
        notSuppErrs             Counter32,
        notSameErrs             Counter32,
        nxIoErrs                Counter32,
        oldStateIdErrs          Counter32,
        permErrs                Counter32,
        readDirNoSpcErrs        Counter32,
        resourceErrs            Counter32,
        roFsErrs                Counter32,
        sameErrs                Counter32,
        serverFaultErrs         Counter32,
        shareDeniedErrs         Counter32,
        staleErrs               Counter32,
        staleClientIdErrs       Counter32,
        staleStateIdErrs        Counter32,
        symlinkErrs             Counter32,
        wrongSecErrs            Counter32,
        xDevErrs                Counter32
}

serverIndex OBJECT-TYPE
     SYNTAX Unsigned32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "This is an index into the server table."
::= { serverEntry 1 }

serverName OBJECT-TYPE
     SYNTAX DisplayString
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "This is a name for the server, typically in the
        same form as reported by the fs_location attribute."
::= { serverEntry 2 }

serverDescription OBJECT-TYPE
     SYNTAX DisplayString



Rangan, et al.                                                  [Page 7]

Internet-Draft             NFS version 4 MIB               February 2001


     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "Descriptive text for the server."
::= { serverEntry 3 }

numFs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "Number of non-pseudo filesystems exported by this server."
::= { serverEntry 4 }

numClients OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "Number of clients that have accessed this server. In order
        to minimize impact in counting this, the server may count the
        times the server issued a ClientId, regardless of whether the
        same ClientId was issued previously."
::= { serverEntry 5 }

nfsOkOps OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "Counts the number of operations that completed successfully."
::= { serverEntry 6 }

accessErrs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "Permission denied errors. The client does not have the
         correct permission to perform the requested."
::= { serverEntry 8 }

badHandleErrs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "Illegal NFS file handle errors."



Rangan, et al.                                                  [Page 8]

Internet-Draft             NFS version 4 MIB               February 2001


::= { serverEntry 9 }

badTypeErrs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "Number of times an attempt was made to create an
        object of a type not supported by the server."
::= { serverEntry 10 }

badCookieErrs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "number of times READDIR cookie is stale."
::= { serverEntry 11 }

badSeqIdErrs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "The number of times sequence number in a locking request is
        neither the next expected number or the last
        number processed."
::= { serverEntry 12 }

badStateIdErrs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "The number of times StateId was not consistant with current
        server instance."
::= { serverEntry 13 }

clidInuseErrs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "The number of times Client Id requested was already in use by
        another client."
::= { serverEntry 14 }

delayErrs OBJECT-TYPE



Rangan, et al.                                                  [Page 9]

Internet-Draft             NFS version 4 MIB               February 2001


     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "The number of times server returned the NFS4ERR_DELAY."
::= { serverEntry 15 }

deniedErrs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "The number of times the server denied an attempt to lock a file."
::= { serverEntry 16 }

dquotErrs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "Number of times Quota exceeded errors were generated."
::= { serverEntry 17 }

existsErrs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "File exists errors."
::= { serverEntry 18 }

expiredErrs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "The number of times lease has expired while processing a request."
::= { serverEntry 19 }

fBigErrs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "The number of File too large errors."
::= { serverEntry 20 }

fhExpiredErrs OBJECT-TYPE



Rangan, et al.                                                 [Page 10]

Internet-Draft             NFS version 4 MIB               February 2001


     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "The number of times a volatile file handle provided in the client
        request has already expired at the server."
::= { serverEntry 21 }

graceErrs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "The number of requests that came in which could not be serviced because
        the server is in its grace period."
::= { serverEntry 22 }

invalErrs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "The number of times an invalid argument was received."
::= { serverEntry 23 }

ioErrs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "The number of I/O errors encountered by the server."
::= { serverEntry 24 }

isDirErrs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "The number of times the caller specified a
        directory in a non-directory operation."
::= { serverEntry 25 }

leaseMovedErrs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "The number of times a lease being renewed is associated with a file



Rangan, et al.                                                 [Page 11]

Internet-Draft             NFS version 4 MIB               February 2001


        system that has been migrated to a new server."
::= { serverEntry 26 }

lockedErrs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "The number of times a read or write operation was attempted on a
        locked file."
::= { serverEntry 27 }

lockRangeErrs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "The number of times a lock request is operating on a sub-range of a
        current lock for the lock owner and the server does not support this
        type of request."
::= { serverEntry 28 }

verMisMatchErrs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "The number of times the server has received a request that
        specifies an unsupported minor version.  The server must return
        a COMPOUND4res with a zero length operations result array."
::= { serverEntry 29 }

numLinkErrs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "Count of Too many hard links errors"
::= { serverEntry 30 }

movedErrs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "The number of times a request came for a filehandle that
        was migrated to another server."
::= { serverEntry 31 }



Rangan, et al.                                                 [Page 12]

Internet-Draft             NFS version 4 MIB               February 2001


nameTooLongErrs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "The number of times the filename in an operation was too long."
::= { serverEntry 32 }

noDevErrs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "The number of times No such device error was reported."
::= { serverEntry 33 }

noEntErrs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "The number of times the file or directory name specified does
        not exist."
::= { serverEntry 34 }

noFileHandleErrs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "The number of times NFS4ERR_NOFILEHANDLE was returned."
::= { serverEntry 35 }

noSpaceErrs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "The number of times the space on server's filesystem would have
         exceeded."
::= { serverEntry 36 }

notDirErrs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "The number of times a directory operation was attempted on a



Rangan, et al.                                                 [Page 13]

Internet-Draft             NFS version 4 MIB               February 2001


        non-directory object."
::= { serverEntry 37 }

notEmptyErrs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "The number of times an attempt was made to remove a directory that
        was not empty."
::= { serverEntry 38 }

notSuppErrs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "The number of times an unsupported operation was attempted."
::= { serverEntry 39 }

notSameErrs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "The number of times the attributes were not same as provided to
        client."
::= { serverEntry 40 }

nxIoErrs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "The number of times a No such device or address error was issued."
::= { serverEntry 41 }

oldStateIdErrs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "The number of times a stateid was used which was issued in an
        earlier instance."
::= { serverEntry 42 }

permErrs OBJECT-TYPE
     SYNTAX Counter32



Rangan, et al.                                                 [Page 14]

Internet-Draft             NFS version 4 MIB               February 2001


     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "The number of times a privileged user operation was attempted by a
        non-provileged user."
::= { serverEntry 43 }

readDirNoSpcErrs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "The number of times a READDIR response could not be delivered due
        to space being exceeded."
::= { serverEntry 44 }

resourceErrs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "The number of times resource exceeded error occured while processing
        a COMPOUND procedure."
::= { serverEntry 45 }

roFsErrs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "The number of times a modifying operation was issued on a Read-only
        file system."
::= { serverEntry 46 }

sameErrs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "The number of times NFS4ERR_SAME was issued."
::= { serverEntry 47 }

serverFaultErrs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "The number of times an error outside an NFS v4 protocol error



Rangan, et al.                                                 [Page 15]

Internet-Draft             NFS version 4 MIB               February 2001


        occurred."
::= { serverEntry 48 }

shareDeniedErrs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "The number of times OPEN failed because of share conflict."
::= { serverEntry 49 }

staleErrs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "The number of times an invalid file handle was sent on a request."
::= { serverEntry 50 }

staleClientIdErrs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "The number of times a client id was issued in a request, which could
        not be identified by the server."
::= { serverEntry 51 }

staleStateIdErrs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "The number of times a client used a stateid from an earlier server
        instance."
::= { serverEntry 52 }

symlinkErrs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "The number of times LOOKUP and OPEN of a path refers to a symbolic
        link."
::= { serverEntry 53 }

wrongSecErrs OBJECT-TYPE
     SYNTAX Counter32



Rangan, et al.                                                 [Page 16]

Internet-Draft             NFS version 4 MIB               February 2001


     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "The number of times wrong security mechanism was used."
::= { serverEntry 54 }

xDevErrs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "The number of times a cross-device hard link was attempted."
::= { serverEntry 55 }

--
-- the number of non-pseudo file systems that are exported by this
-- server.
fsCount  OBJECT-TYPE
     SYNTAX                       Unsigned32
     MAX-ACCESS                   read-only
     STATUS                       current
     DESCRIPTION
        "The number of file system instances exported by the server.
        In a multi-homed server implementation, each interface
        could export a server."
::= { nfsv4ServerObjects 3 }

--
-- the file system table that descibes all the root-level file systems
-- that are that are visible through this SNMP agent. In most cases, there is
-- a single SNMP agent that services SNMP MIB requests for all file systems
-- exported by that server.
fsTable OBJECT-TYPE
     SYNTAX                       SEQUENCE OF FsEntry
     MAX-ACCESS                   not-accessible
     STATUS                       current
     DESCRIPTION
        "This table describes overall objects and counters for
        each file system that is exported."
::= { nfsv4ServerObjects 4 }

fsEntry OBJECT-TYPE
     SYNTAX                       FsEntry
     MAX-ACCESS                   not-accessible
     STATUS                       current
     DESCRIPTION
         "This describes each entry of the file system table. This table
        is indexed by the fsIndex object."



Rangan, et al.                                                 [Page 17]

Internet-Draft             NFS version 4 MIB               February 2001


     INDEX                        { fsIndex }
::= { fsTable 1 }

FsEntry ::= SEQUENCE {
        fsIndex                 Unsigned32,
        fsPath                  DisplayString,
        numPersistFh            Counter32,
        numVolatileFh           Counter32,
        numStateId              Counter32,
        accessCheckReqs         Counter32,
        closeReqs               Counter32,
        commitReqs              Counter32,
        createReqs              Counter32,
        delegPurgeReqs          Counter32,
        delegReturnReqs         Counter32,
        getAttrReqs             Counter32,
        getFhReqs               Counter32,
        createLinkReqs          Counter32,
        lockReqs                Counter32,
        testLockReqs            Counter32,
        unlockReqs              Counter32,
        lookupReqs              Counter32,
        lookupParentReqs        Counter32,
        nverifyReqs             Counter32,
        openReqs                Counter32,
        openAttrReqs            Counter32,
        openConfirmReqs         Counter32,
        openDowngradeReqs       Counter32,
        putFhReqs               Counter32,
        putPubFhReqs            Counter32,
        readReqs                Counter32,
        readDirReqs             Counter32,
        readLinkReqs            Counter32,
        removeReqs              Counter32,
        renameReqs              Counter32,
        renewReqs               Counter32,
        restoreFhReqs           Counter32,
        saveFhReqs              Counter32,
        secInfoReqs             Counter32,
        setAttrReqs             Counter32,
        setClientIdReqs         Counter32,
        setClientIdConfirmReqs  Counter32,
        verifyReqs              Counter32,
        writeReqs               Counter32,
        cbGetAttrReqs           Counter32,
        cbRecallReqs            Counter32
}




Rangan, et al.                                                 [Page 18]

Internet-Draft             NFS version 4 MIB               February 2001


fsIndex OBJECT-TYPE
     SYNTAX Unsigned32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "This is an index into the file system table."
::= { fsEntry 1 }

fsPath OBJECT-TYPE
     SYNTAX DisplayString
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "This is a path to the file system, exported by the server and
        corresponds to the fs_root object of the fs_locations attribute."
::= { fsEntry 2 }

numPersistFh OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "Number of persistent file handles that have been created."
::= { fsEntry 3 }

numVolatileFh OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "Number of volatile file handles that have been created."
::= { fsEntry 4 }

numStateId OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "Number of locks (stateIds) on file handles that have been created."
::= { fsEntry 5 }

accessCheckReqs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "Number of access check requests processed."
::= { fsEntry 6 }



Rangan, et al.                                                 [Page 19]

Internet-Draft             NFS version 4 MIB               February 2001


closeReqs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "Number of close requests processed."
::= { fsEntry 7 }

commitReqs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "Number of commit requests processed."
::= { fsEntry 8 }

createReqs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "Number of create requests processed."
::= { fsEntry 9 }

delegPurgeReqs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "Number of purge delegations requests processed."
::= { fsEntry 10 }

delegReturnReqs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "Number of return delegations that have been created."
::= { fsEntry 11 }

getAttrReqs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "Number of get attribute requests that have been processed."
::= { fsEntry 12 }




Rangan, et al.                                                 [Page 20]

Internet-Draft             NFS version 4 MIB               February 2001


getFhReqs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "Number of get file handle requests that have been processed."
::= { fsEntry 13 }

createLinkReqs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "Number of create link requests that have been processed."
::= { fsEntry 14 }

lockReqs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "Number of lock requests that have been processed."
::= { fsEntry 15 }

testLockReqs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "Number of test lock requests that have been processed."
::= { fsEntry 16 }

unlockReqs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "Number of unlock requests that have been processed."
::= { fsEntry 17 }

lookupReqs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "Number of lookup requests that have been processed."
::= { fsEntry 18 }




Rangan, et al.                                                 [Page 21]

Internet-Draft             NFS version 4 MIB               February 2001


lookupParentReqs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "Number of lookup parent requests that have been processed."
::= { fsEntry 19 }

nverifyReqs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "Number of Verify Different Attribute requests that have been processed."
::= { fsEntry 20 }

openReqs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "Number of open requests that have been processed."
::= { fsEntry 21 }

openAttrReqs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "Number of open attribute requests that have been processed."
::= { fsEntry 22 }

openConfirmReqs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "Number of open confirm requests that have been processed."
::= { fsEntry 23 }

openDowngradeReqs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "Number of open downgrade requests that have been processed."
::= { fsEntry 24 }




Rangan, et al.                                                 [Page 22]

Internet-Draft             NFS version 4 MIB               February 2001


putFhReqs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "Number of Set Current Filehandle requests that have been processed."
::= { fsEntry 25 }

putPubFhReqs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "Number of Set Public Filehandle requests that have been processed."
::= { fsEntry 26 }

readReqs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "Number of Read requests that have been processed."
::= { fsEntry 27 }

readDirReqs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "Number of Read Directory requests that have been processed."
::= { fsEntry 28 }

readLinkReqs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "Number of Read Symbolic Link requests that have been processed."
::= { fsEntry 29 }

removeReqs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "Number of Remove Object requests that have been processed."
::= { fsEntry 30 }




Rangan, et al.                                                 [Page 23]

Internet-Draft             NFS version 4 MIB               February 2001


renameReqs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "Number of Rename Directory Entry requests that have been processed."
::= { fsEntry 31 }

renewReqs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "Number of Renew Lease requests that have been processed."
::= { fsEntry 32 }

restoreFhReqs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "Number of Restore Saved Filehandle requests that have been processed."
::= { fsEntry 33 }

saveFhReqs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "Number of Save Current Filehandle requests that have been processed."
::= { fsEntry 34 }

secInfoReqs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "Number of Obtain Available Security requests that have been processed."
::= { fsEntry 35 }

setAttrReqs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "Number of Set Attribute requests that have been processed."
::= { fsEntry 36 }




Rangan, et al.                                                 [Page 24]

Internet-Draft             NFS version 4 MIB               February 2001


setClientIdReqs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "Number of Set ClientId requests that have been processed."
::= { fsEntry 37 }

setClientIdConfirmReqs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "Number of Confirm ClientId requests that have been processed."
::= { fsEntry 38 }

verifyReqs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "Number of Verify Same Attribute requests that have been processed."
::= { fsEntry 39 }

writeReqs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "Number of Write requests that have been processed."
::= { fsEntry 40 }

cbGetAttrReqs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "Number of Get Attribute callbacks that have been issued by the server."
::= { fsEntry 41 }

cbRecallReqs OBJECT-TYPE
     SYNTAX Counter32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "Number of times server issued a callback to recall a delegation."
::= { fsEntry 42 }




Rangan, et al.                                                 [Page 25]

Internet-Draft             NFS version 4 MIB               February 2001


--
-- the file system lock table describes the locks currently
-- held by clients, per the view of the stateid in the server.
-- it is available per file system.
fsLockTable OBJECT-TYPE
    SYNTAX                       SEQUENCE OF FsLockEntry
    MAX-ACCESS                   not-accessible
    STATUS                       current
    DESCRIPTION
        "This table describes objects and counters for
        each lock owned by the server in a specific file system."
::= { nfsv4ServerObjects 5 }

fsLockEntry OBJECT-TYPE
    SYNTAX                       FsLockEntry
    MAX-ACCESS                   not-accessible
    STATUS                       current
    DESCRIPTION
        "This describes each entry of the file lock table. This table
        is indexed by the fsLockIndex object as well as the file system Index."
    INDEX                        { lockFsIndex, lockIndex }
::= { fsLockTable 1 }

FsLockEntry ::= SEQUENCE {
        lockFsIndex             Unsigned32,
        lockIndex               Unsigned32,
        stateId                 FsStateId,
        clientId                FsClientId,
        lockFh                  FsFileHandle,
        lockOffset              Unsigned32,
        lockLength              Unsigned32,
        accessTime              Counter32
}

lockFsIndex OBJECT-TYPE
     SYNTAX Unsigned32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "This is an index into the file system table, within which
        the locked filehandle resides."
::= { fsLockEntry 1 }

lockIndex OBJECT-TYPE
     SYNTAX Unsigned32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION



Rangan, et al.                                                 [Page 26]

Internet-Draft             NFS version 4 MIB               February 2001


        "This is an index into the lock table."
::= { fsLockEntry 2 }

stateId OBJECT-TYPE
     SYNTAX FsStateId
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "This is a stateId identifying the lock."
::= { fsLockEntry 3 }

clientId OBJECT-TYPE
     SYNTAX FsClientId
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "This is the clientId that created this lock."
::= { fsLockEntry 4 }

lockFh OBJECT-TYPE
     SYNTAX FsFileHandle
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "This is the file handle on which the lock is applied."
::= { fsLockEntry 5 }

lockOffset OBJECT-TYPE
     SYNTAX Unsigned32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "This is the offset in file for the byte-range locking."
::= { fsLockEntry 6 }

lockLength OBJECT-TYPE
     SYNTAX Unsigned32
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
        "This is the length of the byte-range that has been locked."
::= { fsLockEntry 7 }

accessTime OBJECT-TYPE
     SYNTAX DateAndTime
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION



Rangan, et al.                                                 [Page 27]

Internet-Draft             NFS version 4 MIB               February 2001


        "The date and time that the last valid access occured to the
        file handle and range that was locked."
::= { fsLockEntry 8 }

END














































Rangan, et al.                                                 [Page 28]

Internet-Draft             NFS version 4 MIB               February 2001


5. References

[RFC3010]       Shepler, S., Callaghan, B., Robinson, D., Thurlow, R.,
                Beame, C., Eisler, M., Noveck, D.NFS version 4 Protocol,
                RFC 3010, December 2000.

[RFC2571]       Harrington, D., Presuhn, R., and B. Wijnen, An
                Architecture for Describing SNMP Management Frameworks,
                RFC 2571, April 1999.

[RFC1155]       Rose, M., and K. McCloghrie, Structure and
                Identification of Management Information for TCP/IP-
                based Internets, STD 16, RFC 1155, May 1990.

[RFC1212]       Rose, M., and K. McCloghrie, Concise MIB Definitions,
                STD 16, RFC 1212, March 1991.

[RFC1215]       M. Rose, A Convention for Defining Traps for use with
                the SNMP, RFC 1215, March 1991.

[RFC2578]       McCloghrie, K., Perkins, D., Schoenwaelder, J., Case,
                J., Rose, M., and S. Waldbusser, Structure of Management
                Information Version 2 (SMIv2), STD 58, RFC 2578, April
                1999.

[RFC2579]       McCloghrie, K., Perkins, D., Schoenwaelder, J., Case,
                J., Rose, M., and S. Waldbusser, Textual Conventions for
                SMIv2, STD 58, RFC 2579, April 1999.

[RFC2580]       McCloghrie, K., Perkins, D., Schoenwaelder, J., Case,
                J., Rose, M., and S. Waldbusser, Conformance Statements
                for SMIv2, STD 58, RFC 2580, April 1999.

[RFC1157]       Case, J., Fedor, M., Schoffstall, M., and J. Davin,
                Simple Network Management Protocol, STD 15, RFC 1157,
                May 1990.

[RFC1901]       Case, J., McCloghrie, K., Rose, M., and S. Waldbusser,
                Introduction to Community-based SNMPv2, RFC 1901,
                January 1996.

[RFC1906]       Case, J., McCloghrie, K., Rose, M., and S. Waldbusser,
                Transport Mappings for Version 2 of the Simple Network
                Management Protocol (SNMPv2), RFC 1906, January 1996.

[RFC2572]       Case, J., Harrington D., Presuhn R., and B. Wijnen,
                Message Processing and Dispatching for the Simple
                Network Management Protocol (SNMP), RFC 2572, April



Rangan, et al.                                                 [Page 29]

Internet-Draft             NFS version 4 MIB               February 2001


                1999.

[RFC2574]       Blumenthal, U., and B. Wijnen, User-based Security Model
                (USM) for version 3 of the Simple Network Management
                Protocol (SNMPv3), RFC 2574, April 1999.

[RFC1905]       Case, J., McCloghrie, K., Rose, M., and S. Waldbusser,
                Protocol Operations for Version 2 of the Simple Network
                Management Protocol (SNMPv2), RFC 1905, January 1996.

[RFC2573]       Levi, D., Meyer, P., and B. Stewart, SNMPv3
                Applications, RFC 2573, April 1999.

[RFC2575]       Wijnen, B., Presuhn, R., and K. McCloghrie, View-based
                Access Control Model (VACM) for the Simple Network
                Management Protocol (SNMP), RFC 2575, April 1999.

[RFC2570]       Case, J., Mundy, R., Partain, D., and B. Stewart,
                Introduction to Version 3 of the Internet-standard
                Network Management Framework, RFC 2570, April 1999.































Rangan, et al.                                                 [Page 30]