[Iot-directorate] draft-ietf-roll-enrollment-priority-18 telechat Iotdir review
Toerless Eckert via Datatracker <noreply@ietf.org> Tue, 18 August 2026 16:58 UTC
Return-Path: <noreply@ietf.org>
X-Original-To: iot-directorate@ietf.org
Delivered-To: iot-directorate@mail2.ietf.org
Received: from [10.244.9.159] (gaia.k8s.ietf.org [4.156.85.76]) by mail2.ietf.org (Postfix) with ESMTP id 2AA3512BCE984; Tue, 18 Aug 2026 09:58:20 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1787072300; bh=G4WEkSRUlQMq2kAvRVrzrObzHSO/XIfTz3f2bs8YFVk=; h=From:To:Cc:Subject:Reply-To:Date; b=kaJ1jtJGT2IYa0UCCMRgAB/Cae3XWvKdk28w+3iHS98TZ+x9s+/Re+ANjnsN29cuh WtREdu1MXSV8ARVWBRrs9mdxG6wbsfF5Ez+2Z2rLgU/VTQDt6Z71NqpY27WRBFm6o1 hcCSomKq7v2rklvi/FC8UfK73ErNFhZhycSz7u1U=
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
From: Toerless Eckert via Datatracker <noreply@ietf.org>
To: iot-directorate@ietf.org
X-Test-IDTracker: no
X-IETF-IDTracker: 12.71.0
Auto-Submitted: auto-generated
Precedence: bulk
Message-ID: <178707230003.528021.3161805968893086206@dt-datatracker-7c6ddbc678-lb5nk>
Date: Tue, 18 Aug 2026 09:58:20 -0700
Message-ID-Hash: SXFQNPPCYP3TBIGUXWXE3BOCIJQCTDSU
X-Message-ID-Hash: SXFQNPPCYP3TBIGUXWXE3BOCIJQCTDSU
X-MailFrom: noreply@ietf.org
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: draft-ietf-roll-enrollment-priority.all@ietf.org, last-call@ietf.org, roll@ietf.org
X-Mailman-Version: 3.3.9rc6
Reply-To: Toerless Eckert <tte@cs.fau.de>
Subject: [Iot-directorate] draft-ietf-roll-enrollment-priority-18 telechat Iotdir review
List-Id: Mailing list for the IoT Directorate Members <iot-directorate.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/iot-directorate/LP0XyfibSzRbHVIsMfyEyfTKt-0>
List-Archive: <https://mailarchive.ietf.org/arch/browse/iot-directorate>
List-Help: <mailto:iot-directorate-request@ietf.org?subject=help>
List-Owner: <mailto:iot-directorate-owner@ietf.org>
List-Post: <mailto:iot-directorate@ietf.org>
List-Subscribe: <mailto:iot-directorate-join@ietf.org>
List-Unsubscribe: <mailto:iot-directorate-leave@ietf.org>
Document: draft-ietf-roll-enrollment-priority
Title: Controlling Network Enrollment in RPL networks
Reviewer: Toerless Eckert
Review result: On the Right Track
Document: draft-ietf-roll-enrollment-priority-18
Title: Controlling Network Enrollment in RPL networks
Reviewer: Toerless Eckert
Review result: On the Right Track
Hi authors,
I have been selected as the IoT Directorate reviewer for this draft.
This review is intended to help the authors, working group, and ADs to
improve the document.
Document: draft-ietf-roll-enrollment-priority-18
Reviewer: Toerless Eckert
Review Date: August 18th, 2026
Intended Status: Standards Track
Thanks a lot for the work.
Benefits: This work looks like a useful optimization for deploying RPL,
specifically but not exclusively in 6TiSCH networks. Unfortunately, a really
good, motivating deployment example is missing, so I have unfortunately no idea
of the degree of benefits. An example deployment description that is choosen
for maximum benefit would be nice to motivate the work best.
Problems: I am top-posting three technical issues; all further issues are inlined.
1. The major issue of the draft is that it is completely unclear about its
scope. Its name and main text suggest that this is about improving
RFC9031/RFC9032 enrollment, but then it mentions en passant that it is also
meant to help improve tree balancing across multiple DODAGs in RPL parent
selection. This is further confused by the draft's attempt to disambiguate the
term "join", which is used for both processes - an attempt that does not succeed
(see inline comments).
This is most confusing because one of the parameters of the new option, the
DODAG size, is only used for DODAG selection, not for enrollment priority (if I
am reading the draft correctly).
While not explicitly asked for in the detailed review below, I would strongly
suggest improving the text quality by:
a) Changing the name of the new option to include DODAG size, and giving it a
fitting abbreviation. For example, a "Minimum Enrollment Priority and DODAG
Size" (MEPDS) option.
Note: the inline concern in the IANA Considerations section would also need
to be adjusted for such a changed name.
b) Changing the title of the draft to the name of the option.
c) Changing the introductory text to make it clear how this common option serves
both functions (and maybe even more).
d) Restructuring the text so that the behavior of each of the two functions is
described in its own chapter or section, instead of mentioning DODAG
selection only en passant. Specifically, highlight how (if I understand it
correctly) DODAG size is not limited to use in RFC9031/RFC9032 deployments,
but can be applied to DODAG selection in any RPL instance with multiple
DODAGs.
2. Using DODAG size to achieve a specific benefit, such as creating more
similarly sized DODAGs, is just wishful thinking if one relies on this draft's
text alone. It therefore looks a bit as if DODAG size had been added to the
option as a convenience, to avoid creating yet another option once someone works
out how to take it into account. And in networks with only a single
implementation it would of course be possible to come up with some algorithm
that improves conditions. So it is a perfect way to sneak proprietary
functionality into RPL - at the cost of safe interoperability.
If that is a correct understanding, then the primary ask is of course to be a lot
more specific about the state of how to use DODAG size. If there really is no
specification at all, then not only should that be said explicitly, but there
also needs to be a big warning that the use of DODAG size by independent
implementations may actually make things worse. And if you leave the
specification at this level, then I think it MUST reserve a value such as 0 for
DODAG size for the specific purpose of "perform all functions as you would if no
DODAG size had been signalled". That reservation is also useful if you go for the
next option:
A better option would be to invoke the concept of the Objective Function for the
use of DODAG size in DODAG selection. In one variant, the draft could say that
any use of DODAG size for DODAG selection requires a specification that extends
the OCP carried in the DODAG Configuration option to define how to use the DODAG
size. If it is foreseeable that a single OF (and hence OCP) might want to use two
or more separate algorithms involving DODAG size, then add some algorithm code
point field to the option.
3. It seems to be intended, but is not explicitly stated, that the signalled MEP
value is or can only be used by 6LRs implementing RFC9031/RFC9032. It is not
specified whether a 6TiSCH 6LR that does not implement RFC9031/RFC9032 can still
implement this draft, for example solely for the DODAG size benefits in DODAG
selection. I have no opinion, but it should be specified. For example: support
for this document does not imply a need to support RFC9031/RFC9032; however, if
a node implementing this draft also implements RFC9031/RFC9032, then it MUST use
the procedures specified in this draft to tune its RFC9031/RFC9032 behavior.
Other comments inline.
1
2
3
4
5 ROLL Working Group M. Richardson
6 Internet-Draft Sandelman Software Works
7 Intended status: Standards Track R. A. Jadhav
8 Expires: 22 January 2027 Huawei Tech
9 P. Thubert
10 Independent
11 K. Iwanicki
12 University of Warsaw
13 21 July 2026
14
15
16 Controlling Network Enrollment in RPL networks
17 draft-ietf-roll-enrollment-priority-18
18
19 Abstract
20
21 The Routing Protocol for Low-Power and Lossy Networks (RPL) manages
22 the routing topology but lacks a mechanism to globally regulate how
23 many new nodes, known as Pledges, can join a node in a 6TiSCH network
24 at any given time. Currently, Join Proxies (6LowPAN Routers) make
25 local decisions about whether to facilitate a Pledge's enrollment
26 based only on their immediate resources.
27
28 This document introduces RPL extensions to ensure that enrollment
29 remains orderly, prevents localized congestion at specific Join
30 Proxies, and allows the network to stay within its operational
31 capacity limits.
32
33 About This Document
34
35 This note is to be removed before publishing as an RFC.
36
37 Status information for this document may be found at
38 https://datatracker.ietf.org/doc/draft-ietf-roll-enrollment-
39 priority/.
40
41 Discussion of this document takes place on the roll Working Group
42 mailing list (mailto:roll@ietf.org), which is archived at
43 https://mailarchive.ietf.org/arch/browse/roll/. Subscribe at
44 https://www.ietf.org/mailman/listinfo/roll/.
45
46 Source for this draft and an issue tracker can be found at
47 https://github.com/roll-wg/voucher.
48
49 Status of This Memo
50
51 This Internet-Draft is submitted in full conformance with the
52 provisions of BCP 78 and BCP 79.
53
54
55
56 Richardson, et al. Expires 22 January 2027 [Page 1]
57
58 Internet-Draft join-metric July 2026
59
60
61 Internet-Drafts are working documents of the Internet Engineering
62 Task Force (IETF). Note that other groups may also distribute
63 working documents as Internet-Drafts. The list of current Internet-
64 Drafts is at https://datatracker.ietf.org/drafts/current/.
65
66 Internet-Drafts are draft documents valid for a maximum of six months
67 and may be updated, replaced, or obsoleted by other documents at any
68 time. It is inappropriate to use Internet-Drafts as reference
69 material or to cite them other than as "work in progress."
70
71 This Internet-Draft will expire on 22 January 2027.
72
73 Copyright Notice
74
75 Copyright (c) 2026 IETF Trust and the persons identified as the
76 document authors. All rights reserved.
77
78 This document is subject to BCP 78 and the IETF Trust's Legal
79 Provisions Relating to IETF Documents (https://trustee.ietf.org/
80 license-info) in effect on the date of publication of this document.
81 Please review these documents carefully, as they describe your rights
82 and restrictions with respect to this document. Code Components
83 extracted from this document must include Revised BSD License text as
84 described in Section 4.e of the Trust Legal Provisions and are
85 provided without warranty as described in the Revised BSD License.
86
87 Table of Contents
88
89 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
90 1.1. Motivation and Overview . . . . . . . . . . . . . . . . . 3
91 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5
92 3. Protocol Definition . . . . . . . . . . . . . . . . . . . . . 5
93 3.1. Option Format . . . . . . . . . . . . . . . . . . . . . . 6
94 3.2. Option Processing . . . . . . . . . . . . . . . . . . . . 7
95 4. Operational Considerations . . . . . . . . . . . . . . . . . 8
96 4.1. Incremental deployment Considerations . . . . . . . . . . 8
97 5. Security Considerations . . . . . . . . . . . . . . . . . . . 9
98 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10
99 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 10
100 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 10
101 8.1. Normative References . . . . . . . . . . . . . . . . . . 10
102 8.2. Informative References . . . . . . . . . . . . . . . . . 11
103 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12
104
105
106
107
108
109
110
111
112 Richardson, et al. Expires 22 January 2027 [Page 2]
113
114 Internet-Draft join-metric July 2026
115
116
117 1. Introduction
118
119 The adaption of the Time-Slotted Channel Hopping (TSCH) mode of
120 [ieee802154] for use in 6TiSCH networks is described in [RFC7554].
121 The security and onboarding framework for these networks, described
122 in [RFC9031] and [RFC9032], allows a new node, known as a "Pledge",
123 to utilize a nearby 6LowPAN Router as a Join Proxy.
124
125 To facilitate discovery, [RFC9032] specifies extensions to the IEEE
126 802.15.4 Enhanced Beacon that allow a Join Proxy to announce its
127 presence, enabling Pledges to identify and select an appropriate
128 entry point into the network. Currently, Join Proxies make local
129 decisions about whether to facilitate a Pledge's enrollment based
130 only on their immediate resources.
131
132 This document introduces Routing Protocol for Low-Power and Lossy
133 Networks (RPL) extensions to ensure that enrollment remains orderly,
134 prevents localized congestion at specific Join Proxies, and allows
135 the network to stay within its operational capacity limits.
136
137 1.1. Motivation and Overview
138
139 Not every routing member of a mesh ought to announce itself as a
140 _Join Proxy_. The constructed Destination Oriented Directed Acyclic
141 Graph (DODAG) can become unbalanced if many nodes join in one part.
142 This can be the result of optimization decisions based upon local
143 information only. If nodes could get more information about the
144 global view, then they could make different choices that would result
145 in more balanced resource usage.
146
147 There are a variety of local metrics which a 6LowPAN Router (6LR)
148 [RFC6066] can use to determine if it should provide the _Join Proxy_
149 function. These reasons include low available battery power, already
150 high committed network bandwidth, and lack of available free memory
151 for Neighbor Cache Entry (NCE) slots [RFC4861], Section 5.1. An NCE
152 is needed in order to maintain communication with the Pledge nodes
153 trying to enroll. See [RFC9898] and [RFC6583] for a deeper analysis
154 of NCE exhaustion.
155
156 In addition to the local per-node constraints, if the network around
157 a 6LR is congested then adding more nodes to that part of the network
158 would make the congestion worse. The attachment might not even
159 succeed if other non-local resources are in short supply. For
160 instance, in storing-mode and mixed [dao-projection] mode LLNs,
161 routing table entries at other levels could become exhausted.
162
163
164
165
166
167
168 Richardson, et al. Expires 22 January 2027 [Page 3]
169
170 Internet-Draft join-metric July 2026
171
172
173 Enrollment of new nodes into the DODAG involves having the Join Proxy
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
minor:
The phrase "Enrollment of new nodes into the DODAG" seems to be wrong, because
the Join Proxy is not necessarily the later RPL parent, nor does it (if I am not
mistaken) perform any enrollment into a specific RPL instance (and hence DODAG).
So maybe just call it "Enrollment" or "RFC9031 Enrollment" (or onboarding, as
discussed elsewhere), without referring to RPL specifics. Otherwise there should
be some explanation justifying why the use of an RPL term is appropriate here.
174 forward traffic from unknown nodes into the DODAG. These unknown
175 nodes are not yet known to be trustworthy, the introduction of a lot
176 of traffic from could be part of a denial of service attack.
177
178 This extension includes a mechanism to allow the network operator to
179 send a signal that no new nodes are expected at that time, and for
180 all join proxy operations to be turned off by forcing the minimum
181 enrollment priority to the maximum (worst) value.
182
183 The RPL Destination Information Object (DIO) option described here
184 contains new metrics that propagate down the DODAG, informing each
185 layer of the conditions in the DODAG above the node.
186
187 This new metric, the minimum enrollment priority, is updated by each
188 6LR to reflect conditions in that 6LR. This metric is only increased
189 based upon local conditions, and the new value is sent as within the
190 DIO that this node emits. Additionally, this new metric forms the
191 basis for the proxy priority described in [RFC9032].
192 Section Section 3.1 explains how these fields affect the Trickle
nit:
Recommend using an AI for spell checking; it finds word duplications. Maybe even
in the MD source (not 100% sure).
193 Timer.
194
195 The minimum enrollment priority value is derived from multiple
minor:
A curious reader would love to know at this point "derived how?" -
automagically, or with a lot of human operator experience and magic nerd-knob
configuration?
Something like "currently, no specification exists to automatically determine
the minimum enrollment priority" would be a good indicator of this whole
mechanism being just another nail in the coffin of network simplicity. Oops - I
meant: of operator or (AI) SDN controller job security.
196 constraining factors, for instance, the size of the DODAG, the
197 occupancy of the bandwidth at the DODAG Root, the memory capacity at
198 the Root, or an administrative decision.
199
200 This minimum enrollment priority is used by each 6LR node to
201 determine whether or not it will operate as a _Join Proxy_ for nodes
202 that want to enroll. For nodes which are already enrolled, but which
203 need to reconnect to a DODAG, the DODAG Size information helps the
^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^
nit:
connect/reconnect is not introduced in the terminology at all. I thought this
was to be called (1)"Join".
minor:
DODAG Size is undefined here and, AFAIK, also not specified in RFC6550 or
RFC9031/9032. Please introduce and explain the term, or explain how to determine
it.
Hah! DODAG Size is introduced later in this document. Add "(see <section below>)"
after "DODAG Size".
204 node decide between different DODAGs which might be visible.
205
206 This minimum enrollment priority expresses the ability of RPL DODAG
207 globally to accept new joins: lower numerical priority values
^^^^^
minor:
Enrollments ???
208 indicate increased ability to accept new child nodes.
209
210 Moreover, when a RPL domain is composed of multiple DODAGs, a node at
211 the edge of more than one such DODAG may join any of the DODAGs it
^^^^
minor:
Now this sounds as if the new parameter is used outside of enrollment, for an
actual RFC6550 Join operation of already enrolled RPL nodes. It would probably be
best to separate this from enrollment completely, by creating two subsections of
this introductory section.
212 sees. It can also use this information to move between DODAGs in
213 order to help keep the relative sizes balanced. For this, the
214 approximate knowledge of the size of the DODAGs is also an essential
215 metric. Depending on the network policy, the size of the DODAG may
216 or may not affect the minimum enrollment priority. Therefore, since
217 making one proportional to the other would be limiting their value,
218 the current size of the DODAG is advertised separately in the new
219 option.
minor:
Sounds like a lot of hand-waving, with an implied "insert magic here".
Maybe add an example section with the simplest example of a deployment that
ideally works automatically (no operator- or SDN-controller-provided nerd knobs),
and that shows how such additional information is derived - and hence how the new
functionality of this draft can provide the promised benefits.
220
221
222
223
224 Richardson, et al. Expires 22 January 2027 [Page 4]
225
226 Internet-Draft join-metric July 2026
227
228
229 Updates to the option propagate through the network according to the
230 trickle algorithm. [RFC6206] Other than the minimum enrollment
231 priority value, the contents of the option are generated at the DODAG
232 Root, and are not changed.
233
234 If the contents represent an update that is considered important
235 (e.g., quickly disabling any enrollments), the option can trigger
236 trickle timer resets at the nodes to speed up its propagation.
237
238 2. Terminology
239
240 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
241 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
242 "OPTIONAL" in this document are to be interpreted as described in
243 BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
244 capitals, as shown here.
245
246 The term 6LR means 6LowPAN Router, and is defined in [RFC6606]. It
247 refers to a router that forwards packets in a 6LowPAN network.
248
249 The terms DAO, DODAG, DODAG root, DIO, trickle timer are from
250 [RFC6550]. The lollipop counter function comes from [RFC6550],
251 Section 7.2.
252
253 The term (1)"Join" has been used in documents such as [RFC9031] to
254 denote the activity of a new node authenticating itself to the
255 network to obtain authorization to become a member of the network.
256
257 In the context of the [RFC6550] RPL protocol, the term (2)"Join" has
258 an alternative meaning: that of a node (already authenticated to the
259 network, and already authorized to be a member of the network),
260 deciding which part of the RPL DODAG to attach to. This term "Join"
261 has to do with preferred parent selection processes.
minor:
Given that RFC6550 predates RFC9031 by about a decade, and that seemingly nobody
bothered to catch and avoid this ambiguity in RFC9031, I would appreciate it if
the order were reversed to follow the chronology, so that (1)"Join" is what
RFC6550 means - swap the paragraphs and numbers - and the references below were
fixed accordingly.
262
263 In order to avoid the ambiguity of this term, this document refers to
264 the process (1)"Join" as enrollment, leaving the term "Join" to mean
265 (2)"Join". The term "onboarding" (or "IoT Onboarding") is
266 increasingly used to describe what is now called (1)Join in other
267 documents, and is called enrollment in this document. However, the
268 term _Join Proxy_ is retained with its (1)"Join" meaning from
269 [RFC9031].
minor:
>From my understanding "enrollment" is used predominantly only when pledges
are given unique credentials that allow them to securely identify themselves,
such as in EST, BRSKI and the like. Other protocol that hand out shared
secrets, such as GDOI (handing out group keys) do only call themselves key
distribution or the like. RFC9031 does not hand out unique keys. And it just
calls itselfa "Join Protocol". Maybe "onboarding" is the right term to use
for mechanisms such as RFC9031 that do not hand out unique credentials.
I would also not replace "Join" with another term to disambiguate the conflicting
use of "Join". I would just disambiguate their use by adding specific prefix
or suffix. E.g.: "RPL tree Join", "Constrained Join" (Protocol). Inventing new
terms is always more cumbersome/problematic than just disambiguating overloaded
terms with such additions.
270
271 3. Protocol Definition
272
273 This document uses the extensions mechanism specified by [RFC6550].
274 As explained in Section 4, no mechanism is needed to enable it.
nit:
Maybe add "below" after "As explained in Section 4" - when reading this, I
wondered whether it could also refer to RFC6550 Section 4. Just to avoid that
confusion.
275
276
277
278
279
280 Richardson, et al. Expires 22 January 2027 [Page 5]
281
282 Internet-Draft join-metric July 2026
283
284
285 3.1. Option Format
nit:
Would suggest renaming the section to "Minimum Enrollment Priority Option
(MEP)".
286
287 The following option is defined for transmission in DIOs issued by
nit:
s/following/Minimum Enrollment Priority (MEP)/
Explanation: the name of the option really needs to be introduced and used,
instead of letting the option remain anonymous until the IANA Considerations
section.
288 the DODAG Root to be propagated within the DODAG.
nit:
s/within/throughout/
It is flooded, right? "Throughout" should then be better... I think...
289
290 0 1 2 3
291 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
292 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
293 | Type = TBD01 |Opt Length = 3 |Version Number |T| Min Priority|
294 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
295 | Exp |DODAGSz|
296 +-+-+-+-+-+-+-+-+
297
298 Type To be assigned by IANA.
299
300 Version Number An 8-bit unsigned integer set by the DODAG root and
301 denoting the version number of the contents of the option. The
302 version number is interpreted as a lollipop counter (see
303 Section 7.2 of [RFC6550]).
304
305 T A bit indicating whether the particular version of the option is
306 important in that adopting its contents should trigger a trickle
307 timer [RFC6206], Section 4.2 reset at the node [RFC6550],
308 Section 8.3
nit:
The text starting at "trigger a trickle timer" is too dense. Is a "see" simply
missing before "Section 4.2..."? If not, then I am confused when reading the
sentence. Is something missing at the end, too - more than just a period, I mean?
309
310 Min Priority The minimum enrollment priority. This is a 7-bit field
311 providing a base value for the Enhanced Beacon Join priority. A
312 value of 0x7f (127) is considered infinity, and this disables the
313 _Join Proxy_ function entirely.
314
315 Exp A 4-bit unsigned integer indicating the power of 2 that defines
316 the unit of the DODAG Size, such that (unit = 2^Exp).
317
318 DODAGSz A 4-bit unsigned integer expressing the size of the DODAG in
319 units that depend on the Exp field.
320
321 The DODAG Size is calculated as (DODAGSz * 2^Exp).
nit:
I do not find the explanatory text after Exp and DODAGSz particularly useful.
To me it is more confusing than helpful.
Line 321 is the only clear and simple explanation, to my mind. Suggest shortening
to:
Exp 4-bit unsigned integer, DODAG Size exponent.
DODAGSz 4-bit unsigned integer, DODAG Size significand.
DODAG Size = DODAGSz * 2^Exp.
nit:
Why not swap the Exp and DODAGSz fields in the option? Then they would appear in
the order in which such an exponential number is normally read. It also looks
nicer. Unless, of course, there are already pre-existing implementations. If you
do swap them, then of course swap the explanatory text as well.
323 The DODAG Size can be measured by the Root based on the DAO activity.
324 In such a case, it represents the number of routes not the number of
325 nodes, and can thus be used to infer the load only in a network where
326 each node advertises roughly the same number of addresses and
327 generates roughly the same amount of traffic.
minor:
This reads to me like confusing hand-waving. "can be measured" = this paragraph
discusses one arbitrary option for how to measure. But is the value to be
determined through measurement at all, or can it also be determined in another
way, such as through configuration?
I really do not see why this would not simply be the number of nodes, which the
root can always determine easily... I think.
328
329 As the DODAG Size is always a multiple of a power of 2, when the
nit:
Fix to: "As the DODAG Size is always represented in the MEP option as a
multiple" ...
330 actual size falls between two such values, the DODAG Root is to
331 always round up.
nit:
Again, a suggestion to use an AI spell checker. This should be 'rounded up'.
minor:
MUST be rounded up ?
minor:
MUST be rounded up, unless it already exceeds 491520, the maximum value that can
be expressed in the MEP option (DODAGSz = 15, Exp = 15, 15 * 2^15 = 491520)?
332
333
334
335
336 Richardson, et al. Expires 22 January 2027 [Page 6]
337
338 Internet-Draft join-metric July 2026
339
340
341 In any case, the DODAG Size may slightly change between one DIO and
342 the next, so the value transmitted is considered as an approximation.
343
344 A 6LR node uses the contents of this option from whichever parent it
345 selects as the basis for the option that it sends. When that parent
346 increments its minimum enrollment priority above the previous value
347 that was seen, then this MUST be considered an "inconsistent" value
348 for the purposes of the trickle timer. A parent that decrements its
349 minimum enrollment priority to a lower value MAY be considered
350 "inconsistent", or a node MAY wait re-transmit according to the
^^^^^^^^^^^^^^^^^
nit:
Wait to retransmit WHAT?
351 trickle timer's redundancy constant. This is consistent with
352 paragraph one of [RFC6550], Section 8.3, which considers lower Rank
353 to be consistent.
354
355 3.2. Option Processing
356
357 The contents of the option MUST be generated by the DODAG Root. A
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
minor:
Would be good to have more text reconfirming that this option must always be
sent/generated by a root - or only when configured. Its easier to ask for it
to always be sent if there was also a good "ignore me" option value for the
parameters. WHich wouldn't necessarily have to be default, but if it's always
to be sent, it would be the best backeward compatible option in case something
goes wrong. And the question is whether 0x40 should be the default MED value to
send.
358 6LR MAY change only the Version Number (in lollipop fashion), and MAY
359 increment the Min Priority, if it is less than 0x7f.
360
361 Whenever the DODAG root changes the values of the minimum enrollment
362 priority or DODAG Size in the option, it MUST also increment the
363 value of Version Number. Moreover, if the change is considered
364 important (i.e., it is expected to propagate in the DODAG quickly),
365 the DODAG Root MUST also set the T bit to 1; otherwise, it MUST set
366 the bit to 0.
367
368 Upon receiving the option, a 6LR first checks the value of the
369 Version Number field in the option, _vr_, versus the value of the
370 Version Number it has last adopted locally, _vl_.
371
372 * If _vl_ is greater than _vr_ (in the lollipop counter order), then
373 the 6LR MUST ignore the received option.
374
375 * Otherwise, the 6LR MUST adopt the contents of the option (i.e.,
376 the values of Version Number, Min Priority, DODAG Size, and the T
377 bit) as its local ones. Moreover, if _vl_ was smaller than _vr_
378 (in the lollipop counter order) and the T bit in the received
379 option was set, then the 6LR MUST reset its DIO trickle timer.
380
381 A 6LR, which would otherwise be willing to act as a _Join Proxy_,
382 will examine the locally adopted value of minimum enrollment priority
383 and to that number add any additional local consideration (such as
384 upstream congestion, number of NCE slots available, etc.).
385
386 The maximum resulting value any 6LR can obtain this way is 0x7f.
387
388
389
390
391
392 Richardson, et al. Expires 22 January 2027 [Page 7]
393
394 Internet-Draft join-metric July 2026
395
396
397 The resulting minimum enrollment priority, if less than 0x7f, should
398 enable the _Join Proxy_ function.
major:
s/should/SHOULD/ - or even MUST ?
Should be normative IMHO. Also not clear why it's just should.
Also, this doc should be called an update to RFC9031, specifying how it's
enabled by default and controlled.
399
400 Note that the calculated local value _vl_ does _not_ update the value
401 _vr_ in the option.
402
403 4. Operational Considerations
404
405 The RPL ecosystem has not included a management protocols to date. A
406 future mechanisms, such as [I-D.ietf-roll-capabilities] could enable
407 assessment and configuration of node features. If/when such a thing
nit:
s/thing/mechanism/
408 became available, a node would still need to be connected before it
nit:
s/connected/Joined to the DODAG/ ???
409 configuration parameters could be adjusted. Until such a mechanism
410 becomes available, the only way an operator can change any defaults
411 in the node is via a custom firmware load, or a vendor proprietary
412 mechanism. For instance, a vendor might do this via custom
413 programming of a configuration section in memory using some kind of
414 cable. This kind of per-node tuning is very expensive to do, and
415 runs counter to the goals of zero-touch mechanisms.
416
417 RPL nodes therefore need to come with sensible defaults that allow a
418 node to join a DODAG. Many current deployments have been single
419 vendor with consistent features and well-tested defaults. However,
420 even within such an environment, incremental deployment of firmware
421 updates might still cause feature skew among nodes.
422
423 Intermediate nodes in a DODAG might not be upgraded at the same time
424 as nodes further down the leaf, and therefore might not support this
425 new metric container.
426
427 It is therefore necessary to consider how the lack of this metric
428 container can be compensated for nodes further away from the root.
429
430 4.1. Incremental deployment Considerations
431
432 A 6LR that did not support this option would not act on it or
433 propagate it in its DIO messages. In effect, the 6LR's sub-tree
434 below a node without support for this option could not receive any
435 information about the DODAG size or minimum enrollment priority. In
436 the absence of of this metric, a 6LR will need to base decisions on
437 how to act based upon information about local resources only.
438
439 This document therefore establishes that a 6LRs that support this
440 option but do not receive it via any path SHOULD assume a default
441 value of 0x40 as their base value for the Enhanced Beacon Join
442 Priority. This half-way value has been chosen to allow for the best
443 reaction.
minor:
The normative requirements make this text ill-suited to a deployment
considerations section. I would suggest moving 4.1 up, e.g. as Section 3.3.
445
446
447
448 Richardson, et al. Expires 22 January 2027 [Page 8]
449
450 Internet-Draft join-metric July 2026
451
452
453 A 6LR downstream of a 6LR where there was such an interruption in the
454 metric could err in two directions:
455
456 * If the value implied by the base value of 0x40 was too low, then
457 the 6LR might continue to attract enrollment traffic when none
458 should have been collected. This is a stressor for the network,
459 but the similar behaviour would occur if no option existed.
460
461 * If the value implied by the base value of 0x40 was too high, then
462 the 6LR might deflect enrollment traffic to other parts of the
463 DODAG, possibly refusing any enrollment traffic at all.
464
465 In order for this to happen, some significant congestion must exist
466 in the sub-DODAG where the implied 0x40 was introduced. The 0x40 is
467 only the half-way point, so if such an amount of congestion was
468 present, then this sub-DODAG of the DODAG simply winds up being more
469 cautious than it needed to be.
470
471 There is an additional possibility of having more than one
472 interruption of information if multiple nodes in the DODAG were
473 lacking a firmware update to enable this option. Such alternation of
474 the above two situations might introduce some pathology of cycles of
475 accepting and then rejecting enrollment traffic: This is something an
476 operator should consider if they incrementally deploy this option to
477 an existing Low-power/Lossy-Network (LLN).
478
479 In addition, due to these interruptions, an operator would be unable
480 to turn off enrollment traffic by sending a maximum value enrollment
481 priority to the sub-DODAG. This situation is unfortunate, but
482 without this option, the situation would occur all over the DODAG,
483 rather than just in the sub-DODAG that the option did not reach. So
484 this problem is not a new problem.
485
486 5. Security Considerations
487
488 As per [RFC7416], RPL control frames either run over a secured layer
489 2 or use the [RFC6550] Secure DIO methods at layer 3. This option
490 can be placed into either a "clear" (layer-2 secured) DIO or a
491 layer-3 Secure DIO.
minor:
That statement is factually wrong. RFC7416 does not specify that frames are
secured either at layer 2 or at layer 3. It merely performs a security analysis
for cases in which one of the two security options is used. RFC6550 itself also
permits no security at all. Please fix.
This is important, because you should define the scope of your security
considerations here, right at the beginning. If you were to consider cases in
which neither layer 2 nor layer 3 security is used, you would have a lot more
issues to consider, and probably no good reference to point to. So I would
suggest reframing this introduction to state that these security considerations,
like those of RFC7416, only consider deployments with layer 2 and/or layer 3
security.
492
493 In most deployments involving wireless technology, layer 2 is always
494 encrypted using a layer-2 specific technology, and so privacy of this
495 option is available.
nit:
s/privacy/confidentiality/
minor:
The same is true for layer 3, though, so this paragraph is confusing as to what
is special enough here to mention layer 2 only.
496
497
498
499
500
501
502
503
504 Richardson, et al. Expires 22 January 2027 [Page 9]
505
506 Internet-Draft join-metric July 2026
507
508
509 However, a malicious node that was part of the RPL control plane
510 (i.e., had been enrolled into the layer-2 security) would be able to
511 see the values of this option and, based upon the observed minimal
512 enrollment priority, could signal a confederate that it was a good
513 time to send malicious join traffic.
nit:
In standard terminology, a node that was enrolled into a security scheme is not
"malicious" but "compromised": it did pass whatever muster was necessary to
become part of the security domain, but nevertheless behaves as an attacker.
Please fix the terminology.
"confederate" is a somewhat surprising term here. Suggest using something like
"collaborating attacker".
minor:
The description is insufficient to understand the exact nature of the attack, or
why it is worse than it would be without the option. An example comparing the
same type of attack (with the help of a compromised 6LR) with and without the
option in use would be useful here.
515 What is more, such a malicious node, being already part of the RPL
nit: s/malicious/compromised/
516 control plane, could also send DIOs with a different minimal
517 enrollment priority, which would cause downstream mesh routers to
518 change their _Join Proxy_ behavior: lower minimal priorities would
519 cause downstream nodes to accept more Pledges than the network was
520 expecting; higher minimal priorities could cause the enrollment
521 process to stall.
minor:
As above, a concrete example would be nice.
522
523 The use of layer-2 or layer-3 security for RPL control messages
524 prevents the two aforementioned attacks by non-participating nodes by
525 preventing malicious nodes from becoming part of the control plane.
minor:
If you keep "malicious" in lines 509-513 (as opposed to changing it to
"compromised", as I suggest), then this paragraph contradicts lines 509-513,
because if this paragraph were true, a malicious node would never become a 6LR.
But if you do use the correct terminology, and if these security considerations
only consider layer 2 and/or layer 3 encrypted deployments, as I suggest after
line 491, then this paragraph is irrelevant.
So: this paragraph should really be removed, unless you want to open the door to
discussing a lot more attack vectors for completely unsecured RPL deployments.
526
527 Nevertheless, a node that is attacked and has malware placed on it
528 creates vulnerabilities in the same way such an attack on any node
529 involved in Internet routing protocol does. The re-keying provisions
530 of [RFC9031] exist to permit an operator to remove such nodes from
531 the network.
minor:
Do not hand-wave towards the universe/the Internet. You can easily be more
specific:
Attacks by a compromised 6LR that do not involve the new option are
outside the scope of this section; they are documented in RFC7416.
But it may be better to fold such a sentence into a corrected first paragraph of
this section, instead of putting it at the end. That makes it clear up front that
this section adds to RFC7416.
532
533 6. IANA Considerations
534
535 Please allocate a new entry, TBD01 from Registry RPL Control Message
536 Options at https://www.iana.org/assignments/rpl/rpl.xhtml#control-
537 message-options
538
539 This entry should be called Minimum Enrollment Priority, and the
540 reference should be to this document.
nit:
The "Meaning" of this entry should be "Minimum Enrollment Priority (MEP)".
Explanation: "Meaning" is the name of the column in the IANA registry. As
suggested before, the option should also have an official abbreviation, to allow
easier and shorter references later.
541
542 7. Acknowledgements
543
544 This has been reviewed by Charlie Perkins, Rifaat Shehk-Yusek, Dave
545 Thaler, and Thomas Watteyne.
546
547 Huimin She contributed text about expressing the DODAG size. Ketan
548 Talaulika was the responsible AD and provided many editorial
549 improvements.
550
551 8. References
552
553 8.1. Normative References
554
555
556
557
558
559
560 Richardson, et al. Expires 22 January 2027 [Page 10]
561
562 Internet-Draft join-metric July 2026
563
564
565 [ieee802154]
566 IEEE standard for Information Technology, "IEEE Std.
567 802.15.4, Part. 15.4: Wireless Medium Access Control (MAC)
568 and Physical Layer (PHY) Specifications for Low-Rate
569 Wireless Personal Area Networks", n.d.,
570 <http://standards.ieee.org/findstds/
571 standard/802.15.4-2015.html>.
572
573 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
574 Requirement Levels", BCP 14, RFC 2119,
575 DOI 10.17487/RFC2119, March 1997,
576 <https://www.rfc-editor.org/rfc/rfc2119>.
577
578 [RFC6206] Levis, P., Clausen, T., Hui, J., Gnawali, O., and J. Ko,
579 "The Trickle Algorithm", RFC 6206, DOI 10.17487/RFC6206,
580 March 2011, <https://www.rfc-editor.org/rfc/rfc6206>.
581
582 [RFC6550] Winter, T., Ed., Thubert, P., Ed., Brandt, A., Hui, J.,
583 Kelsey, R., Levis, P., Pister, K., Struik, R., Vasseur,
584 JP., and R. Alexander, "RPL: IPv6 Routing Protocol for
585 Low-Power and Lossy Networks", RFC 6550,
586 DOI 10.17487/RFC6550, March 2012,
587 <https://www.rfc-editor.org/rfc/rfc6550>.
588
589 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
590 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
591 May 2017, <https://www.rfc-editor.org/rfc/rfc8174>.
592
593 [RFC9031] Vučinić, M., Ed., Simon, J., Pister, K., and M.
594 Richardson, "Constrained Join Protocol (CoJP) for 6TiSCH",
595 RFC 9031, DOI 10.17487/RFC9031, May 2021,
596 <https://www.rfc-editor.org/rfc/rfc9031>.
597
598 [RFC9032] Dujovne, D., Ed. and M. Richardson, "Encapsulation of
599 6TiSCH Join and Enrollment Information Elements",
600 RFC 9032, DOI 10.17487/RFC9032, May 2021,
601 <https://www.rfc-editor.org/rfc/rfc9032>.
602
603 8.2. Informative References
604
605 [dao-projection]
606 Thubert, P., Jadhav, R., and M. Richardson, "Root-
607 initiated Routing State in RPL", Work in Progress,
608 Internet-Draft, draft-ietf-roll-dao-projection-40, 11
609 March 2025, <https://datatracker.ietf.org/doc/html/draft-
610 ietf-roll-dao-projection-40>.
611
612
613
614
615
616 Richardson, et al. Expires 22 January 2027 [Page 11]
617
618 Internet-Draft join-metric July 2026
619
620
621 [I-D.ietf-roll-capabilities]
622 Jadhav, R., Thubert, P., Richardson, M., and R. N. Sahoo,
623 "RPL Capabilities", Work in Progress, Internet-Draft,
624 draft-ietf-roll-capabilities-09, 9 November 2021,
625 <https://datatracker.ietf.org/doc/html/draft-ietf-roll-
626 capabilities-09>.
627
628 [RFC4861] Narten, T., Nordmark, E., Simpson, W., and H. Soliman,
629 "Neighbor Discovery for IP version 6 (IPv6)", RFC 4861,
630 DOI 10.17487/RFC4861, September 2007,
631 <https://www.rfc-editor.org/rfc/rfc4861>.
632
633 [RFC6066] Eastlake 3rd, D., "Transport Layer Security (TLS)
634 Extensions: Extension Definitions", RFC 6066,
635 DOI 10.17487/RFC6066, January 2011,
636 <https://www.rfc-editor.org/rfc/rfc6066>.
637
638 [RFC6583] Gashinsky, I., Jaeggli, J., and W. Kumari, "Operational
639 Neighbor Discovery Problems", RFC 6583,
640 DOI 10.17487/RFC6583, March 2012,
641 <https://www.rfc-editor.org/rfc/rfc6583>.
642
643 [RFC6606] Kim, E., Kaspar, D., Gomez, C., and C. Bormann, "Problem
644 Statement and Requirements for IPv6 over Low-Power
645 Wireless Personal Area Network (6LoWPAN) Routing",
646 RFC 6606, DOI 10.17487/RFC6606, May 2012,
647 <https://www.rfc-editor.org/rfc/rfc6606>.
648
649 [RFC7416] Tsao, T., Alexander, R., Dohler, M., Daza, V., Lozano, A.,
650 and M. Richardson, Ed., "A Security Threat Analysis for
651 the Routing Protocol for Low-Power and Lossy Networks
652 (RPLs)", RFC 7416, DOI 10.17487/RFC7416, January 2015,
653 <https://www.rfc-editor.org/rfc/rfc7416>.
654
655 [RFC7554] Watteyne, T., Ed., Palattella, M., and L. Grieco, "Using
656 IEEE 802.15.4e Time-Slotted Channel Hopping (TSCH) in the
657 Internet of Things (IoT): Problem Statement", RFC 7554,
658 DOI 10.17487/RFC7554, May 2015,
659 <https://www.rfc-editor.org/rfc/rfc7554>.
660
661 [RFC9898] Xiao, X., Vasilenko, E., Metz, E., Mishra, G., and N.
662 Buraglio, "Neighbor Discovery Considerations in IPv6
663 Deployments", RFC 9898, DOI 10.17487/RFC9898, November
664 2025, <https://www.rfc-editor.org/rfc/rfc9898>.
665
666 Authors' Addresses
667
668
669
670
671
672 Richardson, et al. Expires 22 January 2027 [Page 12]
673
674 Internet-Draft join-metric July 2026
675
676
677 Michael Richardson
678 Sandelman Software Works
679 Email: mcr+ietf@sandelman.ca
680
681
682 Rahul Arvind Jadhav
683 Huawei Tech
684 Email: rahul.ietf@gmail.com
685
686
687 Pascal Thubert
688 Independent
689 Email: pascal.thubert@gmail.com
690
691
692 Konrad Iwanicki
693 University of Warsaw
694 Email: iwanicki@mimuw.edu.pl
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728 Richardson, et al. Expires 22 January 2027 [Page 13]
EOF
- [Iot-directorate] draft-ietf-roll-enrollment-prio… Toerless Eckert via Datatracker