[nfsv4] Review of draft-ietf-nfsv4-rfc5667bis-06

David Noveck <davenoveck@gmail.com> Sat, 25 February 2017 12:57 UTC

Return-Path: <davenoveck@gmail.com>
X-Original-To: nfsv4@ietfa.amsl.com
Delivered-To: nfsv4@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id EB578129F03 for <nfsv4@ietfa.amsl.com>; Sat, 25 Feb 2017 04:57:35 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level:
X-Spam-Status: No, score=-1.999 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id gXWexhuNwpfD for <nfsv4@ietfa.amsl.com>; Sat, 25 Feb 2017 04:57:34 -0800 (PST)
Received: from mail-ot0-x22b.google.com (mail-ot0-x22b.google.com [IPv6:2607:f8b0:4003:c0f::22b]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 079FE129EDE for <nfsv4@ietf.org>; Sat, 25 Feb 2017 04:57:34 -0800 (PST)
Received: by mail-ot0-x22b.google.com with SMTP id j38so29464051otb.3 for <nfsv4@ietf.org>; Sat, 25 Feb 2017 04:57:34 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=0DtkY9b5XUeiSDwtMEkp12bpgh5VFLgT9ejl+H4g1RA=; b=DU7fdsQPPIzE8fZ3fk+EFrRaVsW+ZrliinM9Jui7L5fKd7RW7Y68Jgshy701g6x4WS X09jyfdpXVQ6FGjlfuMg3bCLuvaV69Pv4S8BJY+8YM8bvH/ecAuy4Xl5WikxDzG9RcSf kFWk6tZdyTcEiwuUrRHnEnmBtH25Vmu0B3QgI+mhebaZt5lwOJu9Iuumv+SXVwnmMPo0 BljKHWJyYQ/MENcV5MegAkZXDzlDqB86CiGYG7AxKixaiMDi0VwF4Ja8dHtEeabSv+5O hGbXWzJsMWRo5lLiQlTvHYY2X/YVxiqmim2bgQAVvYxXb8KWDWFjnEsuDyOebnSzD43C VN6Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=0DtkY9b5XUeiSDwtMEkp12bpgh5VFLgT9ejl+H4g1RA=; b=amdBrEl3v3GtvCZs693vZ8yFtN+tfuKYFXFcuf0zIFA+zHb10L1V5lqmKVEPU05fY8 lV1Le6pXyIBPzO2uYr1IB25XfPXq0+IxyTYRCIFINHMw+YhbrmLsYdKugtYicv/7cFvW 2FYaOQ94xOY0YtHkSV/j21njT/QjEH/g1U5dj3uBrtm1X+27TG4e/ObjqSPOlbzE/mDT /dZ+A0rcYZ6ONHOhzERqMt1pgTEX3DI6NgsKFbz+R4VJFnW85UnCRWT16kgYGZWe1M2q DiaHFTsyB/vkcnxrFQgEiw0mT0oIF/6OAif9nPjEluMdr7SCXRRMEo+MXygH9+c1V3Wu /Mng==
X-Gm-Message-State: AMke39noe4D+s09LEX+zspO5GTli/YE1XZesWnvFoUdm2YFg9gnWxtSP/8xXDSd4ZNcpr02hPfdc2EIuyXF/6Q==
X-Received: by 10.157.51.73 with SMTP id u9mr4571419otd.252.1488027453170; Sat, 25 Feb 2017 04:57:33 -0800 (PST)
MIME-Version: 1.0
Received: by 10.182.137.200 with HTTP; Sat, 25 Feb 2017 04:57:32 -0800 (PST)
From: David Noveck <davenoveck@gmail.com>
Date: Sat, 25 Feb 2017 07:57:32 -0500
Message-ID: <CADaq8je8zfRN5R11LxJw=0st-u-XOoKosGbZDBajOTiChzpS5Q@mail.gmail.com>
To: Chuck Lever <chuck.lever@oracle.com>, "nfsv4@ietf.org" <nfsv4@ietf.org>
Content-Type: multipart/alternative; boundary="001a113e2428c32a7705495a63d1"
Archived-At: <https://mailarchive.ietf.org/arch/msg/nfsv4/AiIWgC0s4RsjLKY_ZbRq0QCPimY>
Subject: [nfsv4] Review of draft-ietf-nfsv4-rfc5667bis-06
X-BeenThere: nfsv4@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: NFSv4 Working Group <nfsv4.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/nfsv4>, <mailto:nfsv4-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/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>
X-List-Received-Date: Sat, 25 Feb 2017 12:57:36 -0000

*General Comments*

*Overall Evaluation*

This document is in pretty good shape.  Unless other people find additional
issues, I expect that -07 will be ready for WGLC.

*Comments by Section*

*Abstract*

In the second sentence, suggest deleting "Version One" at the end.  As
written, this suggests that ULBs are not or might not be required for
future transport versions.

*1.  Introduction*

The current first paragraph is misplaced.  I think it derives from rfc5667
where this was essentially the only function of ULBs and there were no
explicit ULB requirements.  I suggest replacing this paragraph by the
following two paragraphs but putting this material after the end of the
current material in this section:

The RPC-over-RDMA Version One transport may employ direct data
placement to convey data payloads associated with RPC transactions. To
enable successful interoperation, RPC client and server
implementations must agree as to which XDR data items in what
particular RPC procedures are eligible for direct data placement
(DDP).  Specifying those data items is a major component of a
protocol's Upper Layer Binding.

In addition, Upper Layer Bindings are required to include additional
information to assure that adequate resources are allocated to receive
RPC replies, and for a number of other reasons.

Suggest replacing the first paragraph (currently the second) by the
following to make sure all ULBs in this document are mentioned:

This document contains material required of Upper Layer Bindings, as
specified in [I-D.ietf-nfsv4-rfc5666bis], for the NFS protocol
versions listed below.  In addition, bindings are provided, when
necessary, for auxiliary protocols used together with NFS versions 2
and 3.

*2.  Reply Size Estimation*

The first paragraph as written is clumsy.  Suggest rewriting it as follows:

When using an  RPC-over-RDMA Version One transport, a requester,
during the construction of each RPC Call message, is responsible for
allocating appropriate resources for receiving the corresponding Reply
message.

There are a number of problems with the second paragraph;

   - Other than because of an astonishingly poor implementation, I don't
   see how you can have "An overrun of these resources"  resulting in
   "corruption of the Reply message".
   - The second sentence as written, implies that these horrible
   consequences (corruption or disconnection) are the reason for reply size
   estimation.  In fact, the reason you need a big enough buffer for the reply
   is that if you didn't you couldn't get the generated reply back and that is
   sufficient reason to require reply size estimation.

Suggest rewriting the second paragraph as follows:

When insufficient resources are available, it may be impossible to
provide the reply corresponding to the call. Therefore. reliable reply
size estimation is necessary to ensure successful interoperation.
This is of particular concern, for example, when deciding whether to
allocate a reply Chunk and when deciding on the proper size for a
Reply chunk.

Suggest adding a new bullet, as follows, following the current second:

The client specifies a reply size limit for the particular reply or
operation, as it does by setting the count field of READDIR request.

*2.1. Short Reply Chunk Retry*

A problem with this section as written is that this problem can arise even
if no reply chunk has been allocated. For example if the estimate is 900
bytes, the inline threshold is 1K, and the reply is 1028 bytes.

I don't see the point of the fourth (unbulleted) paragraph. The previous
paragraph and the associated bullets have already given the client two
choices of which he MAY choose one. Given that this is a standards track
document, that is all that is required. The last paragraph in this section
specifies that this technique is limited in scope. I don't see the need for
the editorializing here. Suggest deleting this paragraph.

*3.  Upper Layer Binding for NFS Versions 2 and 3*

The penultimate paragraph in this section is new in this version and I
don't understand the need for a new version 2/3 restriction so late in
the game.  If this is not a new restriction, the intent would be
clearer if it was rewritten as follows:

The structure of the NFS version 2 and  3 protocols and limitations on
DDP-eligible data items given above are such that:


   - It is impossible for a Legacy  NFS client to validly send a
reduced Payload stream in a Long Call.
   - It is impossible for a Legacy  NFS client to validly enable a
Legacy NFS server to send a reduced Payload stream in a Long Reply.

*4.1.  MOUNT, NLM, and NSM Protocols*

The second sentence of the last paragraph reads as follows: "In most
implementations this data item is never larger than 1024 bytes, making
reliable reply size estimation straightforward using the criteria
outlined in Section 2".  It appears that  the qualifying phrase "In
most implementations" has been ignored., leading to an incorrect
conclusion. This section needs to be revised to reflect the fact that
the client has no way to know whether the server is one within the set
of "most implementations" or one outside it.  Even if all existing
implementations acted within this limit, there is no way to prevent
new ones from being generated

*5.2.1.  Reply Size Estimation for Minor Version 0*

With regard to the second sentence of the second paragraph the
introductory phrase  "As discussed in Section 2," is incorrect since
the referenced material does not appear in section 2.

With regard to the first sentence of the last paragraph, WRITE is not
actually non-idempotent.  Better examples would be RENAME or REMOVE.

*5.4.2.  Multiple DDP-eligible Data Items*

With regard to the last sentence of the second paragraph, it is not
clear what within the following material are "additional
restrictions".  I can't see how all of it can so characterized.  This
needs to be clarified.

*5.5.2.  NFS Version 4.1 Callback*

With regard to the second sentence of the first paragraph, it is not
clear which particular "mechanism" within the bidirection document is
being referred to.  Suggest replacing the word by  "mechanisms" or
"approach".

*5.7.1.  Congestion Avoidance*

Given that the section about RFC56661 is referencing a different
document and is about a different protocol, suggest replacing
"further" by "also".