Re: [core] WG Last Call on draft-ietf-core-new-block

supjps-ietf@jpshallow.com Mon, 11 January 2021 16:39 UTC

Return-Path: <jon.shallow@jpshallow.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0E6FA3A1048 for <core@ietfa.amsl.com>; Mon, 11 Jan 2021 08:39:09 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.898
X-Spam-Level:
X-Spam-Status: No, score=-1.898 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=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 emZ3odfk9H6W for <core@ietfa.amsl.com>; Mon, 11 Jan 2021 08:39:07 -0800 (PST)
Received: from mail.jpshallow.com (mail.jpshallow.com [217.40.240.153]) (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 0437C3A103A for <core@ietf.org>; Mon, 11 Jan 2021 08:39:06 -0800 (PST)
Received: from mail2.jpshallow.com ([192.168.0.3] helo=N01332) by mail.jpshallow.com with esmtp (Exim 4.92.3) (envelope-from <jon.shallow@jpshallow.com>) id 1kz0Df-0006d3-Vx; Mon, 11 Jan 2021 16:39:04 +0000
From: supjps-ietf@jpshallow.com
To: Marco Tiloca <marco.tiloca@ri.se>, jon@jpshallow.com, christian@amsuess.com, draft-ietf-core-new-block@ietf.org
Cc: dots@ietf.org, core@ietf.org
References: <022401d6e440$06763ba0$1362b2e0$@jpshallow.com> <fa7956ae-31a3-7724-3af4-4e755a719045@ri.se> <041101d6e5c2$e17fbef0$a47f3cd0$@jpshallow.com> <a549b34f-3f72-a6df-b2c3-ae9d3759b701@ri.se> <047b01d6e5e2$2115ba50$63412ef0$@jpshallow.com> <f8774b5c-9736-1cff-266f-f9b66653a86c@ri.se> <065301d6e805$286163c0$79242b40$@jpshallow.com> <df2ee5a1-0d36-7f28-534d-42f2eb063040@ri.se>
In-Reply-To: <df2ee5a1-0d36-7f28-534d-42f2eb063040@ri.se>
Date: Mon, 11 Jan 2021 16:39:14 -0000
Message-ID: <06e801d6e838$4be6ae30$e3b40a90$@jpshallow.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Mailer: Microsoft Outlook 14.0
Thread-Index: AQKHUmmxquhArXd4h/ZvumPsHfcPaAFUavWxAaeeZ2wB9CJyVQGW5zMSAr51FjUBa6IWcAGdmCj+qF8iPgA=
Content-Language: en-gb
Archived-At: <https://mailarchive.ietf.org/arch/msg/core/Pb1_tPwHLP8wwBdQ5f7Dw_ZDxoQ>
Subject: Re: [core] WG Last Call on draft-ietf-core-new-block
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 11 Jan 2021 16:39:09 -0000

Hi Marco,

It is good that you are thinking this properly through.  FETCH was added later into this draft and the consequences were not properly thought through.

The new updates have been pushed to https://github.com/core-wg/new-block and the differences with the draft can be found at https://www.ietf.org/rfcdiff?url1=draft-ietf-core-new-block&url2=https://raw.githubusercontent.com/core-wg/new-block/master/draft-ietf-core-new-block.txt

The PR for the responses below can be found at https://github.com/core-wg/new-block/pull/13 

Otherwise, see inline.

Regards

Jon

> -----Original Message-----
> From: Marco Tiloca [mailto: marco.tiloca@ri.se]
> Sent: 11 January 2021 11:39
> To:supjps-ietf@jpshallow.com; christian@amsuess.com; draft-ietf-core-new-
> block@ietf.org
> Cc: dots@ietf.org; core@ietf.org
> Subject: Re: [core] WG Last Call on draft-ietf-core-new-block
> 
> Hi Jon,
> 
> Thanks, the updates look good.

[Jon] Thanks
> 
> As to the response codes in Section 3.3 "Using the Q-Block1 Option",
> wouldn't it make sense to mention also 2.05 (Content) ? Think of a FETCH
> request with a big body, which is actually mentioned at the beginning of
> Section 3.3 and in Section 3.1 (though missing the 2.05 response code
> beside it).

[Jon] Thanks - added.  Also added in 2.02 and 2.05 as being expected response codes in 3.3.

[Jon] For the 2.02,  I struggle with why anyone would want to use a POST with a large payload to cause the resource to get deleted (instead of using DELETE) , but RFC7252 allows this to happen.

OLD
   Q-Block1 Option is useful with the payload-bearing POST, PUT, FETCH,
   PATCH, and iPATCH requests and their responses (2.01 and 2.04).
NEW
Q-Block1 Option is useful with the payload-bearing POST, PUT, FETCH, PATCH, and iPATCH requests and their responses (2.01, 2.02, 2.04, and 2.05).

[Jon] And added into 3.3 (2.05 is done further into this discussion)

NEW
2.02 (Deleted)

This Response Code indicates successful receipt of the entire body and the resource was deleted when using POST (See Section 5.8.2 [RFC7252]). The token used SHOULD be from the last received payload. The client should then release all of the tokens used for this body.

> 
> Also, more in general, think of an observe registration, for which the
> server eventually sends back a first notification (possibly split into
> multiple payloads) with Q-Block2, with a certain Token value.

[Jon] OK
> 
> If the observation request used FETCH and was fragmented into several
> payloads with Q-Block1, each of which with a different Token, it's still
> true that the notifications can all have any of those Token values and
> should have the one of the last received request payload.

Jon[OK]
> 
> However, later on the client has to retain that Token value as the one
> associated to the observation, to match future notifications to come. In
> this case, there is a deviation from the claim used for other response
> codes, i.e. "The client should then release all of the tokens used for
> this body." This should concern only 2.01 notifications (hence including
> the Observe option) in response to observation requests with FETCH, so
> it can be limited to the context of this section about Q-Block1.

[Jon] I was not aware that FETCH could return 2.01 or 2.04.  GET does not return these codes and it is only GET and FETCH that can Observe.  However, it is true what you say for 2.05, so I have added that the tracked Observe token must be the (if Q-Block1) the one used for Q-Block1 that has the M bit unset.  I have added in some FETCH examples into the draft.

NEW
2.05 (Content)

This Response Code indicates successful receipt of the entire FETCH request body (See Section 2 [RFC8132]) and the appropriate representation of the resource has been returned. The token used in the response MUST be the one in the FETCH request that has the Q-Block1 with the M bit unset. If the FETCH request includes the Observe Option, then the server MUST use the same token for returning any Observe triggered responses. The client should then release all of the tokens used for this body unless a resource is being observed.

~jon
> 
> Best,
> /Marco
> 

<snip>