[Anima] Re: Comments on draft-ietf-anima-brski-discovery-09
Esko Dijk <esko.dijk@iotconsultancy.nl> Wed, 10 December 2025 14:13 UTC
Return-Path: <esko.dijk@iotconsultancy.nl>
X-Original-To: anima@mail2.ietf.org
Delivered-To: anima@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id AB6DA988E3D0 for <anima@mail2.ietf.org>; Wed, 10 Dec 2025 06:13:56 -0800 (PST)
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -2.797
X-Spam-Level:
X-Spam-Status: No, score=-2.797 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=iotconsultancy.nl
Received: from mail2.ietf.org ([166.84.6.31]) by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id XlOVRLt5KGT6 for <anima@mail2.ietf.org>; Wed, 10 Dec 2025 06:13:55 -0800 (PST)
Received: from dane.soverin.net (dane.soverin.net [185.233.34.158]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id 1CDCA988E3C3 for <anima@ietf.org>; Wed, 10 Dec 2025 06:13:54 -0800 (PST)
Received: from smtp.soverin.net (unknown [10.10.4.99]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by dane.soverin.net (Postfix) with ESMTPS id 4dRHl04Nb2zbC; Wed, 10 Dec 2025 14:13:48 +0000 (UTC)
Received: from smtp.soverin.net (smtp.soverin.net [10.10.4.99]) by soverin.net (Postfix) with ESMTPSA id 4dRHl00zszz7r; Wed, 10 Dec 2025 14:13:48 +0000 (UTC)
Authentication-Results: smtp.soverin.net; dkim=pass (2048-bit key; unprotected) header.d=iotconsultancy.nl header.i=@iotconsultancy.nl header.a=rsa-sha256 header.s=soverin1 header.b=Za3B3/xF; dkim-atps=neutral
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=iotconsultancy.nl; s=soverin1; t=1765376028; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=CJmadKxkelFx1YIHqneFRQYBZiP8hbC0NYHIfqonPVM=; b=Za3B3/xFivSbEMRkxUULF6pJhh7AM5mxBmD3ZbygECwUaKw+ROj15fCc1oPITnKO+2KpmT xgfYhM4H0gC0iSfNyDbGXwuwL43AZxL6uyLmY7WY5iaH6jiwLSAh9+FVw/fb27bB0H1CjK ccpxetnoGraESyGYL/IL5vVesGdxvqeK0N9B1HJBAJAuRLXVKmys1lO4IpXb5BHLew7zsx v2wiYwpLjERg2Xl0XlqERla3nkBTcCZINHzEJy1Ww074h9I+Skp8K88edFdiIw7G0MF2FC V0ne7WFqvM7i6RM9aM5Q8xfgb6LbjBypfGG8GjX+l5nEnju7/l6IexksyH0BAg==
X-CM-Envelope: MS4xfJ7wNX5pqgQKLy12Hpj9Xmdm+6Wgg+hKOkYQQEtNq97aoPWmaz4II4nv79H5SjBQCRaPPMpEEztejdNvl+m8mV01cYzhQ0gVrU9Kugai2ZBr8Y+TQQqT DWRdJF4q7HGeXDTmKwSuLU30Ss4uUja5ZGB6jnI+ga7okMKZgAd9Z5gOjcrfHY3ngMEcAM4zEfcartB6SzwR5GeLH0QaGbZfKlA7aXRHE1oS6iI3ca6lHbqf Ga1/EoLEEDy/hHkiHS3qxg==
X-Soverin-Id: 019b089c-6d60-730a-a2cc-9749e220a9c9
Content-Type: multipart/alternative; boundary="------------yXH1bvFsL8D9mmjeLqzik69E"
Message-ID: <cc6e905d-a741-437d-9819-8ce6099414d4@iotconsultancy.nl>
Date: Wed, 10 Dec 2025 15:13:47 +0100
MIME-Version: 1.0
To: Stuart Cheshire <cheshire=40apple.com@dmarc.ietf.org>, anima@ietf.org
References: <3551CF8B-6A04-40A8-8CB9-1371771E4268@apple.com>
Content-Language: en-US
From: Esko Dijk <esko.dijk@iotconsultancy.nl>
Organization: IoTconsultancy.nl
In-Reply-To: <3551CF8B-6A04-40A8-8CB9-1371771E4268@apple.com>
X-Spampanel-Class: ham
Message-ID-Hash: S5VOPSBUMH4PKL5FPFBLFZHCOSZ7AJEH
X-Message-ID-Hash: S5VOPSBUMH4PKL5FPFBLFZHCOSZ7AJEH
X-MailFrom: esko.dijk@iotconsultancy.nl
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-anima.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [Anima] Re: Comments on draft-ietf-anima-brski-discovery-09
List-Id: Autonomic Networking Integrated Model and Approach <anima.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/anima/KBfunQQNdN-SHMDPSEd2dlvMSEk>
List-Archive: <https://mailarchive.ietf.org/arch/browse/anima>
List-Help: <mailto:anima-request@ietf.org?subject=help>
List-Owner: <mailto:anima-owner@ietf.org>
List-Post: <mailto:anima@ietf.org>
List-Subscribe: <mailto:anima-join@ietf.org>
List-Unsubscribe: <mailto:anima-leave@ietf.org>
Hi Stuart, thanks for the feedback on this draft. At IETF 124 I also voiced some similar comments on the current text - it's pretty difficult reading all in all. And most of the complex parts are not even needed for the average reader who just maybe wants to implement BRSKI discovery of a specific kind. The complex parts are intended for a narrow audience: developers of new BRSKI variations, to know how to construct and IANA-register the unique string that identifies their new variation. And even there I feel some things could be simplified. My suggestion was to split into a first "simple" part, and a second "complex" part that makes clear what the reader audience is. Most readers could then skip that part. Based on your comment "This is inventing problems that don’t really exist. ..." we can try to assume some defaults i.e. that particular link technologies support particular DNS-SD methods and base our text on that. There are some pitfalls however: - Thread mesh networks support unicast DNS-SD discovery queries, once a node is already part of the mesh; while mDNS is not supported. - However, for Pledge nodes, that are by definition *not* yet part of the mesh, only unsecured link-local communication is available for discovery which excludes (in Thread) using unicast DNS-SD. - Link-local mDNS *could* be used there, however in Thread this is not currently done, because it already defines a custom link-local node discovery protocol. - Other kinds of 6LoWPAN mesh network technologies do not use the Thread-specific method, so these may either use their custom method or use mDNS. - 6TiSCH defined by IETF is an example of such technology and it uses a custom protocol CoJP RFC 9031 to both discover and join. - You mention that Wi-Fi and Ethernet imply that mDNS is used: however, for the case of a Join Proxy discovering a Registrar we don't expect this would work. The Registrar is a central server/node that may be located several IP hops away from the current link, somewhere on the corporate network. - mDNS won't work then because it only finds link-local nodes. - The author's assumption in this case is that either unicast DNS-SD discovery is used, or GRASP discovery for the case of the ACP networks defined by the ANIMA WG in RFC 8995. - If it's unicast DNS-SD then a node sends the DNS request messages to whatever is configured as "the DNS server" in the network. This information is usually communicated in one of the known ways, e.g. in IPv6 an ND RA message option, or via DHCP. - Note that this unicast DNS-SD discovery is the same as in the Thread case for Thread-radio Join Proxy nodes. The only difference is how the DNS server is configured. It seems to me that we still need "profiles" to define how it works per network technology: for the Pledges (trying to discover Join Proxies), and also for the Join Proxies (trying to discover Registrars). Right now I can identify "profiles" would be needed for Wi-Fi, Ethernet, Ethernet-in-ACP-network, Thread and 6TiSCH. The current document leaves these "profiles" out of scope but does mention that without such a profile there's no interoperability. Example: if an Ethernet Join Proxy tries mDNS to discover a Registrar, but the Registrar is only announced via the site DNS infrastructure (unicast), then discovery would fail. And vice versa too! Each "profile" would probably need to be a standard (defined outside IETF) or an RFC. We could try to say all this in a simpler way than in the current text? regards Esko On 29-11-2025 02:58, Stuart Cheshire wrote: > Toerless Eckert asked me for feedback on draft-ietf-anima-brski-discovery-09. > > I will confess that I did not read the whole thing thoroughly from start to finish. I did skim the parts related to DNS-SD as Toerless requested. As somebody who is not thoroughly immersed in this work, I found the document quite difficult reading. Just beginning with the abstract, it leaps into lots of acronyms that I don’t know: > > This document specifies how to make BRSKI communications > autoconfiguring, extensible and resilient in the face of simultaneous > use of different variations of the BRSKI protocol (BRSKI, BRSKI-AE, > BRSKI-PRM, constrained BRSKI, stateless constrained BRSKI proxies). > > It would be helpful for people new to this work if the abstract at least began it with a sentence explaining what BRSKI is for and what it does. > > Reducing use of reference-as-noun would also help readability. If a reader doesn’t already know what all the references are, the use of unknown references as substitutes for English words makes reading the document feel like reading Clockwork Orange where you have to keep guessing what the mystery words mean. To anyone who doesn’t know the secret code, the text reads like this: > > In this document, a role is functionality performed by a BRSKI entity > either as an initiator or responder. [SomeDocument] defines the roles > of pledge, Join Proxy, registrar, MASA. [SomeDocument] adds the role > Registrar-Agent. Trust anchor is a dependent role required by BRSKI, > provided through [SomeDocument] or other protocols in [SomeDocument]. > > I suggest running the document through an AI proofreading tool, or at least a spell-checker. The first paragraph of the Overview has three mistakes in two sentences: > > BRKI was designed to support multi-vendor deployments ideally with > zero additional provisioning in the network just to support BRSKI. > In recent years, multiple variations of the BRSKI protocol *where* > specified, *sich* as [BRSKI-PRM], [BRSKI-AE], [cBRSKI] and [cPROXY]; > within these documents *that* are multiple options that need to be > supported by all BRSKI entities involved in a BRSKI enrollment, such > as pledge, proxy and registrar. > > where -> were > sich -> such > that -> there > > There seems to be some unnecessary editorializing about why simply using DNS-Based Service Discovery would not work: > > Because of the different options of how to run DNS-SD, the > requirements in this document do not guarantee interoperability when > using DNS-SD. One side could use unicast DNS-SD, the other mDNS, and > there may be no mapping between the two. > ... > Hence, a > mandatory to implement (MTI) profile is not feasible because of the > wide range of variations to deploy DNS-SD. > > This is inventing problems that don’t really exist. For devices on Ethernet or Wi-Fi, simply use DNS-SD over Multicast DNS, and everything will work. For devices on Thread, use unicast DNS using Service Registration Protocol (SRP). Work is underway for defining zero-configuration SRP for Ethernet and Wi-Fi, with forward/backward-compatibility so that new devices use SRP when it is available while still working with older devices that only support Multicast DNS. Thread is new, so it avoided the backward-compatibility issue by just going straight to using unicast SRP for everything (multicast capacity is especially scarce with the limited throughput on Thread networks). In any case, these details are out of scope for this document. Just use DNS-SD as defined for the interface hardware the device has, and as DNS-SD evolves and develops new capabilities for various link types, devices using DNS-SD will inherit those improvements transparently as they become available. > > Variation Strings from the IANA registry Table 8 are encoded as DNS- > SD Keys with a value of 1 in the DNS-SD service instances TXT RR > using the shortened encoding of "key" instead of "key=1". In result, > the value of the TXT RR is a sequence of zero terminated strings, > each one indicating a single supported variation type choice. > > A variation may have the option of being represented by the empty > string "". This is not allowed in the DNS-SD encoding, and instead > the alternative variation string MUST always be used for DNS-SD. > > Variation strings in DNS-SD are case insensitive as required by DNS- > SD. It is RECOMMENDED to only announce lowercase variation strings > in DNS-SD. > > The use of variation strings can easily break the DNS-SD rule that > they keys should be no more than 9 characters long. This is > justified by the absence of value fields to keep the total length of > the TXT RR reasonably short. > > This seems confused. I don’t know what “value of 1” means. It sounds like you are just defining boolean attributes. Why are your strings zero terminated? Why do you choose to not allow empty strings? If you choose to break the DNS-SD rule that keys should be no more than 9 characters long then this is not DNS-SD. You should expect that client libraries for DNS-SD might define a ten-character array as a stack variable to hold the key name as a C string, and any key names that don’t fit in this are rightly ignored as invalid. This is the whole point of defining limits in protocol specifications -- so that implementers know what they have to support. > > If you want to express a list of supported variation strings, I suggest you define a key “vars” where the value is a comma-separated list of supported variation strings, similar to how printers express their list of supported page description languages as a comma-separated list of MIME types: > > pdl=image/urf,image/jpeg, > application/octet-stream,application/pdf,application/postscript, > application/PCLm,application/vnd.hp-PCL,application/vnd.hp-PCLXL > > In several places in the document lines exceed the 72-character maximum width for text-format RFCs. > > Stuart Cheshire > > _______________________________________________ > Anima mailing list --anima@ietf.org > To unsubscribe send an email toanima-leave@ietf.org -- *IoTconsultancy.nl* | Email/Teams: esko.dijk@iotconsultancy.nl | +31 6 2385 8339
- [Anima] Comments on draft-ietf-anima-brski-discov… Stuart Cheshire
- [Anima] Re: Comments on draft-ietf-anima-brski-di… Esko Dijk
- [Anima] Re: Comments on draft-ietf-anima-brski-di… Brian E Carpenter
- [Anima] Re: Comments on draft-ietf-anima-brski-di… Esko Dijk
- [Anima] Re: Comments on draft-ietf-anima-brski-di… Toerless Eckert