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

Spencer Shepler <sshepler@microsoft.com> Fri, 20 May 2016 17:29 UTC

Return-Path: <sshepler@microsoft.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 D344012DA6F for <nfsv4@ietfa.amsl.com>; Fri, 20 May 2016 10:29:57 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.001
X-Spam-Level:
X-Spam-Status: No, score=-2.001 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=microsoft.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 v6oRVEBtRzhO for <nfsv4@ietfa.amsl.com>; Fri, 20 May 2016 10:29:53 -0700 (PDT)
Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1on0795.outbound.protection.outlook.com [IPv6:2a01:111:f400:fc10::795]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 02E5612DA73 for <nfsv4@ietf.org>; Fri, 20 May 2016 10:29:52 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=selector1; h=From:To:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=0ikU5SvsYTS06s+g0bhf2sOpSKP7bBMnnP7JeRyYZC4=; b=Hx+qtEjFdhfdIgpZQK1umKlxN6mWyATxKhma3+O/Iz5nyni+lEYNZbcVT7eIzLhZotC2qBamcBF7um1pwhG73V/VuY2tVIOh7d6HxsFQig99gqRxLWBLOHF8f0EGJ9rydIqps5ouABLeVtXd72xyf/ODPTpBZTEde1ThUHp1Xus=
Received: from CO2PR03MB2280.namprd03.prod.outlook.com (10.166.92.149) by CO2PR03MB2279.namprd03.prod.outlook.com (10.166.92.148) with Microsoft SMTP Server (TLS) id 15.1.497.12; Fri, 20 May 2016 17:29:35 +0000
Received: from CO2PR03MB2280.namprd03.prod.outlook.com ([10.166.92.149]) by CO2PR03MB2280.namprd03.prod.outlook.com ([10.166.92.149]) with mapi id 15.01.0497.019; Fri, 20 May 2016 17:29:35 +0000
From: Spencer Shepler <sshepler@microsoft.com>
To: David Noveck <davenoveck@gmail.com>, Chuck Lever <chuck.lever@oracle.com>
Thread-Topic: [nfsv4] review of draft-ietf-nfsv4-rpcrdma-bidirection-03
Thread-Index: AQHRpigm4srYO1IFUUWBFOR6DRDcLZ+qYqGAgBTMioCAABiigIAAA4kAgABSkACAAMb7gIAAG7qAgAGNSgCAABWVgIAACmOA
Date: Fri, 20 May 2016 17:29:34 +0000
Message-ID: <CO2PR03MB22802450204EBFEED410AF46C74B0@CO2PR03MB2280.namprd03.prod.outlook.com>
References: <CADaq8je6a-BQsRm9L4YuxXwaO=0qYJTcwN+HZHccuA6ASqd05w@mail.gmail.com> <21FD6EF7-0FC1-471E-91FA-11097F34F420@oracle.com> <60022BA0-08C0-4285-895C-289A03ACF570@oracle.com> <CADaq8jfyTAS67p7MvBw8kvmgTsOxpNkUZPrEmJhK2UkAX-hSYg@mail.gmail.com> <04C758B8-9EC2-4454-AB48-7E40625FF5C0@oracle.com> <CADaq8jfhjX3vgTGEvV5wo-Q0HnGEuKw_r8RG--kN3=iKpks6Ww@mail.gmail.com> <0F7724E9-3E4F-4651-8505-91B3DCA1D7A2@oracle.com> <CADaq8jeGtjpvWRwrc9csCrYSseJtCkr8QJd4SjU0E0r6TmTniw@mail.gmail.com> <9545B635-3BF3-4AE4-9735-11F035E8B35F@oracle.com> <CADaq8jdEA0xc9YQgfqHMB7m6chgj-XYA6YB+ByMunrQarfN1ZQ@mail.gmail.com>
In-Reply-To: <CADaq8jdEA0xc9YQgfqHMB7m6chgj-XYA6YB+ByMunrQarfN1ZQ@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: gmail.com; dkim=none (message not signed) header.d=none;gmail.com; dmarc=none action=none header.from=microsoft.com;
x-originating-ip: [2001:4898:80e8:f::48c]
x-ms-office365-filtering-correlation-id: 3bbf95d3-dc9c-4b3b-6a84-08d380d44fd9
x-microsoft-exchange-diagnostics: 1; CO2PR03MB2279; 5:UHaOFN1iPxvFc5y/jNKGcwdp1DCQGdSkZpfl1+mkB4N/zye5CsIHRchA+bX7XMOBbhOTCtZqCxZf8KAsQQUCIYk30jkir0nC0I8k73FHaBGO35oY5cT65287eZT+92n0LEV8chTQxG4CY1NhammqUw==; 24:vaAwoVpt0Zbj4mde8bxaJaT1lOd2u2YbZqr6B40+YcIrH3/nlBr01zDoNXl3qIgEJhCbRgWui0adBycquAWiC5MRwagwVEMEvPATq9bZA5c=; 7:BVvFKCcqeC8Oy0WSP+X8dxXO2Yr346RNS8YKK9BxYuHAGVs8uZRCOZxq8C5BCiPzQ7xk76aAnxJDnFlvUGrYGufvxpvUtj2C6BRiH7ZqshnxvDghJGZoybu9QoX/3gtrGMeGPNPm5vT/3jGSTdxwp8RobtzrrtWhaj5Hcw+qYcHZ1WaeQz4cTHXJpDwqqID/zk0e1w4GAm2C0CnfAg8yXQ==
x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CO2PR03MB2279;
x-microsoft-antispam-prvs: <CO2PR03MB2279D1CC74D1405D970A98AEC74B0@CO2PR03MB2279.namprd03.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:;
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(61425038)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6055026)(61426038)(61427038); SRVR:CO2PR03MB2279; BCL:0; PCL:0; RULEID:; SRVR:CO2PR03MB2279;
x-forefront-prvs: 09480768F8
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(24454002)(51444003)(377454003)(19580405001)(1220700001)(8990500004)(19580395003)(15975445007)(586003)(230783001)(74316001)(5001770100001)(19300405004)(77096005)(2950100001)(2900100001)(87936001)(5003600100002)(93886004)(6116002)(790700001)(102836003)(5008740100001)(50986999)(11100500001)(54356999)(76176999)(76576001)(19609705001)(5002640100001)(122556002)(189998001)(86362001)(81166006)(4326007)(8936002)(10290500002)(10400500002)(19617315012)(5005710100001)(16236675004)(92566002)(10090500001)(9686002)(8676002)(19625215002)(554214002)(3660700001)(33656002)(3280700002)(106116001)(5004730100002)(2906002)(3826002); DIR:OUT; SFP:1102; SCL:1; SRVR:CO2PR03MB2279; H:CO2PR03MB2280.namprd03.prod.outlook.com; FPR:; SPF:None; MLV:sfv; LANG:en;
spamdiagnosticoutput: 1:23
spamdiagnosticmetadata: NSPM
Content-Type: multipart/alternative; boundary="_000_CO2PR03MB22802450204EBFEED410AF46C74B0CO2PR03MB2280namp_"
MIME-Version: 1.0
X-OriginatorOrg: microsoft.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 20 May 2016 17:29:34.7169 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO2PR03MB2279
Archived-At: <http://mailarchive.ietf.org/arch/msg/nfsv4/JsWdmwtsPb4qVeMQva0f30eaacM>
Cc: "nfsv4@ietf.org" <nfsv4@ietf.org>
Subject: Re: [nfsv4] review of draft-ietf-nfsv4-rpcrdma-bidirection-03
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 17:29:58 -0000

