[Roll] Review of draft-ietf-roll-aodv-rpl-12
Konrad Iwanicki <iwanicki@mimuw.edu.pl> Mon, 07 February 2022 07:05 UTC
Return-Path: <iwanicki@mimuw.edu.pl>
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 3CBFD3A07D4; Sun, 6 Feb 2022 23:05:37 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
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 aer6tNF_VKIR; Sun, 6 Feb 2022 23:05:30 -0800 (PST)
Received: from mail.mimuw.edu.pl (mail.mimuw.edu.pl [IPv6:2001:6a0:5001::4]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 4B8093A07D7; Sun, 6 Feb 2022 23:05:28 -0800 (PST)
Received: from localhost (localhost [127.0.0.1]) by duch.mimuw.edu.pl (Postfix) with ESMTP id CC6D460097896; Mon, 7 Feb 2022 08:05:23 +0100 (CET)
X-Virus-Scanned: amavisd-new at mimuw.edu.pl
Received: from duch.mimuw.edu.pl ([127.0.0.1]) by localhost (mail.mimuw.edu.pl [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id wAj6_Bka1AqO; Mon, 7 Feb 2022 08:05:21 +0100 (CET)
Received: from [IPV6:2a02:a311:813e:880:fce8:f3:4ae1:bd31] (unknown [IPv6:2a02:a311:813e:880:fce8:f3:4ae1:bd31]) (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 duch.mimuw.edu.pl (Postfix) with ESMTPSA; Mon, 7 Feb 2022 08:05:20 +0100 (CET)
Message-ID: <51f1c414-0e02-f09f-83a2-6efb6a19a352@mimuw.edu.pl>
Date: Mon, 07 Feb 2022 08:05:20 +0100
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:91.0) Gecko/20100101 Thunderbird/91.5.1
From: Konrad Iwanicki <iwanicki@mimuw.edu.pl>
Reply-To: Routing Over Low power and Lossy networks <roll@ietf.org>
To: roll@ietf.org
Cc: roll-chairs@ietf.org
References: <f7a504ac-764d-09e9-d969-067e6a21646a@mimuw.edu.pl>
Content-Language: en-US
In-Reply-To: <f7a504ac-764d-09e9-d969-067e6a21646a@mimuw.edu.pl>
Content-Type: text/plain; charset="UTF-8"; format="flowed"
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/roll/8cB79Z6k30_fgqA5XfznrcC0PJg>
Subject: [Roll] Review of draft-ietf-roll-aodv-rpl-12
X-BeenThere: roll@ietf.org
X-Mailman-Version: 2.1.29
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: Mon, 07 Feb 2022 07:05:37 -0000
Dear authors, I have the following remarks regarding the draft. (The comments are based solely on the contents of the draft. I did not review the change log nor any meeting proceedings.) # Major issues / questions: 1. For garbage-collecting RREQ- and RREP-DODAGs that are no longer necessary, a timeout solution is used: the L field in the RRE(Q|P) messages. Although this is not formulated explicitly in the draft, from the format of the messages, I assume that the timeout is counted locally and independently by each node, from the moment it joins the corresponding DODAG. In particular, depending among others on the network topology, the configuration of Trickle, and the underlying link-layer, a node may start a timeout for a DODAG after another has already left this DODAG. This is dangerous as it may lead to situations in which information about a DODAG is never garbage-collected because nodes that leave the DODAG may rejoin it upon hearing information from other nodes that are still in the DODAG. I would opt for an alternative solution or at least some poisoning- or grace-period based approach. In addition, it would be nice to have in the draft a potential risk analysis regarding the configuration parameters of the solution. 2. What is the rationale behind deleting by TargNode the DIO ART Option containing its address (and then taking address set intersections when propagating the DIOs)? What problem do these mechanisms aim to solve? A node can still receive DIOs along multiple paths. It should be able to choose the "most desirable one". Deleting the target address and using the intersection mechanism described in Sect. 6.2.2. may actually preclude this behavior if the "most desirable path" for a TargNode is not the one it obtains first. For example, consider the following circular network: A1 - OR - B1 | | A2 B2 | | T1 - T2 - B3 with OR = OrigNode, T1 = TargNode1, T2 = TargNode2, and (A|B)* acting as intermediate routers. Suppose that the path over nodes B* is the most desirable one for both T1 and T2. Now, consider the following scenario. T1 receives an RREQ-DIO first from A2 and joins the RREQ-DODAG. It then propagates the DIO to T2 but with ART Option with its own address (T1) removed. In effect T2 also joins the RREQ-DODAG, remembering however that the last RREQ-DIO contained only T2. Now, T2 finally receives an RREQ-DIO from B3. It does not propagate to T1 this path because: (1) it removes its own address from the DIO and (2) the address of T1 is not included because of taking the intersection of the address sets T2 received in the DIOs along the two paths. In effect, T1 will never learn the most desirable path. Is this what is expected to happen or am I missing something? Again, it is not clear to me what the goal of the removal and intersection is. In the end, original RPL creates routes from multiple targets (all nodes) to the root, so why does this protocol require dynamically removing the targets? 3. A related concern applies to Sect. 6.2.6., more specifically, to the second statement: "If, on the other hand, TargNode was already associated with the RREQ-Instance, it takes no further action and does not send an RREP-DIO." To me, it implies that TargNode replies with RREP-DIO to the first RREQ that results in its joining the corresponding RREQ-DODAG. In particular, if it learns about a better path to OrigNode, it does not use this path instead of the first path it joined. Again, am I missing something or is this intentional? If so, it seems somewhat conflicting with the second paragraph of Sect. 6.3, which allows the node to wait for RREP_WAIT_TIME before replying. Trying to combine these two sections, my understanding would be that TargNode sends an RREP to the best path that it is able to learn within the RREP_WAIT_TIME. If this was the intention, then what is the rationale behind setting the default RREP_WAIT_TIME to 0 for L = 0? This would imply that for an RREQ-DODAG that is to be maintained infinitely long, only the first path to OrigNode learned by TargNode is considered. In general, why not introduce into the protocol algorithms for TargNode to update its path when it learns a better one? This would also require updating RREP propagation, which is again done only for the first received message (per Sect. 6.4). 4. It is not entirely clear to me how Trickle timers govern transmissions of multicast RREQ/RREP DIOs. In particular, when the timers are reset? How is this policy influenced by the fact that, in line with my previous comments, in principle a node reacts only the first RREQ/RREP DIOs that cause its joining the corresponding DODAGs. Perhaps a bit extended discussion of these issues could be provided in Sect. 8. 5. There is also no discussion in the draft of a situation in which a node has no resources to join a RREQ- or RREP-DODAG. While in the case of RPL, this is arguably not that relevant, in the proposed protocol, there may be many concurrent DODAGs, and hence it is intuitively more likely that some nodes may lack resources to handle all DODAGs. # Smaller issues / nits: Page 4, definition of "AODV": add a space between "Routing" and "[RFC3561]". Page 4, definition of "DODAG RREQ-Instance": "control message transmission" (hard to parse) => "transmission of control messages" Page 4, definition of "DODAG RREP-Instance": the same as above Page 6, text ""RREQ-DIO message" means the DIO message from OrigNode to TargNode" is confusing as DIO messages are link-local. Changing this to ""RREQ-DIO message" means a DIO message from OrigNode toward TargNode" may sound better. The same applies to the next statement. Page 8, definition of "L": "the time" => "time" Page 8, definition of "MaxRank" is confusing. The name would suggest that this is the maximal allowed value, whereas the text implies that this is the minimal disallowed value. Perhaps the name "MaxRank" could be changed to something else, like "RankLimit". Page 8, "Other nodes MUST NOT join RREQ instance if its own Rank would be" => "Any other node MUST NOT join..." Page 9, definition of "L": "The lifetime of the RREP-Instance MUST be shorter than the lifetime of the RREQ-Instance to which it is paired. What if the lifetime of the RREQ-Instance is infinite? In general, why such a requirement? Page 14, the last paragraph, text starting from "It does this..." is unclear to me. What happens in the end with MaxUseRank? (This is the first and only paragraph where this symbol occurs.) Page 18, the last paragraph: term "shift" is somewhat misleading (to me it describes bit shifts: right shift, left shift). Perhaps "offset" or "delta" would be better. Page 18, the last paragraph: The text starting with "In RREP-DIO option, the Shift field..." seems confusing. More specifically, it is not clear to me what is shifted/offset: (1) does the receiving node have to offset the RPLInstanceID in the RREP-DIO to obtain the RPLInstanceId in the RREQ-DIO OR (2) is the RPLInstanceID in the RREP-DIO equal to the RPLInstanceID in the RREQ-DIO but the receiving node should offset the former so as to avoid conflicts? I guess it is (1) but am not sure based on the text. In particular, what "original" means there? Page 18, the last paragraph: "would prevent intermediate routers to distinguish" => "would prevent intermediate routers from distinguishing". Page 20, Sect. 6.4.4., "Otherwise In case of an asymmetric route" => "Otherwise, in case of an asymmetric route" Page 20, Sect. 7, the second paragraph: "is at least as large" as what? As the sequence number in the RREQ-DIO message? Rather than / in addition to Appendix A, perhaps citing relevant scientific papers may be informative? That seems all given the time I had. Hope that the review helps. Best, -- - Konrad Iwanicki.
- [Roll] Review of draft-ietf-roll-enrollment-prior… Konrad Iwanicki
- Re: [Roll] Review of draft-ietf-roll-enrollment-p… Rahul Jadhav
- Re: [Roll] Review of draft-ietf-roll-enrollment-p… Pascal Thubert (pthubert)
- Re: [Roll] Review of draft-ietf-roll-enrollment-p… Pascal Thubert (pthubert)
- Re: [Roll] Review of draft-ietf-roll-enrollment-p… Michael Richardson
- Re: [Roll] Review of draft-ietf-roll-enrollment-p… Konrad Iwanicki
- Re: [Roll] Review of draft-ietf-roll-enrollment-p… Pascal Thubert (pthubert)
- Re: [Roll] Review of draft-ietf-roll-enrollment-p… Konrad Iwanicki
- Re: [Roll] Review of draft-ietf-roll-enrollment-p… Pascal Thubert (pthubert)
- Re: [Roll] Review of draft-ietf-roll-enrollment-p… Michael Richardson
- Re: [Roll] Review of draft-ietf-roll-enrollment-p… Michael Richardson
- Re: [Roll] Review of draft-ietf-roll-enrollment-p… Michael Richardson
- Re: [Roll] Review of draft-ietf-roll-enrollment-p… Pascal Thubert (pthubert)
- Re: [Roll] Review of draft-ietf-roll-enrollment-p… Pascal Thubert (pthubert)
- Re: [Roll] Review of draft-ietf-roll-enrollment-p… Konrad Iwanicki
- Re: [Roll] Review of draft-ietf-roll-enrollment-p… Michael Richardson
- Re: [Roll] Review of draft-ietf-roll-enrollment-p… Pascal Thubert (pthubert)
- [Roll] Review of draft-ietf-roll-enrollment-prior… Konrad Iwanicki
- Re: [Roll] Review of draft-ietf-roll-enrollment-p… Pascal Thubert (pthubert)
- [Roll] Review of draft-ietf-roll-aodv-rpl-12 Konrad Iwanicki
- Re: [Roll] Review of draft-ietf-roll-aodv-rpl-12 Charles Perkins
- Re: [Roll] Review of draft-ietf-roll-aodv-rpl-12 Konrad Iwanicki