Re: [nfsv4] AD review: draft-ietf-nfsv4-delstid-03

Thomas Haynes <loghyr@hammerspace.com> Tue, 19 March 2024 00:33 UTC

Return-Path: <loghyr@hammerspace.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 873AAC1519AC; Mon, 18 Mar 2024 17:33:58 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.76
X-Spam-Level:
X-Spam-Status: No, score=-5.76 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, HTML_MESSAGE=0.001, RCVD_IN_BL_SPAMCOP_NET=1.347, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H2=-0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=hammerspace.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id We4srRWorW1W; Mon, 18 Mar 2024 17:33:54 -0700 (PDT)
Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2133.outbound.protection.outlook.com [40.107.223.133]) (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 40A76C1D61E8; Mon, 18 Mar 2024 17:33:14 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TqQunsyh6RY4BhQVefBb51w2Rtch7UhKankU+NAuP4/GRZDn6l85nWBA47TPsglvJgEivrbhBk2iDW+d1/n0eEtp/i8WyaM0PzPEtll385Qt3thT1RvaiaHyz8SZa1D4GLVhS7FsgYnif/NZH/y1TDRzFgdPJqMuzAEKWSQpnEII6rbcbc6I4VLkmcJh+098TsaOXtAgXyxRHC8DJ2NWqheOU7PLzsjK9g1ztiiR1IZsa5iJvCMzCaPBE+S5RtLmLycIcI5JFzZXerf54AV1lkffwSC1OwuwQS+69HgTirRtcu0O4RjTIaMtJlqUenvm2+9c9SU93+5rUKqZSWpK8Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=kz+JbqPnNxUhEnFrl+RT9aj5zkIkEtCCBDjf987efG4=; b=T4XJcQTwo9b44pYxn4dXvqurHvnwcBoaB6osu4Lppouadcg/9Tt0lQFNvVAxijaTIkLxnANkH5dORfdrkTW7NfxwHunAvpfyhSKPhSFOba7Qysg95ygxgL/f2s5A8j+2crvUTQRrWRqcB3kviMdbER5zwI7bzUXkUVlE6bgCKQrLCisWADzoDV3J+h9/X8tdBRV1fmkCS18x8sojo2yRvApb8JHXqFhCjiuDKoDoowHdUKWJxXNNU8PxX8QIWV/ua2FSe/D5wBpNsDrifWtg9RaD38RC/X7vexm9w4ovvcqgGIetDc7+mP8BX/pNh8820TVo4pKbTGDL/W1VSMTo+A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=hammerspace.com; dmarc=pass action=none header.from=hammerspace.com; dkim=pass header.d=hammerspace.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hammerspace.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=kz+JbqPnNxUhEnFrl+RT9aj5zkIkEtCCBDjf987efG4=; b=QfpDkbvwpBsAaELUiH/TJg1BlnJv352ek8FLtpHjsn5dHl+1+2ZEmPq8KLnll4RMQVMae30Yq17fXYf3Gtd/OHNbsOEzk6zRAhjYv58ce8SuuHJf1vwNyhhQXVnEpNplVfFb/sD8AZtoG86ZscP1vdVKcnFpChuQ+mdx5cmV5FQ=
Received: from BY5PR13MB3748.namprd13.prod.outlook.com (2603:10b6:a03:22b::17) by LV8PR13MB6549.namprd13.prod.outlook.com (2603:10b6:408:1e6::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7386.26; Tue, 19 Mar 2024 00:33:09 +0000
Received: from BY5PR13MB3748.namprd13.prod.outlook.com ([fe80::43a3:f5c8:bec7:434d]) by BY5PR13MB3748.namprd13.prod.outlook.com ([fe80::43a3:f5c8:bec7:434d%3]) with mapi id 15.20.7386.025; Tue, 19 Mar 2024 00:33:09 +0000
From: Thomas Haynes <loghyr@hammerspace.com>
To: Zaheduzzaman Sarker <zahed.sarker.ietf@gmail.com>
CC: NFSv4 <nfsv4@ietf.org>, "draft-ietf-nfsv4-delstid.all@ietf.org" <draft-ietf-nfsv4-delstid.all@ietf.org>
Thread-Topic: AD review: draft-ietf-nfsv4-delstid-03
Thread-Index: AQHZ93jV4eU6KSkWeUu2s1jhaEmubw==
Date: Tue, 19 Mar 2024 00:33:09 +0000
Message-ID: <025CEDB8-CAE9-4525-AFA8-1F892B60F46A@hammerspace.com>
References: <CAEh=tcf3D5WbmtdzLNW-vrvrcAcMtOT26mwsYOfugt7y05irsg@mail.gmail.com> <64AF7843-A856-4558-891D-E51C3762D5D1@hammerspace.com>
In-Reply-To: <64AF7843-A856-4558-891D-E51C3762D5D1@hammerspace.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3774.400.31)
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: BY5PR13MB3748:EE_|LV8PR13MB6549:EE_
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: vOO5jkEXFxqERCKxJcfzEnw/r80pxaAN2pLPdOaqT5iiLtsK8B0Ghyi9pux4s7A2T5crQsTKXfS4dVU6zSs5hLErDU+6NaCCSWxEwbUa1sincQTiuYwx9n7VNR3jSUWblFP9nvupoV3W0ITwyeazBmBM5fvu5lG+TsyUw938AZNMsEGSNIhDWMI87LZ0U0EI2c+PJ/RCfd1VHyuIH8HBkE99RCd+I43N1s8LGtm5Holz89XN1g2+oijnyV6X7+hKHQS8XxBEjtro50wKRjvNLQHLTv7CKCUP6SVqjndZ38zmPqC3cPysrKg4v1jiHVacAevyX+VLlhBQc0X+FkZO7xq0kRlSDGK+P1pZasr9HADevFvKyVSxO9pTk1m8Al2jc+MLEcyf8r1JxwpEz0g2BdGfTo3y02Y868DQDuxYNyKTgXC02shvnPTbcSNvFEswfa4hyCKj2J1cCoAEFdA7oyi5EmHYe0keQpPJhQ25jxVwaupxFjgbA4fs/sC0ZYtwouSM1rG7ltf5zwekJbEU5U1EOqa3U3cBJP/+j1jkUhFO3my93qWmA/fIzRHOZa6RnIiYAjeHP7DhdkTDhUjM+Mg1dIVxwlk7ZcHIPHRUyN0=
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BY5PR13MB3748.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(1800799015)(376005)(366007); DIR:OUT; SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: bxdaTI8SL0k+uuuE/BglP/ZZUivqJGsFOxw/HSEMV7KvrtJu6uqAfW7jdrRDf8YedSoxS6RD0ECNHM9qMORChUVrquHQ3PvwGwxY9HWR0Fy4hHQ9ar/wWXQ1IAN+Pqhc1kiAcl2EM8G4YN5IReAVgoDOyEC7UwNq3rIR0e8CVH41dZWHZ0fPh0UNmnNgySxeCEfza4ttPNMpxE1Wn0g7DXuNReHt9MJE2MMnvDl5FBYJimroxaMzR4W2gdAEWYdgwgIBWbpMgPK1ybNpORvXJPLqX5LaSXQoTZMhwsyhteuo/TQ1Q/9gZMMH/MARP26jzIf/JLVhib9s1K/bIaYgH8QsyOTdf9mAe6la3e2oPmb32cVA0Nd4gWEkrn7OfYWv8BNWQGHilgIjk8lNWZnPirVkhF5nf2++N+ShdUHn7dRN3QUuL0U330s+xjG+v37x4aYNmlpv614j5fdoVTRnlY0ERZjANO1KyGjBVnnuhEg9AQof43tm/PvzCAHKWxOXjsbwURQCZjOQh5PP4qhpMVFVSNtlQVSquVIBtD/+NPQrwQ3W02NE/H51s05iSw9pWEfklXGRspxSu9T4dnzvP+5uGSde0vD1yBrNUOWz3DTGsrjl/FyLRO1kLVAAgeep9lSxZEk1Q6chYpisxSNbwEnr+qk6zZYYEQ4Z+c4PQ5o8xMM4o62RGQQSSQec7s8AQIxd5btgCcVV73IvwCwwWdjVvMmJpDcXWuRaigtwHRWD1xWdq/G9mjUTrwrKu4+oZ9GZKS2g+ByNVFW6VNDEDQLk02d1Wn+fly5YxRP9Nh4ue+Zd5NCHUqoRcBW2EEP7daFI616ZOkztEvckW5VxEOQsDe5Nkk2HWlDDysnVOqp7PW03gULSxs0iZ09kpQ6TgR7KP7Krh2FyFZF9kSmCXIxs0Xg+PJC2ZLXillNpZEWcHdnYWhtls6Sp0ohLfMuIJtaZMnG+Rp/zi7a4z8rmvNAaaq//yAPKfVDSPCeWcuwIeqODmPePUd4rYktV0IoiV710n2XO6h0umUf+R3AODjhWxOKKWyQWZOR8fUf7DrCJg1j0m5CyWbjA0HI05HJVGlW0ZQRQWn1MBQ9wXnfM1z01ZDPcL/QBzO2R32kXHmUu6cHWv60g+Z3nbaYwHKAvX7PfPvYe2zBtMrGhPc4fYU1ixY4lD82mhIuWgcQqJy5fEq8DIjz+9WuRu7BZn0DldnZpKGf5M8U1sdyONMTIQQbUm1gT5YMPxCLxJcwW0OGnrOKqm7aWBCp7twbJ45k3/bjtCRxO4LGmTvOmecSxboeH6j4f7d+FYi/Ptc7pRNesc9zL0lHj4SHK1UMHWLuhT8s9LwXEa1+HGnetsjSDHIV/iGDhIMXSh64nuOAPWE5Ig1FasUEPOBdBKFLf98qprtcy0NAgPZKLKeCF1/aL10/DpZU+zMPEm3qGsUIayQpgIAAEhtjweZwNykf/viwloy5nPO+4ssYTFCsesCjMyIa+0eJkX2lBpx6a9aTyHPPQmRW964xxTl4MqLpY/sLz9gkOa+vL9llDoID+IFLdvqw13q3HjfpgfQimgbLOt+ZEKjZRBJjjg0+eTtnChMombvrXMJd12yUkrJVjwbwrrOzZD9/0o7ghAD8X0PRYtCS0uof8ziazkkrG/l9EctlcSGYxbGy3EeTX9O+1fF/TGQ==
Content-Type: multipart/alternative; boundary="_000_025CEDB8CAE94525AFA81F892B60F46Ahammerspacecom_"
MIME-Version: 1.0
X-OriginatorOrg: hammerspace.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BY5PR13MB3748.namprd13.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1ba2c32b-28ba-44ac-2e66-08dc47ac2701
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Mar 2024 00:33:09.3762 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 0d4fed5c-3a70-46fe-9430-ece41741f59e
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: Q8zSNFGEWDe9uKBsyy/ivcz1PM9TajLE5/dyM0TD8GMchyeQj3FDGdh1D40AdlgpsbfEzcnYZ+emdsl4l4BZKw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR13MB6549
Archived-At: <https://mailarchive.ietf.org/arch/msg/nfsv4/CddVqk7-jLrYNMnrWMacG3pIux0>
Subject: Re: [nfsv4] AD review: draft-ietf-nfsv4-delstid-03
X-BeenThere: nfsv4@ietf.org
X-Mailman-Version: 2.1.39
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: Tue, 19 Mar 2024 00:33:58 -0000

The first pass was on Nov 7th, the second pass was today.

Note that during the first pass, I rearranged the sections as suggested at one point. As such, when asked where something is, I will either state the section name or point to the next version of the draft.


On Oct 5, 2023, at 3:43 AM, Zaheduzzaman Sarker <zahed.sarker.ietf@gmail.com> wrote:

Hi all,

Now I have done my AD review of draft-ietf-nfsv4-delstid-03. I think this document needs some rewrites and clarifications before we can proceed further. See my comments below.

Comments :

# We need a section describing what are we updating in a nutshell. The way it is now written makes it is extremely difficult to understand what has been modified/amended/updated compared to RFC 8881.

# Please clearly mention that this specification will update RFC8881 in the abstract.

Does not this provide that?

  This document presents several extensions to RFC8881for both the opening and delegating of the file to the client.

Or do you want:

  This document updates RFC8881 by extending both the opening and delegating of the file to the client.


A broader issue I have with this (which I think you address later), is whether this document really updates RFC8881 in the sense that the updates tag In the <rfc> means?

PASS 2: I spoke with the RFC Editor and we agreed to the use of extends and not updates.



# Why are we defining delegation and stateid again here? What is the change in the definition that requires the redefinition ? Can't we use what is defined in RFC8881?

I agree with stateid.  I can’t find a short definition of delegation in Sec 1.7 of RFC8881.

My question is whether this document is supposed to stand on its own for legibility or assumes the reader has the time to go to RFC8881 to learn terms?

PASS 2: Will assume reader can go to RFC8881.



# Proxy definition : does this mean the client is proxying to itself? Can this proxy be somewhere in the network between the client and server. RFC8881 states server could also act as proxy hence this proxy definition needs to be clear about who can be proxy. I would also like to understand the difference between delegation and proxying.



The client is the proxy.

A delegation grants the client the right to be the proxy.

In terms of the definition I provided, the delegation establishes the authority to proxy.

PASS 2: Actually, in retrospect, I think we are trying to differentiate between delegation as defined in RFC 8881 and here. We could remove the term proxy altogether and state that we have modified what can cached on the client. However,  the key difference between delegate and proxy is that the delegated metadata is never passed back to metadata server and the proxied metadata is passed back.

# I would strongly suggest to define/describe "offline files". I have hard time understanding of a file being offline from whos perspective? Will a file be considered offline if the client for some reason cannot access the cloud storage or is this only about archived files?


Added a definition.


# Please explain or describe the code blocks, otherwise they seems to come out of nowhere and does not fit themselves well in the sections.

# I think we should gather all the new flags defined in one section or sub-section and describe them. This will also help to see what are we updating.


PASS 2: This is in contradiction as to how we have handled this in the past. We consistently put the new XDR in the section that defines it. If we want to put it all in one file, we provide a second document.

PASS 2: I’m not saying that change is bad or the good old days are best, but that when we embed the XDR in documents, we tend to “ignore” the XDR and allow the definition to occur within the context of the document.


# As we are defining new procedure and new flag, how are we handling the errors (we not have number of MUSTs, RECOMMENDs and SHOULDs)?


PASS 2: We are not determining a new procedure, but we are determining a new flag.

PASS 2: Also, the only possible errors are the server does not support the new functionality. That is however addressed in the document already:

    Since fattr4_open_arguments is a <bcp14>RECOMMENDED</bcp14> attribute, if the
    server informs the client that it does not support this new
    attribute, the client <bcp14>MUST</bcp14> take this to mean that
    the additional new <bcp14>OPTIONAL</bcp14> functionality to OPEN
    is also not supported.

PASS 2: Made a change:

    Since fattr4_open_arguments is a <bcp14>RECOMMENDED</bcp14> attribute, if the
    server informs the client via NFS4ERR_ATTRNOTSUPP that it does not support this new
    attribute, the client <bcp14>MUST</bcp14> take this to mean that
    the additional new <bcp14>OPTIONAL</bcp14> functionality to OPEN
    is also not supported.



# Section 3:
    - It says -
         "If the client gets both a open and a delegation stateid as part of the OPEN, then it has to return them both."
    Return to where?

PASS 2: The server - changed,,,,


    - Where is OPEN4_SHARE_ACCESS_WANT_OPEN_XOR_DELEGATION and OPEN4_RESULT_NO_OPEN_STATEID  delegation flags defined ?


PASS 2: In the section on supported open arguments. These are now defined before use….




# Section 3.1:
   - Put a reference to the "CLOSE operation".

Updated

   - Where is OPEN_ARGS_SHARE_ACCESS_WANT_OPEN_XOR_DELEGATION flag defined?
   - What is DELEGRETURN? yes, refer to RFC8881.

Updated


# Section 4:
   - I am not sure I understand the statement - "While it is the authority for these values, it has no way to transfer these values to the server when the delegation is being returned and the server reclaims its authority with regard to these values."
     I thought DELEGRETURN is a way to transfer or return those values. RFC 8881 says - "Delegations may be returned voluntarily (i.e., before the server has recalled them) or when recalled. In either case, the client must properly propagate state changed under the context of the delegation to the server before returning the delegation". Can we please explain it in a better way, like what values we are taking about and why they cant be transferred?.


PASS 2: You are correct in that we could send a compound with SEQ, PUTFH, SETATTR (time_modify | time_access), DELEGRETURN to achieve a similar effect.

PASS 2:  Wow, I had to really dig back to  figure out why we wanted this distinction. It turns out that if we do a SETATTR with either time_modify_set or time_access_set, then we haver to change both the change and time_metadata attributes, which will cause clients to believe that there had been a modification to the file.

Thank you very much for this comment in your review!


    - "These new attributes are invalid GETATTR, VERIFY, and NVERIFY" - there is something missing in this statement. "invalid to be used with" ?


PASS 2: I independently went with “in’, but I like your suggestion better.


    - Please describe/explain/reference - "old times", "past the current time", and "original time". also put references for "access time", "change time", "modify time".

PASS 2: I can see the confusion and I’ve tried to clarify this, but I suspect we will need to go back and forth on it.

PASS 2: I now have:

    When the client presents either
    FATTR4_TIME_DELEG_ACCESS or FATTR4_TIME_DELEG_MODIFY attributes
    to the server, the server <bcp14>MUST</bcp14> decide for both of
    them whether the time presented is before the corresponding
    FATTR4_TIME_ACCESS or FATTR4_TIME_MODIFY attribute
    on the file or past the current server time.
    When the time presented is before the original time, then the update
    is ignored. When the time presented is in the future, the server
    can either clamp the new time to the current time, or it may return
    NFS4ERR_DELAY to the client, allowing it to retry.  Note that if the
    clock skew is large, the delay approach would result in access to
    the file being denied until the clock skew is exceeded.


    - Where is FATTR4_TIME_DELEG_ACCESS and FATTR4_TIME_DELEG_MODIFY defined?

PASS 2: Please verify I made a pointer on first refenence.

    - Give a ref to NFS4ERR_DELAY.

PASS 2: Done


# Section 4.1 seems to me a good motivation for this extension, may be we should uplift if to a separate motivation section.

# Section 4.2: If we want someone to review this document, how would one read this section? please describe the code blocks, what they do or mean or related to the sections where these blocks are described.

# May be section 5 is misplaced, may be we should have it before section 3 and 4, so we define them and then show how the are used. the alternative would be to refer them from section 3 and section 4.


I am fine with making section 5 the new Section 3.


# Section 5:
    - It says - " client MUST determine that the additional new OPTIONAL functionality to OPEN is also not supported". what is the procedure for the client to determine that?


I think this is lack of communication in the word “determine”.

My intent here is for: the client has to take this to mean that the additional new OPTIONAL functionality to OPEN is also not supported.

Which when normative: the client MUST take this to mean that the additional new OPTIONAL functionality to OPEN is also not supported.

I.e, the lack of support for fattr4_open_arguments determines that the client MUST not use the OPTIONAL functionality.

Updated


# Section 6:
    - It says - "While the XDR can be appended to that from [RFC7863<https://www.ietf.org/archive/id/draft-ietf-nfsv4-delstid-03.html#RFC7863>], the various code snippets belong in their respective areas of the that XDR.". Does this mean this document also should update RFC7863?



Thanks for this point.



# Section 7: in this specification we are extending some capabilities for client delegation. I think we need more convincing description that there is not security concerns here.



Tried to provide some convincing text.

Updated.



//Zahed