Thanks for your opinion, Dave.  We will wait to ensure that no one else in the WG has comments.

Spencer

From: nfsv4 [mailto:nfsv4-bounces@ietf.org] On Behalf Of David Noveck
Sent: Friday, May 20, 2016 9:52 AM
To: Chuck Lever <chuck.lever@oracle.com>
Cc: nfsv4@ietf.org
Subject: Re: [nfsv4] review of draft-ietf-nfsv4-rpcrdma-bidirection-03

Works for me.

I think we can now (or at midnight) proceed to move these documents into WG Consensus state.

On Fri, May 20, 2016 at 11:34 AM, Chuck Lever <chuck.lever@oracle.com<mailto:chuck.lever@oracle.com>> wrote:

> On May 19, 2016, at 11:52 AM, David Noveck <davenoveck@gmail.com<mailto:davenoveck@gmail.com>> wrote:
>
> > It seems natural to me because, logically, you
> > can't have bi-directional operation without
> > backward direction operation.
>
> That's likely to be the case, but note that, you can't have bi-directional operation
> without forward direction operation either, and it somehow doesn't seem natural
> to identify forward and bi-directional operation.  I think logic does not have as
> much to do with this as you assume.
>
> > > If this is the case, then bidirectional protocols  do not currently exist but might be defined in the future.
>
> > I agree with that.
>
> Yes, but it seems we disagree about whether they currently exist because we use the word "protocol" in
> different ways.  This is not a big problem right now but I'm worried about a situation in which two of the
> documents that NFSv4 implementers refer to use such a basic term in such different ways.


