Re: [core] Fwd: New Version Notification for draft-djamaa-core-proactive-rd-discovery-00.txt

Badis Djamaa <badis.djamaa@gmail.com> Tue, 30 April 2019 13:20 UTC

Return-Path: <badis.djamaa@gmail.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 0FF3212007A for <core@ietfa.amsl.com>; Tue, 30 Apr 2019 06:20:15 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.998
X-Spam-Level:
X-Spam-Status: No, score=-1.998 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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 ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 9d-Fg8_VknPB for <core@ietfa.amsl.com>; Tue, 30 Apr 2019 06:20:09 -0700 (PDT)
Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com [IPv6:2a00:1450:4864:20::32a]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5AEDC120006 for <core@ietf.org>; Tue, 30 Apr 2019 06:20:09 -0700 (PDT)
Received: by mail-wm1-x32a.google.com with SMTP id 4so3790702wmf.1 for <core@ietf.org>; Tue, 30 Apr 2019 06:20:09 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=Gp4CrAoL3X4SJ/pp4skcC8U/IlTPmKi8lE0cwYl2yAg=; b=KJrPZ7WUgfsnCmKvxf+2AppMshSi3OgkaceCdjOpQ0/BLnpFrAWW5wXzaynNDbyUwc d4sKR3EJiW1Jt+OuHTEUfUJgUUo0RTCKrrGVBFnqoeAQp+Bom5mxxW4e43+HK/xBcBCj HwfveG+5fqwhvCWOfXvKMIwrvFC4NSq3VCD0v/vkOh+PcETqgeJZyLR6nO4f9rEurM9g WLq/IWvoxHSCV/3KP2bV9+EPMvIZLS0DWXqpbn/MDZiTQ0WPfKAYyHtRk0zaVjkw9w2D kJpgJypfGufyxJnIDJMvVYvk63z6giIoIKWt9iihRFc/b/kUK/n68xuhwMrIY08Oqusf NLAA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=Gp4CrAoL3X4SJ/pp4skcC8U/IlTPmKi8lE0cwYl2yAg=; b=jvwG+hOFzil2vmGqKDlfn8i/SbOxu2Gxj/9e5Ny9axUpp9wWins7DxeqUH17cbulZr Vc6nw02t30qYhvupIWyB6D03VrVadq7muLtkRaO/o9Dtams415TLhU4jLDcnijD7swaC m9AFSr7itJ8UjvLAv5UloxGsIL8VRg47w1cW/36hT+gyEhkxGh5f28xLoHJlmf2ZTp/A FCid2KMr/T9iOIE+SoZKjEtwGssaQdvbik1pHauWsEV+whQr1pUGOwa3MpgKUZlNfs8y XNG4P7cIMTTdOBZ5UlZlgDYItOasIxoeQg0ORWPPRgsCmxI5VGZFVkx46Faa/Da+ympx 2z5A==
X-Gm-Message-State: APjAAAW0OnTJnXef6pnfBOVE1sS8PhGwiBvhKR8ePGnznEsGborFkzoK aDOzEd7CKlJtek2weBkhC97zJrLgENV+smzaLkU=
X-Google-Smtp-Source: APXvYqw9GLS/XSW5rfYmCYT+2FwTrTpeSyWn5WT8kJNfbKKB2Pxa7/sAVxfCDvzpbchWVf4Miy15TapO/QnVRfTZOFs=
X-Received: by 2002:a1c:7d92:: with SMTP id y140mr3064628wmc.54.1556630407801; Tue, 30 Apr 2019 06:20:07 -0700 (PDT)
MIME-Version: 1.0
References: <155413839109.17114.2318273093661309081.idtracker@ietfa.amsl.com> <CAPm4LDSHAPZ+9OeRD0tZbLK2MNpdcHnAv+pgfS159xr=pMFHxg@mail.gmail.com> <20190402054015.GA22410@hephaistos.amsuess.com> <CAPm4LDSgrrGi_i4u7nC_QB6NZtm=hi3GtmofJX7qhtdHW1knzQ@mail.gmail.com> <20190409094112.GA15632@hephaistos.amsuess.com>
In-Reply-To: <20190409094112.GA15632@hephaistos.amsuess.com>
From: Badis Djamaa <badis.djamaa@gmail.com>
Date: Tue, 30 Apr 2019 15:19:29 +0200
Message-ID: <CAPm4LDQZOi5d+TYzm6i1ReUEx_Zh9_88B9ctG8QFQA4YGnv+6Q@mail.gmail.com>
To: Christian Amsüss <christian@amsuess.com>
Cc: ali yachir <a_yachir@yahoo.fr>, core@ietf.org
Content-Type: multipart/alternative; boundary="0000000000008101bb0587bf4279"
Archived-At: <https://mailarchive.ietf.org/arch/msg/core/hm_-hIsFoM3aunFqMNe6CjmZ6oY>
Subject: Re: [core] Fwd: New Version Notification for draft-djamaa-core-proactive-rd-discovery-00.txt
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: Tue, 30 Apr 2019 13:20:15 -0000

