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

David Noveck <davenoveck@gmail.com> Mon, 23 May 2016 15:00 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 A82BD12B01A for <nfsv4@ietfa.amsl.com>; Mon, 23 May 2016 08:00:44 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.699
X-Spam-Level:
X-Spam-Status: No, score=-2.699 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] 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 9CgGTDiIMSWv for <nfsv4@ietfa.amsl.com>; Mon, 23 May 2016 08:00:41 -0700 (PDT)
Received: from mail-oi0-x22f.google.com (mail-oi0-x22f.google.com [IPv6:2607:f8b0:4003:c06::22f]) (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 3FF3F12D0F3 for <nfsv4@ietf.org>; Mon, 23 May 2016 08:00:41 -0700 (PDT)
Received: by mail-oi0-x22f.google.com with SMTP id x19so281563367oix.2 for <nfsv4@ietf.org>; Mon, 23 May 2016 08:00:41 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc; bh=EYLR+nCBwWiPJnUtqEiojWz5KwEhurfnwfFg7lkN0nw=; b=dygUy3ZVw36Zn0aLeVIXy1lll6XSC4pXlGk91gN03JwwcJUUFH7k28tWje/xMf0HoD pBVVTv2Q7q0xetprxemdDioavdv7046VACFrkS3sIPr8WgUYZ5nXIqpb6jKEblq806Pj N6PwgWyYznu76aifrgip2KMDc/2Wo2o7vcNDsslJSSmEDLSPRdeVm6Rbg35vrm2uCwm+ Qiiho7f+ds2Z97vzuwjfXT8vgXwdfeR+vwGVkpibIDBuw3nxhXVwOt+VM7Wn0ocnz+cc 0WwQmfsABO++PHLzTXISFrO/LLkNQXTDLRhewT8yANbmQLYWQmWeNIXZ+C1gAePYflcO RRUA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc; bh=EYLR+nCBwWiPJnUtqEiojWz5KwEhurfnwfFg7lkN0nw=; b=KM6YiXqcnMj4UFdHbOPj1DnfZPct13KCtCnnh8xvG8c5YV0f+zyQPX+gKvQk9i5we3 1Br5WNPPDrgCfMGEmY+gwGoL/Yx3YHnwvnE6nwqmYHJRYk4qLtJEAZihq6EiEnt2Yz+A hYDudwPS3buIqoNVmslYEPeVZIqQoGlA6Emj+HyGlDsBnZMzEPyla80OZ8QLkmP962Cn rvfxZg2NgVWSYcynOhXotm3zfH/y2SJTRSrVSTPUBHgc4tzRY66ZdbTdYWplYBlqcMcp 7+BVBXL8Wh8yOYIeghWmkoZT+AdsISyWLw8aaGltjE2xHWD7kkJOFBjZW+heD+DWuE3J 1aiw==
X-Gm-Message-State: AOPr4FX+jFZWwbXgapgg2iX5SEI/q9Ojinhd9aKfkpUFBIn5X0eB9v7HYBT4iwvJHxDDnEKjL3Lf/b7ZRXqdLQ==
MIME-Version: 1.0
X-Received: by 10.157.20.101 with SMTP id h92mr10272071oth.114.1464015636757; Mon, 23 May 2016 08:00:36 -0700 (PDT)
Received: by 10.182.29.166 with HTTP; Mon, 23 May 2016 08:00:36 -0700 (PDT)
In-Reply-To: <E0C18ECC-7D15-447F-9DA7-654E1EBF6C3B@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> <E2B31EDF-74D6-4CC8-8F6C-674C85498B56@oracle.com> <E0C18ECC-7D15-447F-9DA7-654E1EBF6C3B@oracle.com>
Date: Mon, 23 May 2016 11:00:36 -0400
Message-ID: <CADaq8jcgW316nLwA3LnCAmL7nAY3o6XjeQLCkV-S_Sps9g+LJw@mail.gmail.com>
From: David Noveck <davenoveck@gmail.com>
To: Chuck Lever <chuck.lever@oracle.com>
Content-Type: multipart/alternative; boundary="001a1149e452f9bebb053383b393"
Archived-At: <http://mailarchive.ietf.org/arch/msg/nfsv4/BYnIMsVTVkTXP-Qj70D9YU-NvTU>
Cc: NFSv4 <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: Mon, 23 May 2016 15:00:45 -0000

I think the better alternative is to document the ambiguity and ask people
to live with it.  Version One's error handling is broken and it doesn't seem
as though it can be fixed without changing the XDR, and we've decided that
all
such changes are to bump the version number.

The idea is to ask the sender not to set the credit value and the receiver
not
to interpret it.

The problem with restricting when this is sent is that it assumes, that if
you receive a message, you can tell if it is a request or a reply.  For a
well-formed
message that can be determined, but the idea here is we are dealing with a
message that is so messed up  that you can't even XDR the transport header.

In we now look at section 5.5.2 and look at the examples there:

an invalid value in the rdma_proc field

Without that, you can't even parse the header so, you don't where to look
for the call/reply inidication.

an RDMA_NOMSG message that has no chunk lists

Here, there is no payload to look at.

or the contents of the rdma_xid field might not match the contents of
the XID field in the accompanying RPC message.

In this case, you can determine which you have.


On Mon, May 23, 2016 at 10:10 AM, Chuck Lever <chuck.lever@oracle.com>
wrote:

>
> > On May 20, 2016, at 3:15 PM, Chuck Lever <chuck.lever@oracle.com> wrote:
> >
> >
> >> 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).
>
> OK, this idea is growing on me.
>
> What do people think of updating rfc5666bis to restrict
> RDMA_ERROR to be sent only by responders? This would be
> for RPC-over-RDMA V1 only, of course.
>
> The reason to do this would be to eliminate the ambiguity
> of the meaning of the XID and credit value, due to the
> absence of an RPC message payload with a direction field
> in it.
>
> I'm not aware of any current requester implementation
> that can send an RDMA_ERROR message from its reply
> handler.
>
>
> > 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
> >
> >
> >
> > _______________________________________________
> > 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
>