The language in Section 7 of -03 was indeed problematic.
It contradicted, for example, our long-standing claim
that RFC 5667 is missing DDP-eligibility statements for
callback operations. (I think part of the reason for
the problematic language was the desire to grandfather
NFSv4 callback operations into existing RFC 5667 language,
and perhaps that is not consistent with what has been
written and discussed so far).

I've rewritten Section 7:


7.  Considerations For Upper Layer Bindings

   An Upper Layer Protocol that operates on RPC-over-RDMA transports may
   have procedures that include DDP-eligible data items.  DDP-
   eligibility is specified in an Upper Layer Binding.  Direction of
   operation does not obviate the need for DDP-eligibility statements.

   Backward-only operation requires the client endpoint to establish a
   fresh connection.  The Upper Layer Binding can specify appropriate
   RPC binding parameters for such connections.

   Bi-directional operation occurs on an already-established connection.
   Specification of RPC binding parameters is usually not necessary in
   this case.

   For bi-directional operation, other considerations about sharing an
   RPC-over-RDMA transport with another ULP may apply.  Consult
   Section 7 of [I-D.ietf-nfsv4-rfc5666bis] for details about what else
   may be contained in an Upper Layer Binding.


Hopefully that addresses your concerns about conflating
backward direction and bidirection, and issues with the
use of the term 'Upper Layer Protocol.'


