Re: [nfsv4] Review of draft-ietf-nfsv4-rfc5667bis-09
David Noveck <davenoveck@gmail.com> Thu, 27 April 2017 16:19 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 1E25012941D for <nfsv4@ietfa.amsl.com>; Thu, 27 Apr 2017 09:19:12 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.698
X-Spam-Level:
X-Spam-Status: No, score=-2.698 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_LOW=-0.7, SPF_PASS=-0.001, URIBL_BLOCKED=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 8itPKN3v_zNf for <nfsv4@ietfa.amsl.com>; Thu, 27 Apr 2017 09:19:07 -0700 (PDT)
Received: from mail-it0-x233.google.com (mail-it0-x233.google.com [IPv6:2607:f8b0:4001:c0b::233]) (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 C6BED12946F for <nfsv4@ietf.org>; Thu, 27 Apr 2017 09:17:35 -0700 (PDT)
Received: by mail-it0-x233.google.com with SMTP id x188so15378271itb.0 for <nfsv4@ietf.org>; Thu, 27 Apr 2017 09:17:35 -0700 (PDT)
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=mw1gOHxIMfrhltLP5y7uCTTvHpWD5IQ3ue+mERWRErY=; b=BWvz7x3e3Gnj7TP1VFM/AZE4DmLvfKnmoQtjwHG31n4t4bSuwOtB47RMBq0EFpTQNi 4O1O6AB+raxuSml1DW+QkoeQM8nIRHg+FLx5YD/AOSQzgHNMvw1Oh7PmgppGciF6voZt 0UWkkq0d7Dw1aD7hK3E3Vb2BxUfgmGr7Rp+TuqcXP47cxPoz4VF9xnkSiIE/bz1vARI8 /DBClGb2tT6cX9uPk/P4EmsfGDUmxngqSVyKPI5O0iJaztDHjXJ1xK4NpQ7FddsdMDEH keZ0E6OYkFQKLA+W/RF8dRjxH+KxXsTtzqjL1mjl3OiWBHv85qp22O1TOG7QGRXqYjec 1IHg==
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=mw1gOHxIMfrhltLP5y7uCTTvHpWD5IQ3ue+mERWRErY=; b=rij36YUaBsrHgHiZobZJzW4VkPlqSW4G7AZyUEBGHMEVVmuqCXZjngO/Drx6xcPEGF dulFRq3CZGfOWSxYhsAwDnff2lVwpQhtYK7OEIMd8HjflpKFUaNoiQKKt+0d7TCM7DEo pshv1FieNBaY2RKSUMKSteV0EFFyUQSepesaQqmPxnZEijkKbE11TURx1POdm6lPBNgv 0q4jf30dbXOFvZz2A0vg5OxRDJGWMdl4nCed7eUiHlyrbQP/nn6V/+hAsUfvESmHB+59 IjeaSJFR8DZxREfdlAatx8HocTXbcZNKsOHDZOPVelHZ85Be5hIFbz7lVmFRicxoKz7V 6Wcg==
X-Gm-Message-State: AN3rC/7Jl7iN+YWhhhYHN/UugV6+LABvI2uDx9ZEQBtRIuMsS5lqef3F ViHfVLyYhIogLjroaZJ0ZN1wVQVzFg==
X-Received: by 10.36.85.7 with SMTP id e7mr654062itb.80.1493309854252; Thu, 27 Apr 2017 09:17:34 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.107.175.14 with HTTP; Thu, 27 Apr 2017 09:17:32 -0700 (PDT)
In-Reply-To: <1451a113-115b-5c43-5cfe-f0c5e21b59d6@talpey.com>
References: <CADaq8jdkGgL+H-yoO-+bTNbSYiE_1us9cN5SXY8QV0gfYfK0Ng@mail.gmail.com> <ce42960d-d1e9-8fa6-e98e-3e9b1a2af7d6@oracle.com> <f66e8e66-ba54-ff57-945a-7951eab2f8b1@talpey.com> <BB65A737-BDBD-4A23-9CEE-2EA153293842@oracle.com> <33468014-6695-a2da-1af8-f1f355fbe986@talpey.com> <CADaq8jcJJQ3TiVX6fFURg22YgNg=Cd7ezNQewjt6fgNK4LrPVg@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>
From: David Noveck <davenoveck@gmail.com>
Date: Thu, 27 Apr 2017 12:17:32 -0400
Message-ID: <CADaq8jc5PjgXq7ywGYG6pZXWSxiOX=ZCcxhX2Cu-ggQqXyBheA@mail.gmail.com>
To: Tom Talpey <tom@talpey.com>
Cc: "nfsv4@ietf.org" <nfsv4@ietf.org>
Content-Type: multipart/alternative; boundary="001a11448528671ce4054e284bda"
Archived-At: <https://mailarchive.ietf.org/arch/msg/nfsv4/hTgKSCjkv_vUukufgXWyO057lq0>
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: Thu, 27 Apr 2017 16:19:12 -0000
> The RFC2119 term RECOMMENDED is basically a synonym for SHOULD. It's > perfectly permissible. Not if it's implementation advice. On Thu, Apr 27, 2017 at 11:54 AM, Tom Talpey <tom@talpey.com> wrote: > On 4/27/2017 11:44 AM, Chuck Lever wrote: > >> >> On Apr 27, 2017, at 7:20 AM, Tom Talpey <tom@talpey.com> wrote: >>> >>> snip: >>>> Such implementation limits can constrain the complexity of NFS >>>> version 4 COMPOUNDs, limit the number of elements in scatter-gather >>>> operations, or prevent the use of Kerberos integrity or privacy >>>> services. >>>> >>> >>> I like the approach, and the lead-in language looks good. The text >>> quoted above is just a little bit dark, especially that bit about >>> preventing krb5i/krb5p. I'd suggest a more active statement to replace >>> the above, including the more prescriptive SHOULD rather than "can". >>> How about: >>> >>> "Client implementations SHOULD be prepared to provide mechanisms for >>> reporting the above errors, and optionally provide configuration to >>> limit the complexity of NFS version 4 COMPOUNDs, limit the number >>> of elements in scatter-gather operations, and to avoid other possible >>> sources of RPC-over-RDMA chunk overruns at the peer. >>> >>> These become especially important when Kerberos integrity or privacy >>> is in place for the RPC connection. These facilities add payload to >>> the RPC headers, potentially increasing the complexity of the chunk >>> manipulation, independent of the upper layer NFS operation. The >>> implementation SHOULD consider such RPC payload requirements in >>> addition to the NFS considerations." >>> >> >> Sure, I can work this in. >> >> When you say "Client implementations SHOULD ... [report] the above >> errors" you are talking about reporting them to administrators >> and/or RPC consumers? I don't think we can use SHOULD in that case. >> > > I am agnostic about who to inform. The important thing is that some > visibility of the error be surfaced. I absolutely don't think an > arbitrary GARBAGE_ARGS returned to an application that may simply > choke on it, qualifies. > > This feels like implementation advice, not protocol. >> > > Correct. But since the protocol creates the problem, the protocol > definition needs to say something about dealing with it. So I believe > SHOULD is best. > > Would "recommend" be enough for this section? >> > > The RFC2119 term RECOMMENDED is basically a synonym for SHOULD. It's > perfectly permissible. > > Tom. > > > >> >> Feel free to wordsmith further. >>> >>> Tom. >>> >>> >>> On 4/26/2017 12:18 PM, Chuck Lever wrote: >>> >>>> >>>> On Apr 24, 2017, at 7:30 AM, Chuck Lever <chuck.lever@oracle.com> >>>>> wrote: >>>>> >>>>> >>>>>> On Apr 24, 2017, at 7:56 AM, Tom Talpey <tom@talpey.com> wrote: >>>>>> >>>>>> On 4/21/2017 10:43 AM, Chuck Lever wrote: >>>>>> >>>>>>> I agree that SHOULD/MAY makes things cloudier, and does not >>>>>>> seem to align with well-defined RFC2119 usage. >>>>>>> >>>>>>> Another way we've dealt with similar disagreements between >>>>>>> specification and implementation is to decide that one of >>>>>>> the implementations is incorrect. >>>>>>> >>>>>>> Can we agree that: >>>>>>> >>>>>>> - GARBAGE_ARGS is a bit of a layering violation, though it's >>>>>>> understandable why it might be returned >>>>>>> >>>>>>> - RPC clients are already prepared for GARBAGE_ARGS >>>>>>> >>>>>> >>>>>> Are you certain of this? >>>>>> >>>>> >>>>> GARBAGE_ARGS has been part of the RPC protocol for decades. >>>>> The two Unix-flavored clients that have NFS/RDMA support can >>>>> both handle this error. >>>>> >>>> >>>> I've confirmed that the only other known NFS/RDMA client >>>> (Oracle dNFS) properly recognizes GARBAGE_ARGS. >>>> >>>> >>>> And out of curiosity, what is returned >>>>>> to the consumer for GARBAGE_ARGS versus ERR_CHUNK? >>>>>> >>>>> >>>>> RFC 5531: >>>>> >>>>>> GARBAGE_ARGS = 4, /* procedure can’t decode params */ >>>>>> >>>>> >>>>> >>>>> GARBAGE_ARGS is an RPC-level error. The reply is "accepted" >>>>> with accept_stat GARBAGE_ARGS. An XID is available in the >>>>> header. >>>>> >>>>> rfc5666bis: >>>>> >>>>>> If the rdma_vers field contains a recognized value, but an >>>>>> XDR parsing error occurs, the responder MUST reply with an >>>>>> RDMA_ERROR procedure and set the rdma_err value to ERR_CHUNK. >>>>>> >>>>> >>>>> >>>>> ERR_CHUNK is a transport level error. An XID is available >>>>> in the header. >>>>> >>>>> The difference is that the RPC layer v. the transport layer >>>>> are reporting they don't understand the contents of the >>>>> message (Call). There is nothing more in either type of >>>>> message. >>>>> >>>>> >>>>> - In RPC-over-RDMA Version One, we are not trying to recover >>>>>>> (in the sense of resending a simpler COMPOUND) but are rather >>>>>>> trying to ensure the offending RPC is properly terminated on >>>>>>> the client, and does not further block other RPCs or deadlock >>>>>>> the transport >>>>>>> >>>>>>> Thus I claim it is harmless if a server returns GARBAGE_ARGS >>>>>>> instead of ERR_CHUNK. >>>>>>> >>>>>> >>>>>> "Harmless" is a bit relative. The operation fails, through no fault >>>>>> of the consumer. And, frankly, in a very mysterious way. >>>>>> >>>>> >>>>> We have no richer way of communicating failure in RPC-over-RDMA >>>>> Version One. We are not looking for recovery here, so I don't >>>>> believe any more information would be useful. If the server >>>>> wishes, it can log the failure with a message explaining what >>>>> went wrong. >>>>> >>>>> >>>>> Again, I think there is more to say here. It's a limitation of the >>>>>> protocol whose implications should be made clear (contraining the >>>>>> complexity of COMPOUNDs, limiting scatter/gather lengths, etc). >>>>>> >>>>> >>>>> I'd welcome any suggested text. >>>>> >>>>> Honestly, I'm not sure what can be said. Neither NFSv4.0 nor >>>>> RPC-over-RDMA have a sophisticated mechanism to communicate this >>>>> kind of limitation. The best an NFSv4 server can do is return >>>>> NFS4ERR_RESOURCE, which also carries little extra information >>>>> about what a client should do to recover. >>>>> >>>>> So are you comfortable with eliminating GARBAGE_ARGS if we can >>>>> come up with more detail about the impact of not knowing how >>>>> complex a COMPOUND can be? >>>>> >>>> >>>> I've come up with some possible replacement text for >>>> the final two paragraphs of S5.4.1 in an attempt to >>>> address comments from Tom, David, and Karen. The >>>> normative requirements have been removed, and a (brief) >>>> discussion of the consequences of not handling complex >>>> COMPOUNDs was introduced. >>>> >>>> >>>> 5.4.2. Complexity Considerations >>>> >>>> As mentioned above, an NFS version 4 COMPOUND procedure can contain >>>> more than one operation that carries a DDP-eligible data item. The >>>> RPC-over-RDMA Version One protocol does not place any limit on the >>>> number of chunks that may appear in the Read or Write lists. >>>> Therefore an NFS version 4 client MAY construct an RPC-over-RDMA >>>> Version One message containing more than one Read chunk or Write >>>> chunk. >>>> >>>> However, implementations have practical limits on the number of >>>> chunks or segments they are prepared to process in one of these >>>> lists. There are several ways an NFS Version 4 server might indicate >>>> that an RPC Call message constructed by a client is valid but cannot >>>> be processed because of implementation limitations: >>>> >>>> o If the problem is detected in the upper layer (i.e., by the NFS >>>> version 4 implementation), the server returns an NFS status of >>>> NFS4ERR_RESOURCE. >>>> >>>> o If the problem is detected during XDR decoding of the request >>>> (e.g., during re-assembly of the Call message by the RPC layer), >>>> the server returns an RPC accept_stat of GARBAGE_ARGS. >>>> >>>> o If the problem is detected at the transport layer (i.e., during >>>> transport header processing), the server returns an RDMA_ERROR >>>> message with the err_code field set to ERR_CHUNK. >>>> >>>> Such implementation limits can constrain the complexity of NFS >>>> version 4 COMPOUNDs, limit the number of elements in scatter-gather >>>> operations, or prevent the use of Kerberos integrity or privacy >>>> services. >>>> >>>> >>>> Comments, opinions on this approach? >>>> >>>> >>>> Tom. >>>>>> >>>>>> >>>>>> >>>>>>> As a result, I can change the Read list text in S5.4.1 to be >>>>>>> the same as the Write list text, removing the mention of >>>>>>> GARBAGE_ARGS. >>>>>>> >>>>>>> Would that sit comfortably with everyone? >>>>>>> >>>>>>> >>>>>>> On Apr 20, 2017, at 7:21 PM, David Noveck <davenoveck@gmail.com> >>>>>>>> wrote: >>>>>>>> >>>>>>>> The "or" is a similar situation, it prescribes a choice, which >>>>>>>>> does not define a protocol. >>>>>>>>> >>>>>>>> >>>>>>>> Fair enough, but the point that needs to be made is that, with >>>>>>>> regard to Version One, Chuck and the working group is not >>>>>>>> free to define a protocol. As a result we have the kind of >>>>>>>> ugliness you object to, but it is inherent in the choice to try to >>>>>>>> revive Version One as-is. >>>>>>>> >>>>>>>> If an NFS version 4 client sends an RPC Call with a Read list that >>>>>>>>> contains more chunks than an NFS version 4 server is prepared to >>>>>>>>> process, the server SHOULD reject the request by responding with an >>>>>>>>> RDMA_ERROR message with the rdma_err value set to ERR_CHUNK. The >>>>>>>>> server MAY reject the RPC with an RDMA_MSG message containing an >>>>>>>>> RPC >>>>>>>>> Reply with an accept status of GARBAGE_ARGS. >>>>>>>>> >>>>>>>> >>>>>>>> I think I know what you intend here and I've seen stuff like this >>>>>>>> in RFCs but I don't >>>>>>>> wthink e can do this because this is not in line with the >>>>>>>> definitions of "SHOULD" >>>>>>>> and "MAY" that appear in RFC2119. >>>>>>>> >>>>>>>> "SHOULD" means that you are supposed to do something but can avoid >>>>>>>> it if >>>>>>>> you have a good reason and are aware of the consequences of not >>>>>>>> doing it. >>>>>>>> In this case the "good" reason is that someone coded the >>>>>>>> implementation >>>>>>>> to do something else, which is not all that good a reason. The >>>>>>>> consequences of >>>>>>>> returning the GARBAGEARGS are exactly zero, since the client has to >>>>>>>> be prepared >>>>>>>> for either it or ERR_CHUNK. >>>>>>>> >>>>>>>> "MAY" means the implementation can choose to do the action or not, >>>>>>>> which is line >>>>>>>> with the reality here but essentially contradicts the SHOULD. >>>>>>>> >>>>>>>> This at least makes it clear which response is "preferred". >>>>>>>>> >>>>>>>> >>>>>>>> But it is isn't really the job of the RFC2119 terms to say which is >>>>>>>> "preferred" or >>>>>>>> "'preferred'". These terms are supposed to describe >>>>>>>> interoperability and the >>>>>>>> interoperability situation is that the server MUST return ERR_CHUNK >>>>>>>> or >>>>>>>> GARBAGEARGS and the client needs to be prepared for either. That >>>>>>>> is the >>>>>>>> unpleasant reality. If you want to indicate a preference, you can >>>>>>>> say something >>>>>>>> like: >>>>>>>> • Returning ERR_CHUNK is preferrable. >>>>>>>> • Returinng ERR_CHUNK is more in line with the appropriate >>>>>>>> protocol layering since this issue relates to a limitation of the transport >>>>>>>> implementation. >>>>>>>> • Use of GARBAGEARGS is an unfortunate artifact of >>>>>>>> inappropriately layered implementations and is only allowed for reasons of >>>>>>>> compatibility with existing implementations. It is desirable to avoid it. >>>>>>>> >>>>>>>>> And one would hope a future draft would decide. >>>>>>>>> >>>>>>>> >>>>>>>> Not sure what draft you are thinking of. I don't see us doing an >>>>>>>> rfc5667bisbis (rfc5667tris). >>>>>>>> >>>>>>>> By the time we did that, the implementations with these >>>>>>>> restrictions will probably be gone. >>>>>>>> >>>>>>>> I have a second question though. How does the client determine what >>>>>>>>> is >>>>>>>>> the actual error? As in, how many chunks were allowed? >>>>>>>>> >>>>>>>> >>>>>>>> This is not fixable in Version One. It would be in Version Two, >>>>>>>> but by then >>>>>>>> the need will probably be gone. >>>>>>>> >>>>>>>> Does the upper >>>>>>>>> layer have to recover, and if so what are the implications? >>>>>>>>> >>>>>>>> >>>>>>>> I think something could be put in to indicate that clients should >>>>>>>> break up COMPOUNDS >>>>>>>> so the only have a single chunk each. >>>>>>>> >>>>>>>> Yes, I know 5667 did not explore this very well. >>>>>>>>> >>>>>>>> >>>>>>>> It didn't explore it at all. And 5666's error reporting facilities >>>>>>>> were extremely limited. >>>>>>>> >>>>>>>> Mea culpa. >>>>>>>>> >>>>>>>> >>>>>>>> I don'tt think you have anything to apologize for. >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On Thu, Apr 20, 2017 at 5:28 PM, Tom Talpey <tom@talpey.com> wrote: >>>>>>>> >>>>>>>> >>>>>>>> On 4/19/2017 11:14 AM, Chuck Lever wrote: >>>>>>>> Hi Tom- >>>>>>>> >>>>>>>> On Apr 18, 2017, at 11:08 PM, Tom Talpey <tom@talpey.com> wrote: >>>>>>>> >>>>>>>> I noticed the same thing, and I'll add that the MUST reject >>>>>>>> condition >>>>>>>> is very confusing because it allows an "or". In my opinion a MUST is >>>>>>>> always a single requirement, never ambiguous. >>>>>>>> >>>>>>>> I agree this kind of thing is tricky. I wrote it as "the server MUST >>>>>>>> reject the RPC". That's the single requirement. The choice is how >>>>>>>> the >>>>>>>> rejection is conveyed to the client. >>>>>>>> >>>>>>>> The statement "MUST reject" is not testable. So, while it may be >>>>>>>> understood what is intended, there is nothing implementable in the >>>>>>>> MUST. The "or" is a similar situation, it prescribes a choice, which >>>>>>>> does not define a protocol. >>>>>>>> >>>>>>>> Is there some reason you want to allow such a choice? I think you'll >>>>>>>> find that, worded properly, it becomes actually much less >>>>>>>> implementable >>>>>>>> and interoperable than you may think. >>>>>>>> >>>>>>>> The Solaris server can return an RPC-level error in cases like this. >>>>>>>> >>>>>>>> Well, this is happening because the Solaris server is (probably) >>>>>>>> just >>>>>>>> handing the chunk list up to the RPC layer, and it's the RPC (XDR) >>>>>>>> processing that detects any problem. >>>>>>>> >>>>>>>> On the other hand, an implementation could do the opposite, it could >>>>>>>> process the chunks at the lower layer, before ever invoking RPC >>>>>>>> processing. This would naturally lead to a non-RPC error. >>>>>>>> >>>>>>>> The challenge in defining the protocol is to hide these >>>>>>>> possibilities. >>>>>>>> >>>>>>>> I think there are similar choices allowed in rfc5666bis. Let's say >>>>>>>> that in a perfect world, I would go with only ERR_CHUNK, but I'm >>>>>>>> documenting existing implementation behavior here. >>>>>>>> >>>>>>>> I'm not sure it matters to the client: both errors are permanent and >>>>>>>> the RPC is terminated on the client. >>>>>>>> >>>>>>>> I'm open to alternatives. >>>>>>>> >>>>>>>> The icky way to do this is to split into two weak requirements. >>>>>>>> >>>>>>>> If an NFS version 4 client sends an RPC Call with a Read list that >>>>>>>> contains more chunks than an NFS version 4 server is prepared to >>>>>>>> process, the server SHOULD reject the request by responding with an >>>>>>>> RDMA_ERROR message with the rdma_err value set to ERR_CHUNK. The >>>>>>>> server MAY reject the RPC with an RDMA_MSG message containing an RPC >>>>>>>> Reply with an accept status of GARBAGE_ARGS. >>>>>>>> >>>>>>>> This at least makes it clear which response is "preferred". And one >>>>>>>> would hope a future draft would decide. >>>>>>>> >>>>>>>> I have a second question though. How does the client determine what >>>>>>>> is >>>>>>>> the actual error? As in, how many chunks were allowed? Does the >>>>>>>> upper >>>>>>>> layer have to recover, and if so what are the implications? >>>>>>>> >>>>>>>> Yes, I know 5667 did not explore this very well. Mea culpa. >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> Tom. >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On 4/18/2017 6:32 PM, karen deitke wrote: >>>>>>>> Hi Chuck, its unclear what you mean by "is prepared to process" in >>>>>>>> the text below. >>>>>>>> Other than that, looks good. >>>>>>>> >>>>>>>> Karen >>>>>>>> >>>>>>>> 5.4.1 >>>>>>>> If an NFS version 4 client sends an RPC Call with a Write list that >>>>>>>> contains more chunks than an NFS version 4 server is prepared to >>>>>>>> process, the server MUST reject the RPC by responding with an >>>>>>>> RDMA_ERROR message with the rdma_err value set to ERR_CHUNK. >>>>>>>> >>>>>>>> >>>>>>>> If an NFS version 4 client sends an RPC Call with a Read list that >>>>>>>> contains more chunks than an NFS version 4 server is prepared to >>>>>>>> process, the server MUST reject the RPC by responding with an >>>>>>>> RDMA_MSG message containing an RPC Reply with an accept status of >>>>>>>> GARBAGE_ARGS, or with an RDMA_ERROR message with the rdma_err value >>>>>>>> set to ERR_CHUNK. >>>>>>>> >>>>>>>> >>>>>>>> On 4/18/2017 1:21 PM, David Noveck wrote: >>>>>>>> *Overall Evaluation* >>>>>>>> * >>>>>>>> * >>>>>>>> Major improvement over RFC5667. Almost ready to ship. No technical >>>>>>>> issues. >>>>>>>> >>>>>>>> A lot of my comments are basically editorial and are offered on a >>>>>>>> take-it-or-lease-it basis. >>>>>>>> >>>>>>>> I think some clarification in Section 5.4.1 is needed although not >>>>>>>> necessarily in the ways suggested below, >>>>>>>> >>>>>>>> *Comments by Section* >>>>>>>> *5.4.1. Multiple DDP-eligible Data Items* >>>>>>>> Giventhat READ_PLUS no longer has any DDP-eligible data items, the >>>>>>>> situation described in the fifth bullet can no longer arise. I >>>>>>>> suggest >>>>>>>> deleting the bullet. >>>>>>>> The penultimate paragraph can be read as applying to some situations >>>>>>>> in which it shouldn't and where the extra chunks would very >>>>>>>> naturally >>>>>>>> ignored. For example, if you had on write chunk together with a READ >>>>>>>> operation which failed, the server would have more chunks (i.e. one) >>>>>>>> than the number it is prepared to process (i.e. zero). Suggest, as a >>>>>>>> possible replacement: >>>>>>>> >>>>>>>> Normally, when an NFS version 4 client sends an RPC Call with a >>>>>>>> Write list that contains multiple chunks. each such, when matched >>>>>>>> with a DDP-eligible data item in the response, directs the >>>>>>>> placement of the data item as specified by >>>>>>>> [I.D.-nfsv4-rfc5666bis]. When there are DDP-eligible data items >>>>>>>> matched to write chunks that an NFS version 4 server is not >>>>>>>> prepared to process, the server MUST reject the RPC by responding >>>>>>>> with an RDMA_ERROR message with the rdma_err value set to ERR_CHUNK. >>>>>>>> >>>>>>>> With regard to the last paragraph, I am curious that this paragraph, >>>>>>>> unlike the previous one, allows GARBGEARGS. Is this so because that >>>>>>>> would be allowed if the chunks in question had offsets other than >>>>>>>> those that correspond to DDP-eligible data items? If so, please >>>>>>>> consider the following possible replacement. >>>>>>>> >>>>>>>> Normally, when an NFS version 4 client sends an RPC Call with a >>>>>>>> Read list that contains multiple chunks, each such, when properly >>>>>>>> matched with a DDP-eliigible data item in the request, directs the >>>>>>>> fetching of the the data item as specified by >>>>>>>> [I.D.-nfsv4-rfc5666bis]. When there are DDP-eligible data items >>>>>>>> matched to read chunks that an NFS version 4 server is not >>>>>>>> prepared to process, the server MUST reject the RPC by responding >>>>>>>> with an RDMA_ERROR message with the rdma_err value set to ERR_CHUNK. >>>>>>>> >>>>>>>> *5.6. Session-Related Considerations* >>>>>>>> In the third sentence of the second paragraph, suggest replacing "no >>>>>>>> different" by "not different". >>>>>>>> In the last sentence of the last paragraph, suggest replacing "is >>>>>>>> not" >>>>>>>> by "were not" >>>>>>>> >>>>>>>> >>>>>>>> _______________________________________________ >>>>>>>> nfsv4 mailing list >>>>>>>> nfsv4@ietf.org >>>>>>>> https://www.ietf.org/mailman/listinfo/nfsv4 >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> _______________________________________________ >>>>>>>> nfsv4 mailing list >>>>>>>> nfsv4@ietf.org >>>>>>>> https://www.ietf.org/mailman/listinfo/nfsv4 >>>>>>>> >>>>>>>> >>>>>>>> _______________________________________________ >>>>>>>> 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 >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> _______________________________________________ >>>>>>>> nfsv4 mailing list >>>>>>>> nfsv4@ietf.org >>>>>>>> https://www.ietf.org/mailman/listinfo/nfsv4 >>>>>>>> >>>>>>>> _______________________________________________ >>>>>>>> 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 >>>>>>> >>>>>>> >>>>>> _______________________________________________ >>>>>> 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 >>>> >>>> >>> _______________________________________________ >>> 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 >> >> > _______________________________________________ > nfsv4 mailing list > nfsv4@ietf.org > https://www.ietf.org/mailman/listinfo/nfsv4 >
- [nfsv4] Review of draft-ietf-nfsv4-rfc5667bis-09 David Noveck
- Re: [nfsv4] Review of draft-ietf-nfsv4-rfc5667bis… karen deitke
- Re: [nfsv4] Review of draft-ietf-nfsv4-rfc5667bis… Tom Talpey
- Re: [nfsv4] Review of draft-ietf-nfsv4-rfc5667bis… David Noveck
- Re: [nfsv4] Review of draft-ietf-nfsv4-rfc5667bis… Chuck Lever
- Re: [nfsv4] Review of draft-ietf-nfsv4-rfc5667bis… Chuck Lever
- Re: [nfsv4] Review of draft-ietf-nfsv4-rfc5667bis… Tom Talpey
- Re: [nfsv4] Review of draft-ietf-nfsv4-rfc5667bis… David Noveck
- Re: [nfsv4] Review of draft-ietf-nfsv4-rfc5667bis… Chuck Lever
- Re: [nfsv4] Review of draft-ietf-nfsv4-rfc5667bis… Tom Talpey
- Re: [nfsv4] Review of draft-ietf-nfsv4-rfc5667bis… Chuck Lever
- Re: [nfsv4] Review of draft-ietf-nfsv4-rfc5667bis… karen deitke
- Re: [nfsv4] Review of draft-ietf-nfsv4-rfc5667bis… Chuck Lever
- Re: [nfsv4] Review of draft-ietf-nfsv4-rfc5667bis… David Noveck
- Re: [nfsv4] Review of draft-ietf-nfsv4-rfc5667bis… Chuck Lever
- Re: [nfsv4] Review of draft-ietf-nfsv4-rfc5667bis… Chuck Lever
- Re: [nfsv4] Review of draft-ietf-nfsv4-rfc5667bis… karen deitke
- Re: [nfsv4] Review of draft-ietf-nfsv4-rfc5667bis… karen deitke
- Re: [nfsv4] Review of draft-ietf-nfsv4-rfc5667bis… Tom Talpey
- Re: [nfsv4] Review of draft-ietf-nfsv4-rfc5667bis… Chuck Lever
- Re: [nfsv4] Review of draft-ietf-nfsv4-rfc5667bis… David Noveck
- Re: [nfsv4] Review of draft-ietf-nfsv4-rfc5667bis… Tom Talpey
- Re: [nfsv4] Review of draft-ietf-nfsv4-rfc5667bis… Tom Talpey
- Re: [nfsv4] Review of draft-ietf-nfsv4-rfc5667bis… David Noveck
- Re: [nfsv4] Review of draft-ietf-nfsv4-rfc5667bis… karen deitke
- Re: [nfsv4] Review of draft-ietf-nfsv4-rfc5667bis… Tom Talpey
- Re: [nfsv4] Review of draft-ietf-nfsv4-rfc5667bis… Chuck Lever
- Re: [nfsv4] Review of draft-ietf-nfsv4-rfc5667bis… Tom Talpey
- Re: [nfsv4] Review of draft-ietf-nfsv4-rfc5667bis… Chuck Lever
- Re: [nfsv4] Review of draft-ietf-nfsv4-rfc5667bis… Chuck Lever
- Re: [nfsv4] Review of draft-ietf-nfsv4-rfc5667bis… Tom Talpey
- Re: [nfsv4] Review of draft-ietf-nfsv4-rfc5667bis… David Noveck
- Re: [nfsv4] Review of draft-ietf-nfsv4-rfc5667bis… David Noveck
- Re: [nfsv4] Review of draft-ietf-nfsv4-rfc5667bis… Chuck Lever
- Re: [nfsv4] Review of draft-ietf-nfsv4-rfc5667bis… karen deitke
- Re: [nfsv4] Review of draft-ietf-nfsv4-rfc5667bis… Chuck Lever
- Re: [nfsv4] Review of draft-ietf-nfsv4-rfc5667bis… Tom Talpey
- Re: [nfsv4] Review of draft-ietf-nfsv4-rfc5667bis… karen deitke
- Re: [nfsv4] Review of draft-ietf-nfsv4-rfc5667bis… Chuck Lever
- Re: [nfsv4] Review of draft-ietf-nfsv4-rfc5667bis… David Noveck
- Re: [nfsv4] Review of draft-ietf-nfsv4-rfc5667bis… Trond Myklebust
- Re: [nfsv4] Review of draft-ietf-nfsv4-rfc5667bis… Chuck Lever
- Re: [nfsv4] Review of draft-ietf-nfsv4-rfc5667bis… Chuck Lever
- Re: [nfsv4] Review of draft-ietf-nfsv4-rfc5667bis… Tom Talpey
- Re: [nfsv4] Review of draft-ietf-nfsv4-rfc5667bis… Chuck Lever
- Re: [nfsv4] Review of draft-ietf-nfsv4-rfc5667bis… spencer shepler
- Re: [nfsv4] Review of draft-ietf-nfsv4-rfc5667bis… Chuck Lever
- Re: [nfsv4] Review of draft-ietf-nfsv4-rfc5667bis… David Noveck
- Re: [nfsv4] Review of draft-ietf-nfsv4-rfc5667bis… Tom Talpey
- Re: [nfsv4] Review of draft-ietf-nfsv4-rfc5667bis… Chuck Lever
- Re: [nfsv4] Review of draft-ietf-nfsv4-rfc5667bis… Tom Talpey