Network Working Group                                         S. Shepler
Internet Draft                                                May 1998
Document: draft-shepler-nfsv4-00.txt



                    Current Status of NFS version 4



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
   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."

   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

   In preparation for the formation of the NFS version 4 IETF working
   group, this draft has been created as a summary of the discussions
   and e-mail (nfsv4-wg@sunroof.eng.sun.com) held since the 1996 San
   Jose NFS version 4 BOF.  This summary is meant as a review for those
   who have been involved in the past exchanges and as an introduction
   for those newcomers who would like a quick summary of this past
   activity.  The other intent of this summary is to point out topics
   which lack significant progress or topics which have not been covered
   and need consideration.  A familiarity with the NFS version 2 and NFS
   version 3 protocols is assumed.











Expires: November 1998                                          [Page 1]


INTERNET-DRAFT       Current Status of NFS version 4            May 1998


Table of Contents

   1.  Working Group Goals and Problem Space . . . . . . . . . . . . 3
   1.1.  Draft Charter for Working Group . . . . . . . . . . . . . . 3
   1.2.  Specific Problems for NFS version 4 . . . . . . . . . . . . 3
   2.  Discussion Summary  . . . . . . . . . . . . . . . . . . . . . 4
   2.1.  Internationalization  . . . . . . . . . . . . . . . . . . . 4
   2.2.  Security  . . . . . . . . . . . . . . . . . . . . . . . . . 4
   2.3.  File/Directory Attributes . . . . . . . . . . . . . . . . . 5
   2.4.  File Name Lookup Methodology  . . . . . . . . . . . . . . . 5
   2.5.  File Locking  . . . . . . . . . . . . . . . . . . . . . . . 6
   2.6.  Cache Coherency . . . . . . . . . . . . . . . . . . . . . . 6
   2.7.  Compound Operations . . . . . . . . . . . . . . . . . . . . 6
   2.8.  Minor Versioning  . . . . . . . . . . . . . . . . . . . . . 7
   2.9.  File Handle Volatility  . . . . . . . . . . . . . . . . . . 7
   2.10.  Structured Files . . . . . . . . . . . . . . . . . . . . . 8
   2.11.  Client Advice for File Access  . . . . . . . . . . . . . . 8
   2.12.  Time Stamps and Synchronization  . . . . . . . . . . . . . 8
   2.13.  Determining Server File Systems  . . . . . . . . . . . . . 9
   3.  Items to be Discussed . . . . . . . . . . . . . . . . . . . . 9
   3.1.  Internet Issues . . . . . . . . . . . . . . . . . . . . . . 9
   3.2.  User Identification (UID/GID mapping) . . . . . . . . . .  10
   3.3.  Proxy Methodology . . . . . . . . . . . . . . . . . . . .  10
   3.4.  Fileset or File Migration . . . . . . . . . . . . . . . .  10
   3.5.  Client Caching or Disconnected Caching Issues . . . . . .  10
   3.6.  ACL definitions . . . . . . . . . . . . . . . . . . . . .  10
   References  . . . . . . . . . . . . . . . . . . . . . . . . . .  11
   Author's Address  . . . . . . . . . . . . . . . . . . . . . . .  12























Expires: November 1998                                          [Page 2]


INTERNET-DRAFT       Current Status of NFS version 4            May 1998


1.  Working Group Goals and Problem Space


1.1.  Draft Charter for Working Group

   The objective of this working group is to advance the state of NFS
   technology by producing a specification for NFS version 4 which will
   also be submitted as an Internet standard. NFS version 4 will
   emphasize the following core features:

   o    Improved access and good performance on the Internet.

        The protocol will be designed to transit firewalls easily,
        perform well where latency is high and bandwidth is low, and
        scale to very large numbers of clients per server.

   o    Strong security with negotiation built into the protocol.

        The protocol will build on the work of the ONCRPC working group
        in supporting the RPCSEC_GSS protocol.  Additionally NFS version
        4 will provide a mechanism to allow clients and servers to
        negotiate security and require clients and servers to support a
        minimal set of security schemes.

   o    Better cross-platform interoperability.

        The protocol will feature a filesystem model that provides a
        useful, common set of features that does not unduly favor one
        filesystem or operating system over another.

   o    Designed for protocol extensions.

        The protocol will be designed to accept standard extensions that
        do not compromise backward compatibility.

   The NFS version 4 protocol will emphasize, but not be limited to
   these core features.  Additional improvements will be considered if
   they are considered reasonable, useful, and do not conflict with the
   core features.

