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

Tom Talpey <tom@talpey.com> Mon, 08 May 2017 18:53 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 AAC151295A0 for <nfsv4@ietfa.amsl.com>; Mon, 8 May 2017 11:53:49 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.92
X-Spam-Level:
X-Spam-Status: No, score=-1.92 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01] 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 EWnwp4zP41Va for <nfsv4@ietfa.amsl.com>; Mon, 8 May 2017 11:53:42 -0700 (PDT)
Received: from p3plsmtpa07-09.prod.phx3.secureserver.net (p3plsmtpa07-09.prod.phx3.secureserver.net [173.201.192.238]) (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 4610F12957F for <nfsv4@ietf.org>; Mon, 8 May 2017 11:53:42 -0700 (PDT)
Received: from [192.168.0.56] ([24.218.182.144]) by :SMTPAUTH: with SMTP id 7nmRdNFxmVtNr7nmRdvZ7P; Mon, 08 May 2017 11:53:11 -0700
To: nfsv4@ietf.org
References: <CADaq8jdkGgL+H-yoO-+bTNbSYiE_1us9cN5SXY8QV0gfYfK0Ng@mail.gmail.com> <F417EA11-D49F-420D-A64F-AE6A382B920C@oracle.com> <7213a956-6157-d0a6-432d-1da8d555d8e9@talpey.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>
From: Tom Talpey <tom@talpey.com>
Message-ID: <806e7663-8c21-7b26-f778-ce45605c6c43@talpey.com>
Date: Mon, 08 May 2017 14:53:11 -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: <77E46834-1407-4A44-8C78-83C8EED801C1@oracle.com>
Content-Type: text/plain; charset="windows-1252"; format="flowed"
Content-Transfer-Encoding: 7bit
X-CMAE-Envelope: MS4wfIRrcR6sSax/W7OE+0DhTy/uxq0jz+VJzHtGaih7JxrywHGO3aWshImStnh0YDS42xSDl5Q8eRvZiTqmAm1Y1OHAN7v+Qhc+/+rcfBjBHEh9AQpkIUMJ AwWDBvrzQb0KNXZthPl5BRtZZtFsYCBpVa4mIy7k+Z2xKB8zn++ZN6d3
Archived-At: <https://mailarchive.ietf.org/arch/msg/nfsv4/zrUBKdyXqEm_9fgnBsQO_VGQlBs>
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 18:53:49 -0000

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?

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

Tom.


>    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.
>
>    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 chunk overruns at the
>    receiving peer.
>
>    An NFS Version 4 server SHOULD return one of the following responses
>    to a client that has sent an RPC transaction via RPC-over-RDMA
>    Version One which cannot be processed due to chunk list complexity
>    limits on the server:
>
>    o  A problem is detected by the transport layer while parsing the
>       transport header in an RPC Call message.  The server responds with
>       an RDMA_ERROR message with the err field set to ERR_CHUNK.
>
>    o  A problem is detected during XDR decoding of the RPC Call message
>       while the RPC layer reassembles the call's XDR stream.  The server
>       responds with an RPC reply with its "reply_stat" field set to
>       MSG_ACCEPTED and its "accept_stat" field set to GARBAGE_ARGS.
>
>    After receiving one of these errors, an NFS version 4 client SHOULD
>    NOT retransmit the failing request, as the result would be the same
>    error.  It SHOULD immediately terminate the RPC transaction
>    associated with the XID in the reply.
>
>
>>> Tom.
>>>
>>>
>>>>  o  A problem is detected by the transport layer while parsing the
>>>>     transport header in an RPC Call message.  The server responds with
>>>>     an RDMA_ERROR message with the err field set to ERR_CHUNK.
>>>>
>>>>  o  A problem is detected during XDR decoding of the RPC Call message
>>>>     while the RPC layer reassembles the call's XDR stream.  The server
>>>>     responds with an RPC reply with its "reply_stat" field set to
>>>>     MSG_ACCEPTED and its "accept_stat" field set to GARBAGE_ARGS.
>>>>
>>>>  After receiving one of these errors, an NFS version 4 client SHOULD
>>>>  NOT retransmit the failing request, as the result would be the same
>>>>  error.  It SHOULD immediately terminate the RPC transaction
>>>>  associated with the XID in the reply.
>>>
>>>
>>> _______________________________________________
>>> nfsv4 mailing list
>>> nfsv4@ietf.org
>>> https://www.ietf.org/mailman/listinfo/nfsv4
>>
>> --
>> Chuck Lever
>>
>>
>>
>> _______________________________________________
>> nfsv4 mailing list
>> nfsv4@ietf.org
>> https://www.ietf.org/mailman/listinfo/nfsv4
>
> --
> Chuck Lever
>
>
>
> _______________________________________________
> nfsv4 mailing list
> nfsv4@ietf.org
> https://www.ietf.org/mailman/listinfo/nfsv4
>
>