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

Tom Talpey <tom@talpey.com> Mon, 08 May 2017 23:30 UTC

Return-Path: <tom@talpey.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 E388F126CC7 for <nfsv4@ietfa.amsl.com>; Mon, 8 May 2017 16:30:22 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.699
X-Spam-Level:
X-Spam-Status: No, score=-4.699 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-2.8, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
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 dhrH0Y5bf7e2 for <nfsv4@ietfa.amsl.com>; Mon, 8 May 2017 16:30:21 -0700 (PDT)
Received: from p3plsmtpa11-09.prod.phx3.secureserver.net (p3plsmtpa11-09.prod.phx3.secureserver.net [68.178.252.110]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5A6021200FC for <nfsv4@ietf.org>; Mon, 8 May 2017 16:30:21 -0700 (PDT)
Received: from [192.168.0.56] ([24.218.182.144]) by :SMTPAUTH: with SMTP id 7s69d8J07VlT57s6AdBqmZ; Mon, 08 May 2017 16:29:50 -0700
To: nfsv4@ietf.org
References: <CADaq8jdkGgL+H-yoO-+bTNbSYiE_1us9cN5SXY8QV0gfYfK0Ng@mail.gmail.com> <A7BB8A22-53E3-4910-A6DE-C6103343D309@oracle.com> <6974E7E7-051B-4F28-A61A-DF6F841B248B@oracle.com> <af6ed8c5-6a7d-08ed-590b-1774f34e05f2@talpey.com> <F842F8E7-B576-4781-A845-F13317593F88@oracle.com> <1451a113-115b-5c43-5cfe-f0c5e21b59d6@talpey.com> <C91AC1D8-C884-490B-8738-7279DEC0F372@oracle.com> <CADaq8jc6X6y5WXuptVevhNopG9Nbfca8FUV6zYCBTADs5ohvag@mail.gmail.com> <F7941956-149D-4B4C-B793-444FC61A9517@oracle.com> <e7ff236f-29e4-06d8-86c9-486f95f9db14@oracle.com> <505CD860-4167-49FB-8162-B5FE6083E7AF@oracle.com> <BN6PR03MB2449B8D6FE! E4975D78858456A0160@BN6PR03MB2449.namprd03.prod.outlook.com> <263A2988-0B52-4706-B00F-41D121F7DA42@oracle.com> <2e9d0b61-26f6-cecb-9f75-717ac48f3b88! ! @talpey.com> <EECCB2E9-7BC3-4D29-A95D-BAC42F78AFAF@oracle.com> <77E46834-1407-4A44-8C78-83C8EED801C1@oracle.com> <8! 06e7663-8c21-7b26-f778-ce45605c6c43@talpey.com> <0CE5B736-4090-456A-87CA-3D393BE07A9C@oracle.com>
From: Tom Talpey <tom@talpey.com>
Message-ID: <24541a81-00a7-53be-9b31-20c6714b99ba@talpey.com>
Date: Mon, 08 May 2017 19:29:48 -0400
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0
MIME-Version: 1.0
In-Reply-To: <0CE5B736-4090-456A-87CA-3D393BE07A9C@oracle.com>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Transfer-Encoding: 8bit
X-CMAE-Envelope: MS4wfL+F48z96yr4BREmK2/X6ao/A5gr2oVciYhkzMHCYjg7Ow4ghvR4X1dBXa8lAWtuZzLJnCFMKFcSZkPhJJLx83ZDvHY2Se6PNUhxB834EmHckggn9ECV EuyPJ4GFDdHcXHTooGK6KfeiAXmh+Pq4a/Es7Fjz3hgV/jL9f+H+mlYB
Archived-At: <https://mailarchive.ietf.org/arch/msg/nfsv4/o9WqQM68iJ7WffbbES5BJKHeVhY>
Subject: Re: [nfsv4] Review of draft-ietf-nfsv4-rfc5667bis-09
X-BeenThere: nfsv4@ietf.org
X-Mailman-Version: 2.1.22
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: Mon, 08 May 2017 23:30:23 -0000

On 5/8/2017 3:10 PM, Chuck Lever wrote:
>
>> On May 8, 2017, at 2:53 PM, Tom Talpey <tom@talpey.com> wrote:
>>
>> On 5/8/2017 1:34 PM, Chuck Lever wrote:
>>>
>>>> On May 8, 2017, at 9:58 AM, Chuck Lever <chuck.lever@oracle.com> wrote:
>>>>
>>>>>
>>>>> On May 8, 2017, at 8:35 AM, Tom Talpey <tom@talpey.com> wrote:
>>>>>
>>>>> On 5/4/2017 11:00 AM, Chuck Lever wrote:
>>>>>> I've tried to address your concerns, and I changed the segment count
>>>>>> limit to document what we know about the current Solaris implementations.
>>>>>> I liked the "be conservative in what you send" idea, but I couldn't find
>>>>>> a way to work it in that was not awkward.
>>>>>>
>>>>>> If this text is OK, I'll submit a fresh I-D revision after WGLC ends on
>>>>>> Friday.
>>>>>
>>>>> Well that wasn't enough time for me to respond since I was traveling
>>>>> from SambaXP in Germany, but the text does look better. The statement
>>>>> below makes no requirement on the server.
>>>>>
>>>>>> 5.4.2.  Chunk List Complexity
>>>>>> ...
>>>>>> To avoid encountering server chunk list complexity limits, NFS
>>>>>> version 4 clients SHOULD follow the below prescriptions when
>>>>>> constructing transport headers:
>>>>>>
>>>>>> o  The Read list can contain either a Position-Zero Read chunk, one
>>>>>>    Read chunk with a non-zero Position, or both.
>>>>>>
>>>>>> o  The Write list can contain no more than one Write chunk.
>>>>>>
>>>>>> o  Any chunk can contain up to sixteen RDMA segments.
>>>>>
>>>>> I would suggest the following modifications to the above.
>>>>>
>>>>> "In accordance with chunk list processing limits of existing
>>>>> server implementations, NFS Version 4 clients SHOULD maximally
>>>>> follow the below prescriptions when constructing requests to
>>>>> be transported by RPC-over-RDMA. Additionally, NFS Version 4
>>>>> servers SHOULD minimally be prepared to accept and process such
>>>>> requests."
>>>>
>>>> Actually I think "servers MUST be prepared" is appropriate here,
>>>> although IMO "clients should follow the below" implies the server
>>>> side requirements already. But no harm in making it explicit.
>>>>
>>>>
>>>>>> NFS version 4 clients wishing to send more complex chunk lists can
>>>>>> provide configuration interfaces to bound the complexity of NFS
>>>>>> version 4 COMPOUNDs, limit the number of elements in scatter-gather
>>>>>> operations, and avoid other sources of RPC-over-RDMA chunk overruns
>>>>>> at the receiving peer.
>>>>>>
>>>>>> An NFS Version 4 server has some flexibility in how it indicates that
>>>>>> an RPC-over-RDMA Version One message received from an NFS Version 4
>>>>>> client is valid but cannot be processed.  Examples include:
>>>>>
>>>>>
>>>>> Strongly suggest deleting the words "has some flexibility" and "Examples
>>>>> include". We've already had this discussion, so I will just suggest the
>>>>> following.
>>>>>
>>>>> "An NFS Version 4 server SHOULD return one of the following responses
>>>>> to a client which has sent a request containing RPC-over-RDMA chunks
>>>>> which cannot be processed due to exceeding server implementation
>>>>> limits"
>>>>
>>>> Both look fine to me. Spencer, if you're willing, I can replace -10
>>>> with a revision that includes these changes.
>>>
>>> Here's the new text. I'll wait for Tom to respond before cutting -11.
>>>
>>>
>>> 5.4.2.  Chunk List Complexity
>>>
>>>   The RPC-over-RDMA Version One protocol does not place any limit on
>>>   the number of chunks or segments that may appear in Read or Write
>>>   lists.  However, for various reasons NFS version 4 server
>>>   implementations often have practical limits on the number of chunks
>>>   or segments they are prepared to process in a single RPC transaction
>>>   conveyed via RPC-over-RDMA Version One.
>>>
>>>   These implementation limits are especially important when Kerberos
>>>   integrity or privacy is in use [RFC7861].  GSS services increase the
>>>   size of credential material in RPC headers, potentially requiring
>>>   more frequent use of Long messages.  This can increase the complexity
>>>   of chunk lists independent of the NFS version 4 COMPOUND being
>>>   conveyed.
>>>
>>>   In accordance with chunk list processing limits of existing server
>>>   implementations, NFS Version 4 clients SHOULD follow the
>>>   prescriptions listed below when constructing RPC-over-RDMA Version
>>>   One messages.  NFS Version 4 servers MUST be prepared to accept and
>>>   process such requests.
>>
>> My only comment is on the above paragraph, on which I had suggested
>> adding "maximally" and "minimally" in an attempt to convey that these
>> were not absolute requirements, i.e. no more, no less than the listed
>> values. That's not the intent, right?
>
> The server is required to accept the listed bullets at a minimum,
> and the client should not send more than the list bullets, but
> it can send more if it is confident the server supports it. And,
> the stated limits are based on existing implementations, not on
> any particular limit in the transport protocol.
>
> I think we agree on the intent.
>
>
>> Again, my suggestion is to state these as "safe" values, to be used by
>> the client when no other knowledge of the actual limits exists.
>
> I had some trouble with "safe" because it's kind of an undefined
> term in this context. My preference is the paragraph should state
> what it means directly.
>
> It still feels to me like "SHOULD follow" means it is OK for the
> client to exceed the stated limits. So the current text says the
> same thing with and without "maximally" or "minimally" and already
> conveys the above intent.
>
>
>> The server text is ok.
>>
>> Along those lines then, how about:
>>
>>  "In accordance with chunk list processing limits of existing server
>>   implementations, in the absence of explicit knowedge of the server's
>>   limits, NFS Version 4 clients SHOULD follow the prescriptions listed
>>   below when constructing RPC-over-RDMA Version One messages.  All NFS
>>   Version 4 servers MUST be prepared to accept and process such
>>   requests."
>
> My counter-offer ;-)
>
>    In the absence of explicit knowledge of the server’s limits, NFS
>    Version 4 clients SHOULD follow the prescriptions listed below when
>    constructing RPC-over-RDMA Version One messages.  NFS Version 4
>    servers MUST accept and process such requests.

We do agree on the intent, and this text is fine. I wasn't trying to
wordsmith; this text removes the previous ambiguity.

Tom.