1.2.  Specific Problems for NFS version 4

   The stated goals of the working group cover known problems or
   deficiencies within the current NFS protocols with respect to the
   target operating environment of the Internet.  The following list
   represents some of the issues within NFS version 2 and NFS version 3
   which NFS version 4 should address.




Expires: November 1998                                          [Page 3]


INTERNET-DRAFT       Current Status of NFS version 4            May 1998


   o    Unable to handle non-ASCII filenames.

   o    Assumption of low latency leads to poor performance where
        latency is high.

   o    Cannot browse server's namespace without the Mount protocol.
        Mount protocol stops at the firewall.

   o    No file locking.  Companion lock manager protocol will not scale
        to Internet use and stops at the firewall.

   o    Supports only POSIX file attributes.  No provision for other
        attribute types.

   o    Unable to negotiate the security flavor.

   o    Unable to utilize proxy server.


2.  Discussion Summary

   The following sections represent topics or protocol areas which have
   been discussed previously.  Each section is a summary and is not
   meant to be comprehensive coverage.

2.1.  Internationalization

   For all character set encodings which are used in the protocol, the
   use of the UTF-8 encoding of the Unicode standard (ISO/IEC 10646)
   will be used.  The UTF-8 encoding would be used for all pathnames,
   hostnames, usernames, URLs or other protocol members which are passed
   over the wire as character strings.  This proposal resulted in little
   or no comment and therefore it is not clear if this proposal has
   consensus.

2.2.  Security

   As stated in the goals of the NFS version 4 working group, the ONCRPC
   [RFC1831] protocol will be used with the addition of the RPCSEC_GSS
   [RFC2203] security flavor.

   The security topic needs expansion in the areas of available and
   proposed mechanisms for various operating environments.  These NFS
   environments include traditional administrative domains, two
   individuals wanting to securely share data, and any Internet user in
   between.





Expires: November 1998                                          [Page 4]


INTERNET-DRAFT       Current Status of NFS version 4            May 1998


2.3.  File/Directory Attributes

   There has been substantial discussion of file attributes from many
   different aspects.  There was the general classification of the
   attributes into basic and extended categories.  Continuing with
   observations of current NFS server behavior, it was noted that
   because of the lack of support in certain operating environments the
   server, out of necessity, was led to fabricate attributes values.
   Because of this lack of support for all attribute values,
   classification of attributes into mandatory and optional attributes
   was suggested.  Mandatory attributes would be the smallest set needed
   by an NFS client to provide reasonable file system service at the
   client.  Suggestions were made for which attributes would be
   classified as mandatory; however, final agreement was not reached.

   Access Control Lists (ACLs) for file system objects (files or
   directories) were classified as an extended attribute.  Based on
   current operating environment support, most people involved seemed to
   agree that ACLs were worth including in the protocol.  See section
   4.6 for further topic requirements.

   Because of the various operating environments and their requirements
   for attribute values, it was generally agreed upon that the client
   would receive only those attributes values for which it generated
   requests.  The belief is that this behavior can lead to a reduction
   in the amount of data exchanged and reduce processing overhead for
   both client and server.

2.4.  File Name Lookup Methodology

   Two major issues arose which deal with the NFS server's ability to
   match or look up names within the file system name space.  The first
   was case sensitivity and the second was file name globbing.  Both of
   the issues are complicated by the inclusion or use of the Unicode
   standard.

   One example for case sensitivity is with the client's operating
   environment.  Given a server with case sensitive file name lookups
   and a client operating environment which is case insensitive, the
   client may need to generate multiple procedure calls to the server to
   ensure the correct behavior.  The client can either generate multiple
   lookup requests or read the directory in full and match locally based
   on its semantics.  The protocol could specify the server's support
   for case sensitive/insensitive lookups and the client would then
   specify its requirements based on its environment.  As previously
   mentioned, the use of Unicode complicates the server's behavior
   because of varying character set usage at client and server.




Expires: November 1998                                          [Page 5]


