Re: [6lo] Tsvart last call review of draft-ietf-6lo-multicast-registration-16

Pascal Thubert <pascal.thubert@gmail.com> Mon, 11 March 2024 15:19 UTC

Return-Path: <pascal.thubert@gmail.com>
X-Original-To: 6lo@ietfa.amsl.com
Delivered-To: 6lo@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 613C8C14F5E5; Mon, 11 Mar 2024 08:19:47 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.104
X-Spam-Level:
X-Spam-Status: No, score=-7.104 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, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=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 x45ihor05P79; Mon, 11 Mar 2024 08:19:43 -0700 (PDT)
Received: from mail-wr1-x435.google.com (mail-wr1-x435.google.com [IPv6:2a00:1450:4864:20::435]) (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 1F27BC14F5FB; Mon, 11 Mar 2024 08:19:43 -0700 (PDT)
Received: by mail-wr1-x435.google.com with SMTP id ffacd0b85a97d-33d90dfe73cso2595338f8f.0; Mon, 11 Mar 2024 08:19:42 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1710170381; x=1710775181; darn=ietf.org; h=in-reply-to:from:references:cc:to:content-language:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=tAFDpItZesZYA0c9WvvPfn+b0fjisLDltA7puJPt1ko=; b=I/c8XRFdIymOt+LoWv8sL+6FXw6i7v8KpqpM8c6t9oMgveQFdDt8az+C4logwv6ZTt V6yAWtwqy4TPGtFNSWLzD2ylTl0olZiGdXSKmyUj5nRIrMuSnFn49N3x/xtBl4PAw6O/ OHcBqvUHnTsL0KlSdqXBJUAr1nlrJfUClfM3YSvRz/tDNay/+wV+NRnnQq8mVe82W2jm AxPX8JlXpDNJPmV+kPIkWmhlo9LfScqbUdN5Kw0gWnD5izMH5tjvs19FoD5iARUlrpEX 8Nfyf7xRZZrTJlZiq2xmrwocNoDGC9i08gn8q3GFCzq0QTdqIaukybwA5edmDDUKU2us QPig==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710170381; x=1710775181; h=in-reply-to:from:references:cc:to:content-language:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=tAFDpItZesZYA0c9WvvPfn+b0fjisLDltA7puJPt1ko=; b=AYvM/uVNqzgIglNS5ed0pL7qIOdbBb8ZEOXIlWNmVgZ+pND1hnadQoibeNOTTCFt8t Gvc/ehE1g/LbI1gJbIAng99fWro15rKXxoxhRBZwL8Wjo1whVeqSmeM405O1SQGA+Sq1 yaeLYv1fkzXwLuzzGAy5eevvIkOHo4s+LUuAM6Ib1Rg9lCOgXTjbN+uxvUvyB5OnZovx sfFdBR4lShpxFP4wYtJ+sm5u/Y7bgi2LxX8U6gZXi+4Qaf8hrUMRLakduz+JR6zK2KOs /7nbcTKfg27P+SlNZDNI1vTOR4w+w+uF1YAotzicdwYcte/lLjJoJ4qbmKDy06ZbDFVJ 0oiQ==
X-Forwarded-Encrypted: i=1; AJvYcCXgmeM9lYytZ4twcoqWghQ2gnuBrTjkDStitTMOrJ1hMc7sNiIr/ef/1Du6nSOqjcZ2CYJWycDpvCFjd/zYIdziXXH/kU4MdZmArbxMh0MRtVfVHSeV7VDJFpwMYtP+Ldi1ljxzI0LLJssDhHIZqEZFj5Yi7TQBlwAuHxsoWahFJpSTopU743z1
X-Gm-Message-State: AOJu0YwBWlA3HMoARwaRRUiV5M2e59vf5TpuB8NpHsYB8D7LY3y18idA 7OHsXKUCtxRBm+eNU8y3xxRjCp8DckGEXnToPIumvzN+OhUXnF8uVfqzHC/aRXA=
X-Google-Smtp-Source: AGHT+IHlVZ04rvzr3OkneuQUeU5Nf6zFDiviF7Ci9bZ6YitBSCroI7jgWNRtv7PsEyJPRuppkiN87g==
X-Received: by 2002:adf:f68b:0:b0:33e:6ef3:b68e with SMTP id v11-20020adff68b000000b0033e6ef3b68emr4669516wrp.34.1710170380812; Mon, 11 Mar 2024 08:19:40 -0700 (PDT)
Received: from ?IPV6:2a01:cb1d:a8:a100:383f:8827:2ef4:1594? ([2a01:cb1d:a8:a100:383f:8827:2ef4:1594]) by smtp.gmail.com with ESMTPSA id h11-20020a5d548b000000b0033e3a24f17esm6725304wrv.76.2024.03.11.08.19.39 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 11 Mar 2024 08:19:40 -0700 (PDT)
Content-Type: multipart/alternative; boundary="------------SNS81ao4TODgbUohy0CHBfLc"
Message-ID: <8d79380e-29e5-4502-bf9a-be84a720b3f9@gmail.com>
Date: Mon, 11 Mar 2024 16:19:35 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US, fr
To: Kyle Rose <krose@krose.org>, tsv-art@ietf.org
Cc: 6lo@ietf.org, draft-ietf-6lo-multicast-registration.all@ietf.org, last-call@ietf.org
References: <170967380637.26527.4945351368899319297@ietfa.amsl.com>
From: Pascal Thubert <pascal.thubert@gmail.com>
In-Reply-To: <170967380637.26527.4945351368899319297@ietfa.amsl.com>
Archived-At: <https://mailarchive.ietf.org/arch/msg/6lo/MsFNN-WQhgmKtwnYFg7KVS4EI7c>
Subject: Re: [6lo] Tsvart last call review of draft-ietf-6lo-multicast-registration-16
X-BeenThere: 6lo@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: "Mailing list for the 6lo WG for Internet Area issues in IPv6 over constrained node networks." <6lo.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/6lo>, <mailto:6lo-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/6lo/>
List-Post: <mailto:6lo@ietf.org>
List-Help: <mailto:6lo-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/6lo>, <mailto:6lo-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 11 Mar 2024 15:19:47 -0000

Hello Kyle:

Many thanks for your review!  Please see below;

Le 05/03/2024 à 22:23, Kyle Rose via Datatracker a écrit :
> Reviewer: Kyle Rose Review result: On the Right Track This document 
> has been reviewed as part of the transport area review team's ongoing 
> effort to review key IETF documents. These comments were written 
> primarily for the transport area directors, but are copied to the 
> document's authors and WG to allow them to address any issues raised 
> and also to the IETF discussion list for information. When done at the 
> time of IETF Last Call, the authors should consider this review as 
> part of the last-call comments they receive. Please always CC 
> tsv-art@ietf.org if you reply to or forward this review. From my 
> perspective as a member of the transport area review team, this 
> document is On The Right Track, a form of "Has Issues". 


> # Issues ## Duplication Quoting RFC 6550:
>> For a multicast packet sourced from inside the DODAG, the packet is 
>> passed to the preferred parents, and if that fails, then to the 
>> alternates in the DODAG. The packet is also copied to all the 
>> registered children, except for the one that passed the packet. 
>> Finally, if there is a listener in the external infrastructure, then 
>> the DODAG root has to further propagate the packet into the external 
>> infrastructure. 
> This algorithm (for storing mode only) seems to admit the duplication 
> of packets (and consequent need to figure out how to de-dup) in a DAG 
> via a node sending to its parent and the non-source children, and then 
> from that parent to some of the same children via a different path. 
> While I surmise that this has been beaten to death in the working 
> group, I am surprised to see no mention of packet duplication 
> considerations in this document. If this is adequately covered 
> elsewhere in the ecosystem, a reference would be helpful. This is a 
> core problem with multicast in domains with multiple paths. 
The original idea was to use the preferred parent *tree* (each node has 
one) for the multicast registration. So in normal operation there is no dup.
When forwarding a multicast packet to the preferred parent tree fails, 
the text above allows to forward up to an alternate parent to ensure the 
packet goes up and can be flooded from the root down the rest of the DODAG.
Arguably, this could create duplicates. e.g., if the preferred parent of 
this node gets the packet later from above, and can now talk again to 
this node. At this point, this node may get a second copy that it may 
forward down. It is a trade off between a risk distributing 2 copies vs 
a risk of having a major part of the DODAG not getting the packet at all.
We can mention that the unreliable nature of the LLN makes the mast 
distribution unreliable and incurs the risk of duplication, and both 
issues need to be handled by the ULP. Is that what you are suggesting?
proposed text:
"
   Note that due to
    the unreliable propagation of packets in the LLN, it cannot be 
guaranteed that
    any given packet is delivered once and only once. If a breakage 
happens along
    the preferred parent tree that is normally used for multicast 
forwarding,
    the packet going up may be rerouted to an alternate parent, leading 
to potential
    failures and duplications, whereas a packet going down will not be 
delivered
    in the subtree. It is up to the ULP to cope with both situations.
"

> ## MLD vs ND From the intro:
>> In the case of a constrained node that already implements [RFC8505] 
>> for unicast reachability, it makes sense to extend to that support to 
>> subscribe 
> the > multicast addresses they listen to. Does it? Or would it make 
> sense to use the MLD wire image with unicast in a manner analogous to 
> how ND has been adapted to unicast for low-power environments? I'm 
> torn between two principles of engineering: least surprise and 
> minimizing effort. There are good arguments for each.
The version of IPv6 ND (RFC 8505, see 
draft-ietf-6man-ipv6-over-wireless) we use in LLNs does not leverage 
MLD. LLNs live with no MLD at all. Wi-Sun came with the need to get a 
better mcast support than MPL but would not implement MLD. This draft is 
the result of the work with them to optimize a LLN solution that already 
has RFCs 8505 and RFC 6550.
> ## Anycast Originally, anycast was merely an artifact of undefined 
> behaviors in global routing technologies: since networks had no way of 
> enforcing global address uniqueness and had to do *something* with a 
> packet in the presence of two viable next hops (forward to one, 
> forward to both, or drop/reject), some local choice needed to be made. 
> It turned out to be useful: see RFC 1546 and RFC 4786. That said, 
> there exists a not-completely-resolved tension between anycast routing 
> and address uniqueness enforced via mechanisms such as DAD. This 
> document increases this tension further, within the class of low-power 
> networks, by explicitly supporting multiple devices sharing an IP 
> address on what appears to a 6LR-oblivious node to be a single link.
I'd argue that we are more explicit  about something that is already 
there, which is not making things worse, just more visible.
One use case is an external source that injects the same address at 
multiple edge points, think, like, multi-homing in cloud). Which is not 
really multiple owner devices, but multiple interfaces on that device 
with the same address or multiple routes to that device. From the 
perspective of routing, we want to retain all the routes as opposed to 
just one?  Quote from the draft "An external destination (address or 
prefix) that may be injected as a RPL target from multiple border 
routers should be injected as anycast in RPL to enable load balancing". 
Advertising anycast as unicast the way we did before has its own side 
effects like possible flapping and did not have this capability.
> One thing I'd like articulated is the set of identified use cases for 
> supporting this kind of addressing within low-power networks that are 
> presumably geographically highly-constrained. Is this a solution in 
> search of a problem?
RFC 8505 and its update in this spec are not limited to LLNs. The need 
for anycast is for instance showing in RIFT, see around 
https://datatracker.ietf.org/doc/html/draft-ietf-rift-rift#section-6.8.4.3. 
ideally we would publish this in time to update RIFT.
6LoWPAN and RFC 8505 may be used in IIoT, which leverages hardware 
redundancy for reliability and safety purposes. ISA100.11a uses the IP 
address as device ID, also meaning that you can replace a device by 
another, but you need to configure the same IP address in both.
For the RPL side, the most common need I'm aware of is the one in the 
quote above. Say you have a RPL Unaware Leaf 
(https://datatracker.ietf.org/doc/html/rfc9010#section-9.2.1)  such as a 
domotics controller that wishes some redundancy in the LLN for a better 
availability. It is not really aware that there is routing above, and it 
cannot control the injection sequence (TID). As RPL only retains the 
most recent one, the behavior in the network is not well controlled and 
only what RPL sees as freshest is conserved. This is as opposed to a RAN 
that knows to set the same TID in the various route injections it makes. 
The ask to RPL is to ignore the TID because the most recent injection 
(bsed on TID) is not necessarily the only valid one.
Is the above along the lines you'd like to see in the draft?
> I am not taking a position on whether or not anycast support is 
> advisable, primarily because this is not my area of expertise and so I 
> do not understand all the pros/cons involved, but I would like ADs of 
> both TSV/WIT and INT to take a close look at this.
I'm not clear what anycast routing would mean in other environments. I 
guess you would tag the advertisements to recognize the various 
injection point or end points of the same address, retain/compute as 
many routes as address/tag tuples,  and route and individual packet to 
one of the tags, something like that. I'm not prone to have that 
discussion in this draft either.
In the context of RPL, we mostly want to ignore the TID and retain paths 
that look older when in fact they are just different. So it's a behavior 
in between the unicast and multicast ones, which is the main reason you 
find it in the same document as multicast. Selecting on next hop down 
kind of eliminates some alternate possibilities without the need for a 
tag that identifies the end point.

> ## Updating a lot of documents I agree with some other comments I've 
> read that this set of updates has the potential to create confusion in 
> the ecosystem. It may be worth doing a -bis pass to the entire 
> ecosystem at some point in the not-too-distant future. 
Dan's review seems to support that.

> # Nits and other minor comments * Please add DAO ("destination address 
> object") to the glossary. This is especially important because "D" in 
> other similar abbreviations means "duplicate". 
Done

> * The paragraph in 6550 describing storing vs. non-storing routing 
> modes would provide useful context to readers not already steeped in 
> the low-power/lossy ecosystem. While obviously an implementer needs to 
> have internalized these foundational documents in their entirety, with 
> care the documents can be made more easily consumable by others not 
> engaged in implementation. 
Added in the introduction

I pushed my proposed resolution to

github.com

Kyle's review · pthubert/6lo-multicast-registration@eb5d57f 
<about:blank?compose#>

Contribute to pthubert/6lo-multicast-registration development by 
creating an account on GitHub.

🔗 
https://github.com/pthubert/6lo-multicast-registration/commit/eb5d57fa4c52edf1ca42b121cd22c42e42857635#diff-ad315e0600ca3c4a9292625c4a0cd79e0518579351f2ecc698e47dd7a285984f 
<https://github.com/pthubert/6lo-multicast-registration/commit/eb5d57fa4c52edf1ca42b121cd22c42e42857635#diff-ad315e0600ca3c4a9292625c4a0cd79e0518579351f2ecc698e47dd7a285984f> 


  Please let me know your thoughts, and again many thanks;

Pascal