> On Thu, May 19, 2016 at 10:13 AM, Chuck Lever <chuck.lever@oracle.com<mailto:chuck.lever@oracle.com>> wrote:
> Hi Dave-
>
>
> > On May 18, 2016, at 10:21 PM, David Noveck <davenoveck@gmail.com<mailto:davenoveck@gmail.com>> wrote:
> >
> > > How do we define Upper Layer Protocol? An Upper Layer
> > > Binding applies to an Upper Layer Protocol, which is
> > > defined as a distinct RPC Program and Version. See
> > > Section 7 rfc5666bis:
> >
> > I think it would be helpful if the defnition of "Upper Layer Protocol"
> > matched the way the word "protocol" is normally used.  And NFSv4.1
> > is, quite reasonably, described as a protocol, and not as a set of
> > two protocols described alongside one another.
>
> But we do make a distinction between NLM, NFSACL,
> MOUNT, NSM, and NFS protocols, referring to NFS
> as the "main protocol" and the others as "side-band
> protocols."
>
> In NFSv4.0, forward operation and callback are
> always used on distinct connections, and they have
> distinct RPC Program numbers and separate XDR
> definitions. Forward operation can occur without
> a callback channel. Are those considered one
> protocol, or two?
>
> Is NFSv3 the same ULP as NFSv4.0 or NFSv4.1? If so,
> why are there separate discussions in RFC 5667 for
> v3 and v4.0, and why are we not attempting to claim
> that RFC 5667 or rfc5667bis are normative for all
> future versions of NFS?
>
> Thus I don't consider the colloquial usage of the
> term 'protocol' to be adequate in this context.
>
>
> > > RFC 5661/2 define two separate RPC Programs, thus
> > > separate ULBs are needed, according to rfc5666bis.
> >
> > > This is the way the I-Ds are written now. I am
> > > willing to entertain alternatives.
> >
> > OK.  First of all it might be stated that when two separate RPC
> > programs are defined together and used together as a  single protocol capable of bidirectional operation, they can be
> > considered as a single protocol with a ULB,covering both
> > directions of operation.
>
> Except that last time I included a mention of call
> direction in rfc5666bis, you objected to that. :-)
>
> I still prefer the way rfc5666bis is written now.
> It is unambiguous about what needs to have a
> Binding. The boundaries defined by Program and
> Version number are historical, simple to
> understand, and well-defined.
>
> (And, this is a valuable conversation, since we
> as a WG should be striving to get this right).
>
>
> > > I don't see how backward-only and bidirectional operation
> > > are addressed separately, except for the separate definitions
> > > in Section 2.
> >
> > The introduction to the subject defines forward operation,
> > backward operation, and bi-directional operation, all on the
> > same level, as the three classes of RPC directionality.
> >
> > > Can you give other examples of where they are
> > > separately treated?
> >
> > No I can't and part of the reason is that,  in most contexts, you are talking about a request or response that part of a forward or backward RPC.  there are no bidirectional RPC's even though there are (or may be) bidirectional protocols.
> >
> > It is quite natural in the context to treat backward an bidirectional
> > together.   The issue is that if you introduce these three classes and then choose to treat two of them together, you need to tell the reader
> > that you are gong to do so.  You may think it is natural and obvious to treat these together but you can't assume the reader will
> > naturally share that view, given he has been told that these are separate things.
>
> It seems natural to me because, logically, you
> can't have bi-directional operation without
> backward direction operation. I can review the
> text with your comment in mind, however.
>
> Besides the sentence you proposed in Section 7,
> are there other places in the document where I
> should add "and bi-directional" or its equivalent?
> I'm open to suggestion.
>
>
> > Of course,, we now have to deal with the irony that arises from the fact that you originally began this work to enable the NFSv4.1 protocol to operate bidirectionally, and having done that, you have (magically :-) made the NFSv4.1 protocol disappear  and with it bidirectional operation.  If I understand your position correctly, we now no longer have a single protocol operating bidirectionally.
>
> When it is broken down, the RPC transport, not the
> protocol, operates bi-directionally. For example:
>
> A "uni-directional" protocol such as NFSv3 or NLM
> can be used bi-directionally, if two connection
> endpoints act as both clients and servers.
>
> NFSv4.1 implementations can set up distinct and
> separate connections for forward and backward
> operation. In that case, no bi-directional
> operation is occurring on either connection (after
> the BC2S operation on the callback connection).
>
>
> > Instead, we have one ULP operating in the forward direction and another ULP, defined alongside it, operating in the backward direction.
>
> In addition, the set of procedures that may be used
> in the forward direction and the set of procedures
> that may be used in the backward direction are
> disjoint.
>
>
> > If this is the case, then bidirectional protocols  do not currently exist but might be defined in the future.
>
> I agree with that.
>
> What the I-D creates is the ability to send RPC
> requests in both directions on a transport. How
> ULPs use this capability is rather up to them.
>
>
> > > > > How about: Before any operation can flow in either
> > > > > direction, it MUST be covered by a DDP-eligibility
> > > > > statement.
> >
> > > > OK, except for the "MUST".
> >
> > > It's the same MUST that applies to other ULPs, stated
> > > in rfc5666bis Section 7.
> >
> > It is the same word but it is not used in the same way:
> >
> > There are the only three uses of "MUST" in section 7:
> >
> > Senders MUST NOT reduce data items that are not DDP-eligible.
> > In the first case, a responder MUST NOT process the Call message.
> > Both types of violations MUST be reported as described in Section 5.5.2.
> > These are all straightforward directions to implementers.
> >
> > I know there is uncertainty/dispute about whether RFC2119 terms are appropriately directed to spec authors.
> >
> > I found your statement above troubling in that it tied an implementation-level event together with a specification level event.
>
> Oh, I see. "MUST be covered by a DDP-eligibility
> statement" is directed to spec authors, not to
> implementers, thus an RFC 2119 term is not
> appropriate. Got it.
>
>
> > On Wed, May 18, 2016 at 5:25 PM, Chuck Lever <chuck.lever@oracle.com<mailto:chuck.lever@oracle.com>> wrote:
> >
> > > On May 18, 2016, at 5:13 PM, David Noveck <davenoveck@gmail.com<mailto:davenoveck@gmail.com>> wrote:
> > >
> > > > Where is "bi-directional operation declared out of scope?"
> > >
> > > I agree that it doesn't say that.
> > >
> > > > Section 1 appropriately says that an NFSv4.x Upper Layer
> > > > Binding is out of scope. It says nothing about
> > > > bi-directional operation of RPC-over-RDMA
> > >
> > > Note that this comment was made in the context of section 7 which concerns itself with ULBs and section one does say that the ULB for the only protocol that supports bidirectional operation is out of the scope of this document.  I agree that that is a valid statement, BTW.
> > >
> > > > If needed I
> > > > can clarify Section 1.
> > >
> > > I think the clarification I am looking for is one that says where the ULB will be provided, rather than where it is not provided.
> > > This could be an informative reference to rfc5667bis or a simple statement that the issue is addressed in section 7.
> > >
> > > > >> I'm going to propose changes assuming that the necessary material will be added to this section, although a separate section is possible.
> > >
> > > > A separate section for what?
> > >
> > > A separate section for ULBs for bidirectional operation, as opposed to the existing section for backlward operation.
> > >
> > > We both agree that this is undesirable, but I need to answer your question.
> > >
> > > > I guess I don't understand why backward operation by
> > > > itself is any different than backward operation on
> > > > the same transport as forward operation.
> > >
> > > The question is whether backward operation of a single protocol is different from bidirectional operation of a single protocol.  I don't think it is any different but given that this distinction is made, it needs to be made clear that the same ULB rules apply to both.
> > >
> > > >> Suggest changing the section title to "Upper Layer Binding for Backward Direction and Bi-directional Operation"
> > > >> Suggest adding the following new sentence to the end of the first paragraph:
> > > >> This applies to both backward direction and bi-directional operation.
> > >
> > > > I don't understand why you believe this is necessary to
> > > > state here.
> > >
> > > I don't know that it is necessary but I do think it would helpful.
> > >
> > > In many places you make the distinction between backward and bi-directional operation, so it would helpful, if this section is to cover both, to state that it does cover both.
> > >
> > > > OK but: don't NFSv4.1 callback operations also use a
> > > > different RPC program than NFSv4.1 forward channel
> > > > operations?
> > >
> > > Yes they do.
> > >
> > > > Since there is a separate XDR definition,
> > > > and a unique RPC Program number, that makes these two
> > > > separate and distinct RPC Programs
> > >
> > > They are distinct but they  are not separate.  They function as a
> > > single protocol.
> > >
> > > RFC5661 does not say it describes two protocols.  It says it describes a single protocol, NFSv4.1, which operates in both directions.
> > >
> > > >  (and thus are
> > > > different ULPs), IMO.
> > >
> > > I don't think it is actually your opinion that forward and backward direction NFSv4 operations are part of two separate protocols.  If it is, this is a very new opinion.
> >
> > How do we define Upper Layer Protocol? An Upper Layer
> > Binding applies to an Upper Layer Protocol, which is
> > defined as a distinct RPC Program and Version. See
> > Section 7 rfc5666bis:
> >
> > > Each RPC Program and Version tuple that utilizes RPC-over-RDMA
> > > Version One needs to have an Upper Layer Binding specification.
> >
> >
> > RFC 5661/2 define two separate RPC Programs, thus
> > separate ULBs are needed, according to rfc5666bis.
> >
> > This is the way the I-Ds are written now. I am
> > willing to entertain alternatives.
> >
> >
> > > > So what is the essential difference we want to call out
> > > > here? Thinking aloud:
> > >
> > > > If a backward-only ULP is defined by itself, it has to
> > > > have a statement, even a simple one, about DDP-eligible
> > > > data items.
> > >
> > > Right, but my concern about section 7 was that it seemed that was the only case that was addressed there and, as I read it, bidirectional operation was not addressed.
> >
> > I don't see how backward-only and bidirectional operation
> > are addressed separately, except for the separate definitions
> > in Section 2. Can you give other examples of where they are
> > separately treated?
> >
> >
> > > > If a backward-only ULP is defined along side a forward
> > > > only ULP, it can fall back on the default DDP-eligibility
> > > > stated in rfc5666bis (or the equivalent normative
> > > > standard that specifies the RPC-over-RDMA version that
> > > > is being used).
> > >
> > > Yes, but as the bidirection docment is now, you also have to make provision for the non-default case, in which there might be backward DDP-eligible items.
> > >
> > > So I guess you are saying, and it might even be your opinion that forward and backward direction are two protocols, described "alongside" one another.  If that's your opinion and you want to say it that way OK, but it might be confusing to people.  If you are going to adopt that usage, you should make it clear by citing the case of NFSv4.1, that that is what you mean.
> > >
> > > > If a ULP defines operations that can flow in either
> > > > direction, then what? Note: we don't have one of these
> > > > yet, AFAIK.
> > >
> > > In that case, the ULB is responsible for defining DDP-eligibility for transmission in both directions.
> > >
> > > there isn't a case yet, but neither is there a case of backward direction chunks.   This sort of spec needs to address these kinds of future possibilities the best that it can.
> > >
> > > Fortunately, in this case, that isn't all that hard.
> > >
> > > > I don't see why these distinctions are necessary.
> > >
> > > They aren't necessary, but they have been made and given that they have been made, you have to deal with the consequences of having made them.
> > >
> > > In this case, if you want to treat bidirectional and backward direction operation the same, from the ULB viewpoint, you have to state that that is what you are doing.
> > >
> > > > How about: Before any operation can flow in either
> > > > direction, it MUST be covered by a DDP-eligibility
> > > > statement.
> > >
> > > OK, except for the "MUST".
> >
> > It's the same MUST that applies to other ULPs, stated
> > in rfc5666bis Section 7.
> >
> >
> > > > If there is an associated forward-only ULP that already
> > > > has a binding, the backward operations are covered by
> > > > that binding (meaning: if the backward operations are
> > > > not mentioned, they have the default DDP eligibility).
> > >
> > > I guess that works but I think that you are adding confusion
> > > by trying to treat NFSv4.1 as two protocols.  If you want to do
> > > that, you need to make clear, in the introduction if necessary,
> > > that that is what you are doing
> > >
> > >
> > >
> > >
> > >
> > >
> > > On Wed, May 18, 2016 at 3:44 PM, Chuck Lever <chuck.lever@oracle.com<mailto:chuck.lever@oracle.com>> wrote:
> > > Hi Dave-
> > >
> > >
> > > > On May 5, 2016, at 10:07 AM, Chuck Lever <chuck.lever@oracle.com<mailto:chuck.lever@oracle.com>> wrote:
> > > >
> > > >
> > > >> On May 4, 2016, at 1:10 PM, David Noveck <davenoveck@gmail.com<mailto:davenoveck@gmail.com>> wrote:
> > > >>
> > > >> 7.  Backward Direction Upper Layer Binding
> > > >> The basic problem in this section is that it concerns itself with ULBs for the backward direction case while the more important case of bidirectional operation is not explicitly addressed (except in 1.  Introduction) where it is declared out-of-scope).
> > >
> > > Maybe mark it up to my progressing years, but as I'm
> > > looking back at these comments, I find that I don't
> > > understand them at all.
> > >
> > > Where is "bi-directional operation declared out of scope?"
> > > Section 1 appropriately says that an NFSv4.x Upper Layer
> > > Binding is out of scope. It says nothing about
> > > bi-directional operation of RPC-over-RDMA. If needed I
> > > can clarify Section 1.
> > >
> > >
> > > >> I'm going to propose changes assuming that the necessary material will be added to this section, although a separate section is possible.
> > >
> > > A separate section for what?
> > >
> > > I guess I don't understand why backward operation by
> > > itself is any different than backward operation on
> > > the same transport as forward operation.
> > >
> > >
> > > >> Suggest changing the section title to "Upper Layer Binding for Backward Direction and Bi-directional Operation"
> > > >> Suggest adding the following new sentence to the end of the first paragraph:
> > > >> This applies to both backward direction and bi-directional operation.
> > >
> > > I don't understand why you believe this is necessary to
> > > state here.
> > >
> > >
> > > >> Given Chuck's choice regarding how to deal with this issue, I suggest rewriting the third paragraph as follows:
> > > >> By default, no data items in a ULP are DDP-eligible.  If there are no DDP-eligible data items to document, the specification of DDP-eligible items need not be part of the Upper Layer Binding for an Upper Layer Protocol that operates only in the backward direction.
> > >
> > > That's my recollection as well.
> > >
> > >
> > > >> I suggest adding a new paragraph after the existing third paragraph, reading as follows:
> > > >> An Upper Layer Protocol that operates on RPC-over-RDMA transports and incorporates operation in both  directions may have DDP-eligible data items for transfers in either or both directions.  All of these are specified in an Upper Layer Binding document, as they would be for a protocol which only operates in a single direction. This applies even when, as in the case of NFSv4. the XDR is constructed so that each direction of operation is defined as part of a separate XDR program.
> > >
> > > OK, but: don't NFSv4.1 callback operations also use a
> > > different RPC program than NFSv4.1 forward channel
> > > operations? Since there is a separate XDR definition,
> > > and a unique RPC Program number, that makes these two
> > > separate and distinct RPC Programs (and thus are
> > > different ULPs), IMO.
> > >
> > > So what is the essential difference we want to call out
> > > here? Thinking aloud:
> > >
> > > If a backward-only ULP is defined by itself, it has to
> > > have a statement, even a simple one, about DDP-eligible
> > > data items.
> > >
> > > If a backward-only ULP is defined along side a forward
> > > only ULP, it can fall back on the default DDP-eligibility
> > > stated in rfc5666bis (or the equivalent normative
> > > standard that specifies the RPC-over-RDMA version that
> > > is being used).
> > >
> > > If a ULP defines operations that can flow in either
> > > direction, then what? Note: we don't have one of these
> > > yet, AFAIK.
> > >
> > > I don't see why these distinctions are necessary.
> > >
> > > How about: Before any operation can flow in either
> > > direction, it MUST be covered by a DDP-eligibility
> > > statement.
> > >
> > > If there is an associated forward-only ULP that already
> > > has a binding, the backward operations are covered by
> > > that binding (meaning: if the backward operations are
> > > not mentioned, they have the default DDP eligibility).
> > >
> > >
> > > --
> > > Chuck Lever
> > >
> > >
> > >
> > >
> > > _______________________________________________
> > > nfsv4 mailing list
> > > nfsv4@ietf.org<mailto:nfsv4@ietf.org>
> > > https://www.ietf.org/mailman/listinfo/nfsv4<https://na01.safelinks.protection.outlook.com/?url=https%3a%2f%2fwww.ietf.org%2fmailman%2flistinfo%2fnfsv4&data=01%7c01%7csshepler%40microsoft.com%7cd0d8d162cc3746acfd4908d380cf139d%7c72f988bf86f141af91ab2d7cd011db47%7c1&sdata=%2fonEjqwWqYZEnE9eaRUZ1bCYi8fwuj7WURzT9fDDSxQ%3d>
> >
> > --
> > Chuck Lever
> >
> >
> >
> >
>
> --
> Chuck Lever
>
>
>
>
--
Chuck Lever