INTERNET-DRAFT       Current Status of NFS version 4            May 1998


   File name globbing is the other area where the use of Unicode
   complicates the specification and implementation.  File name globbing
   has the added complexity of a non-uniform behavior with respect to
   regular expressions.  Not all client environments treat regular
   expressions or file name construction in the same manner.

   One suggestion is to push the specific behavior back to the client
   implementation.  The client knows its operating environment as it
   applies to character sets, regular expressions and file name
   construction.  Some of the multiple RPC issues of case insensitivity
   could be addressed with the use of compound operations (see section
   3.7).  In any case, not enough discourse was completed in this area
   to reach consensus.

2.5.  File Locking

   The issues of file locking and cache coherency have been intertwined
   in previous discussions.  For file locking, there seems to be
   agreement that file locking functionality should be included in the
   NFS version 4 protocol definition; currently, file locking is managed
   by an adjunct protocol.  However, specifics of what the locking
   protocol will look like and what problems it will solve have been
   missing.  Further definition of existing file locking protocols and
   how NFS version 4 will support a reasonable strategy for an Internet
   file system need to be put forth.

2.6.  Cache Coherency

   One of the first summaries proposed that NFS version 4 not deal with
   the issue of strict cache coherency.  Even with this suggestion,
   there was considerable discussion about the locking mechanisms in
   various file systems and what they provided to the client
   implementation for both The CIFS oplock mechanisms were discussed as
   well as the Spritely NFS work.

2.7.  Compound Operations

   A method of combining individual operations into a single request has
   been proposed as a compound operation.  As proposed, a small set of
   procedures will be defined for NFS version 4.  One of these
   procedures will be primitive and glue operations defined.  These
   operations can be used by the client to generate the desired behavior
   based on the client's needs.  For full details of the proposal see:
   http://playground.Sun.COM/pub/nfsv4/nfsv4-wg-archive/0065.html.

   As the proposal states, the intent behind compound operations is to
   address the following issues: network latency, traffic reduction,
   bandwidth efficiency, protocol complexity reduction and flexibility



Expires: November 1998                                          [Page 6]


INTERNET-DRAFT       Current Status of NFS version 4            May 1998


   for client implementations.

   This proposal seems to be one end of the compound operation spectrum.
   Discussion was limited on the contents of the proposal.  To further
   understand the implications of this type of approach issues such as
   performance, serviceability and implementation difficulty, etc. need
   to be addressed.

2.8.  Minor Versioning

   As stated in the goals of the working group, the inclusion of a
   methodology to make the protocol expandable or easily upgradeable is
   a desirable feature.  Even with the existence of this goal, minor
   versioning for the protocol has been a contentious topic.

   As an example, had minor versioning existed in NFS Version 2, an
   standard extension to provide asynchronous writes would likely have
   been implemented.  Again, as stated in the working group goals, the
   expandability needs to be done in a way as to preserve the current
   protocol functionality and semantics to meet backward compatibility
   requirements.  It has been proposed that expansion would be provided
   through additional procedure calls in the NFS version 4 program.
   Expansion can also come in the form of defining previously reserved
   bit fields in existing procedure calls that will lead to additional
   or modified procedure semantics.

   One of the main arguments for this type of capability in the protocol
   is to provide updated/corrected functionality in a timely manner and
   with the minimum of impact to the end user and administrator.

2.9.  File Handle Volatility

   The current NFS protocols require the server to return file handles
   to the client which are persistent.  This persistence must survive
   server outages.  For some platforms, this requirement has been
   difficult or impossible to meet because of the lack of support in the
   underlying file system.  The existence of persistent file handles in
   the NFS protocol eases the implementation issues of the NFS client.
   However, NFS client implementations do exist that have removed the
   absolute requirement for persistent file handles.  These NFS clients
   track the association of file handle and file or directory name.  The
   existence of file name allows the NFS client the ability to recover
   from server failures.

   Removing the persistent file handle requirement provides the
   capability for easing and correcting server implementations of NFS
   version 4 while maintaining the clients capability of surviving
   server outages or reboots.  It has been suggested the protocol



Expires: November 1998                                          [Page 7]


INTERNET-DRAFT       Current Status of NFS version 4            May 1998


   provide a mechanism for the server to provide notification to the
   client of the existence of volatile file handles.

