Re: [Roll] Rtgdir last call review of draft-ietf-roll-dao-projection-32

Pascal Thubert <pascal.thubert@gmail.com> Thu, 30 November 2023 15:43 UTC

Return-Path: <pascal.thubert@gmail.com>
X-Original-To: roll@ietfa.amsl.com
Delivered-To: roll@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1DD7FC14CE4A for <roll@ietfa.amsl.com>; Thu, 30 Nov 2023 07:43:43 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.104
X-Spam-Level:
X-Spam-Status: No, score=-2.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_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 2UzCayE7U31q for <roll@ietfa.amsl.com>; Thu, 30 Nov 2023 07:43:40 -0800 (PST)
Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com [IPv6:2a00:1450:4864:20::334]) (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 A37BEC14CE5F for <roll@ietf.org>; Thu, 30 Nov 2023 07:43:39 -0800 (PST)
Received: by mail-wm1-x334.google.com with SMTP id 5b1f17b1804b1-40a4848c6e1so8768965e9.1 for <roll@ietf.org>; Thu, 30 Nov 2023 07:43:39 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1701359017; x=1701963817; darn=ietf.org; h=in-reply-to:from:references:to:content-language:subject:user-agent :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to; bh=NcEqSJAanseUGenESNZOrScw4rLxfroac1j1QUevoZ4=; b=hIC4WXItlLJZeM9f3crSSoT/fh1RhX2f3k6tvaD10hiOxfFotnGPRryohR3HqDWgs2 ly5nd/XyoaAWagG7TY5kFN0Z9qktZEqkT8c2mp1TJnQ1wqtA/189e+Jiq2SzqKaZYbOW 9UqAr6uvSHeSsbzUQqPQTHOyWQ1tzFLDHTxtqckTPQ6cBja0UPyZibnjkpPould5ReOo UAzdkqSO4Zr4ReSZfKf13KFZY9Uwq0GpEfplwkBeBMBC6joYTD86dfutog5Cd1tDGf88 P0BcAqznwb5iVsSSHwJCPgFXLzwcXZkQDWS7rB8ZBz2tkZESjZiWEITlrL5jL3WcfBki wwlw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701359017; x=1701963817; h=in-reply-to:from:references: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=NcEqSJAanseUGenESNZOrScw4rLxfroac1j1QUevoZ4=; b=FdrzLiGb7BqCkxRxb0cVTZWmwuZ5Z7nGUNAfmSS+hVdGR0vdX2hlu9DklkCN5LgVh1 vlWzSOFZLHjGFg0rnWTvUzOJFBY+P6cfu6l9WwaTQTYsNORKIgHjZgXkL8EYeQ93OvoF lr4FtI3faZ7EQ90My5bsFAcIMrxpNBzuSmNPcvACIFvYxS5F4mw8KN+Eb6z2OcreuhoQ DTUy6PjESpZe+vJYi8lJu5ZLRwreXkqpUtAzbkbClLST0qxJ3P1KkGSanGTkO0BRQkt3 DFg6LXl7c+MenIazLcEha4PDpWbjdsXRumfGHVQcTIRkTT7jp2IrpWtH2+cOPhGD5xVi WjzA==
X-Gm-Message-State: AOJu0YyadhMKtzoGt15ffHsoaRrPWqQYGyZ8LTl5X/f3OlSrddktQVv/ wKQ2o5Lo+NoRhMhDtM+AP+lWHSU59Xfwng==
X-Google-Smtp-Source: AGHT+IEeamLD6R0qOyAUI2U6mJzAZ04LMn9SO4pWfrad07TtA3/m+yLPjfEtqlloRi7w1o2r5joFAw==
X-Received: by 2002:a5d:4a4e:0:b0:332:e337:7c5f with SMTP id v14-20020a5d4a4e000000b00332e3377c5fmr14254892wrs.61.1701359016952; Thu, 30 Nov 2023 07:43:36 -0800 (PST)
Received: from ?IPV6:2a01:cb1d:a8:a100:b932:9253:5613:58d0? ([2a01:cb1d:a8:a100:b932:9253:5613:58d0]) by smtp.gmail.com with ESMTPSA id e38-20020a5d5966000000b003330aede2besm1815149wri.93.2023.11.30.07.43.35 for <roll@ietf.org> (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 30 Nov 2023 07:43:35 -0800 (PST)
Content-Type: multipart/alternative; boundary="------------C0XmdBPjOwmYt5XqEhqO4LD1"
Message-ID: <d5842620-b52d-4102-8ae1-a9f5387bafe6@gmail.com>
Date: Thu, 30 Nov 2023 16:43:30 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US, fr
To: roll@ietf.org
References: <169282776238.48331.14052065379327322599@ietfa.amsl.com> <CO1PR11MB488139E154ADAC39AFA4016CD81DA@CO1PR11MB4881.namprd11.prod.outlook.com> <CO1PR11MB4881AAFEF02A97C5EEE4CE42D8F0A@CO1PR11MB4881.namprd11.prod.outlook.com> <BYAPR08MB48726996B50F423F04071024B3C2A@BYAPR08MB4872.namprd08.prod.outlook.com> <CO1PR11MB4881489C35DDDD3C2B903FA3D8C2A@CO1PR11MB4881.namprd11.prod.outlook.com> <BYAPR08MB487261FC497D8B1E30F882E7B3A8A@BYAPR08MB4872.namprd08.prod.outlook.com>
From: Pascal Thubert <pascal.thubert@gmail.com>
In-Reply-To: <BYAPR08MB487261FC497D8B1E30F882E7B3A8A@BYAPR08MB4872.namprd08.prod.outlook.com>
Archived-At: <https://mailarchive.ietf.org/arch/msg/roll/gD9dm-wPjMAPQdHOtNF2opsXUqk>
Subject: Re: [Roll] Rtgdir last call review of draft-ietf-roll-dao-projection-32
X-BeenThere: roll@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: Routing Over Low power and Lossy networks <roll.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/roll>, <mailto:roll-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/roll/>
List-Post: <mailto:roll@ietf.org>
List-Help: <mailto:roll-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/roll>, <mailto:roll-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 30 Nov 2023 15:43:43 -0000

Dear Sue and all:

Based on this mail I made a second pass, see 
https://author-tools.ietf.org/iddiff?url1=draft-ietf-roll-dao-projection-32&url2=draft-ietf-roll-dao-projection-34 
to get it all since the beginning of Sue's review.

author-tools.ietf.org

Diff: draft-ietf-roll-dao-projection-32.txt - 
draft-ietf-roll-dao-projection-34.txt <#>

🔗 
https://author-tools.ietf.org/iddiff?url1=draft-ietf-roll-dao-projection-32&url2=draft-ietf-roll-dao-projection-34 
<https://author-tools.ietf.org/iddiff?url1=draft-ietf-roll-dao-projection-32&url2=draft-ietf-roll-dao-projection-34> 


  Again, many thanks for the in-depth review, and happy to have that 
online what when you are available

all the best

Pascal

Le 08/11/2023 à 16:05, Susan Hares a écrit :
>
> Pascal:
>
> Your text addresses most of my comments. I’m simply going to indicate 
> the comments that still have issues.
>
> I do not think technical/editorial issues #2, #4, #5b, and #6-#10.  
> Please note I forgot to number some of the issues.   I do not think 
> you addressed editorial issues.  (I probably would not have until I 
> finished the technical issues).
>
> I remain impressed with the work on roll.
>
> Cheers, Sue
>
> ===========
>
> Issues #2 and #4
>
> Just a few questions – I see you made changes to table 6 and table 9
>
> Table 9:
>
> *Header***
>
> 	
>
> *IPv6 Source Addr.***
>
> 	
>
> *IPv6 Dest. Addr.***
>
> 	
>
> *TrackID in RPI***
>
> Outer
>
> 	
>
> A
>
> 	
>
> C until C then E
>
> 	
>
> (A, 129)
>
> Inner
>
> 	
>
> X
>
> 	
>
> either E if(X!=A), or F, or G
>
> 	
>
> N/A
>
> As an example, say that A has a packet for F. Using the RIB above:
>
> But, it is not the changes I expected.   (I suggested E if (X !=A), F, 
> or G I think you
>
> mean E if (X != A or X !=F or X != G)
>
> Therefore, I’m confused by the text surrounding table 6 and table 9.
>
> Could you explain what you mean to say by the inner line in the 
> chart?  I’m also willing to take this offline next week after I return 
> from IETF.
>
> Issue #5-b
>
> On my comment: B) What is it preferred [so] that A encapsulations and 
> decapsulates?
> You provide a good explanation of why and what preferred are.  Will 
> this preference be indicated by a configuration knob?  If so, it might 
> be useful to indicate that fact.
>
> Issue #6: section 3.5.2.2, Table 13, targets, entry for P-DAO 2
>
> Why is the entry not “C, E” since your text states “P-DAO 2 signals A 
> ==> B ==>C to C, E”?
>
> I do not see how you have addressed this in the text.  Would you help 
> me out if I have missed it.
>
> Issue-7: section 3.5.2.3, Table 16, targets, P-DAO 1 to C Why is
> the entry not “E” since your text states “P-DAO 1 signals c == > D == 
> > E -to-E”.
> I do not see how you have addressed to in the text.  Again, perhaps I 
> missed it what you changed.
> Issue 8: (I did not label this issues, but we’ll use Issue #8)
> Section 4.1 extending RFC 6550 
> <https://datatracker.ietf.org/doc/rfc6550/>, paragraph 3, sentence 3 
> “In the context of
> this specification, the installed route appears as a more specific 
> route to the
> Track targets, and the Track Ingress forward packets toward the 
> targets via the
> Track using the longest match as normal.” Normal for IP? Normal for 
> RPL IP?
> Issue 9: (I did not label this issue in the original text, but we’ll 
> use Issue #9)
> Section 4.1.4 – How are loops prevented in the multicast DAO?  This is not
> really clear her or in section 3. Sections 4-7 have error handling, 
> but I am
> concerned since I am not an expert in RPL error handling.  I strongly 
> suggest
> an independent person RPL experience review this text. I am concerned 
> about
> what happens when messages drop in the midst of a switch from one 
> Track lane to
> an other or from one segment to another.
> Issue 10:
> Section 5 – the concept of lifetime being “infinity” for 0xFF needs a 
> clear description.  I believe you set to a
> value (even 0xFF) and then count down.  If 0xFF is a special value, 
> then it
> needs to be specified. Section 6 – Configured values should be carefully
> specified rather than stated “A reasonable time” see section 6.6.1 in 
> paragraph
> 3.
> Issue #11:  The changes to 6.7 seem to represent either a 
> clarification or an amendment of protocol procedures.
> Have you reviewed this with an other ROLL expert?
> Editorial issues:
> Did you choose to address these editorial issues?
> If so, I will comment on the editorial issues in the diff you sent.
> If not, you may choose to discuss with John Scudder whether he feels 
> the editorial comments are valid.
> Again, I am very impressed with effort and detail you have put into 
> this specification.
> As I mentioned in the roll meeting, I apologize for the delay in 
> responding to your edits.  We have two ways to quicken the next review:
> 1)Talk over the text via zoom call
> 2)Try to target specific issues.
> I suspect we will differ on the value of “running code” to find 
> procedural bugs in additions.  However, I will do my best to spot 
> errors in the procedures.
> I remain worried I will miss some important point in my review. It 
> would be good to have another expert who has written a roll 
> implementation to review the procedures in the next revision.
> Cheerily,  Sue
>
> *From:* Pascal Thubert (pthubert) <pthubert@cisco.com>
> *Sent:* Wednesday, September 27, 2023 10:42 AM
> *To:* Susan Hares <shares@ndzh.com>
> *Subject:* RE: Rtgdir last call review of 
> draft-ietf-roll-dao-projection-32
>
> : )
>
> Pascal
>
> *From:* Susan Hares <shares@ndzh.com>
> *Sent:* Wednesday, September 27, 2023 2:54 AM
> *To:* Pascal Thubert (pthubert) <pthubert@cisco.com>
> *Subject:* RE: Rtgdir last call review of 
> draft-ietf-roll-dao-projection-32
>
> Pascal:
>
> My apologies for the delay in responding to you.  I have been 
> heads-down on some IDR WG chair work.
>
> I’ll work on this on Wed 9/27. d
>
> Sue
>
> *From:* Pascal Thubert (pthubert) <pthubert@cisco.com>
> *Sent:* Wednesday, September 13, 2023 5:55 AM
> *To:* Pascal Thubert (pthubert) <pthubert@cisco.com>; Susan Hares 
> <shares@ndzh.com>; rtg-dir@ietf.org; Thubert Pascal 
> <pascal.thubert@gmail.com>
> *Cc:* draft-ietf-roll-dao-projection.all@ietf.org; last-call@ietf.org; 
> roll@ietf.org
> *Subject:* RE: Rtgdir last call review of 
> draft-ietf-roll-dao-projection-32
>
> Hello again Sue
>
> This took time, I'm sorry. There as quite a lot to do for to try to 
> address your comments rights.
>
> I published result of the first pass:
>
> URL: https://www.ietf.org/archive/id/draft-ietf-roll-dao-projection-33.txt
>
> Status: https://datatracker.ietf.org/doc/draft-ietf-roll-dao-projection/
>
> HTML: 
> https://www.ietf.org/archive/id/draft-ietf-roll-dao-projection-33.html
>
> HTMLized: 
> https://datatracker.ietf.org/doc/html/draft-ietf-roll-dao-projection
>
> Diff: 
> https://author-tools.ietf.org/iddiff?url2=draft-ietf-roll-dao-projection-33
>
> Note that your contribution will be acknowledged in the next push, 
> sorry I failed to do it here.
>
> Please see below:
>
> > Reasons Not ready:
>
> > 1) Text in
>
> > sections 3.4 and 3.5 have logic gaps that make it difficult to
>
> > determine if this general discussion is being implemented in section 7
>
> > (using sections 4 and 6)
>
> > 2) This document significantly modifies a major specification (RPL) 
> without a prototype
>
> > implementation that interoperates with RPL basic.   One example of 
> how this
>
> > impacts this document is the profile section.  The profile text has
>
> > editorial issues that make it unclear to a reader not involved in
>
> > writing the text.
>
> > 3) Operational details on the two strict rules that
>
> > prevent looping are unclear in the text.  One example is the
>
> > “administrator defining the ordering of the RPL domain” in section
>
> > 3.2. The text hints at what the answer might be, but it seems there 
> are policies.
>
> >
>
> > Proposed resolution of comments:  Place this specification as
>
> > experimental or await an implementation.
>
> >
>
> We need to open a group wide discussion on this. RPL itself shipped 
> without experimental status and it's still there. My personal belief 
> is we need to improve the text but could live a long time with std 
> track. At worse will do a v2. Our experience at ROLL is that 
> Experimental tends to do the opposite of the hoped effect and deter 
> implementers.
>
> In terms of impacts with RPL: The intersection is at the time of 
> encaps and decaps to avoid loops. The rest of the time, the instances 
> live as ships in the night to the interaction is limited.
>
> Since we are defining underlay wormholes, all the traffic that does 
> not match the wormhole entry criteria is not impacted.
>
> Now, I agree that 3.4.2 was confusing and needed rework. Sorry for 
> your pain. Let's see.
>
> > Text in section 3.4 – Technical and/or editorial Paragraph 2 starting
>
> > with “A track” has a “;” that confuses the text.  It is a critical
>
> > part of the description of how the encapsulating Source IP address and
>
> > RPI instance are set.
>
> Suggestion:
>
> "
>
>    A Track typically forms an underlay to the main Instance, and is
>
>    associated with a Local RPL Instance from which the RPLInstanceID is
>
>    used as the TrackID.  When a packet is placed on a Track, it is
>
>    encapsulated IP-in-IP with a RPL Option containing a RPI which
>
>    signals the RPLInstanceID.  The encapsulating source IP address and
>
>    RPI Instance are set to the Track Ingress IP address and local
>
>    RPLInstanceID, respectively, more in Section 6.3.
>
> "
>
> > The next paragraph jumps into the Track Lane as
>
> > an alternative to the segment in the main DODAG. It is important to
>
> > know if the longest-best match is being per RPL instance or across all
>
> > instances to link the packet to an ingress of a Track Lane or a
>
> > segment.
>
> Suggestion:
>
> "
>
>    A Track typically offers service protection across several lanes.  As
>
>    a degraded form of a Track, a path made of a single lane (i.e.,
>
>    offering no protection) can be used as an alternative to a Segment
>
>    for forwarding along a RPL Instance.  In that case, instead of
>
>    following native routes along the instance, the packets are
>
>    encapsulated to signal a more specific source-routed path between the
>
>    loose hops in the encapsulated source routing header.
>
> "
>
> > The last sentence in the paragraph that starts with “A track
>
> > lane” is very confusing.  Perhaps the text makes sense to someone
>
> > deeply embedded in the RPL community, but it is unclear from the
>
> > knowledgeable but unfamiliar reader.
>
> Suggestion:
>
> "
>
>    If the encapsulated packet follows a global instance, then the lane
>
>    may be part that global instance as well, for instance the global
>
>    instance of the main DODAG.  This can only be done for global
>
>    instances because the Ingress node that encapsulates the packets over
>
>    the lane is not the Root of the instance, so the source address of
>
>    the encapsulated packet cannot be used to determine the Track along
>
>    the way.
>
> "
>
> > Text in section 3.5 – Technical
>
> > and/or editorial Editorial: Please place at top of the example which
>
> > figure you are using. I assumed figure 6.  Please also indicate that “
>
> > in a table indicates the same value.
>
> done
>
> > Issue-1: Section 3.5, paragraph
>
> > 8, starting with “Loose sequences of hops” – technical/editorial
>
> > issue. I cannot find a clear logic step due to the use of commas.  The
>
> > problem is I need this logic to walk through the rest of the text.
>
> > Perhaps the authors could provide a bullet point of what they are
>
> > trying to say.
>
> Proposed rewording:
>
> "
>
>    Loose sequences of hops are expressed in Non-Storing Mode; this is
>
>    why P-DAO 3 contains a NSM-VIO.  With this specification:
>
>    *  the DODAGID to be used by the Ingress as source address is
>
>       signaled in the DAO base object (see Figure 8) .
>
>    *  the via list in the VIO is encoded as an SRH-6LoRH (see
>
>       Figure 16), and it starts with the address of the first hop node
>
>       after the Ingress node in the loose hop sequence.
>
>    *  the via list ends with the address of the Egress node.
>
>    Note well:
>
>    |  The Egress of a Non-Storing Mode P-Route is always implicitly a
>
>    |  target; it is not listed in the RPL Target Options but still
>
>    |  accounted for as if it was.
>
>    Also:
>
>    |  By design, the list of nodes in a VIO in Non-Storing Mode is
>
>    |  exactly the list that shows in the encapsulation SRH.  So in the
>
>    |  cases detailed below, if the Mode of the P-DAO is Non-Storing,
>
>    |  then the VIO row can be read as indicating the SRH as well.
>
> "
>
> > Issue-2.  Section 3.5.1.2 Format on inner form in Table
>
> > 6 in “E if (X !=A), F, or G I think you mean E if (X != A or X !=F 
> or X != G). If so, please modify.  If not, please change text. This 
> issue repeats.
>
> >
>
> The intention is to say that the destination address can be either
>
> E but that happens only if X is not A, or F unconditionally, or G 
> unconditionally.
>
> This is because as said above, " Packets from A to E do not require an 
> encapsulation. "
>
> Changed to " either E if(X != A), or F, or G "
>
> Address text above as:
>
> "
>
>    Packets from A to E do not require an encapsulation.  This is why in
>
>    the tables below, E may show as IPv6 Destination Address only if the
>
>    IPv6 Source Address X is different from A.  Conversely, the
>
>    encapsulation is always done when the IPv6 Destination Address is F
>
>    or G.  Other destination addresses do not match this P-Route and are
>
>    not subject to encapsulation.
>
> "
>
> > Issue-3: Section 5.1.3, Table 7 Target entry for P-DAO 2 to B Why is
>
> > the entry not “B,C” per your earlier text of  “P-DAO 2 signals A ==> 
> B to B, C”
>
> Good catch. It was commented out in the source, maybe a confusion 
> between storing and non-storing mode.
>
> Maybe we should always make the egress a target for simplicity?
>
> > Issue-4: Section 3.5.1.3, table 9 - E if (X !=A), F, or G I think you
>
> > mean E if (X != A or X !=F or X != G). If so, please modify the
>
> > tabl3e.  If not, please change section.
>
> Changed to " either E if(X != A), or F, or G "
>
> > Issue-5: section 3.5.2.1
>
> > Editorial/Technical: a) What does ND mean? B) What is it preferred
>
> > that A encapsulations and C decapsulates?
>
> A) Added
>
> "
>
>    As a result the RIBs are set as follows (using ND to indicate that
>
>    the address is discovered by IPv6 Neighbor Discovery
>
>    [RFC4861][RFC8505] or an equivalent method:
>
> "
>
> B) I cannot parse the question. Do you mean: Why is it ... ?
>
> If so, the argument is the same as in RFC 9008, the egress can remove 
> the RPI/SRH with the encaps for delivery and the RUL gets a clean 
> packet with no RPL artifact. Now there is a typo and that's really E 
> doing it. If that's your point, great catch.
>
> Updated the text to
>
> "
>
>    Packets originated at A to E, F and G could be generated with the RPI
>
>    and the SRH, and no encapsulation.  Alternatively, A may generate a
>
>    native packet to the target, and then encapsulate it with an RPI and
>
>    an SRH indicating the source-routed path leading to E, as it would
>
>    for a packet that it routes coming from another node.  This is
>
>    effectively the same case as for packets generated by the root in a
>
>    RPL network in Non-Storing mode, see section 8.1.3 of [RFC9008].  The
>
>    latter is often is preferred since it leads to a single code path,
>
>    and the destination when it is F or G, does no understand and process
>
>    the RPI or the SRH.
>
> "
>
> > Issue-6: section 3.5.2.2,
>
> > Table 13, targets, entry for P-DAO 2 Why is the entry not “C, E” since
>
> > your text states “P-DAO 2 signals A ==> B ==> C to C, E”?
>
> In this case it is effectively non-storing so the egress is an 
> implicit target.
>
> As said above, we might consider if it would be best to always 
> consider the egress as a target (even in storing mode) which means 
> more rib entries vs. a smaller message and simpler spec.
>
> > Issue-7:
>
> > section 3.5.2.3, Table 16, targets, P-DAO 1 to C Why is the entry not
>
> > “E” since your text states “P-DAO 1 signals c == > D == > E
>
> > -to- E”.
>
> Same as above; E is an implicit target since it is egress of a 
> non-storing P-route
>
> > Section 4.1 extending RFC 6550, paragraph 3, sentence 3 “In
>
> > the context of this specification, the installed route appears as a
>
> > more specific route to the Track targets, and the Track Ingress
>
> > forward packets toward the targets via the Track using the longest 
> match as normal.” Normal for IP?
>
> > Normal for RPL IP?
>
> Well for both. The FIB takes the longest match in the RIBs.
>
> > Section 4.1.4 – How are loops prevented in the multicast DAO?  This is
>
> > not really clear her or in section 3.
>
> The origin of the mcast DAO provides the list of all its neighbors so 
> it can serve as a relay between neighbors that are too far apart from 
> one another. You'll find that concept already in MANET with NHDP, RFC 
> 6130.
>
> So there's no routing involved, and as long as the sender of the mcast 
> DAO has the destination as neighbor as advertised, there can be no 
> loop. Keep in mind that direct neighbor has precedence over indirect, 
> which has precedence over routing.
>
> Now if the sender loses the destination as neighbor; loops may occur. 
> If we want to handle that case we could do a number of things, e.g: 
> poison back to the previous hop using the RPI as we do in RPL, 
> decrement the TTL to 2 when sending to an indirect neighbor, keep a 
> state about the neighbor gone and drop packets till more mcast DAOs 
> have cleaned the situation up. What do you think?
>
> Finally: for  completeness I reread the text on loop avoidance in 
> 6.6.2. and reworded to clarify as follows:
>
> "
>
>    It is known that a packet is forwarded along a Track by the source
>
>    address and the RPI in the encapsulation.  The Track ID is used to
>
>    identify the RIB entries associated to that Track, which, in
>
>    intermediate nodes, correspond to the P-routes for the segments of
>
>    the Track that the forwarding router is aware of.  The packet
>
>    processing uses a precedence that favors self delivery or routing
>
>    header handling when one is present, then delivery to direct
>
>    neighbors, then to indirect neighbors, then routing along a segment
>
>    along the Track, and finally as a last resort injecting the packet in
>
>    another Track.
>
>    To achieve this, the packet handling logic MUST happen in the
>
>    following order:
>
> Thubert, et al.           Expires 15 March 2024                [Page 66]
>
> Internet-Draft               DAO Projection               September 2023
>
>    *  If the destination of the packet is self:
>
>       1.  if the header chain contains a RPL Source Route Header that is
>
>           not fully consumed, then the packet is forwarded along the
>
>           Track as prescribed by [RFC6554], meaning that the next entry
>
>           in the routing header becomes the destination;
>
>       2.  otherwise: if the packet was encapsulated, then the packet is
>
>           decapsulated and the forwarding process recurses; else the
>
>           packet is delivered to the stack.
>
>    *  Otherwise, the packet is forwarded as follows:
>
>       1.  If the destination of the packet is a direct neighbor, e.g.,
>
>           installed by IPv6 Neighbor Discovery, then the packet the
>
>           packet MUST be forwarded to that neighbor;
>
>       2.  Else If the destination of the packet is an indirect neighbor,
>
>           e.g., installed by a multicast DAO message from a common
>
>           neighbor, see Section 4.1.4, then the packet MUST be forwarded
>
>           to the common neighbor;
>
>       3.  Else, if there is a RIB entry for the same Track (e.g.,
>
>           installed by an SM-VIO in a DAO message with the destination
>
>           as target), and the next hop in the RIB entry is a direct
>
>           neighbor, then the packet is passed to that neighbor;
>
>       4.  Else, if there is a RIB entry for the different Track (e.g.,
>
>           installed by an NSM-VIO in a DAO message with the destination
>
>           as target), then the packet is encapsulated to be forwarded
>
>           along that Track and the forwarding process recurses;
>
>           otherwise the packet is dropped.
>
>       5.  To avoid loops, and as opposed to packets that were not
>
>           encapsulated, a packet that was decapsulated from a Track MUST
>
>           NOT be routed along the default route of the main DODAG; this
>
>           would mean that the end-to-end path is uncontrolled.  The node
>
>           that discovers the fault MUST discard the packet.
>
>    The node that drops a packet for either of the reasons above MUST
>
>    send an ICMPv6 Error message [RFC4443] to the Root, with a new Code
>
>    "Error in P-Route" (See Section 11.15).  The Root can then repair by
>
>    updating the broken Segment and/or Tracks, and in the case of a
>
>    broken Segment, remove the leftover sections of the Segment using SM-
>
>    VIOs with a lifetime of 0 indicating the section to one or more nodes
>
>    being removed (See Section 6.6).
>
> "
>
> Note that there can still be a loop of Tracks, but then that's a bug 
> in the controller.
>
> We could have ordered the tracks to avoid that, but that would be 
> added complexity.
>
> > Sections 4-7 have error
>
> > handling, but I am concerned since I am not an expert in RPL error
>
> > handling.  I strongly suggest an independent person RPL experience
>
> > review this text. I am concerned about what happens when messages drop
>
> > in the midst of a switch from one Track lane to an other or from one
>
> > segment to another.
>
> I'll trust my co authors on that. They are some of the most 
> knowledgeable RPL people, bot with implementation experience. Maybe we 
> can also ask Dominique (co-chair) who also has that experience.
>
> > Section 5 – the concept of lifetime being
>
> > “infinity” for 0xFF needs a clear description.  I believe you set to a
>
> > value (even 0xFF) and then count down.  If 0xFF is a special value,
>
> > then it needs to be specified.
>
> Added " (never time out)"
>
> > Section 6 – Configured values should be
>
> > carefully specified rather than stated “A reasonable time” see 
> section 6.6.1 in paragraph 3.
>
> That was always problematic with RPL, which deals with a large variety 
> of environments, some with high latency. As the text says, that's what 
> the particular network needs to drain its queues.
>
> > =============
>
> > Strictly Editorial issues:
>
> > #1 Section 2.3 – missing at least PSE and ARQ.  Please do a search to
>
> > make sure you have all the abbreviations.  I ran out of time to do 
> that search.
>
> done
>
> >  Was there a reason you did not provide the original place these terms
>
> > were defined?  Are you assuming that section 1 allows you to skip 
> this step?
>
> Most terms are very familiar in the RPL and radio spaces. I do not 
> even have a clue who defined ARQ or where. For things less common to 
> RPL people like Point of Local Repair (PSE was renamed at RAW) there's 
> text in the first use that provides a reference.
>
> > #2 Section 2.3.5.5:
>
> > This section contains a single run-on sentence with unclear 
> language.   If
>
> > you
>
> > mean that all Serial tracks are created from segments, you could
>
> > include this in your definition in 2.4.5.3.  If not, please modify
>
> > both to indicate what you mean. New:/Refers to a Segment or a lane
>
> > that is installed with a single P-DAO and fully defines a serial Track
>
> > installed from single Storing Mode Via Information option (SM-VIO). /
>
> We're talking about section 3.4.5.5. The answer is the "if not". A 
> serial track could also be a lane expressed as a strict source routed 
> path, in which case there's no segment. Following RAW, we are removing 
> that "serial track", just using "path". Proposed slight rewording:
>
> "
>
>     Refers to a Segment or a Lane that is installed with a single 
> P-DAO that
>
>     fully defines the path, e.g., a stand-alone segment is installed
>
>     with a single Storing Mode Via Information option (SM-VIO) all the way
>
>     between Ingress and Egress.
>
> "
>
> > #3: Section 3.2, paragraph 8 The two strict ordering rules would
>
> > benefit from a numerical list in the order.  Here are possible text
>
> > changes for this paragraph: New-1/ The possible forwarding methods are
>
> > the following: 1)  to a direct next hop,  2) to an indirect neighbor
>
> > via a common neighbor, 3) along a segment, and 4) along a track./
>
> Done. Also indicated a reference to section 6.7.  Encapsulating and 
> Forwarding Along a Track
>
> > New-2/ A RPL Instance may leverage another instance if and if only if
>
> > that other Instance is higher in the order defined by the operator.
>
> > Higher instances [should/must?] be defined as higher if they are
>
> > farther away from the main instance. / The text is unclear how the
>
> > operator will know what the ordering should be.
>
> Makes sense. I also split the 7th paragraph for more clarity.
>
> "
>
> Routing in a multi-topology domain may cause loops unless strict
>
>    rules are applied.  This specification defines two strict orders to
>
>    ensure loop avoidance when projected routes are used in a RPL domain,
>
>    one between forwarding methods and one between RPL Instances, seen as
>
>    routing topologies.
>
>    The first and strict order relates to the forwarding method and the
>
>    more specifically the origin of the information used in the next-hop
>
>    computation.  The possible forwarding methods are: 1) to a direct
>
>    next hop, 2) to an indirect neighbor via a common neighbor, 3) along
>
>    a Segment, and 4) along a nested Track.  The methods are strictly
>
>    ordered as listed above, more in Section 6.7.  A forwarding method
>
>    may leverage any of the lower order ones, but never one with a higher
>
>    order; for instance, when forwarding a packet along a Segment, the
>
>    router may use direct or indirect neighbors but cannot use a Track.
>
>    The lower order methods have a strict precedence, so the router will
>
>    always prefer a direct neighbor over an indirect one, or a Segment
>
>    within the current RPL Instance vs. another Track.
>
>    The second strict and partial order is between RPL Instances.  It
>
>    allows the RPL node to detect an error in the state installed by the
>
>    PCE, e.g., after a desynchronization.  That order must be defined by
>
>    the administrator for his RPL domain and defines a DODAG of underlays
>
>    with the main Instance as Root.  The relation of RPL instances may be
>
>    represented as a DODAG of instances where the main instance is Root.
>
>    The rule is that a RPL Instance may leverage another RPL instance as
>
>    underlay if and only if that other Instance is one of its descendants
>
>    in the graph.  Supporting this method is OPTIONAL for nested Tracks
>
>    and REQUIRED between a Track instance and the main instance.  It may
>
>    be done using network management, or future extensions to this
>
>    specifications.  When it is not communicated, then the RPL nodes
>
>    consider by default that all Track instances are children of the main
>
>    instance, and do not attempt to validate the order for nested Tracks,
>
>    trusting the PCE implicitly.  As a result, a packet that is being
>
>    forwarded along the main Instance may be encapsulated in any Track,
>
>    but a packet that was forwarded along a Track MUST NOT be forwarded
>
>    along the default route of main Instance. "
>
> > #3 section 3.3,
>
> > paragraph 3. Old: /Limiting the packet size is directly beneficial to
>
> > the energy budget, but mostly, it reduces the changes of frame loss
>
> > and packet fragmentation, which are high detrimental to the LLN
>
> > operational.] The sentences should be rewritten as two sentences.  I
>
> > believe you are saying: 1) reduces packet size cuts transmission time
>
> > + reduces frame loss + packet fragmentation. You are indicating that
>
> > reasons #2 and #3 are more important than #1.  Please just state that.
>
> Proposed:
>
> "
>
>    Limiting the packet size is beneficial to the energy
>
>    budget, directly for the current transmission, but also indirectly
>
>    since it reduces the chances of frame loss and energy spent in
>
>    retries, e.g., by ARQ over one hop at Layer-2, or end-to-end at upper
>
>    layers.  Using smaller packets also reduces the chances of packet
>
>    fragmentation, which is highly detrimental to the LLN operation, in
>
>    particular when fragments are forwarded but not recovered, see
>
>    [RFC8930] vs. [RFC8931] for more.
>
> "
>
> > Note – after section 4, my editorial review was brief so I may have
>
> > missed some of the sentence which use the “;” in an improper way.
>
> #4
>
> > section 4.1.1, paragraph 3 starting “This document Amends” Unless it 
> is clearly specified in standards, then “AMENDS” or whatever is used. 
> #5  section 4.1.4 to end RAN is an abbreviation that is widely 
> used.  I suggest you pick another abbreviation:
>
> > RPLAN
>
> RAN is a RPL term defined in rfc9008 ; I added that reference in the 
> Terminology section.
>
> I used 2 commits to get through this pass:
>
> - 
> https://github.com/roll-wg/dao-projection/commit/e1e583e25f4d400653e92d41b4961f3cd428f08c
>
> - 
> https://github.com/roll-wg/dao-projection/commit/b4a5ad8237fb21642147e933ac766344329259a4 
> for the largest
>
> Pascal
>
> >
>
> > > -----Original Message-----
>
> > > From: Susan Hares via Datatracker <noreply@ietf.org>
>
> > > Sent: Wednesday, August 23, 2023 11:56 PM
>
> > > To: rtg-dir@ietf.org
>
> > > Cc: draft-ietf-roll-dao-projection.all@ietf.org; last-call@ietf.org;
>
> > > roll@ietf.org
>
> > > Subject: Rtgdir last call review of draft-ietf-roll-dao-projection-32
>
> > >
>
> > > Reviewer: Susan Hares
>
> > > Review result: Has Issues
>
> > >
>
> > > Status: Has Issues
>
> > > Summary:
>
> > > This specification demonstrates an amazing amount of work.  I commend
>
> > > the authors for their creativity and their diligence in forging
>
> > > forward on new concepts in routing. Reasons Not ready: 1) Text in
>
> > > sections 3.4 and 3.5 have logic gaps that make it difficult to
>
> > > determine if this general discussion is being implemented in section 7
>
> > > (using sections 4 and 6) 2) This document significantly modifies a 
> major
>
> > specification (RPL) without a prototype
>
> > > implementation that interoperates with RPL basic.   One example of how
>
> > this
>
> > > impacts this document is the profile section.  The profile text has
>
> > > editorial issues that make it unclear to a reader not involved in
>
> > > writing the text. 3) Operational details on the two strict rules that
>
> > > prevent looping are unclear in the text.  One example is the
>
> > > “administrator defining the ordering of the RPL domain” in section
>
> > > 3.2. The text hints at what the answer might be, but it seems 
> there are
>
> > policies.
>
> > >
>
> > > Proposed resolution of comments:  Place this specification as
>
> > > experimental or await an implementation.
>
> > >
>
> > > Text in section 3.4 – Technical and/or editorial Paragraph 2 starting
>
> > > with “A track” has a “;” that confuses the text.  It is a critical
>
> > > part of the description of how the encapsulating Source IP address and
>
> > > RPI instance are set.  The next paragraph jumps into the Track Lane as
>
> > > an alternative to the segment in the main DODAG. It is important to
>
> > > know if the longest-best match is being per RPL instance or across all
>
> > > instances to link the packet to an ingress of a Track Lane or a
>
> > > segment. The last sentence in the paragraph that starts with “A track
>
> > > lane” is very confusing.  Perhaps the text makes sense to someone
>
> > > deeply embedded in the RPL community, but it is unclear from the
>
> > > knowledgeable but unfamiliar reader. Text in section 3.5 – Technical
>
> > > and/or editorial Editorial: Please place at top of the example which
>
> > > figure you are using. I assumed figure 6.  Please also indicate that “
>
> > > in a table indicates the same value. Issue-1: Section 3.5, paragraph
>
> > > 8, starting with “Loose sequences of hops” – technical/editorial
>
> > > issue. I cannot find a clear logic step due to the use of commas.  The
>
> > > problem is I need this logic to walk through the rest of the text.
>
> > > Perhaps the authors could provide a bullet point of what they are
>
> > > trying to say. Issue-2.  Section 3.5.1.2 Format on inner form in Table
>
> > > 6 in “E if (X !=A), F, or G I think you mean E if (X != A or X !=F 
> or X
>
> > != G). If so, please modify.  If not, please change text. This issue
>
> > repeats.
>
> > >
>
> > > Issue-3: Section 5.1.3, Table 7 Target entry for P-DAO 2 to B Why is
>
> > > the entry not “B,C” per your earlier text of  “P-DAO 2 signals A ==> B
>
> > to B, C”
>
> > > Issue-4: Section 3.5.1.3, table 9 - E if (X !=A), F, or G I think you
>
> > > mean E if (X != A or X !=F or X != G). If so, please modify the
>
> > > tabl3e.  If not, please change section. Issue-5: section 3.5.2.1
>
> > > Editorial/Technical: a) What does ND mean? B) What is it preferred
>
> > > that A encapsulations and C decapsulates? Issue-6: section 3.5.2.2,
>
> > > Table 13, targets, entry for P-DAO 2 Why is the entry not “C, E” since
>
> > > your text states “P-DAO 2 signals A ==> B ==> C to C, E”? Issue-7:
>
> > > section 3.5.2.3, Table 16, targets, P-DAO 1 to C Why is the entry not
>
> > > “E” since your text states “P-DAO 1 signals c == > D == > E
>
> > > -to- E”. Section 4.1 extending RFC 6550, paragraph 3, sentence 3 “In
>
> > > the context of this specification, the installed route appears as a
>
> > > more specific route to the Track targets, and the Track Ingress
>
> > > forward packets toward the targets via the Track using the longest 
> match
>
> > as normal.” Normal for IP?
>
> > > Normal for RPL IP?
>
> > > Section 4.1.4 – How are loops prevented in the multicast DAO?  This is
>
> > > not really clear her or in section 3. Sections 4-7 have error
>
> > > handling, but I am concerned since I am not an expert in RPL error
>
> > > handling.  I strongly suggest an independent person RPL experience
>
> > > review this text. I am concerned about what happens when messages drop
>
> > > in the midst of a switch from one Track lane to an other or from one
>
> > > segment to another. Section 5 – the concept of lifetime being
>
> > > “infinity” for 0xFF needs a clear description.  I believe you set to a
>
> > > value (even 0xFF) and then count down.  If 0xFF is a special value,
>
> > > then it needs to be specified. Section 6 – Configured values should be
>
> > > carefully specified rather than stated “A reasonable time” see section
>
> > 6.6.1 in paragraph 3.
>
> > > =============
>
> > > Strictly Editorial issues:
>
> > > #1 Section 2.3 – missing at least PSE and ARQ.  Please do a search to
>
> > > make sure you have all the abbreviations.  I ran out of time to do 
> that
>
> > search.
>
> > >  Was there a reason you did not provide the original place these terms
>
> > > were defined?  Are you assuming that section 1 allows you to skip this
>
> > step?
>
> > > #2 Section 2.3.5.5:
>
> > > This section contains a single run-on sentence with unclear language.
>
> > If
>
> > > you
>
> > > mean that all Serial tracks are created from segments, you could
>
> > > include this in your definition in 2.4.5.3.  If not, please modify
>
> > > both to indicate what you mean. New:/Refers to a Segment or a lane
>
> > > that is installed with a single P-DAO and fully defines a serial Track
>
> > > installed from single Storing Mode Via Information option (SM-VIO). /
>
> > > #3: Section 3.2, paragraph 8 The two strict ordering rules would
>
> > > benefit from a numerical list in the order.  Here are possible text
>
> > > changes for this paragraph: New-1/ The possible forwarding methods are
>
> > > the following: 1)  to a direct next hop,  2) to an indirect neighbor
>
> > > via a common neighbor, 3) along a segment, and 4) along a track./
>
> > > New-2/ A RPL Instance may leverage another instance if and if only if
>
> > > that other Instance is higher in the order defined by the operator.
>
> > > Higher instances [should/must?] be defined as higher if they are
>
> > > farther away from the main instance. / The text is unclear how the
>
> > > operator will know what the ordering should be. #3 section 3.3,
>
> > > paragraph 3. Old: /Limiting the packet size is directly beneficial to
>
> > > the energy budget, but mostly, it reduces the changes of frame loss
>
> > > and packet fragmentation, which are high detrimental to the LLN
>
> > > operational.] The sentences should be rewritten as two sentences.  I
>
> > > believe you are saying: 1) reduces packet size cuts transmission time
>
> > > + reduces frame loss + packet fragmentation. You are indicating that
>
> > > reasons #2 and #3 are more important than #1.  Please just state that.
>
> > > Note – after section 4, my editorial review was brief so I may have
>
> > > missed some of the sentence which use the “;” in an improper way. #4
>
> > > section 4.1.1, paragraph 3 starting “This document Amends” Unless 
> it is
>
> > clearly specified in standards, then “AMENDS” or whatever is used. #5
>
> > section 4.1.4 to end RAN is an abbreviation that is widely used.  I
>
> > suggest you pick another abbreviation:
>
> > > RPLAN
>
> > >
>
> > >
>
>
> _______________________________________________
> Roll mailing list
> Roll@ietf.org
> https://www.ietf.org/mailman/listinfo/roll