Hello Christian,
Thank you for your feedback,please see my comments inline

On Tue, 9 Apr 2019 at 11:41, Christian Amsüss <christian@amsuess.com> wrote:

> Hello Badis,
>
> some replies inline:
>
> On Tue, Apr 02, 2019 at 08:42:19PM +0200, Badis Djamaa wrote:
> >  The text in the RD draft seems to indicate that the "(6LBR) can act
> >  as a resource directory". Thus, the 6LBR address can be announced in
> >  the ABRO and confirmation of RD function can be done by unicasting
> >  "coap://[6LBR]/.well-known/core?rt=core.rd*".
>
> That is exactly how contacting an RD via the 6LBR works; however, the
> 6LBR may only host the .well-known part of the RD but not the
> registration and lookup resources. (This comment's main purpose was to
> highlight alternatives to the "inconvenien[ce] of imposing that the RD
> be physically integrated" with the 6LBR.)
>
> >   Otherwise, how would the RD be announced to the 6LBR (not mentioned in
> >   the RD draft )?
>
> That is out of scope for the RD document, but I'd assume it would happen
> about the same way the 6LBR is configured to send ND options, or how a
> DHCP server is configured to send a particular option.
>

I can think of a way here. Let an RD announces its address(es) in the RDAO
ND option.
When RDAO arrives to the 6LBR, it knows that it contains an RD address. The
6LBR can then construct a resource with rt=core.rd and base=RD address.
Doing so
the endpoint can GET the RD address from the 6LBR, which allows it to
contact the RD directly
for URI discovery as in section 4.3 of the CoRE-RD draft.


>
> >    In the current version, the rd template value may be assumed a
> >    default location, for instance, "core-rd". The Location-URI
> >    Template would be then /core-rd/ep where ep comes from the RD's
> >    "ep" attribute contained in the registration request, which is
> >    unique per RD. Another possibility is to locate the posted RD
> >    resource under well-known/core/ep at each device.
> >   What is your take on this?
>
> Anything outside /.well-known/ should not be fixed by specifications
> according to RFC7320.
>
> I don't have any concrete suggestions yet as to where those updates
> should ideally go to.
>
>  OK, thank you for outlining RFC7320, below are some thoughts concerning
this issue:

     1- To stay compatible with RFC7320 recommendations, one basic option
is to simply POST the registration
     to well-known/core. However, and since the replies are suppressed, the
RD won't know the registration location.
     This does not affect the periodic updates, but it can affect the
explicit registration removal interface.
     One intuition to deal with this, is not to provide an explicit removal
interface. Indeed, RD registrations will be removed
     at the expiry of their lifetime. The inconvenient arising from this
(i.e. an RD no longer available, but endpoints
     still have active registrations) can be mitigated. For instance, an
endpoint not getting a response from an RD after some
     tentative may delete the RD registration.

     2- I thought also not to suppress the responses, but such a solution
increases traffic, adds
     burden on an RD to manage all locations, and makes explicit
registration removal more complex.
     For instance, the RD should unicast each endpoint to delete its
registration.

     3- Also, the nontraditional response way you mentioned will have
difficulty to manage explicit registration removal.
     Indeed, while announcements can be realized as a response with
embedded request, I cannot see how a delete will
     be carried out?

     I prefer proposition 1 to propositions 2 and 3. All, however, find
difficulties to manage explicit registration removal.
     The main issue for that is the use of DELETE within multicast. It
might be useful to discuss such use?
     (in other words, is it possible to relax RFC 2370 recommendations for
the case of multicast).

     Alternatively, and inspired by the simple registration interface of
CoRE-RD, an RD might send a POST request with an
     empty body in order to emulate a DELETE. Such a request triggers the
removal of the RD registration from endpoints.
     With this alternative, the issue with RD template can be mitigated ?

>
> > * The DA generation process looks like every device is supposed to be a
> > >   simple RD (that may be only capable of accepting a single
> > >   registration, which is that of the actual ID), that is then
> > >   replicated.
> > >
> > >   Maintaining such replication seems to me to be quite a task for small
> > >   nodes, especially if they're supposed to use the registration update
> > >   interface and thus remember locations for each sub-PRD they
> registered
> > >   to (though I'm not sure what is intended here, "SHOULD only contain
> > >   the content and parameters that have been changed" seems to imply
> > >   registration update, while 4.1.1 describes the registration interface
> > >   which can't rely on previous registrations).
> >
> >   True, but DA is only generated by the RD and forwarded using CoAP Group
> >   Communication. Devices do no replication tasks. Also, very
> >   constrained devices (section 5.2 of RD), may simply ignore the
> >   received DA (see section 3)
>
> OK, that was not fully clear to me before, especially with the open
> question about the registration location.
>
> >   Also, the current version of PRD does not use a separate resource
> >   update interface. Both the first registration (which doesn't rely on
> >   previous registrations) and periodic updates sent by RDs (relying on
> >   previous registrations) use the registration interface. The
> >   difference is that in the latter, the optional unchanged parameters
> >   and payload are not POSTed. Processing of the received DA, for both
> >   cases, is specified in section 4.1.2.
>
> As this is all intended for multicast and nodes joining the network, how
> can there be a difference between a first registration and periodic
> updates, which may arrive at devices that haev not seen the first
> registration?
>

Thank you for raising this important issue. As a remedy, I can think of
three solutions:

1- Send all the information either in the first and the update.
   Cons: waste of resource although this might be acceptable, knowing the
infrequency of RD updates
   and the limited size of the registration resource.
   Pros: it solves all issues.

2- The new joining nodes SHOULD use DS to ask for the information from
neighbors upon joining
   The network. If this is not already done before getting the RD update
for the first time, the node SHOULD
   issue a DS to make sure that it has all the information. In this case,
only already-aware
   updated neighbors reply.
   Cons: It might not be available any already-aware neighbor in the
vicinity. In addition,
   this imposes for nodes to send DS even for the first received
registration. To avoid this latter, the RD
   might specify in the POSTed resource in a TBD attribute whether it is a
registration or an update.

3- In the third option, the node receiving an update, might directly
unicast the RD, to get the information.
   This has the same drawbacks as in 2. In addition, it might creates
   a burden on the RD if the number of simultaneous joiners is important.

I would prefer the first option. What do you think?

>
> > >   The document may benefit from exploring alternatives here (even if
> > >   only to confirm the conclusion that the approach taken is the right
> > >   one), like using the Simple Registration interface (would answer the
> > >   question ad 4.1.1) or setting the announcements up as nontraditional
> > >   responses[1] (eg. notifications about an unspoken request to GET
> > >   /.well-known/core?rt=core.rd. I can't tell whether that'd even be a
> > >   good idea, that's yet to be seen).
> >
> >   [...] Nontraditional Responses (NR) need the devices to be aware of
> the RD
> >   location.
>
> Not necessarily; the NR could contain all the necessary request details
> as in [1].
>
> [1]: https://tools.ietf.org/html/draft-bormann-core-responses-00#section-2
>
> Agree

> > * [...] whether there is anything in particular about RD announcements
> > > in it as compared to general link announcments.
> >
> > Thank you for this suggestion, we will consider it in future versions.
> Can you
> >  please indicate some key services that need to be announced.
>
> That very much depends on the particular use case, but if there is
> anything that most devices joining the network would query right after
> having discovered the RD, that would be it.
>
> For example, in a setup that uses tiloca-core-oscore-discovery[2], it
> might make sense to not only send the RD's data but also the links to
> the most frequently joined join resources. (Not that the frequency of
> group members joining would be likely to warrant this, but if it were
> frequent enough that proactive-rd made sense, sending those links to
> join resources proactively would just make as much sense.)
>
> [2]: https://tools.ietf.org/html/draft-tiloca-core-oscore-discovery-02
>
>  Thank you for mentioning this draft, we are working to consider such
services and similar (e.g., Announce
    Available Groups for nodes to join)  for he next version of the draft

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

All the best,
Badis