2.10.  Structured Files

   A lengthy discussion has occurred around the issues of providing
   structured file support.  This discussion actually presented or
   combined two disparate pieces of functionality.  The first semantic
   dealt with the traditional definition of structured file support
   (i.e. indexed files) as opposed to the traditional Unix file
   definition (i.e. byte stream).  The second semantic introduced was
   the definition of an extended file attribute which could be used to
   identify the file type or associated application for the file.  The
   most relevant example would be the use of MIME typing.

   The support of the traditional structured file was not seen as a
   requirement of the new protocol.  The scope of the problem and the
   lack of a clear definition of what the structure should be did not
   present itself as a desirable issue to resolve.  The idea of an
   extended attribute for file type definition was not as quickly
   dismissed and discussion on this topic should continue in the context
   of support for extended attributes.

2.11.  Client Advice for File Access

   The client's knowledge of current or future application file access
   patterns could be provided to the server.  Heuristically the client
   operating environment may be able to recognize a sequential file
   access pattern of an application.  If the client informs the server
   of this, the server could take actions to provide improved service to
   the client and application.  This knowledge extension could also be
   more explicit at the client; for example, a multimedia application
   with very specific access patterns and bandwidth requirements.  This
   information could be transfered to the server through the use of
   client specific APIs then to the NFS implementation at the client and
   then to the server via the NFS protocol.  Another example involves
   the client's knowledge of its network connection (i.e. modem); the
   client could provide the server with this knowledge and allow it to
   avoid over allocation or appropriate allocation of server resource.

   Definition of specific requirements along with overall implications
   of this type of support need to be brought forth.  For example,
   whether this information is advisory or mandatory should be
   determined along with the associated implications.

2.12.  Time Stamps and Synchronization

   Two issues involving time have been raised.  First was the size



Expires: November 1998                                          [Page 8]


INTERNET-DRAFT       Current Status of NFS version 4            May 1998


   increase of the time fields within the protocol definition and the
   second was the potential need of client/server time synchronization
   for correctness of any lease-based mechanisms employed by the
   protocol.

   With a signed 32 bit quantity representing time in seconds from an
   epoch of January 1, 1970, the time quantity will expire in the year
   2038.  The suggestion has been made that this limitation should be
   addressed by introducing a larger time field.  The most
   straightforward suggestion was to increase the time fields in the
   protocol to a full 64 bits.  Pushing the epoch of a 64 bit time
   quantity before the 1/1/1970 date was suggested as well.

   Lease-based locking mechanisms have been suggested and it was
   observed that the Spritely NFS lease-based mechanism seemed to
   require synchronized clocks between client and server.  Upon closer
   inspection it was suggested that other underlying mechanisms could be
   employed to avoid this requirement.  The idea of synchronized clocks
   in an Internet-based file system was daunting.  If a lease-based
   mechanism is considered further, the specifics of time
   synchronization requirements and replacement technologies need to be
   fully understood.

2.13.  Determining Server File Systems

   A mechanism to replace the traditional adjunct mount protocol has
   been suggested in the form of a new procedure (SHAREINFO).  SHAREINFO
   would provide a list of available file systems to the caller.  This
   procedure would be similar in nature to a READDIR request except it
   would need to provide additional information about appropriate
   security mechanisms required for access to the server's file systems.

3.  Items to be Discussed

   Even though productive dialog has occurred, the results of the
   discussions have not addressed all needed areas of investigation for
   a successful building of an NFS version 4.  In the following sections
   some of these additional issues or areas of investigation have been
   enumerated.

3.1.  Internet Issues

   The goals of the working group specifically state the desire to
   provide an Internet-capable protocol.  However, there has been little
   specific discussion or proposals surrounding these issues.  This area
   needs to be expanded upon at least in identification of proposed
   features and how these features can serve an Internet environment.




Expires: November 1998                                          [Page 9]


INTERNET-DRAFT       Current Status of NFS version 4            May 1998


3.2.  User Identification (UID/GID mapping)

   User identification issues have been raised.  Suggested solutions to
   the problem of mapping different user naming schemes beyond an
   administrative domain have relied on the underlying security
   mechanism and its method of user identification.  This area needs
   further development with respect to specific solutions and how users
   without the environment for security support will access available
   data.

3.3.  Proxy Methodology

   File service proxying seems like a logical extension for the support
   of Internet functionality.  The environment of operation and
   implications for performance, security and scalability have not been
   addressed.  This is an area where other proxying techniques may lend
   themselves as useful input to the choice to incorporate specific
   features into the protocol for NFS proxy functionality.

