Re: [Anima] Discovery of proxy/registrar insufficient (GRASP and more).

Brian E Carpenter <brian.e.carpenter@gmail.com> Tue, 03 May 2022 01:47 UTC

Return-Path: <brian.e.carpenter@gmail.com>
X-Original-To: anima@ietfa.amsl.com
Delivered-To: anima@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 95B35C15E41E for <anima@ietfa.amsl.com>; Mon, 2 May 2022 18:47:15 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -8.955
X-Spam-Level:
X-Spam-Status: No, score=-8.955 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, FREEMAIL_FROM=0.001, NICE_REPLY_A=-1.857, RCVD_IN_DNSWL_HI=-5, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id L2WRbXplLTcZ for <anima@ietfa.amsl.com>; Mon, 2 May 2022 18:47:10 -0700 (PDT)
Received: from mail-pf1-x432.google.com (mail-pf1-x432.google.com [IPv6:2607:f8b0:4864:20::432]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B52F4C15E41C for <anima@ietf.org>; Mon, 2 May 2022 18:47:10 -0700 (PDT)
Received: by mail-pf1-x432.google.com with SMTP id v11so4171456pff.6 for <anima@ietf.org>; Mon, 02 May 2022 18:47:10 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=/37aItfzkZ9DZ3OI9Vs7xpGv3sO+inUec0kjzBV0YGE=; b=Dh+xWpPuLxbn1l3UnzfDZ608QUCsjBRUIsiDLfQH0UzjaICzLlCxhUheFS4XxDMgcr ptMezwFfpheqmEU3/mEw2qCdRpZtOPir9XkvXrDCvWGRq7B/rQlZ1WT3yikVDCEogys7 Ro4ati4lM4sOjGGr8yMY7B9FgFKC23K2rK1v160kv4ZTXy3iTa45miY193bw2ZyGQCe4 o1nd9Qni6mOR8b9N0Hhlqi1jsKYtcDX4X08avaysoYi5MoLxv0DQ3fyOq+VeOzejD/3G yZMUZCeXi2OSLW/3klRKqEN9G5KWgg5SG+1evrWCYXjQ0b/2MyvLHF9Do4zOCZdDlMkd SH+A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=/37aItfzkZ9DZ3OI9Vs7xpGv3sO+inUec0kjzBV0YGE=; b=TxKbFNCMysGF/A+Iumw9geDvw+KKvo7H2TAcP2+mOsPVMD3G+VJG6SAxMZnqhKVEBW YayphL/WX/rGqg6oYVkDTosCXM3kj8pp1fYxaTYsz5Yo4qxpocGh1ecdye+JmrdCdqC2 l/BHbC9vwYSIBCBjPx+ybXTQFEfEAPTXaAtWzo1IcrYoQlZ5mP7h7/f/gT3Ad3hyLufO yWOEwQJcP6Tf8lwibMK6sMbIdMvSmrH5NbQXAVs8Vee/YhEedM9yxk8fLFDULWJGITR7 2DGeQskaYE2s979vXTIOQA8IoehPHhoM5JIfLrJSPiVyiCIxTiOBcFy762YIRlHPUzhi wClg==
X-Gm-Message-State: AOAM5335Qh9B7wHkadNFh415JWTVgxN+uvAZHvumdtwhi9x4oPHU6dMk dqYzMzT9ObLD77zKlMdENR8UT5Wg9eRj3Q==
X-Google-Smtp-Source: ABdhPJzyg1S8y8LjZB38HHiPhg6n/ZQ62xShUY7RO5+cTamCJ/gbvqx5+JRxZwPYJCuQDawBrDLlAw==
X-Received: by 2002:a63:f4b:0:b0:3c2:2452:2d48 with SMTP id 11-20020a630f4b000000b003c224522d48mr5849126pgp.439.1651542429380; Mon, 02 May 2022 18:47:09 -0700 (PDT)
Received: from ?IPv6:2406:e003:1005:b501:80b2:5c79:2266:e431? ([2406:e003:1005:b501:80b2:5c79:2266:e431]) by smtp.gmail.com with ESMTPSA id q21-20020a62ae15000000b0050dc76281e2sm5300773pff.188.2022.05.02.18.47.06 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 02 May 2022 18:47:08 -0700 (PDT)
To: Toerless Eckert <tte@cs.fau.de>, Peter van der Stok <stokcons@bbhmail.nl>, Michael Richardson <mcr+ietf@sandelman.ca>
Cc: anima@ietf.org
References: <YlWUA7xhMU2XtJsz@faui48e.informatik.uni-erlangen.de> <388791.1649870361@dooku> <Ymc57cpieDGAcn1X@faui48e.informatik.uni-erlangen.de> <e37c18efd6a17554eee9f2602dce2e9b@bbhmail.nl> <YnB1xCDivSMMTQPq@faui48e.informatik.uni-erlangen.de>
From: Brian E Carpenter <brian.e.carpenter@gmail.com>
Message-ID: <0cb382bc-d601-7030-a7f4-1514c0e4e169@gmail.com>
Date: Tue, 03 May 2022 13:47:03 +1200
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.10.0
MIME-Version: 1.0
In-Reply-To: <YnB1xCDivSMMTQPq@faui48e.informatik.uni-erlangen.de>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Language: en-US
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/anima/roV9cXnWTRZIOM2m1VdVwlSPWZk>
Subject: Re: [Anima] Discovery of proxy/registrar insufficient (GRASP and more).
X-BeenThere: anima@ietf.org
X-Mailman-Version: 2.1.34
Precedence: list
List-Id: Autonomic Networking Integrated Model and Approach <anima.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/anima>, <mailto:anima-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/anima/>
List-Post: <mailto:anima@ietf.org>
List-Help: <mailto:anima-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/anima>, <mailto:anima-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 03 May 2022 01:47:15 -0000

Toerless,

Needless to say, I like this:

>    And a small GRASP daemon using the same DTLS as BRSKI is equally simple to develop
>    (i claim) as a proxy daemon. Certainly a completely different ballpark than
>    trying to get network layer IP multicast

However, in fairness, the part of GRASP that relays discovery multicasts
from one L2 segment to another is probably the most complex bit of the
GRASP core. My code is 5 years old, and I've fixed two bugs in it during
2022 already (thanks to Bill Atwood and his student Parsa Ghaderi).

That said, the main program of my gremlin for nodes that only do
relaying is essentially:

grasp._initialise_grasp()
while True:
     time.sleep(60)

Regards
    Brian Carpenter

On 03-May-22 12:22, Toerless Eckert wrote:
> Peter, Michael *:
> 
> Wrt to seervice discovery in general: I am happy to help with the text,
> but lets first agree on the functionality.
> 
> Here is what i think, please reject points if you have arguments against them,
> otherwise i'd assume you agree ;-):
> 
> 1. "AN_join_registrar" and "AN_Proxy" where defined in RFC8995 for use with ANI.
> To me that means those objectives indicate that by default those objectives
> will provide ANI/ACP certificates.
> 
> 2. There is no need to introduce new objective values just because we use a new
> protocol (EST-coaps instead of EST-tls). Instead, that should be done via
> the objective-value. RFC8995 already nicely uses "EST-TLS" for "AN_join_registrar".
> I have no idea why we did not also do this for "AN_Proxy", but we just left it
> blank there. But we can easily assume that Empty ("" as in the RFC8995 example)
> is the same as "EST-TLS".
> 
> 3. I think the GRASP announcements MUST indicate what mode the Registrar
> supports. Stateful or stateless. Or if it supports both, then just have
> GRASP announcements for both and let the Proxy pick.
> 
> 4. I think by using explicit objective-values to indicate the protocol we are
> also future proof when we come up with even more protocols like CMP or the like.
> 
> 5. The constrained proxy draft describes three discovery options:
>     (a) Proxy Discovers Registrar
>     (b) Pledge discovers Proxy
>     (c) Pledge discovers Registrar.
>     In ANI/ACP, we do not have case (c). I do not see how it could ever happen,
>     so we should not introduce it.
> 
> 6. To me, this means the ANI/ACP service discovery for use with constrained proxy are:
> 
>     Proxy Discovers Registrar:
>       objective-name:  "AN_join_registrar", protocol UDP, objective-value: "EST-COAPS"
>       objective-name:  "AN_join_registrar", protocol UDP, objective-value: "EST-COAPS-JPY"
>     Pledge Discovers Proxy:
>       objective-name:  "AN_Proxy", protocol UDP, objective-value: "EST-COAPS"
> 
>     EST-COAPS-JPY is stateless with JPY header. EST-COAPS is stateful. There is no
>     need for the AN_Proxy objective to distinguish here, because to the Pledge,
>     it does not matter how the Proxy talks to the Registrar.
> 
> 7. Until there is sufficient proof of the opposite, i will claim that multihop
>     ASM IP Multicast in support of admin-scope COAP group communication via ff05::fd
>     will not exist in the mayority of target deployments of constrained proxy.
> 
>     And this can simply render constrained BRSKI to become undeployable. So its IMHO
>     not to be taken lightly.
> 
>     Therefore i think it is very prudent to also explicitly define how to use GRASP
>     outside of ANI/ACP context as an option. We still have to close the gap of suggesting/
>     writing down an easy draft how to do GRASP just via DTLS, but should be IMHO
>     similarily simple as Brians draft-carpenter-anima-quads-grasp (i just wouldn't want
>     to invent new crypto when we already have DTLS as a dependency for constrained BRSKI anyhow.
>     And a small GRASP daemon using the same DTLS as BRSKI is equally simple to develop
>     (i claim) as a proxy daemon. Certainly a completely different ballpark than
>     trying to get network layer IP multicast even if it's RPL MPL (not under the same
>     control in most platforms as the BRSKI code..).
> 
> 9. In result, i would suggest:
> 
>     1) Pledge (or Proxy) Discovers Registrar:
>       objective-name:  "brski-rjp", protocol UDP, objective-value: "EST-COAPS"
>     2) Proxy Discovers Registrar (stateless):
>       objective-name:  "brksi-rjp", protocol UDP, objective-value: "EST-COAPS-JPY"
>     3) Pledge Discovers Proxy:
>       objective-name:  "brski-jp", protocol UDP, objective-value: "EST-COAPS"
> 
>     Logic for Pledge is simple: If it can discover a registrar via "brski-rjp"/"EST-COAPS",
>     then it uses that. Else it has to look for "brski-jp"/"EST-COAPS"
> 
> 10. IMHO, the text for 1) should be in constrained voucher, not constrained proxy,
>      because this is the option that can work without any brski proxy in networks where
>      discovery works across multiple hops. No need for this to depend on proxy.
>      Only 2) and 3) are specific to proxy. This would make constrained voucher more logically
>      standalone.
> 
> 11. For use with DNS-SD, we would encode the same parameters as in 9. according to
>      how we do things in DNS-SD:
> 
>     1) Proxy or Pledge Discovers Registrar:
>        service-name:    "brski-rjp", protocol UDP, TXT key: proto=EST-COAPS
>     2) Proxy Discovers Registrar (stateless):
>        objective-name:  "brksi-rjp", protocol UDP, TXT key: proto=EST-COAPS-JPY
>     3) Pledge Discovers Proxy:
>        objective-name:  "brski-jp",  protocol UDP, TXT key: proto=EST-COAPS
> 
> Cheers
>      Toerless
>     
> On Tue, Apr 26, 2022 at 09:02:51AM +0200, Peter van der Stok wrote:
>>   HI,
>>
>> To add to the discussion, below the text that I adapted for Graps discovery
>> in contrsined-join-proxy draft.
>>
>> Comments are welcome, Corrections are encouraged.
>>
>> Peter
>> ______________________________________________________________________________
>>
>> 6.1.  Join Proxy discovers Registrar
>>
>>     In this section, the Join Proxy and Registrar are assumed to
>>     communicate via Link-Local addresses.  This section describes the
>>     discovery of the Registrar by the stateless Join Proxy.  The
>>     statefull Join Proxy discovers the Registrar as a Pledge.
>>
>> 6.1.2.  GRASP discovery
>>
>>     This section is normative for uses with an ANIMA ACP.  In the context
>>     of autonomic networks,
> 
> Please replace with:
> 
>       6.1.2 ANI/GRASP discovery
> 
>       This section is normative for the use with Autonomous Network
>       Infrastructures (ANI) based on an Autonomous Control Plane (ACP, [RFC8994])
>       
>       
>       
> 
> 
>>      the Registrar announces itself to a stateless
> 
> NIT: s/In the context of autonomic networks, /When it is used, /
> 
> Aka: we don't need a full autonomic network, just ACP with (constrained)
> BRSKI. We call this ANI, but i don't think we need to introduce the term
> ANI here (surplus).
> 
>>     Join Proxy using ACP instance of GRASP using M_FLOOD messages.
> 
> Q: I am unclear right now why the draft claims it does not need discovery
> for the Registrar when the Proxy is stateful. This is a question i have
> independent of use of ACP. I think the constrained Jon Proxies always need
> to be able to discover the Registrar. And i wouldn't know how the Proxy
> would know whether it can talk stateful or stateless with the Registrar
> unless the Registrar would announce what mode it supports (or this is
> implied by the service name).
> 
>>     Section 4.3 of [RFC8995] discusses this in more detail.  The
>>     following changes are necessary with respect to figure 10 of
>>     [RFC8995]:
> 
> Not figure 10. The formal definition is in Figure 13, the example is in
> Figure 12.
> 
>>     [RFC8995]: * The transport-proto is IPPROTO_UDP
> 
> Maybe add: instead of IPPROTO_UDP for BRSKI,
> 
>>     * the objective is   AN_REGISTRAR
> 
> The objective name should IMHO stay unchanged "AN_registrar" as it is
> defined for RFC8995, but the draft would claim to be updating RFC8995
> by introducing additional objective-values ("BRSKI_RJP"...).
> 
>>     * the objective name is "BRSKI_RJP".
> 
> I am personally actually not very happy with those brski.* URL names.
> It would be nice if those names would be consistent across discoveries,
> but technically there is no need. So let me propose the names i
> would prefer:
> 
>     "EST-COAP-DTLS"
>     "EST-COAP-DTLS-SL"
> 
> Reason: The RFC8995 name was not "BRSKI", but "EST-TLS". The logical
> equivalent is therefore "EST-COAP-DTLS". This would be for the stateful
> proxy. For the stateless proxy option, we add "-SL".
> 
> (Brian was pointing out the objective value could be a structure, but
>   i think there is simplicity in a simple list of numeric/string objective-values
>   Afaik, TLS itself also uses that simple approach of enumeration to select
>   the crypto option to pick between initiator and responder. )
> 
>>     The Registrar
>>     announces itself using ACP instance of GRASP using M_FLOOD messages.
>>     Autonomic Network Join Proxies MUST support GRASP discovery of
>>     Registrar as described in section 4.3 of [RFC8995] .
> 
> I would just write that ... "The Registrar performs announcements
> as described in RFC8995, section 4.3 except for the new objective-values
> and resulting use of IPPROTO_UDP in the locator option.
> 
>>     Here is an
>>     example M_FLOOD announcing the Registrar on example port 5685.
>>
>>        [M_FLOOD, 51804321, h'fda379a6f6ee00000200000064000001', 180000,
>>        [["AN_registrar", 4, 255, "EST-COAP-DTLS-SL"],
>                                    ^^^^^^^^^^^^^^^^^^
>>        [O_IPv6_LOCATOR,
>>        h'fda379a6f6ee00000200000064000001', IPPROTO_UDP, 5685]]]
>>
>>              Figure 5: Example of stateless Registrar GRASP message
>                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 
>>        [M_FLOOD, 51804321, h'fda379a6f6ee00000200000064000001', 180000,
>>        [["AN_registrar", 4, 255, "EST-COAP-DTLS"],
>                                    ^^^^^^^^^^^^^^^
>>        [O_IPv6_LOCATOR,
>>        h'fda379a6f6ee00000200000064000001', IPPROTO_UDP, 5686]]]
>>
>>              Figure 5: Example of stateful Registrar GRASP message
>                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 
> 
> Aka: simply provide both announcement examples if thats what we agree upon.
> 
>>     The Registrar uses a routable address that can be used by enrolled
> 
> s/address that/address (fda3:79a6:f6ee:0000:0200:0000:6400:0001 in the example) that/
> 
>>     constrained Join Proxies.
>>
>> 6.2.  Pledge discovers Registrar
>>
>>     In this section, the Pledge and Registrar are assumed to communicate
>>     via Link-Local addresses.  This section describes the discovery of
>>     the Registrar by the Pledge.  Once the Pledge is enrolled and
>>     functions as a stateful Join Proxy, it continues with the same
>>     Registrar port and address.
>>
>> 6.2.2.  GRASP discovery
>>
>>     This section is normative for uses with an ANIMA ACP.  In the context
>>     of autonomic networks, the Registrar uses the DULL GRASP M_FLOOD
> 
> remove autonomic networks (as note above)
> 
>>     mechanism to announce itself.  Section 4.1.1 of [RFC8995] discusses
>>     this in more detail.  The following changes are necessary with
>>     respect to figure 10 of [RFC8995]: * The transport-proto is
>>     IPPROTO_UDP * the objective is AN_REGISTRAR * the objective name is
>>     "BRSKI_JP" The Registrar announces itself using ACP instance of GRASP
>>     using M_FLOOD messages.  Autonomic Network Join Proxies MUST support
>>     GRASP discovery of Registrar as described in section 4.3 of [RFC8995]
>>     .
> 
> As for the Registrar announcements i would suggest:
> 
> - Objective name stays unchanged, "AN_Proxy"
> - Ideally, the same new objective-value is used as for the registrar: "EST-COAP-DTLS"
>    ... and we would not need to distinguish between "EST-COAP-DTLS" and
>    "EST-COAP-DTLS-SL", because there should be no difference for the Pledge.
>    ... except that for that to be true we would need to agree on the same
>    time for state maintenance / expiry for stateful/stateless proxies. Which
>    is an open discuss IMHO. E.g.: one of the benefits of the stateless proxy is
>    that the Registrar could keep registration state much longer than a stateful
>    proxy might want to do. In this case, "EST-COAP-DTLS" for just the stateful
>    proxy would be an indicator to send state-refresh messages (i hope they do
>    exist on COAP as in HTTP) much more often).
> 
>>     Here is an example M_FLOOD announcing the Registrar at fe80::1, on
>>     standard coaps port 5684.
>>
>>          [M_FLOOD, 12340815, h'fe800000000000000000000000000001', 180000,
>>          [["AN_Proxy", 4, 1, "EST-COAP-DTLS"]
>>          [O_IPv6_LOCATOR1G,
>>          h'fe800000000000000000000000000001', IPPROTO_UDP, 5684s]]
>>
>>              Figure 6: Example of Registrar announcement message
> 
> 
>>
>> 6.3.  Pledge discovers Join Proxy
>>
>>     In this section, the Pledge and Join Proxy are assumed to communicate
>>     via Link-Local addresses.  This section describes the discovery of
>>     the Join Proxy by the Pledge.
>>
>> 6.3.2.  GRASP discovery
>>
>> This section is normative for uses with an ANIMA ACP.  In the context
>>     of autonomic networks, the constrained Join Proxy uses the DULL GRASP
>>     M_FLOOD mechanism to announce itself.  Section 4.1.1 of [RFC8995]
>>     discusses this in more detail.  The following changes are necessary
>>     with respect to figure 10 of [RFC8995]: * The transport-proto is
>>     IPPROTO_UDP * the objective is AN_JOIN_PROXY * the objective name is
>>     empty The constrained Join Proxy announces itself using ACP instance
>>     of GRASP using M_FLOOD messages.  Autonomic Network Registrars MUST
>>     support GRASP discovery of constrained Join Proxies as described in
>>     section 4.3 of [RFC8995] .
>>
>>     Here is an example M_FLOOD announcing the constrained Join Proxy at
>>     fe80::2, on standard coaps port 5684.
>>
>>          [M_FLOOD, 12340815, h'fe800000000000000000000000000002', 180000,
>>          [["AN_JOIN_PROXY", 4, 1, ""],
>>          [O_IPv6_LOCATOR,
>>          h'fe800000000000000000000000000002', IPPROTO_UDP, 5684]]]
>>
>>              Figure 7: Example of Join Proxy announcement message
>>
>> ________________________________________________________________________________________
>> Toerless Eckert schreef op 2022-04-26 02:16:
>>
>>> On Wed, Apr 13, 2022 at 01:19:21PM -0400, Michael Richardson wrote:
>>>
>>> (1)
>>>
>>>> Yes, you are right, we need to have a new objective to announce.
>>>> I guess that we don't really think about the constrained-join-proxy
>>>> really
>>>> being used in an ACP context, but we really should that right.
>>>
>>> I don't think this is true. As soon as EST-COAPS proliferates as an RFC,
>>> the choice of TLS vs. COAPS becomes not only a necessity for constrained
>>> devices, but also a preference choice by solution designers. Less code
>>> modules etc.
>>>
>>> Also, RFC8995 promised the COAPS solution as part of ANI (the way i see
>>> it).
>>>
>>> I always imagined in-ceiling network switches that do full ACP but
>>> are also gateways to IoT edge networks as a good size candidate market
>>> example.
>>>
>>> (2)
>>>
>>> Separate question: Do we have a good understanding which solution
>>> that needs the constrained proxy will use which discovery mechanism ?
>>>
>>> I am asking because if/where there are gaps in supported discovery
>>> mechanisms,
>>> we might be able to suggest GRASP without ACP. Which would be somewhat
>>> of another
>>> draft..
>>>
>>>> https://github.com/anima-wg/constrained-join-proxy/issues/17
>>>>
>>>>> Note that it is not sufficient to delta RFC8995 and mention
>>>>> "EST-COAPS", because the GRASP objective also needs to indicate UDP
>>>>> instead of TCP. Even though it is longer, it would IMHO be prudent to
>>>>> copy the whole GRASP objectives and examples from RFC8995 and
>>>>> accordingly modify them, so that the constrained-proxy draft is
>>>>> "standalone" in this respect (even if a page longer).
>>>>
>>>> I think you are asking us to show an example that advertises both
>>>> RFC8995,
>>>> and the constrained version, correct?
>>>
>>> (3)
>>>
>>> No. The example does not need to show both. Just constrained version as
>>> a
>>> standalone GRASP objective IMHO. I would suggest to clone the text from
>>> RFC8995 and accordingly modify it.
>>>
>>>>> Isn't there the thought that some other variations of BRSKI will use
>>>>> protocol variations, such as not CBOR+JSON ? some other "CMP"
>>>>> encoding
>>>>> ?
>>>>
>>>> We decided that Registrars will be responsible for interoperation,
>>>> and will
>>>> support all protocols the operator expects to use.   If you buy a
>>>> Registrar
>>>> that does not do X and a pledge that only does X, then it fails, and
>>>> you were
>>>> stupid.
>>>
>>> (4)
>>>
>>> In the first place this needs to be written down.
>>>
>>> But i'd rather like to argue it away because i think it is an
>>> unnecessary
>>> constraining "hack".
>>>
>>> Why have all this discovery mechanisms when they are not even used
>>> correctly.
>>> Underspecifying the exact service(s) a Registrar offers is like
>>> announcing
>>> "Oh, go to google for the WHATEVER services".
>>>
>>> I don't see that implementations would get more complex, but rather
>>> simpler if we simply are able to distinguish the different protocol
>>> options
>>> by their service name/parameters and have proxies/clients be able to
>>> select
>>> them.
>>>
>>> At least thats my opening offer, lets discuss ;-) But see below.
>>>
>>>>> I am asking, because it seems to me we need to be aware, that the
>>>>> constrained-proxy is logically "just" a DTLS proxy, but once we have
>>>>> more than one DTLS BRSKI variation, we still need to be able for
>>>>> pledges to connect to registrar(s) that talk the BRSKI variation that
>>>>> the pledge supports. What we define here initially is effectively
>>>>> proxy/registrar for EST-COAPS. So let's assume, we get another
>>>>> protocol, OTHER1-DTLS. The constrained proxy continues to work,
>>>>> but it
>>>>> would now need to discover the OTHER1-DTLS Registrar, allocate a new
>>>>> UDP port number on which to offer proxy services for OTHER1-DTLS and
>>>>> announce that to pledges.
>>>>
>>>> You aren't wrong, but you also aren't right.
>>>> Pledges are expected to try all options (possibly concurrently if
>>>> they have
>>>> CPU/ram) until they find one that works.    There is no reason the
>>>> join proxy
>>>> needs to know the details of the Registrar supports, only that they
>>>> support a
>>>> way to talk to it.
>>>
>>> (5)
>>>
>>> That "trial&error" too should be described if its here to stay. Even if
>>> just
>>> through a reference to an appropriate section in 8995 (if its in there,
>>> not sure).
>>>
>>> (6)
>>>
>>> How about cert renewal, did you folks discuss if this would ever be
>>> something
>>> pledges would want to do through the proxy ? In the case of ACP we did
>>> discuss this, and i thinkit's in 8994 as well. E.g.: when cert is
>>> expired, so
>>> the enrolled device can not wield its cert for secure network access,
>>> but its
>>> still good enough for renewal.
>>>
>>>>> I wonder if the names choosen for est-coaps discovery, brski.jp and
>>>>> brski.rjp are ideal indicative of the fact that we're rather defining
>>>>> brski-est-coaps.jp and brski-est-coaps.rjp. I guess
>>>>> beauty/explicitness
>>>>
>>>> Fair point.
>>>
>>> (7)
>>>
>>> I guess a compromise for (4) would be new text that leaves the decision
>>> for
>>> how to deal with the next enrollment protocol/encoding to such a followu
>>> draft:
>>>
>>> IF implementers of a new variant feel that all existing/deployed
>>> registrars
>>> will and should be able to support the new protocol variant (e.g.:
>>> brski-xmp-xyz),
>>> then that protocol option does not need to come up with a new variation.
>>>
>>> IF implementers feel that is not appropriate, then:
>>> a) A new set of service names is required (brski-xmp-xyz.jp/rjp or the
>>> like)
>>> b) constrained proxies supporting both the new and the old will have to
>>> effectively run separate instances for them, e.g.: each instance having
>>> a separate UDP port number towards the pledge and using separate
>>> service names from registrar and to proxy.
>>>
>>>>> 3. 6tisch discovery
>>>>
>>>>> [I-D.ietf-6tisch-enrollment-enhanced-beacon] is now RFC9032, please
>>>>> update draft accordingly.
>>>>
>>>>> Upon quick browse of RFC9032 i fail to see how/where RFC9032 would be
>>>>> able to deal with more than one discovery protocol. E.g.: How
>>>>> would we
>>>>> discover BRSKI-EST-COAPS-REGISTRAR BRSKI-EST-COAPS-PROXY
>>>>> OTHER1-DTLS-REGISTRAR OTHER1-DTLS-PROXY
>>>>
>>>> Yes, are you right.
>>>> RFC9032 does not support DTLS at all.
>>>> It supports RFC9031 only.
>>>> Perhaps we should simply indicate that we don't support 6TISCH.
>>>
>>> No opinion. Sounds like the easiest solution, unless you do want some
>>> way to support 6TISCH ?
>>>
>>>>> 4. Stateful vs. stateless proxy discovery
>>>>
>>>>> How do i know as a customer of equipment know that all my
>>>>> pledges/proxies/registrars will interoperate in the face of those
>>>>> devices seemingly being able to freely pick stateful and/or stateless
>>>>> mode of operations ?
>>>>
>>>> Because, we defined the proxy to have a standard interface.
>>>
>>> What does that mean ? Do all proxies need to support both modes, or
>>> is there only the requirement for one mode, but some undefined entity
>>> has to
>>> figue out what registrar/proxies in some network should decide to use ?
>>>
>>>> (Except for CoAP/OSCORE vs CoAPS above)
>>>
>>> OSCORE = ?
>>>
>>>> How the join proxy keeps state (in memory or in the network) is a
>>>> private
>>>> matter between the JP and the Registrar, and does not concern the
>>>> pledge.
>>>
>>> Cheers
>>> Toerless
>>>
>>>> --
>>>> ]               Never tell me the odds!                 | ipv6 mesh
>>>> networks [
>>>>
>>>>> ]   Michael Richardson, Sandelman Software Works        |
>>>>> network architect  [
>>>>> ]     mcr@sandelman.ca  http://www.sandelman.ca/        |   ruby
>>>>> on rails    [
>>>>
>>>> --
>>>> Michael Richardson <mcr+IETF@sandelman.ca>, Sandelman Software Works
>>>> -= IPv6 IoT consulting =-
>>>
>>> _______________________________________________
>>> Anima mailing list
>>> Anima@ietf.org
>>> https://www.ietf.org/mailman/listinfo/anima
>