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

David Noveck <davenoveck@gmail.com> Tue, 28 February 2017 02:09 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 373AD12948F for <nfsv4@ietfa.amsl.com>; Mon, 27 Feb 2017 18:09:19 -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 zZFWQQiIWsi7 for <nfsv4@ietfa.amsl.com>; Mon, 27 Feb 2017 18:09:17 -0800 (PST)
Received: from mail-ot0-x234.google.com (mail-ot0-x234.google.com [IPv6:2607:f8b0:4003:c0f::234]) (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 7EA6612947E for <nfsv4@ietf.org>; Mon, 27 Feb 2017 18:09:17 -0800 (PST)
Received: by mail-ot0-x234.google.com with SMTP id i1so23971777ota.3 for <nfsv4@ietf.org>; Mon, 27 Feb 2017 18:09:17 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=bAbWON49QMVbFr4ITuEQEqHxeQcGR9FcZ8JX1O0c8GE=; b=KVFizVRlNs/WuByuxm6sNkwWSTMmQkk9tBgohKNHBX0vPmkuexxMnzAWDaUvQeIc+c QIfMkiiZ3pYHX+fGJl/qq+CMndow02XDhNZwjnqX5R4uaRBJvfONVob2ldvQR95kuqLD B3tE6VAqcEeykxNEJPcVLJ8wL9EeH3kv5ZMGiQmp+82uVLjwJPHV9LBXXlQkzGZlaEdH 1beJvwXbcLF6mYlQdNv14jAW5BILKJiCcnfIuAy8Z1liCalu+vyi/9j0q65BjKeivU0N wDuGBWIPAxRnnUN2l1114mocJf+sjhzr6B+njQ5liNd+JusM6NBVKFmz1noz41h1H8k0 TWjQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=bAbWON49QMVbFr4ITuEQEqHxeQcGR9FcZ8JX1O0c8GE=; b=cuG13SoSuJ51fnXEulqvky76PQoaOI/hZ2TWYjWhWxwL3Y0yaC7SBR2RfePzHTzTgy oE6syK58/FodQCuo7MPVI9oEkO018M26gv1F8nzH2HrwhSg0/QeDEfl+/GjASuLwinsW 3717TmcM1aaOfOQVFPmHQM5Ko6rcHingSdWk2bXoT4nvAxEx1Dw55B/u08zYgn7Y/6Dj jQrxkx/IG35oReUPW2s2K7n1AdqmFyEaeVMeSakwRq5QTmJdxsAtngMk7bjBTFEuBIsh Yk7dzJp1swgxNfBhQk4kqFC0onGNKz9igoVTr/kUVVLAMIzWlkubbsQQIjiE44Q2r195 BCFQ==
X-Gm-Message-State: AMke39mrHRwkgxARBrsnelnWIa2PVZTUQIhRUeAuzoFkkdmK5qKXq9IDAsfaoyozvIae0BlNuNKv808has4+tA==
X-Received: by 10.157.51.73 with SMTP id u9mr11479786otd.252.1488247756738; Mon, 27 Feb 2017 18:09:16 -0800 (PST)
MIME-Version: 1.0
Received: by 10.182.137.200 with HTTP; Mon, 27 Feb 2017 18:09:16 -0800 (PST)
In-Reply-To: <CADaq8jf5zU0y=v4gaUxVd4scQQwyAEcgWtp11Ddcn=U4jB17pA@mail.gmail.com>
References: <CADaq8je8zfRN5R11LxJw=0st-u-XOoKosGbZDBajOTiChzpS5Q@mail.gmail.com> <93F476D6-57F8-44AB-94C9-545608396F51@oracle.com> <CADaq8jcJ3WkpmPJVVec5aJc0ekKgdHPUok=S5_ofGVJnbqrrjA@mail.gmail.com> <5538FD5E-A71B-4F91-AC3A-CBD2F54AF9E3@oracle.com> <de109940-7de1-1a09-51f3-d3be44d98c60@talpey.com> <CADaq8jf5zU0y=v4gaUxVd4scQQwyAEcgWtp11Ddcn=U4jB17pA@mail.gmail.com>
From: David Noveck <davenoveck@gmail.com>
Date: Mon, 27 Feb 2017 21:09:16 -0500
Message-ID: <CADaq8jea99i8L=tYKM=6T-Mu78n_qzmMwrKGSsWhmgpBytZMiQ@mail.gmail.com>
To: Chuck Lever <chuck.lever@oracle.com>
Content-Type: multipart/alternative; boundary="001a113e2428e0d59605498daedb"
Archived-At: <https://mailarchive.ietf.org/arch/msg/nfsv4/3lVjHmrZYqWytcFYxsRm3GkCqNc>
Cc: Tom Talpey <tom@talpey.com>, "nfsv4@ietf.org" <nfsv4@ietf.org>
Subject: Re: [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: Tue, 28 Feb 2017 02:09:19 -0000

> Earlier I had believed we had some historical reasons
> for matching the intent of RFC 5667.

I think we do, where that intent is clear.

> But if we are
> interested only in documenting the behavior of
> existing implementations,

For some of the cases you mention, there is no possible
ambiguity.  The clear intent of RFC5666 and RFC5667
is that multiple READs and WRITEs were supposed to be
allowed and considerable effort was expended in explaining
how they would work.

So it appears that some the things on your liist are bugs.  We
may be forced, for practical reasons, to turn a blind eye to these
bugs for some period of time, but this is not the same sort of
situation as the PZRC-read-chunk issue which is a fairly minor nit
based on text with rfc56667 that defies clear interpretation.  Sigh!

> note that:

interesting/depressing list deleted

> This could be an argument to, in addition, remove a
> large piece of text that discusses multiple Write chunks.

Perhaps it could.

> However, it might be interesting to some to leave
> some flexibility for future use.

Do you mean future use within Version One?  Or we
could limit Version One to what it is now., in the expectation
that it will not exist for very long. Then we
could use base Version Two to implement what
Version One was supposed to be and get a small set
of performance goodies at the same time.

If we on;t want to write off Version One in that way,
we need a reliable means of distinguishing servers
with full COMPOUND support  from those that you
describe.

For example, when you say a server only supports a single READ
operation, what does it do if it gets a COMPOUND with more than
one?  We could have something to work with if:

   - All such servers did the same thing.
   - It didn't result in disconnection or memory corruption.

I thought about an extension adding a full_rdma_compound_support
attribute but that doesn't work for V4.0.

BTW, do any of these old-fashioned servers with these bugs, recognize
and report DDP-eligibility violations?  If not this could be a fool proof
way
to distinguish servers who may have these implememtation gaps from newer
ones that should have full COMPOUND support for RDMA.



On Mon, Feb 27, 2017 at 11:38 AM, David Noveck <davenoveck@gmail.com> wrote:

> One of the issues that Chuck has to deal with is the need
> to make new implementations interoperable with existing
> implementation.  That has been the source of some new
> MUSTs.
>
> Regarding the use of MUSTs, I think these terms are overused
> in general and that RFC2119's suggestion that these be used
> sparingly (which ironically uses a "MUST") is too often ignored,
> including by  the IESG.
>
> Regarding your suggestion that 5667bis is using "MUST" too
> much, a comparison with RFC5667 is instructive.  Including
> "MUST NOT"s, the RFC2119 term "MUST" Is  used:
>
>    - 22 times in RFC5667, a 10-page spec.
>    - 14 times in rf5667bis-06, an 18-page spec.
>
> Part of Chuck's advantage here is that he deleted a lot of the
> duplication in which RFC5667 ether repeated what was in
> RFC5666 specialized to NFS (useless) or contradicted it (which
> really had to go).
>
>
> On Mon, Feb 27, 2017 at 8:16 AM, Tom Talpey <tom@talpey.com> wrote:
>
>> On 2/26/2017 3:29 PM, Chuck Lever wrote:
>>
>>> On Feb 25, 2017, at 3:54 PM, David Noveck <davenoveck@gmail.com> wrote:
>>>>
>>>> RFC 5667 Section 4 says:
>>>>>
>>>>
>>>> Similarly, a single RDMA Read list entry MAY be posted by the client
>>>>>> to supply the opaque file data for a WRITE request or the pathname
>>>>>> for a SYMLINK request.
>>>>>>
>>>>>
>>>> Part of the problem here is that, as you discuss later, this statement
>>>> is
>>>> ambiguous, as the meaning of "read list entry" is not clear.
>>>>
>>>> The server MUST ignore any Read list for
>>>>>> other NFS procedures,
>>>>>>
>>>>>
>>>> As I understand it, this statement cannot apply to PZRCs, and rfc5666bis
>>>> has already dealt with that issue.  So, if one tried to maintain this
>>>> paragraph,
>>>> in something like the RFC5667-form, some modification would have been
>>>> necessary to avoid essentially preventing any use of PZRCs
>>>>
>>>> as well as additional Read list entries beyond
>>>>>> the first in the list.
>>>>>>
>>>>>
>>>> I take "Read list entry" to mean Read chunk, composed of
>>>>> multiple list entries that share the same XDR position.
>>>>> This comports with similar language describing Write
>>>>> chunks where a single list entry is indeed allowed to
>>>>> have multiple segments.
>>>>>
>>>>
>>>> Makes sense to me.
>>>>
>>>> However, the original intent might have been "single
>>>>> Read segment".
>>>>>
>>>>
>>>> It might have been but there is no way to be sure.
>>>>
>>>
>>> We can ask Tom Talpey. If he does not recall, then
>>> we have no way to be sure.
>>>
>>
>> I agree the paragraph in question could have been more clear. I'll
>> hazard a guess that it should have been written as "Read list" instead
>> of "Read list entry", meaning, an entire scatter list is provided.
>> This woud certainly match the semantic for the result of an ordinary
>> NFS Read.
>>
>> I will also observe that the statement is a MAY. That is, it prescribes
>> no behavior, and offers a choice to the implementer. It does not rule
>> out the option of posting a list.
>>
>> I think you guys need to stop worrying about writing these "rules"
>> down so literally. The only goal of RFC5667 was to isolate the tidbits
>> of NFS behaviors separate from the core rpcrdma transport. The
>> document makes relatively few MUST requirements.
>>
>> Tom.
>>
>> _______________________________________________
>> nfsv4 mailing list
>> nfsv4@ietf.org
>> https://www.ietf.org/mailman/listinfo/nfsv4
>>
>
>