Re: [core] Unnecessary "anchor" attributes in draft-ietf-core-resource-directory-25 ?

Christian Amsüss <christian@amsuess.com> Wed, 21 October 2020 13:59 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 17CA83A0BB2 for <core@ietfa.amsl.com>; Wed, 21 Oct 2020 06:59:55 -0700 (PDT)
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 6CaQn8yctlMK for <core@ietfa.amsl.com>; Wed, 21 Oct 2020 06:59:53 -0700 (PDT)
Received: from prometheus.amsuess.com (prometheus.amsuess.com [5.9.147.112]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1A3063A0B3E for <core@ietf.org>; Wed, 21 Oct 2020 06:59:52 -0700 (PDT)
Received: from poseidon-mailhub.amsuess.com (095129206250.cust.akis.net [95.129.206.250]) by prometheus.amsuess.com (Postfix) with ESMTPS id 65D004012D; Wed, 21 Oct 2020 15:59:49 +0200 (CEST)
Received: from poseidon-mailbox.amsuess.com (poseidon-mailbox.amsuess.com [IPv6:2a02:b18:c13b:8010:a800:ff:fede:b1bf]) by poseidon-mailhub.amsuess.com (Postfix) with ESMTP id 0E67AAB; Wed, 21 Oct 2020 15:59:48 +0200 (CEST)
Received: from hephaistos.amsuess.com (unknown [IPv6:2a02:b18:c13b:8010:b5e3:21a5:c6eb:f5c2]) by poseidon-mailbox.amsuess.com (Postfix) with ESMTPSA id 8EFF434; Wed, 21 Oct 2020 15:59:47 +0200 (CEST)
Received: (nullmailer pid 653273 invoked by uid 1000); Wed, 21 Oct 2020 13:59:46 -0000
Date: Wed, 21 Oct 2020 15:59:46 +0200
From: Christian Amsüss <christian@amsuess.com>
To: Esko Dijk <esko.dijk@iotconsultancy.nl>
Cc: "core@ietf.org" <core@ietf.org>
Message-ID: <20201021135946.GE303030@hephaistos.amsuess.com>
References: <AM8P190MB09798CB94C780DBB8DD718CBFD070@AM8P190MB0979.EURP190.PROD.OUTLOOK.COM> <20201020103159.GA311699@hephaistos.amsuess.com> <AM8P190MB0979BE1707EF27FDF6AAD2CFFD1C0@AM8P190MB0979.EURP190.PROD.OUTLOOK.COM> <20201021113736.GC303030@hephaistos.amsuess.com> <AM8P190MB09790D140ABDE73680E652CCFD1C0@AM8P190MB0979.EURP190.PROD.OUTLOOK.COM>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg="pgp-sha256"; protocol="application/pgp-signature"; boundary="VV4b6MQE+OnNyhkM"
Content-Disposition: inline
In-Reply-To: <AM8P190MB09790D140ABDE73680E652CCFD1C0@AM8P190MB0979.EURP190.PROD.OUTLOOK.COM>
Archived-At: <https://mailarchive.ietf.org/arch/msg/core/pPi_pp4w0GTHcZWwf8zB2ZbwH-I>
Subject: Re: [core] Unnecessary "anchor" attributes in draft-ietf-core-resource-directory-25 ?
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, 21 Oct 2020 13:59:55 -0000

Hello Esko,

On Wed, Oct 21, 2020 at 12:59:59PM +0000, Esko Dijk wrote:
> I've swapped two lines in your item [2] plus added some comments for
> clarification

The swapping resolved a refactoring error of mine -- so we are aligned
there.

> Because this may be multi-interpretable, my idea for Limited Link
> Format was to simplify the parsing by splitting into two possible
> cases: 1) implicit rel=hosts without 'anchor' ; and 2) any other link
> with 'anchor'.

It the above reading is agreed on, the rule can even be simpler: "If
anchor was absent originally, it can stay absent". That would catch the
same cases and some more, not depend on understanding rel, and upset the
same set of implementations (those based on the 2018 understanding, and
AFAIK that means it's only mine).

> 1* "anchor" attribute MUST NOT be present for any link without the "rel" attribute   (this implies that this link uses the implicit rel=hosts semantics only)
> 2* "anchor" attribute MUST be present for any link with the "rel" attribute                  (this could be any type of link, possibly using rel="managed-by hosts" or rel="hosts" or rel=hosts )

If we go that route (and at least a brief chair chat earlier today
sounded a bit reluctant), I'd revisit the known implementations. My
expectation is that these restrictions won't even be necessary.

The main offender that necessitated the full-anchor-everywhere was my
2018 understanding. The change would be to reiterate in Limited Link
Format that unlike in the Link header, an absent anchor means the
context is origin-of(resolved-target), and then no further conditions on
rel need apply.

So probably it'd be either leave-it-and-say-why-it's-like-that, or going
even a step further than you are suggesting.

> There is one more consideration for the current RD draft - in case we
> decide to keep the explicit "anchor" attribute in all the examples.
> Because RFC 6690 is a normative reference, the assumption of the
> reader currently should still be that the "anchor" attribute that's
> added in all the example is just superfluous i.e.
>
> * an RD implementation may elide it , following RFC 6690 rules  (in
>   the interpretation as coded at the top of this email.) and Section
>   2.3 of 6690

I disagree here -- just because we normatively use 6690 doesn't mean we
can't profile it and prescribe that a particular serialization needs to
be used.

> * an RD client doing lookups may ignore it, following RFC 6690 rules
> in Section 2.3

... and here: 6690 says that "A consuming implementation can, however,
choose to ignore such links." (and not such attributes). The client woud
just ignore all resource lookup results, and the implementer would thus
need to implement (at least rudimentary) support for the anchor
attribute.

KR, and thanks for all your input
Christian

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