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

Christian Amsüss <christian@amsuess.com> Wed, 17 February 2021 00:26 UTC

Return-Path: <christian@amsuess.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 422CB3A1342; Tue, 16 Feb 2021 16:26:04 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, 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 wd3X90a7i4cc; Tue, 16 Feb 2021 16:26:01 -0800 (PST)
Received: from prometheus.amsuess.com (alt.prometheus.amsuess.com [IPv6:2a01:4f8:190:3064::3]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id ECE093A1365; Tue, 16 Feb 2021 16:25:59 -0800 (PST)
Received: from poseidon-mailhub.amsuess.com (unknown [IPv6:2a02:b18:c13b:8010:a800:ff:fede:b1bd]) by prometheus.amsuess.com (Postfix) with ESMTPS id 4C0B640887; Wed, 17 Feb 2021 01:25:57 +0100 (CET)
Received: from poseidon-mailbox.amsuess.com (hermes.amsuess.com [10.13.13.254]) by poseidon-mailhub.amsuess.com (Postfix) with ESMTP id 38E07FD; Wed, 17 Feb 2021 01:25:56 +0100 (CET)
Received: from hephaistos.amsuess.com (hephaistos.amsuess.com [IPv6:2a02:b18:c13b:8010::aa6]) by poseidon-mailbox.amsuess.com (Postfix) with ESMTPSA id BFF6E44; Wed, 17 Feb 2021 01:25:55 +0100 (CET)
Received: (nullmailer pid 613591 invoked by uid 1000); Wed, 17 Feb 2021 00:25:55 -0000
Date: Wed, 17 Feb 2021 01:25:55 +0100
From: Christian =?iso-8859-1?Q?Ams=FCss?= <christian@amsuess.com>
To: supjps-ietf@jpshallow.com, Michael Richardson <mcr@sandelman.ca>
Cc: draft-ietf-core-new-block@ietf.org, dots@ietf.org, core@ietf.org
Message-ID: <YCxikyadpukaiK5I@hephaistos.amsuess.com>
References: <022401d6e440$06763ba0$1362b2e0$@jpshallow.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="I678fPgJbZy4TJia"
Content-Disposition: inline
In-Reply-To: <022401d6e440$06763ba0$1362b2e0$@jpshallow.com>
Archived-At: <https://mailarchive.ietf.org/arch/msg/core/QSzXs_uExLIniQvXfEBzQzDKn3A>
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: Wed, 17 Feb 2021 00:26:04 -0000

Hello Jon,
and hello Michael (grep for MCR, first point could use your response),

thanks for your responses and updates; on these concrete points, the
only that remain are:

> > * "If there is insufficient space to create a response PDU": I don't
> >   understand what that means. (Where are request options reflected
> >   back?).
> 
> [Jon] This was triggered by a question by Michael Richardson " So, given a
> Christmas-Tree-Packet (largest packet, every possible option space used,
> every extension turned on...) how much data can I get back? :-)" and not
> fully thought through.
> It could happen though with Location-Path, Location-Query, Q-Block2, ETag,
> Size2 and possibly Maxage, Content-Type, Hop-Limit or OSCORE  in response to
> a POST.
> OLD
>    If there is insufficient space to create a response PDU with a block
>    size of 16 bytes (SZX = 0) to reflect back all the request options as
>    appropriate, a 4.13 (Request Entity Too Large) is returned without
>    the Size2 Option.
> NEW
>    If there is insufficient space to create a response PDU with a block
>    size of 16 bytes (SZX = 0) to send back all the response options as
>    appropriate, a 4.13 (Request Entity Too Large) is returned without
>    the Size1 Option.

I think that is a corner case that deserves an error in *every* CoAP
based protocol and is not specific to it; MCR do you think that this
comment needs to be resolved in this way?

> > * "For NON transmissions": This seems to imply that the full exchange of
> >   a body is either NON or CON; I don't see where that'd come from. I'd
> >   have expected to read something like "Each individual request can be
> >   NON or CON independent of the others. In particular, it can be
> >   convenient to send the ultimate payload...".
> 
> [Jon]The DOTS environment will only be using NON.  To make Congestion
> Control simple,
> the expectation is that all transmissions are NON or (not recommended) are
> all CON. The draft now generally records this expectation.

Then why spend time talking about CON in the first place, and risk that
things go awry in a case that's neither tested nor really specified for?

It may be worth considering (ie. working group discussion; next interim
maybe?) to just state that this works with NON only.

I do see potential for the use of CON and NON mixed (in particular, the
"but it doesn't have a dual version for server pushes" you dread of
No-Response problem might go away), but if it's not explored to fruition
in the problem set out for this document, confirmable messages may be
better ruled out at all rather than getting second-class treatment.

> > Caching:
> > 
> > * "are not part of the cache key": How about "are removed as part of the
> >   block assembly and thus do not reach the cache"?
> 
> [Jon] OK.
> OLD
>    As the entire body is being cached in the proxy, the Q-Block1 and
>    Q-Block2 Options are not part of the cache key.
> NEW
>    As the entire body is being cached in the proxy, the Q-Block1 and
>    Q-Block2 Options are removed as part of the
> block assembly and thus do not reach the cache.

It may help to make the same statement about Request-Tag; then, there is
no more (IMO questionable) SHOULD about "a new Request-Tag [being]
generated", and the "Ideally" sentence can be dropped too.

> >     Generally, the all-NON and all-CON examples don't look to me like
> >     what I'd be doing with this spec; the mixed "a CON every
> >     MAX_PAYLOADS" appears much more realistic.
> 
> [Jon] It is unsafe to use CON in the  (potentially lossy) DOTS environment
> (up to 93 secs timeout per payload with the defaults).  Hence why we are
> separating out the NON / CON usage.

See above: then maybe don't do it at all.

(Also, in the "not related to previous points" follow-up mail to come,
there are some CON related questions that might be moot then).


Best regards
Christian

-- 
To use raw power is to make yourself infinitely vulnerable to greater powers.
  -- Bene Gesserit axiom