Re: [nfsv4] draft-ietf-nfsv4-rpcrdma-bidirection-03 review

Chuck Lever <chuck.lever@oracle.com> Fri, 20 May 2016 19:15 UTC

Return-Path: <chuck.lever@oracle.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 1AB8712DA8D for <nfsv4@ietfa.amsl.com>; Fri, 20 May 2016 12:15:07 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.646
X-Spam-Level:
X-Spam-Status: No, score=-5.646 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-1.426, SPF_PASS=-0.001, UNPARSEABLE_RELAY=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 7ox4sjJ6D5M6 for <nfsv4@ietfa.amsl.com>; Fri, 20 May 2016 12:15:05 -0700 (PDT)
Received: from userp1040.oracle.com (userp1040.oracle.com [156.151.31.81]) (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 C333E12D635 for <nfsv4@ietf.org>; Fri, 20 May 2016 12:15:05 -0700 (PDT)
Received: from userv0022.oracle.com (userv0022.oracle.com [156.151.31.74]) by userp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id u4KJF4DY008022 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for <nfsv4@ietf.org>; Fri, 20 May 2016 19:15:05 GMT
Received: from userv0121.oracle.com (userv0121.oracle.com [156.151.31.72]) by userv0022.oracle.com (8.14.4/8.13.8) with ESMTP id u4KJF4hA021598 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for <nfsv4@ietf.org>; Fri, 20 May 2016 19:15:04 GMT
Received: from abhmp0006.oracle.com (abhmp0006.oracle.com [141.146.116.12]) by userv0121.oracle.com (8.13.8/8.13.8) with ESMTP id u4KJF3O6025113 for <nfsv4@ietf.org>; Fri, 20 May 2016 19:15:04 GMT
Received: from anon-dhcp-171.1015granger.net (/68.46.169.226) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Fri, 20 May 2016 12:15:03 -0700
Content-Type: text/plain; charset="windows-1252"
Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\))
From: Chuck Lever <chuck.lever@oracle.com>
In-Reply-To: <567848d1-d854-ef70-8fba-33708e7e0601@oracle.com>
Date: Fri, 20 May 2016 15:15:01 -0400
Content-Transfer-Encoding: quoted-printable
Message-Id: <E2B31EDF-74D6-4CC8-8F6C-674C85498B56@oracle.com>
References: <6da90b6b-bb58-d241-0d74-dc421358c97c@oracle.com> <9ECFBBD5-9359-46AB-B1CC-7FCBF06C40A8@oracle.com> <f609eba3-4294-37ae-3bb8-c7df8f648bb0@oracle.com> <0E79D0E4-9D53-4ED4-8D17-2D806C56648F@oracle.com> <567848d1-d854-ef70-8fba-33708e7e0601@oracle.com>
To: Karen <karen.deitke@oracle.com>
X-Mailer: Apple Mail (2.3124)
X-Source-IP: userv0022.oracle.com [156.151.31.74]
Archived-At: <http://mailarchive.ietf.org/arch/msg/nfsv4/cIvrsQQREmwMnRZzxDwFmvjuips>
Cc: nfsv4@ietf.org
Subject: Re: [nfsv4] draft-ietf-nfsv4-rpcrdma-bidirection-03 review
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: Fri, 20 May 2016 19:15:07 -0000

> On May 20, 2016, at 2:51 PM, Karen <karen.deitke@oracle.com> wrote:
> 
> 
> 
> On 5/20/16 12:44 PM, Chuck Lever wrote:
>>> On May 20, 2016, at 2:30 PM, Karen <karen.deitke@oracle.com> wrote:
>>> 
>>> 
>>> 
>>> On 5/20/16 10:41 AM, Chuck Lever wrote:
>>>>> 
>>>>> 4.1
>>>>> 
>>>>> "When message direction is not fully determined by context"
>>>>> 
>>>>> "fully determined by context" thats confusing, what does that really mean? I think this means when the rdma header does not directly indicate if the message is a call or reply, but the wording is confusing.
>>>> That means that in some cases the receiver can guess
>>>> accurately which direction the message was going, based
>>>> on the context of the operation, even without having
>>>> an RPC message payload.
>>>> 
>>>> I'm open to suggestions.
>>>> 
>>>> I think some prefer that the document simply state that
>>>> direction is always unknown in cases where an RPC
>>>> message payload is not present. That kind of opens a
>>>> can of worms with RDMA_ERROR, which is needed to report
>>>> that the client does not support backward direction
>>>> operation.
>>> I don't think that it can always absolutely be clear which direction without the RPC header. Or am I misunderstanding RPC payload? I'm taking that to mean the RPC header, but maybe you are referring to the NFS data in the rpc payload?
>> "Context" here means that if the receiver can tell
>> by other means (like, there are no other outstanding
>> operations). So no, it's not always going to be clear.
>> In those cases, direction is not known.
> I don't think there is ever a 100% way to know the direction without the rpc header's call or reply field.

I don't think what I wrote contradicts that statement, but
it does allow latitude for innovation to close this hole
in other ways.


> Even if there is an outstanding request, and it is for the xid that is defined in the rdma header, being that the xid is not unique between client and server, there still exists, though extremely small, a possiblity that this is a new request that just so happens to have the same xid and is not actually the reply to an outstanding operation.

The only case in RPC-over-RDMA Version One where this is
a concern is RDMA_ERROR. The other two valid procs are
RDMA_NOMSG and RDMA_MSG, and both of those have RPC
message payloads.

When a client receives an RDMA_ERROR, that normally means
one of its forward requests had a problem.

Typical RPC-over-RDMA Version One client implementations
don't send an error to a server due to a problem with a
forward reply. We can probably say the same about a
server sending an RDMA_ERROR to a client in response
to a bad backward reply. (And, rfc5666bis could be
enhanced to suggest or require that requesters don't
send RDMA_ERROR in response to a bogus reply).

So the only instance where a server might receive an
RDMA_ERROR message is when it has sent a backward
request that the client did not like.

Thus: context indicates what direction that RDMA_ERROR
message is going.


--
Chuck Lever