[core] draft-ietf-core-echo-request-tag -14 and Block2
supjps-ietf@jpshallow.com Mon, 20 December 2021 16:29 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 E04443A1067 for <core@ietfa.amsl.com>; Mon, 20 Dec 2021 08:29:42 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level:
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, 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 nz1ZS5eDrRIC for <core@ietfa.amsl.com>; Mon, 20 Dec 2021 08:29:40 -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 D666C3A1066 for <core@ietf.org>; Mon, 20 Dec 2021 08:29:39 -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 1mzLXZ-0006Le-Vy for core@ietf.org; Mon, 20 Dec 2021 16:29:34 +0000
From: supjps-ietf@jpshallow.com
To: core@ietf.org
Date: Mon, 20 Dec 2021 16:29:40 -0000
Message-ID: <269201d7f5be$c94dcef0$5be96cd0$@jpshallow.com>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="----=_NextPart_000_2693_01D7F5BE.C94EB950"
X-Mailer: Microsoft Outlook 14.0
Thread-Index: Adf1vshJNGc75PGbQqaRUljVR+kGug==
Content-Language: en-gb
Archived-At: <https://mailarchive.ietf.org/arch/msg/core/-tLhjchnfq1LI6HYmbZHgW-0RrI>
Subject: [core] draft-ietf-core-echo-request-tag -14 and Block2
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, 20 Dec 2021 16:29:43 -0000
Hi there, I have run into an issue where multiple CoAP requests (not needing Block1) to the same resource trigger potentially different responses that require the use of Block2. If the responses overlap, then there is confusion as to how to pull back the correct response to match the request. For example (grossly simplifying things) POST /api/<service>/read payload = { 'offset': 0, 'count': 1200 } POST /api/<service>/read payload = { 'offset': 2000, 'count': 1300 } Or FETCH /api/<service>/read payload = { 'offset': 0, 'count': 1200 } FETCH /api/<service>/read payload = { 'offset': 2000, 'count': 1300 } RFC7959 2.4 rightly states The Block2 Option provides no way for a single endpoint to perform multiple concurrently proceeding block-wise response payload transfer (e.g., GET) operations to the same resource. This is rarely a requirement, but as a workaround, a client may vary the cache key (e.g., by using one of several URIs accessing resources with the same semantics, or by varying a proxy-safe elective option). Which then brings in the possible use of Request-Tag option in the request as a proxy-safe elective option. However. draft-ietf-core-echo-request-tag -14 3.2 states The Request-Tag option is only used in requests that carry the Block1 option, and in Block2 requests following these. Which implies that the examples above need to contain the Block1 option in the first instance if there is any suspicion that Block2 is needed in the response. Then draft-ietf-core-echo-request-tag -14 3.4 states Note that Request-Tag options can be present in request messages that carry no Block option (for example, because a Request-Tag unaware proxy reassembled them), and MUST be ignored in those. Apart from being hard to parse (what does "those" refer to?), this tells me that Servers MUST ignore requests that have no Block option - so, I cannot just add the Request-tag option to a request on the off-chance there may be a Block2 needed response. Is there a good reason for this MUST? If it is too late for the draft to be updated, the only easy way forward that I can see is to add in an unneeded Block1 to the request, or to add in a Block2 option to the request so the Request-Tag can be used even if the response fits into a single payload. I have raised this as Issue #77 https://github.com/core-wg/echo-request-tag/issues/77 . Regards Jon
- [core] draft-ietf-core-echo-request-tag -14 and B… supjps-ietf
- Re: [core] draft-ietf-core-echo-request-tag -14 a… Carsten Bormann
- Re: [core] draft-ietf-core-echo-request-tag -14 a… Jon Shallow
- Re: [core] draft-ietf-core-echo-request-tag -14 a… Christian Amsüss
- Re: [core] draft-ietf-core-echo-request-tag -14 a… supjps-ietf