[nfsv4] AD review: draft-ietf-nfsv4-minorversion1-24

ext Lars Eggert <lars.eggert@nokia.com> Thu, 14 August 2008 01:40 UTC

Return-Path: <nfsv4-bounces@ietf.org>
X-Original-To: nfsv4-archive@megatron.ietf.org
Delivered-To: ietfarch-nfsv4-archive@core3.amsl.com
Received: from [127.0.0.1] (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id E723F28C196; Wed, 13 Aug 2008 18:40:07 -0700 (PDT)
X-Original-To: nfsv4@core3.amsl.com
Delivered-To: nfsv4@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 0D80428C1A4 for <nfsv4@core3.amsl.com>; Wed, 13 Aug 2008 18:40:07 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.17
X-Spam-Level:
X-Spam-Status: No, score=-5.17 tagged_above=-999 required=5 tests=[AWL=-1.238, BAYES_00=-2.599, J_CHICKENPOX_23=0.6, RCVD_IN_DNSWL_MED=-4, RCVD_NUMERIC_HELO=2.067]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id r93pd62F-QNV for <nfsv4@core3.amsl.com>; Wed, 13 Aug 2008 18:40:05 -0700 (PDT)
Received: from mgw-mx09.nokia.com (smtp.nokia.com [192.100.105.134]) by core3.amsl.com (Postfix) with ESMTP id 2F77C28C165 for <nfsv4@ietf.org>; Wed, 13 Aug 2008 18:40:05 -0700 (PDT)
Received: from vaebh105.NOE.Nokia.com (vaebh105.europe.nokia.com [10.160.244.31]) by mgw-mx09.nokia.com (Switch-3.2.6/Switch-3.2.6) with ESMTP id m7E1e6hx005361 for <nfsv4@ietf.org>; Wed, 13 Aug 2008 20:40:07 -0500
Received: from vaebh102.NOE.Nokia.com ([10.160.244.23]) by vaebh105.NOE.Nokia.com with Microsoft SMTPSVC(6.0.3790.3959); Thu, 14 Aug 2008 04:40:01 +0300
Received: from esebh102.NOE.Nokia.com ([172.21.138.183]) by vaebh102.NOE.Nokia.com with Microsoft SMTPSVC(6.0.3790.3959); Thu, 14 Aug 2008 04:39:48 +0300
Received: from 189.2.223.10.in-addr.arpa ([10.241.184.208]) by esebh102.NOE.Nokia.com over TLS secured channel with Microsoft SMTPSVC(6.0.3790.3959); Thu, 14 Aug 2008 04:39:47 +0300
Message-Id: <557AD23D-432E-45D5-B0E0-AB90A312415B@nokia.com>
From: ext Lars Eggert <lars.eggert@nokia.com>
To: NFSv4 <nfsv4@ietf.org>
Mime-Version: 1.0 (Apple Message framework v926)
Date: Wed, 13 Aug 2008 18:39:44 -0700
X-Mailer: Apple Mail (2.926)
X-OriginalArrivalTime: 14 Aug 2008 01:39:48.0656 (UTC) FILETIME=[A356A300:01C8FDAE]
X-Nokia-AV: Clean
Subject: [nfsv4] AD review: draft-ietf-nfsv4-minorversion1-24
X-BeenThere: nfsv4@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: NFSv4 Working Group <nfsv4.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/nfsv4>, <mailto:nfsv4-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/pipermail/nfsv4>
List-Post: <mailto:nfsv4@ietf.org>
List-Help: <mailto:nfsv4-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/nfsv4>, <mailto:nfsv4-request@ietf.org?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"; DelSp="yes"
Sender: nfsv4-bounces@ietf.org
Errors-To: nfsv4-bounces@ietf.org

This was an extremely readable and clear document - it's obvious that  
the WG has spent a lot of time honing the text. Thanks!

I'm under no illusions about being able to review the specific  
technical details of the NFSv4.1 protocol itself. This will be up to  
the expert reviewers assigned by the IESG. What I can say after  
reading the document is that it does give a very readable overview of  
the different components of NFS, which did allow a non-expert such as  
myself understand much more of the architecture and mechanisms in the  
later sections than I had hoped. Nice job. I believe this is very  
close to being ready for publication.

I have a few comments on various sections and a list of editorial  
nits. The most important comments are likely those related to the IANA  
considerations section - I do believe we need another quick revision  
that rephrases the desired IANA actions in a way that follows the  
guidelines in RFC5226. Doing this now will remove ambiguities and the  
potential for misunderstandings that could draw out approval of the  
document at a later stage, when IANA would need to ask for  
clarifications.

Note to the chairs: I still haven't received the publication request  
(incl. document writeup) for this document and the dot-x draft.

--------------------------------------------------------------------------
COMMENTS
--------------------------------------------------------------------------


Section 1.6.3.2., paragraph 1:
 > The NFSv4.1 protocol has a rich and extensible attribute structure,
 > which is divided into REQUIRED, RECOMMENDED, and named attributes.

   The rest of this section talks about RECOMMENDED and named  
attributes,
   but not REQUIRED ones. Should a sentence be added about what these
   are?


Section 2.2.1.1.1.1., paragraph 3:
 > NFSv4.1 client and servers MUST support RPCSEC_GSS's integrity and
 > authentication service.  NFSv4.1 servers MUST support RPCSEC_GSS's
 > privacy service.

   So there is no requirement or at least a recommendation for clients  
to
   implement the privacy service? We should discuss this with the
   security folks - my impression was that privacy needs to be a
   MUST-implement-need-not-use feature. (But I may be wrong.)


Section 2.7., paragraph 2:
 > The base assumption with respect to minor versioning is that any
 > future accepted minor version must follow the IETF process and be
 > documented in a standards track RFC.  Therefore, each minor version
 > number will correspond to an RFC.

   This procedure means that the NFSv4 WG will continue to produce
   "monolithic" RFCs that specify an entire minor version in one
   document. I'd like to at least allow (maybe even recommend) that an
   NFS minor version may be described in a set of interrelated RFCs.


Section 2.9.1., paragraph 7:
 > It is permissible for a connectionless transport to be used under
 > NFSv4.1, however reliable and in-order delivery of data by the
 > connectionless transport is REQUIRED.

   I'd like to require (or at the very least recommend) that congestion
   control be used with connectionless transports, too.


Section 2.10.3.1., paragraph 0:
 > 2.10.3.1.  Association of Connections, Channels, and Sessions

   Although its implicitly clear that one channel can be associated with
   more than one transport connection of the same type, the section  
never
   explicitly says so. Suggest to add a short sentence on that.


Section 2.10.4., paragraph 1:
 > Trunking is the use of multiple connections between a client and
 > server in order to increase the speed of data transfer.  NFSv4.1
 > supports two types of trunking: session trunking and client ID
 > trunking.  NFSv4.1 servers MUST support trunking.

   Must support both types of trunking?


Section 2.10.6.2., paragraph 1:
 > RDMA connections are managed within
 > these limits as described in section 3.3 ("Flow Control"[[Comment.2:
 > RFC Editor: please verify section and title of the RPCRDMA
 > document]])

   The RFC Editor isn't able to locate the correct reference; you need  
to
   do that.


Section 3.3.9., paragraph 0:
 > 3.3.9.  netaddr4

   Does anything in this section change now that we have
   draft-ietf-nfsv4-rpc-netid? Should this new document be cited
   somewhere?


Section 3.3.9., paragraph 2:
 > The netaddr4 data type is used to identify TCP/IP based endpoints.
 > The r_netid and r_addr fields are specified in RFC1833 [26], but they
 > are underspecified in RFC1833 [26] as far as what they should look
 > like for specific protocols.  The next section clarifies this.

   This sounds like this document should update RFC1833?


Section 3.3.9.1., paragraph 3:
 > For example, if a host, in big-endian order, has an address
 > of 0x0A010307 and there is a service listening on, in big endian
 > order, port 0x020F (decimal 527), then the complete universal address
 > is "10.1.3.7.2.15".

   You should use an IP address ouf of the RFC3330 "example" address
   range here. Also, please use a private port number (>49152) for this
   example.


Section 3.3.9.1., paragraph 4:
 > For TCP over IPv4 the value of r_netid is the string "tcp".  For UDP
 > over IPv4 the value of r_netid is the string "udp".

   What about SCTP?


Section 5.8.2.15., paragraph 1:
 > True, if the file is considered hidden with respect to the Windows
 > API.

   Is this really a Windows-only attribute? No other OS has this? If so,
   does it make sense to REQUIRE it? (Same comment aplies to "system".)


Section 8.7., paragraph 2:
 > To take propagation delay into account, the client should subtract it
 > from lease times (e.g. if the client estimates the one-way
 > propagation delay as 200 milliseconds, then it can assume that the
 > lease is already 200 milliseconds old when it gets it).  In addition,
 > it will take another 200 milliseconds to get a response back to the
 > server.  So the client must send a lease renewal or write data back
 > to the server at least 400 milliseconds before the lease would
 > expire.

   I'd encourage an even more conservative approach. For example, with
   mobile hosts, the network delay when the lease is granted may be
   significantly different (longer) when a lease is up for renewal.
   (Think mobile clients that acquired a lease while on the corporate
   network that then move to a WIFI or 3G VPN connection.)


Section 9., paragraph 1:
 > To support Win32 share reservations it is necessary to provide
 > operations which atomically open or create files.  Having a separate
 > share/unshare operation would not allow correct implementation of the
 > Win32 OpenFile API.  In order to correctly implement share semantics,
 > the previous NFS protocol mechanisms used when a file is opened or
 > created (LOOKUP, CREATE, ACCESS) need to be replaced.  The NFSv4.1
 > protocol defines an OPEN operation which is capable of atomically
 > looking up, creating, and locking a file on the server.

   Is this really only Windows? I thought Unix (at least BSD) had  
similar
   flags for open(), i.e., O_CREAT|O_EXCL|O_EXLOCK.


Section 12.9., paragraph 4:
 > Where communication with storage devices is subject to the same
 > threats as client to metadata server communication, the protocols
 > used for that communication need to provide security mechanisms as
 > strong as or no weaker than those available via RPSEC_GSS for
 > NFSv4.1.

   Where would these security mechanisms for the various storage
   protocols be specified? Is the intent here to require that there'd be
   a new RFC that describes how a new storage protocol integrates into
   pNFS? (Also, nit: s/RPSEC_GSS/RPCSEC_GSS/)


Section 22., paragraph 0:
 > 22.  IANA Considerations

   This section requires some work. Keep in mind that IANA will (mostly)
   only look at the subsections here to create new registries, i.e., all
   information needed by IANA to do so needs to be included here.
   Currently, that's not the case at least for some registries.


Section 22.1., paragraph 0:
 > 22.1.  Named Attribute Definitions

   I don't think this section has all the information IANA needs to
   create, populate and maintain this registry. Please see RFC5226, esp.
   Section 4. Specifically, it's not clear what fields this registry
   would have, exactly what the initial allocations are, and it would be
   good to use one of the well-known allocations policies from RFC5226
   (if suitable).


Section 22.2., paragraph 8:
 > Note: the '"' marks are used for delimiting the strings for this
 > document and are not part of the Network Identifier string.

   I think you can just drop the quotes and this note, or do you think
   there is a danger that folks will include the whitespace in the
   strings?


Section 22.2., paragraph 11:
 > As mentioned, the registration of new Network Identifiers will
 > require the publication of an RFC with similar detail as listed above
 > for the Network Identifier itself and corresponding Universal
 > Address.

   This subsection is more in line with what RFC5226 suggests for a
   registry definition. I'd still recommend to use one of the well-known
   allocation policies though.


Section 22.3., paragraph 0:
 > 22.3.  Defining New Notifications

   It's unclear what the IANA considerations are - is a new registry
   being defined here?


Section 22.4., paragraph 2:
 > The author of a new pNFS layout specification must follow these steps
 > to obtain acceptance of the layout type as a standard:

   Steps 3-5 are basically the "Standards Action" policy as defined by
   RFC5226.


Section 22.5.1., paragraph 2:
 > For the variable names ${ietf.org:CPU_ARCH} and ${ietf.org:OS_TYPE},
 > IANA will have to create a registry of values to be used for that
 > variable.  Applications for such values must contain the variable
 > name, the proposed value of that variable, and a brief (one or two
 > paragraphs) explanation of what is indicated by that specific value.
 > Such requests should be reviewed by nfsv4@ietf.org and a Designated
 > Expert.

   What exactly are the fields of this registry and what is its name?
   What are the initial entries?


Section 22.5.2., paragraph 2:
 > Applications for the addition of variables to this registry should
 > contain the name of the variable and a brief (one or a few
 > paragraphs) explanation of the purpose of the variable.  No review of
 > these applications by IANA is necessary.

   i.e., RFC5226's "First Come First Served" policy


--------------------------------------------------------------------------
EDITORIAL NITS
--------------------------------------------------------------------------

   Note: Most comments marked as nits below have been automatically
   flagged by review scripts - there may be some false positives in
   there.


Section 1.5., paragraph 8:
 >    requests from connnections with the same client owner as coming

   Nit: s/connnections/connections/


Section 1.5., paragraph 15:
 >    each connection might be associatable with the same session.

   Nit: s/associatable/associable/


Section 2.3., paragraph 4:
 > which the server makes an RPC directed at the client.  Callback RPC's

   Nit: s/RPC's/RPCs/


Section 2.6.3.1.2., paragraph 3:
 > MUST NOT NFS4ERR_WRONGSEC in that situation.  Instead the server MUST

   Nit: s/MUST NOT NFS4ERR_WRONGSEC/MUST NOT return NFS4ERR_WRONGSEC/


Section 2.9.1., paragraph 1:
 > NFSv4.1 works over RDMA and non-RDMA_based transports with the

   Nit: s/non-RDMA_based/non-RDMA-based/


Section 2.10.2.1., paragraph 3:
 >     and the reply's structure is:

   Nit: s/reply's/reply/


Section 2.10.5.1., paragraph 7:
 >    retries of requests that are stll in progress.

   Nit: s/stll/still/


Section 2.10.5.1., paragraph 16:
 > and sequence ID.  Furhermore, since the XID is only 32 bits, it is

   Nit: s/Furhermore,/Furthermore,/


Section 4.2.3., paragraph 9:
 > require special care as regards handling of RENAMESs and REMOVEs.

   Nit: s/RENAMESs/RENAMEs/


Section 5.8.1.12., paragraph 1:
 > Error returned from getattr during readdir.

   Nit: s/getattr during readdir/GETATTR during READDIR/ (?)


Section 5.8.1.13., paragraph 1:
 > The filehandle of this object (primarily for readdir requests).

   Nit: s/readdir/READDIR/ (?)


Section 6.2.1.3.2., paragraph 5:
 > This allows servers to support something close to traditional unix-

   Nit: s/unix-/Unix-/


Section 6.4.1., paragraph 1:
 > error to be given is NFS4ERR_ATTRNOTSUP.

   Nit: s/NFS4ERR_ATTRNOTSUP./NFS4ERR_ATTRNOTSUPP./


Section 6.4.3.2., paragraph 7:
 > descendents.

   Nit: s/descendents./descendants./


Section 10.2., paragraph 17:
 > to conflicting requests or respond to them with NFSERR_DELAY.

   Nit: s/NFSERR_DELAY/NFS4ERR_DELAY/


Section 10.2.1., paragraph 16:
 > errors NFS4EER_EXPIRED, NFS4ERR_ADMIN_REVOKED, or

   Nit: s/NFS4EER_EXPIRED,/NFS4ERR_EXPIRED,/


Section 11.7.5.1., paragraph 2:
 > mapping all of the fsids for the descendent file systems to the

   Nit: s/descendent/descendant/


Section 12.9., paragraph 2:
 > device(s)) and/or a decision to forego use of pNFS (e.g., and fall

   Nit: s/forego/forgo/


Section 18.30.4., paragraph 2:
 > the end of the file.  Servers are free to implement this using
 > unallocate bytes (holes) or allocated data bytes set to zero.

   Nit: s/unallocate/unallocated/


Section 18.34.3., paragraph 2:
 > the connnection with the session specified in SEQUENCE.

   Nit: s/connnection/connection/


Section 18.43.4., paragraph 13:
 > the client gets results from LAYTOUTGET, then there is no longer a

   Nit: s/LAYTOUTGET,/LAYOUTGET,/


Section 18.46.3., paragraph 16:
 >    consequence of there being no working backchanel and the client

   Nit: s/backchanel/backchannel/


Section 18.49.3., paragraph 19:
 > that are not writeable.  This includes file objects of types: NF4BLK,

   Nit: s/writeable./writable./


Section 20.5.4., paragraph 2:
 > When a client returns a status other than NFS4_OK, NFSERR_DELAY, or

   Nit: s/NFSERR_DELAY/NFS4ERR_DELAY/



_______________________________________________
nfsv4 mailing list
nfsv4@ietf.org
https://www.ietf.org/mailman/listinfo/nfsv4