Re: [core] Observe updates, and call for proxy implementations

Christian Amsüss <christian@amsuess.com> Thu, 28 March 2019 21:00 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 454C11203F7 for <core@ietfa.amsl.com>; Thu, 28 Mar 2019 14:00:10 -0700 (PDT)
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, 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 rgxIN6Cc-p12 for <core@ietfa.amsl.com>; Thu, 28 Mar 2019 14:00:07 -0700 (PDT)
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 248691203F5 for <core@ietf.org>; Thu, 28 Mar 2019 14:00:06 -0700 (PDT)
Received: from poseidon-mailhub.amsuess.com (095129206250.cust.akis.net [95.129.206.250]) by prometheus.amsuess.com (Postfix) with ESMTPS id 26C574380B for <core@ietf.org>; Thu, 28 Mar 2019 22:00:04 +0100 (CET)
Received: from poseidon-mailbox.amsuess.com (unknown [IPv6:2a02:b18:c13b:8010:a800:ff:fede:b1bf]) by poseidon-mailhub.amsuess.com (Postfix) with ESMTP id 801BF36 for <core@ietf.org>; Thu, 28 Mar 2019 22:00:02 +0100 (CET)
Received: from hephaistos.amsuess.com (unknown [IPv6:2001:67c:1232:144:53b4:478e:561d:3782]) by poseidon-mailbox.amsuess.com (Postfix) with ESMTPSA id 359317A for <core@ietf.org>; Thu, 28 Mar 2019 22:00:02 +0100 (CET)
Received: (nullmailer pid 14753 invoked by uid 1000); Thu, 28 Mar 2019 21:00:01 -0000
Date: Thu, 28 Mar 2019 22:00:01 +0100
From: Christian Amsüss <christian@amsuess.com>
To: core WG <core@ietf.org>
Message-ID: <20190328210001.GA9474@hephaistos.amsuess.com>
References: <20190321084706.GA17128@hephaistos.amsuess.com> <20190324205323.GA9387@hephaistos.amsuess.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg="pgp-sha256"; protocol="application/pgp-signature"; boundary="8t9RHnE3ZwKMSgU+"
Content-Disposition: inline
In-Reply-To: <20190324205323.GA9387@hephaistos.amsuess.com>
User-Agent: Mutt/1.10.1 (2018-07-13)
Archived-At: <https://mailarchive.ietf.org/arch/msg/core/xK3KZp3Tz5QOv7uUeBFfeEjfPyM>
Subject: Re: [core] Observe updates, and call for proxy implementations
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: Thu, 28 Mar 2019 21:00:10 -0000

One more update here based on continued discussion and to clear out
misunderstandings.

> > * Pinning of response content formats.
> 
> Seemed to be a straightforward idea at the time that wasn't throught
> through in combination with what we know now (how could it).
> 
> Next step: Write update text, decide whether to spool it with any other
> document or do a single-page update document that removes the restriction.
> State that no proxies are known to enforce it.

Note that this proposal is not about changing what happens when an
Accept is sent (response is bound to be same format). It only opens up
observation to more elaborate negotiation patterns, and removes an
unanswered question about permissible error states.

The proposed Accept-Any option[1] (that builds on this but is not itself
the topic here) should not be used for "send full client supported list"
applications, the draft could be way more specific here.

It's also worth pointing out that this topic has only become pressing
due to the way pubsub handles observations. If nontraditional responses
become a part of pubsub, the issue may become a more theoretical one.

[1]: https://tools.ietf.org/html/draft-amsuess-core-accept-any-00

> > * Pinning of all request options except ETag.
> 
> This one is not that simple, but in no hurry to solve.
> 
> Adding ETags has the (maybe unique) property that a response that the
> meaning of responses is not modified; if any request reaffirming
> messages get mixed up, worst to happen is a 2.01 rather than a 2.03.
> 
> It might be a good idea to steer this into deprecating ETag updates.
> Might also be worth looking into in combination with nontraditional
> responses.
> 
> Next steps: Further discussion, but no hurry either.

ETag updates are currently allowed and do have their use, but they also
come with considerations to be taken (like the client needing to be
prepared to still receive old messages, even for the updated request to
get lost if something switches round badly). We could write some
implementation guidance that describes the problems, and for some impls
it will be easier to just cancel / use a new token. It might be a good
idea to give implementation guidance with particular focus on OSCORE as
well (and think about OSCORE aware proxies in the course of that).

Using an active token (one that was not cancelled) and changing
something other than ETag is not conforming to the protocol, and the
server or proxy could do all kinds of things. A token is in use until a
response arrives on the token that has no Observe option.


Kind regards
Christian

-- 
Most people would leave. Not us. We're Vikings. We have stubbornness issues.
  -- Hiccup, son of Stoic