[nfsv4] rfc5667bis open issues

Chuck Lever <chuck.lever@oracle.com> Thu, 22 September 2016 22:10 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 E987F12BA17 for <nfsv4@ietfa.amsl.com>; Thu, 22 Sep 2016 15:10:30 -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 Q-LYLKPqfnSq for <nfsv4@ietfa.amsl.com>; Thu, 22 Sep 2016 15:10:29 -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 3CFF612B9FE for <nfsv4@ietf.org>; Thu, 22 Sep 2016 15:10:29 -0700 (PDT)
Received: from userv0021.oracle.com (userv0021.oracle.com [156.151.31.71]) by userp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id u8MMAS5Q017133 (version=TLSv1 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for <nfsv4@ietf.org>; Thu, 22 Sep 2016 22:10:28 GMT
Received: from userv0121.oracle.com (userv0121.oracle.com [156.151.31.72]) by userv0021.oracle.com (8.13.8/8.13.8) with ESMTP id u8MMASAw006119 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for <nfsv4@ietf.org>; Thu, 22 Sep 2016 22:10:28 GMT
Received: from abhmp0007.oracle.com (abhmp0007.oracle.com [141.146.116.13]) by userv0121.oracle.com (8.13.8/8.13.8) with ESMTP id u8MMAQsx005885 for <nfsv4@ietf.org>; Thu, 22 Sep 2016 22:10:27 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:10:26 -0700
From: Chuck Lever <chuck.lever@oracle.com>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Message-Id: <15F62327-B73F-45CF-B4A5-8535955E954F@oracle.com>
Date: Thu, 22 Sep 2016 15:10:23 -0700
To: NFSv4 <nfsv4@ietf.org>
Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\))
X-Mailer: Apple Mail (2.3124)
X-Source-IP: userv0021.oracle.com [156.151.31.71]
Archived-At: <https://mailarchive.ietf.org/arch/msg/nfsv4/122bh6LyaO5plKTcc4RM_5brVTE>
Subject: [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:10:31 -0000

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.

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