Re: [nfsv4] [Technical Errata Reported] RFC8166 (6528)
David Noveck <davenoveck@gmail.com> Wed, 21 April 2021 11:47 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 43C463A226A for <nfsv4@ietfa.amsl.com>; Wed, 21 Apr 2021 04:47:33 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.097
X-Spam-Level:
X-Spam-Status: No, score=-2.097 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=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 SXu6aEyyWRhm for <nfsv4@ietfa.amsl.com>; Wed, 21 Apr 2021 04:47:28 -0700 (PDT)
Received: from mail-ej1-x630.google.com (mail-ej1-x630.google.com [IPv6:2a00:1450:4864:20::630]) (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 D80123A2267 for <nfsv4@ietf.org>; Wed, 21 Apr 2021 04:47:27 -0700 (PDT)
Received: by mail-ej1-x630.google.com with SMTP id l4so63016355ejc.10 for <nfsv4@ietf.org>; Wed, 21 Apr 2021 04:47:27 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=hHZtdgckUuoeXlDIbC9xPP5d725Iz4ET99NonmXv/IE=; b=HTl9ktLJXn1F4Kfpgpi0bc2gkCpYhBIVM/m08O39plDfVnmWCVNrBRIu7F+lq0RBre bW/XM0+/K1QN864vKf23seorsxSk1G98pTn/WrnWR7gWKStbqRPswXrJwCpH8Ct2qaWn WBSEooiR5ud+k7UCYcCMON7fNvNOKSTVARcHtyVCWZ/9Zf1j0eoME+vxq76uSN8OI6Oa ccKaruoSzl8hh+jhS9cuP0Prd17ICZkSW5+Rpx6y+jzL0lmD5K7r4zUp0M3LIwmQdIgj RoX6X2yVxIUs+xRWzJ5/4j8ecRAwhJNmFqsDwCSxbgma6JOAMyYjG547yE9CPDooZ4Lu ULTw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=hHZtdgckUuoeXlDIbC9xPP5d725Iz4ET99NonmXv/IE=; b=P4rIdQnO0mj3qN6+aR5cjduzjoTF5U/Gh8Z3R/AWDsFz8kcuLIwHUe882BHbaWUJ9l MyemPTmVxRUMhvf49+7tTZvqKY8P7JNpIHcJQXxVJxu9H7M8Z5khfeGzQWfOaCxEtUDQ 7+IanJOzu771+/0fXA5m99H0cmv0EQMWIG6Y7NSl97Ae7ri3SngbhH2Uoy1qG/8gNYhU pza38WJVUMZz3DhYEm4FlNUWXGv0uTe73B5/TT7tGiOevN5ZCNV2gSK7GTNOoSbfV0eH vMu3QuPNNM60zGPB75geAyrmmNRZLxf69FLP25GnjNnqGvoGPeQMVjSlEcYSvthtF/X9 NKug==
X-Gm-Message-State: AOAM531DnzIHRxPyOPwENinDFm08VepDNcJu/2SgkUJM7vOA/fdolPD9 hLIIQRrhb4qx1oTV0LXzPmTAmUFGTr6sdtt8wNHgAOsOcH0=
X-Google-Smtp-Source: ABdhPJz+NAIu95denbUkr0rvawWXYI1eY5iHjIy2PSmKKjZpE1ZL8PLjxTTTO0ra3yAjImupKKccPOidWBBiwwZBQe4=
X-Received: by 2002:a17:906:134d:: with SMTP id x13mr32694963ejb.61.1619005645289; Wed, 21 Apr 2021 04:47:25 -0700 (PDT)
MIME-Version: 1.0
References: <20210412164024.82CB8F4075A@rfc-editor.org> <A4A2576B-A0BD-4B29-B1C1-C5498AC938DC@oracle.com> <296b1959-4f6c-d24b-7eaf-d26f185bc5f2@talpey.com>
In-Reply-To: <296b1959-4f6c-d24b-7eaf-d26f185bc5f2@talpey.com>
From: David Noveck <davenoveck@gmail.com>
Date: Wed, 21 Apr 2021 07:47:14 -0400
Message-ID: <CADaq8jepeyp61ex_rCOy4=3vyTf16Tv=BdN4Ez1MMoTDHcybvw@mail.gmail.com>
To: Tom Talpey <tom@talpey.com>
Cc: NFSv4 <nfsv4@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000607bc605c07a204a"
Archived-At: <https://mailarchive.ietf.org/arch/msg/nfsv4/zIlO1yRq4iO2KzfhJoFQ3VjWsrI>
Subject: Re: [nfsv4] [Technical Errata Reported] RFC8166 (6528)
X-BeenThere: nfsv4@ietf.org
X-Mailman-Version: 2.1.29
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: Wed, 21 Apr 2021 11:47:33 -0000
On Tue, Apr 20, 2021, 11:37 AM Tom Talpey <tom@talpey.com> wrote: > On 4/20/2021 11:17 AM, Chuck Lever III wrote: > > Sorry for the delay, I wasn't sure where to begin further conversation > > on this errata. > > > > > >> On Apr 12, 2021, at 12:40 PM, RFC Errata System < > rfc-editor@rfc-editor.org> wrote: > >> > >> The following errata report has been submitted for RFC8166, > >> "Remote Direct Memory Access Transport for Remote Procedure Call > Version 1". > >> > >> -------------------------------------- > >> You may review the report below and at: > >> https://www.rfc-editor.org/errata/eid6528 > >> > >> -------------------------------------- > >> Type: Technical > >> Reported by: David Noveck <davenoveck@gmail.com> > >> > >> Section: 4.2.4 > >> > >> Original Text > >> ------------- > >> A Requester MUST NOT send an RPC-over-RDMA header with the RDMA_ERROR > >> procedure. A Responder MUST silently discard RDMA_ERROR procedures > > > > Stated as a co-author of this document, I agree that this text is > > problematic for version negotiation, which uses the RDMA_ERROR > > procedure/header type. > > > > One vote for "verified". > > > > > >> Corrected Text > >> -------------- > >> An RDMA_ERROR header cannot be sent without an assurance that, the > receiver > >> has posted a receive operation which its sending will satisfy. In most > cases, > >> this means that a Requester (i.e. one sending RPC Calls) MUST NOT send > an > >> RPC-over-RDMA header with the RDMA_ERROR procedure. Similarly, a > Responder > >> (i.e. one sending RPC Replies) MUST silently discard RDMA_ERROR > procedures. > > > > I don't recall that the issue that prompted the addition of the > > original text was the requirement for a posted Receive. That > > might be slightly revisionist. > > > > Though it is true sending an RDMA_ERROR when there is no Receive > > waiting will likely result in loss of connection, I think the > > typical scenario is that RDMA_ERROR is in response to a previous > > message; thus missing a Receive would be an implementation bug. > > Why is this particular RDMA_ERROR so important? It seems to me like > a ton of normative text for a version mismatch, which basically > should never happen. If we need to upgrade to v2, then we will have version mismatches. The spec as a whole devotes a lot of attention to version negotiation, Including requirements that certain structures and values be maintained as they are, for all r-o-r versions. If anything, changing "silently discard" to > "close the connection" would be just as appripriat. > No. That would be a substantive change which we cannot make via an errata. With the submitted errata we clarify the existing statement, and can move forward with such a basic change as you are suggesting. > Can someone motivate the scenario for me? > We have a number of weaknesses in v1, and we adopted your suggestions (thanks) to correct them in v2. To effect that transition effectively we need a workable version negotiation scheme. > > > "In most cases," is not appropriate with MUST/MUST NOT. We could > > stipulate that the exact cases where these requirements hold is > > when sending ERR_CHUNK. These requirements do not hold for ERR_VERS. > > I'll go further - "in most cases" isn't appropriate for a spec. > > Tom. > > >> However, in the case of providing an RDMA_ERROR headers containing an > error > >> code of ERR_VERS, such a schema is not realizable, since there is no > way for > >> a receiver who does not support a particular version, to determine > whether > >> an RPC Call or Reply is being sent, leaving the receiver uncertain as > to whether > >> it is being Addressed as a Requester or a Responder, leaving it unable > to > >> participate in version negotiation. > > > > The particular issue is that either: > > > > - the Sender of the message with the unsupported version might be > > using a procedure of the new protocol version that is not supported > > in the protocol version the Receiver supports, or > > > > - the Sender of the message with the unsupported version might be > > using a procedure that does not bear an RPC message or any other > > indication of message direction. > > > > Thus the Receiver would not be able to determine the direction of > > the incoming message. > > > > I'm not convinced that RFC 8166 Section 4.2 is an appropriate place > > to explain this reasoning. (Stating it here in the errata is OK). > > The above could be dropped in the Corrected text. > > > > > >> In the case of version errors, the > >> implementation is to rely on the assumption that forward direction > requests > >> are being done and reserve direction requests only done once the > version is > >> properly negotiated. > > > > Shorter: > > > > "For the purpose of version negotiation, the receiver is to assume > > that reverse-direction operation is started only once the connection's > > transport protocol version has been fixed using forward direction > > operations." > > > > One problem with this is that reverse-direction operation is defined > > in a separate RFC (8167). > > > > > >> As a result, such messages MUST NOT be sent by the > >> client and MUST be silently discarded by servers. > > > > I'd like to confirm that what the reporter intended in the second > > sentence above was "client" and "servers" and not "Requester" and > > "Responders". > > > > > >> Notes > >> ----- > >> Even if one feels that this is not an appropriate correction, the > existing text must be fixed somehow. In assuming that the terms Requester > and Responder can be used this way in this context is likely to result in > some implementers concluding that version errors can never be sent while > other might be unabble to coonclude that given the effort expended in the > spec to make such errors be interpretable by anf rpc-over-rdma version. > >> > >> Instructions: > >> ------------- > >> This erratum is currently posted as "Reported". If necessary, please > >> use "Reply All" to discuss whether it should be verified or > >> rejected. When a decision is reached, the verifying party > >> can log in to change the status and edit the report, if necessary. > >> > >> -------------------------------------- > >> RFC8166 (draft-ietf-nfsv4-rfc5666bis-11) > >> -------------------------------------- > >> Title : Remote Direct Memory Access Transport for Remote > Procedure Call Version 1 > >> Publication Date : June 2017 > >> Author(s) : C. Lever, Ed., W. Simpson, T. Talpey > >> Category : PROPOSED STANDARD > >> Source : Network File System Version 4 > >> Area : Transport > >> Stream : IETF > >> Verifying Party : IESG > > > > -- > > Chuck Lever > > > > > > > > _______________________________________________ > > nfsv4 mailing list > > nfsv4@ietf.org > > https://www.ietf.org/mailman/listinfo/nfsv4 > > > > _______________________________________________ > nfsv4 mailing list > nfsv4@ietf.org > https://www.ietf.org/mailman/listinfo/nfsv4 >
- [nfsv4] [Technical Errata Reported] RFC8166 (6528) RFC Errata System
- Re: [nfsv4] [Technical Errata Reported] RFC8166 (… David Noveck
- Re: [nfsv4] [Technical Errata Reported] RFC8166 (… Chuck Lever III
- Re: [nfsv4] [Technical Errata Reported] RFC8166 (… Tom Talpey
- Re: [nfsv4] [Technical Errata Reported] RFC8166 (… Chuck Lever III
- Re: [nfsv4] [Technical Errata Reported] RFC8166 (… David Noveck
- Re: [nfsv4] [Technical Errata Reported] RFC8166 (… Tom Talpey
- Re: [nfsv4] [Technical Errata Reported] RFC8166 (… Chuck Lever III
- Re: [nfsv4] [Technical Errata Reported] RFC8166 (… Tom Talpey
- Re: [nfsv4] [Technical Errata Reported] RFC8166 (… Chuck Lever III