Re: [nfsv4] rfc5667bis open issues

Chuck Lever <chuck.lever@oracle.com> Thu, 22 September 2016 22:36 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 1327012BFF6 for <nfsv4@ietfa.amsl.com>; Thu, 22 Sep 2016 15:36:40 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.518
X-Spam-Level:
X-Spam-Status: No, score=-6.518 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H2=-0.001, RP_MATCHES_RCVD=-2.316, SPF_PASS=-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 BqqsNDDzFzme for <nfsv4@ietfa.amsl.com>; Thu, 22 Sep 2016 15:36:38 -0700 (PDT)
Received: from aserp1040.oracle.com (aserp1040.oracle.com [141.146.126.69]) (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 A903712BFD2 for <nfsv4@ietf.org>; Thu, 22 Sep 2016 15:36:38 -0700 (PDT)
Received: from aserv0022.oracle.com (aserv0022.oracle.com [141.146.126.234]) by aserp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id u8MMabon030739 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for <nfsv4@ietf.org>; Thu, 22 Sep 2016 22:36:37 GMT
Received: from userv0122.oracle.com (userv0122.oracle.com [156.151.31.75]) by aserv0022.oracle.com (8.14.4/8.14.4) with ESMTP id u8MMabXK021163 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for <nfsv4@ietf.org>; Thu, 22 Sep 2016 22:36:37 GMT
Received: from abhmp0017.oracle.com (abhmp0017.oracle.com [141.146.116.23]) by userv0122.oracle.com (8.14.4/8.14.4) with ESMTP id u8MMaaUh002116 for <nfsv4@ietf.org>; Thu, 22 Sep 2016 22:36:37 GMT
Received: from [10.151.96.44] (/148.87.13.8) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Thu, 22 Sep 2016 15:36:36 -0700
Content-Type: text/plain; charset="us-ascii"
Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\))
From: Chuck Lever <chuck.lever@oracle.com>
In-Reply-To: <15F62327-B73F-45CF-B4A5-8535955E954F@oracle.com>
Date: Thu, 22 Sep 2016 15:36:39 -0700
Content-Transfer-Encoding: 7bit
Message-Id: <65E80EDE-6031-4A83-9B73-3A88C91F8E6A@oracle.com>
References: <15F62327-B73F-45CF-B4A5-8535955E954F@oracle.com>
To: NFSv4 <nfsv4@ietf.org>
X-Mailer: Apple Mail (2.3124)
X-Source-IP: aserv0022.oracle.com [141.146.126.234]
Archived-At: <https://mailarchive.ietf.org/arch/msg/nfsv4/c_gQVsxAt76YjqdDk7lqfi4Ztk8>
Subject: Re: [nfsv4] rfc5667bis open issues
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: Thu, 22 Sep 2016 22:36:40 -0000

> On Sep 22, 2016, at 3:10 PM, Chuck Lever <chuck.lever@oracle.com> wrote:
> 
> I'm preparing a new revision of rfc5667bis, and a couple of issues have
> arisen:
> 
> 1. Reporting RPC-over-RDMA decoding errors on NFSv4
> 
> The current text says the NFS server can return an RPC GARBAGE_ARGS
> reply, or an RPC-over-RDMA level ERR_CHUNK reply.
> 
> Does this count as a dropped RPC reply, such that an NFSv4 server
> would have to drop the connection?
> 
> When an NFS server returns one of these responses, does it have to
> enter the reply in its DRC ? What if any implications are there for
> an NFSv4.1 session (slot retired? ignored?)
> 
> 
> 2. Skipping Write chunks in an NFSv4 COMPOUND
> 
> The current text of rfc5666bis (Section 5.3.2) suggests that when
> multiple Write chunks are provided for an RPC, and the responder
> doesn't use one of them, it should use that chunk for the next
> DDP-eligible XDR data item.

The problematic text is actually this part of rfc5666bis:
 
4.4.6.2.  Unused Write Chunks

   There are occasions when a requester provides a Write chunk but the
   responder is not able to use it.

   For example, an Upper Layer Protocol may define a union result where
   some arms of the union contain a DDP-eligible data item while other
   arms do not.  The responder is REQUIRED to use requester-provided
   Write chunks in this case, but if the responder returns a result that
   uses an arm of the union that has no DDP-eligible data item, the
   Write chunk remains unconsumed.

   If there is a subsequent DDP-eligible data item, it MUST be placed in
   that unconsumed Write chunk.  The requester MUST provision each Write
   chunk so it can be filled with the largest DDP-eligible data item
   that can be placed in it.


> This could be a problem for READ_PLUS. The client has no way of
> predicting whether the server will return a CONTENT_DATA arm (which
> would consume a Write chunk) or a CONTENT_HOLE arm (which would not).
> 
> I think a better approach would be for the binding to specify that
> if a Write chunk is provided for a READ_PLUS operation, the server
> consumes that chunk:
> 
> - by returning CONTENT_DATA in that chunk
> 
> - by returning an empty chunk for CONTENT_HOLE
> 
> If the client provides an empty chunk in that position, the
> READ_PLUS result is returned inline.
> 
> Opinions?

--
Chuck Lever