3.4.  Fileset or File Migration

   Scalable, manageable NFS servers seem to be a logical inclusion for a
   new protocol.  Management of the server's file systems has not been
   addressed.  Applicable protocol features that can help facilitate
   file system management of an NFS version 4 server have not been
   investigated.

3.5.  Client Caching or Disconnected Caching Issues

   NFS clients have always cached file data in some form.  In recent
   implementations the caching of data has been more aggressive with the
   use of client disk caches dedicated to NFS directory and file data.
   Providing for disconnected operation in the protocol may lead to ease
   of use in an Internet environment where connection cost or
   reliability are issues.  Dealing with disconnected issues within the
   protocol may be useful for the target environments.

3.6.  ACL definitions

   Although access control lists have been mentioned in the context of
   extended attributes, a definition of an NFS version 4 ACL has not
   been brought forth for discussion.  The major issue revolves around
   the ability for the protocol's ACLs to incorporate the semantics of
   various existing ACL definitions and operating environments.







Expires: November 1998                                         [Page 10]


INTERNET-DRAFT       Current Status of NFS version 4            May 1998


References


   [NFSV4HYP]"NFS version 4 Hypermail archive for nfsv4-
             wg@sunroof.eng.sun.com"
             http://playground.sun.com/pub/nfsv4/nfsv4-wg-archive

   [RFC1094] Sun Microsystems, Inc. (1989). "NFS: Network File System
             Protocol specification," RFC 1094.
             http://info.internet.isi.edu/in-notes/rfc/files/rfc1094.txt

   [RFC1813] Callaghan, B., Pawlowski, B., Staubach, P. (1995). "NFS
             Version 3 Protocol Specification," RFC 1813.
             http://info.internet.isi.edu/in-notes/rfc/files/rfc1813.txt

   [RFC1831] Srinivasan, R. (1995). "RPC: Remote Procedure Call Protocol
             Specification Version 2," RFC 1831.
             http://info.internet.isi.edu/in-notes/rfc/files/rfc1831.txt

   [RFC1832] Srinivasan, R. (1995). "XDR: External Data Representation
             Standard," RFC 1832.
             http://info.internet.isi.edu/in-notes/rfc/files/rfc1832.txt

   [Pawlowski]
             Pawlowski, B., Juszczak, C., Staubach, P., Smith, C.,
             Lebel, D., Hitz, D. (1994). "NFS Version 3 Design and
             Implementations," Proceedings of the 1994 USENIX Technical
             Conference.

   [RFC2203] Eisler, M., Chiu, A., Ling L. (1997). "RPCSEC_GSS Protocol
             Specification," RFC 2203.
             http://info.internet.isi.edu/in-notes/rfc/files/rfc2203.txt

   [RFC2078] Linn, J. (1997). "Generic Security Service Application
             Program Interface, Version 2," RFC 2078.
             http://info.internet.isi.edu/in-notes/rfc/files/rfc2078.txt

   [RFC1057] Sun Microsystems, Inc. "RPC: Remote Procedure Call Protocol
             Specification Version 2," RFC 1057.
             http://info.internet.isi.edu/in-notes/rfc/files/rfc1057.txt

   [Callaghan]
             Callaghan, B., Singh, S. (1993). "The Autofs Automounter,"
             Proceedings of the 1993 Summer USENIX Technical Conference.

   [RFC2054] Callaghan, B. (1996). "WebNFS Client Specification," RFC
             2054.
             http://info.internet.isi.edu/in-notes/rfc/files/rfc2054.txt



Expires: November 1998                                         [Page 11]


INTERNET-DRAFT       Current Status of NFS version 4            May 1998


   [RFC2055] Callaghan, B. (1996). "WebNFS Server Specification," RFC
             2054.
             http://info.internet.isi.edu/in-notes/rfc/files/rfc2055.txt

   [RFC2224] Callaghan, B. (1996). "NFS URL Scheme," RFC 2054.
             http://info.internet.isi.edu/in-notes/rfc/files/rfc2224.txt

Author's Address

   Address comments related to this memorandum to:

        nfsv4-wg@sunroof.eng.sun.com

   Spencer Shepler
   Sun Microsystems, Inc.
   7808 Moonflower Drive
   Austin, Texas 78750

   Phone: 1-512-349-9376
   E-mail: shepler@eng.sun.com































Expires: November 1998                                         [Page 12]