ROLL Working Group M. Richardson Internet-Draft Sandelman Software Works Intended status: Standards Track R. A. Jadhav Expires: 30 December 2026 Huawei Tech P. Thubert Independent K. Iwanicki University of Warsaw 28 June 2026 Controlling Network Enrollment in RPL networks draft-ietf-roll-enrollment-priority-16 Abstract The Routing Protocol for Low-Power and Lossy Networks (RPL) manages the routing topology but lacks a mechanism to globally regulate how many new nodes, known as Pledges, can join a node in a 6TiSCH network at any given time. Currently, Join Proxies (6LowPAN Routers) make local decisions about whether to facilitate a Pledge's enrollment based only on their immediate resources. This document introduces RPL extensions to ensure that enrollment remains orderly, prevents localized congestion at specific Join Proxies, and allows the network to stay within its operational capacity limits. About This Document This note is to be removed before publishing as an RFC. Status information for this document may be found at https://datatracker.ietf.org/doc/draft-ietf-roll-enrollment- priority/. Discussion of this document takes place on the roll Working Group mailing list (mailto:roll@ietf.org), which is archived at https://mailarchive.ietf.org/arch/browse/roll/. Subscribe at https://www.ietf.org/mailman/listinfo/roll/. Source for this draft and an issue tracker can be found at https://github.com/roll-wg/voucher. Status of This Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Richardson, et al. Expires 30 December 2026 [Page 1] Internet-Draft join-metric June 2026 Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at https://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." This Internet-Draft will expire on 30 December 2026. Copyright Notice Copyright (c) 2026 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/ license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 1.1. Motivation and Overview . . . . . . . . . . . . . . . . . 3 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5 3. Protocol Definition . . . . . . . . . . . . . . . . . . . . . 5 3.1. Option Format . . . . . . . . . . . . . . . . . . . . . . 6 3.2. Option Processing . . . . . . . . . . . . . . . . . . . . 7 4. Operational Considerations . . . . . . . . . . . . . . . . . 8 4.1. Incremental deployment Considerations . . . . . . . . . . 8 5. Security Considerations . . . . . . . . . . . . . . . . . . . 9 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 10 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 10 8.1. Normative References . . . . . . . . . . . . . . . . . . 10 8.2. Informative References . . . . . . . . . . . . . . . . . 11 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12 Richardson, et al. Expires 30 December 2026 [Page 2] Internet-Draft join-metric June 2026 1. Introduction The adaption of the Time-Slotted Channel Hopping (TSCH) mode of [ieee802154] for use in 6TiSCH networks is described in [RFC7554]. The security and onboarding framework for these networks, described in [RFC9031] and [RFC9032], allows a new node, known as a "Pledge", to utilize a nearby 6LowPAN Router as a Join Proxy. To facilitate discovery, [RFC9032] specifies extensions to the IEEE 802.15.4 Enhanced Beacon that allow a Join Proxy to announce its presence, enabling Pledges to identify and select an appropriate entry point into the network. Currently, Join Proxies make local decisions about whether to facilitate a Pledge's enrollment based only on their immediate resources. This document introduces Routing Protocol for Low-Power and Lossy Networks (RPL) extensions to ensure that enrollment remains orderly, prevents localized congestion at specific Join Proxies, and allows the network to stay within its operational capacity limits. 1.1. Motivation and Overview Not every routing member of a mesh ought to announce itself as a _Join Proxy_. The constructed Destination Oriented Directed Acyclic Graph (DODAG) can become unbalanced if many nodes join in one part. This can be the result of optimization decisions based upon local information only. If nodes could get more information about the global view, then they could make different choices that would result in more balanced resource usage. There are a variety of local metrics which a 6LowPAN Router (6LR) [RFC6066] can use to determine if it should provide the _Join Proxy_ function. These reasons include low available battery power, already high committed network bandwidth, and lack of available free memory for Neighbor Cache Entry (NCE) slots [RFC4861], Section 5.1. An NCE is needed in order to maintain communication with the Pledge nodes trying to enroll. See [RFC9898] and [RFC6583] for a deeper analysis of NCE exhaustion. In addition to the local per-node constraints, if the network around a 6LR is congested then adding more nodes to that part of the network would make the congestion worse. The attachment might not even succeed if other non-local resources are in short supply. For instance, in storing-mode and mixed [dao-projection] mode LLNs, routing table entries at other levels could become exhausted. Richardson, et al. Expires 30 December 2026 [Page 3] Internet-Draft join-metric June 2026 Enrollment of new nodes into the DODAG involves having the Join Proxy forward traffic from unknown nodes into the DODAG. These unknown nodes are not yet known to be trustworthy, the introduction of a lot of traffic from could be part of a denial of service attack. This extension includes a mechanism to allow the network operator to send a signal that no new nodes are expected at that time, and for all join proxy operations to be turned off by forcing the minimum enrollment priority to the maximum (worst) value. The RPL Destination Information Object (DIO) option described here contains new metrics that propogate down the DODAG, informing each layer of the conditions in the DODAG above the node. This new metric, the minimum enrollment priority, is updated by each 6LR to reflect conditions in that 6LR. This metric is only increased based upon local conditions, and the new value is sent as within the DIO that this node emits. Additionally, this new metric forms the basis for the proxy priority described in [RFC9032]. The minumum enrollment priority value is derived from multiple constraining factors, for instance, the size of the DODAG, the occupancy of the bandwidth at the DODAG Root, the memory capacity at the Root, or an administrative decision. This minimum enrollment priority is used by each 6LR node to determine whether or not it will operate as a _Join Proxy_ for nodes that want to enroll. For nodes which are already enrolled, but which need to reconnect to a DODAG, the DODAG Size information helps the node decide between different DODAGs which might be visible. This minimum enrollment priority expresses the ability of RPL DODAG globally to accept new joins: lower numerical priority values indicate increased ability to accept new child nodes. Moreover, when a RPL domain is composed of multiple DODAGs, a node at the edge of more than one such DODAG may join any of the DODAGs it sees. It can also use this information to move between DODAGs in order to help keep the relative sizes balanced. For this, the approximate knowledge of the size of the DODAGs is also an essential metric. Depending on the network policy, the size of the DODAG may or may not affect the minimum enrollment priority. Therefore, since making one proportional to the other would be limiting their value, the current size of the DODAG is advertised separately in the new option. Richardson, et al. Expires 30 December 2026 [Page 4] Internet-Draft join-metric June 2026 Updates to the option propagate through the network according to the trickle algorithm. [RFC6206] Other than the minimum enrollment priority value, the contents of the option are generated at the DODAG Root, and are not changed. If the contents represent an update that is considered important (e.g., quickly disabling any enrollments), the option can trigger trickle timer resets at the nodes to speed up its propagation. 2. Terminology The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here. The term 6LR means 6LowPAN Router, and is defined in [RFC6606]. It refers to a router that forwards packets in a 6LowPAN network. The terms DAO, DODAG, DODAG root, DIO, trickle timer are from [RFC6550]. The lollipop counter function comes from [RFC6550], Section 7.2. The term (1)"Join" has been used in documents such as [RFC9031] to denote the activity of a new node authenticating itself to the network to obtain authorization to become a member of the network. In the context of the [RFC6550] RPL protocol, the term (2)"Join" has an alternative meaning: that of a node (already authenticated to the network, and already authorized to be a member of the network), deciding which part of the RPL DODAG to attach to. This term "Join" has to do with preferred parent selection processes. In order to avoid the ambiguity of this term, this document refers to the process (1)"Join" as enrollment, leaving the term "Join" to mean (2)"Join". The term "onboarding" (or "IoT Onboarding") is increasingly used to describe what is now called (1)Join in other documents, and is called enrollment in this document. However, the term _Join Proxy_ is retained with its (1)"Join" meaning from [RFC9031]. 3. Protocol Definition This document uses the extensions mechanism specified by [RFC6550]. As explained in Section 4, no mechanism is needed to enable it. Richardson, et al. Expires 30 December 2026 [Page 5] Internet-Draft join-metric June 2026 3.1. Option Format The following option is defined for transmission in DIOs issued by the DODAG Root to be propagated within the DODAG. 0 1 2 3 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type = TBD01 |Opt Length = 4 |Version Number |T| Min Priority| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Exp |DODAGSz| +-+-+-+-+-+-+-+-+ Type To be assigned by IANA. Version Number An 8-bit unsigned integer set by the DODAG root and denoting the version number of the contents of the option. The version number is interpreted as a lollipop counter (see Section 7.2 of [RFC6550]). This is abbreviated as VR below. T A bit indicating whether the particular version of the option is important in that adopting its contents should trigger a trickle timer [RFC6206], Section 4.2 reset at the node [RFC6550], Section 8.3 Min Priority The minimum enrollment priority. This is a 7-bit field providing a base value for the Enhanced Beacon Join priority. A value of 0x7f (127) is considered infinity, and this disables the _Join Proxy_ function entirely. Exp A 4-bit unsigned integer indicating the power of 2 that defines the unit of the DODAG Size, such that (unit = 2^Exp). DODAGSz A 4-bit unsigned integer expressing the size of the DODAG in units that depend on the Exp field. The DODAG Size is calculated as (DODAGSz * 2^Exp). The DODAG Size can be measured by the Root based on the DAO activity. In such a case, it represents the number of routes not the number of nodes, and can thus be used to infer the load only in a network where each node advertises roughly the same number of addresses and generates roughly the same amount of traffic. As the DODAG Size is always a multiple of a power of 2, when the actual size falls between two such values, the DODAG Root is to always round up. Richardson, et al. Expires 30 December 2026 [Page 6] Internet-Draft join-metric June 2026 In any case, the DODAG Size may slightly change between one DIO and the next, so the value transmitted is considered as an approximation. A 6LR node uses the contents of this option from whichever parent it selects as the basis for the option that it sends. When that parent increments its minimum enrollment priority above the previous value that was seen, then this MUST be considered an "inconsistent" value for the purposes of the trickle timer. A parent that decrements its minimum enrollment priority to a lower value MAY be considered "inconsistent", or a node MAY wait retransmit according to the trickle timer's redundancy constant. This is consistent with paragraph one of [RFC6550], Section 8.3, which considers lower Rank to be consistent. 3.2. Option Processing The contents of the option MUST be generated by the DODAG Root. A 6LR MUST NOT change the option when propagating it. Whenever the DODAG root changes the values of the minimum enrollment priority or DODAG Size in the option, it MUST also increment the value of Version Number. Moreover, if the change is considered important (i.e., it is expected to propagate in the DODAG quickly), the DODAG Root MUST also set the T bit to 1; otherwise, it MUST set the bit to 0. Upon receiving the option, a 6LR first checks the value of the Version Number field in the option, _vr_, versus the value of the Version Number it has last adopted locally, _vl_. * If _vl_ is greater than _vr_ (in the lollipop counter order), then the 6LR MUST ignore the received option. * Otherwise, the 6LR MUST adopt the contents of the option (i.e., the values of Version Number, Min Priority, DODAG Size, and the T bit) as its local ones. Moreover, if _vl_ was smaller than _vr_ (in the lollipop counter order) and the T bit in the received option was set, then the 6LR MUST reset its DIO trickle timer. A 6LR, which would otherwise be willing to act as a _Join Proxy_, will examine the locally adopted value of minimum enrollment priority and to that number add any additional local consideration (such as upstream congestion, number of NCE slots available, etc.). The maximum resulting value any 6LR can obtain this way is 0x7f. The resulting minimum enrollment priority, if less than 0x7f, should enable the _Join Proxy_ function. Richardson, et al. Expires 30 December 2026 [Page 7] Internet-Draft join-metric June 2026 Note that the calculated local value _vl_ does _not_ update the value _vr_ in the option. 4. Operational Considerations The RPL ecosystem has not included a management protocols to date. A future mechanisms, such as [I-D.ietf-roll-capabilities] could enable assessment and configuration of node features. If/when such a thing became available, a node would still need to be connected before it configuration parameters could be adjusted. Until such a mechanism becomes available, the only way an operator can change any defaults in the node is via a custom firmware load, or a vendor proprietary mechanism. For instance, a vendor might do this via custom programming of a configuration section in memory using some kind of cable. This kind of per-node tuning is very expensive to do, and runs counter to the goals of zero-touch mechanisms. RPL nodes therefore need to come with sensible defaults that allow a node to join a DODAG. Many current deployments have been single vendor with consistent features and well-tested defaults. However, even within such an environment, incremental deployment of firmware updates might still cause feature skew among nodes. Intermediate nodes in a DODAG might not be upgraded at the same time as nodes further down the leaf, and therefore might not support this new metric container. It is therefore necessary to consider how the lack of this metric container can be compensated for nodes further away from the root. 4.1. Incremental deployment Considerations A 6LR that did not support this option would not act on it or propagate it in its DIO messages. In effect, the 6LR's subtree below a node without support for this option could not receive any information about the DODAG size or minimum enrollment priority. In the absense of of this metric, a 6LR will need to base decisions on how to act based upon information about local resources only. This document therefore establishes that a 6LRs that support this option but do not receive it via any path SHOULD assume a default value of 0x40 as their base value for the Enhanced Beacon Join Priority. This half-way value has been chosen to allow for the best reaction. A 6LR downstream of a 6LR where there was such an interruption in the metric could err in two directions: Richardson, et al. Expires 30 December 2026 [Page 8] Internet-Draft join-metric June 2026 * If the value implied by the base value of 0x40 was too low, then the 6LR might continue to attract enrollment traffic when none should have been collected. This is a stressor for the network, but the similiar behaviour would occur if no option existed. * If the value implied by the base value of 0x40 was too high, then the 6LR might deflect enrollment traffic to other parts of the DODAG, possibly refusing any enrollment traffic at all. In order for this to happen, some significant congestion must exist in the sub-DODAG where the implied 0x40 was introduced. The 0x40 is only the half-way point, so if such an amount of congestion was present, then this sub-DODAG of the DODAG simply winds up being more cautious than it needed to be. There is an additional possibility of having more than one interruption of information if multiple nodes in the DODAG were lacking a firmware update to enable this option. Such alternation of the above two situations might introduce some pathology of cycles of accepting and then rejecting enrollment traffic: This is something an operator should consider if they incrementally deploy this option to an existing Low-power/Lossy-Network (LLN). In addition, due to these interruptions, an operator would be unable to turn off enrollment traffic by sending a maximum value enrollment priority to the sub-DODAG. This situation is unfortunate, but without this option, the situation would occur all over the DODAG, rather than just in the sub-DODAG that the option did not reach. So this problem is not a new problem. 5. Security Considerations As per [RFC7416], RPL control frames either run over a secured layer 2 or use the [RFC6550] Secure DIO methods at layer 3. This option can be placed into either a "clear" (layer-2 secured) DIO or a layer-3 Secure DIO. In most deployments involving wireless technology, layer 2 is always encrypted using a layer-2 specific technology, and so privacy of this option is available. However, a malicious node that was part of the RPL control plane (i.e., had been enrolled into the layer-2 security) would be able to see the values of this option and, based upon the observed minimal enrollment priority, could signal a confederate that it was a good time to send malicious join traffic. Richardson, et al. Expires 30 December 2026 [Page 9] Internet-Draft join-metric June 2026 What is more, such a malicious node, being already part of the RPL control plane, could also send DIOs with a different minimal enrollment priority, which would cause downstream mesh routers to change their _Join Proxy_ behavior: lower minimal priorities would cause downstream nodes to accept more Pledges than the network was expecting; higher minimal priorities could cause the enrollment process to stall. The use of layer-2 or layer-3 security for RPL control messages prevents the two aforementioned attacks by non-participating nodes by preventing malicious nodes from becoming part of the control plane. Nevertheless, a node that is attacked and has malware placed on it creates vulnerabilities in the same way such an attack on any node involved in Internet routing protocol does. The rekeying provisions of [RFC9031] exist to permit an operator to remove such nodes from the network. 6. IANA Considerations Please allocate a new entry, TBD01 from Registry RPL Control Message Options at https://www.iana.org/assignments/rpl/rpl.xhtml#control- message-options This entry should be called Minimum Enrollment Priority, and the reference should be to this document. 7. Acknowledgements This has been reviewed by Charlie Perkins, Rifaat Shehk-Yusek, Dave Thaler, and Thomas Watteyne. Huimin She contributed text about expressing the DODAG size. Ketan Talaulika was the responsible AD and provided many editoral improvements. 8. References 8.1. Normative References [ieee802154] IEEE standard for Information Technology, "IEEE Std. 802.15.4, Part. 15.4: Wireless Medium Access Control (MAC) and Physical Layer (PHY) Specifications for Low-Rate Wireless Personal Area Networks", n.d., . Richardson, et al. Expires 30 December 2026 [Page 10] Internet-Draft join-metric June 2026 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, . [RFC6206] Levis, P., Clausen, T., Hui, J., Gnawali, O., and J. Ko, "The Trickle Algorithm", RFC 6206, DOI 10.17487/RFC6206, March 2011, . [RFC6550] Winter, T., Ed., Thubert, P., Ed., Brandt, A., Hui, J., Kelsey, R., Levis, P., Pister, K., Struik, R., Vasseur, JP., and R. Alexander, "RPL: IPv6 Routing Protocol for Low-Power and Lossy Networks", RFC 6550, DOI 10.17487/RFC6550, March 2012, . [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May 2017, . [RFC9031] Vučinić, M., Ed., Simon, J., Pister, K., and M. Richardson, "Constrained Join Protocol (CoJP) for 6TiSCH", RFC 9031, DOI 10.17487/RFC9031, May 2021, . [RFC9032] Dujovne, D., Ed. and M. Richardson, "Encapsulation of 6TiSCH Join and Enrollment Information Elements", RFC 9032, DOI 10.17487/RFC9032, May 2021, . 8.2. Informative References [dao-projection] Thubert, P., Jadhav, R., and M. Richardson, "Root- initiated Routing State in RPL", Work in Progress, Internet-Draft, draft-ietf-roll-dao-projection-40, 11 March 2025, . [I-D.ietf-roll-capabilities] Jadhav, R., Thubert, P., Richardson, M., and R. N. Sahoo, "RPL Capabilities", Work in Progress, Internet-Draft, draft-ietf-roll-capabilities-09, 9 November 2021, . Richardson, et al. Expires 30 December 2026 [Page 11] Internet-Draft join-metric June 2026 [RFC4861] Narten, T., Nordmark, E., Simpson, W., and H. Soliman, "Neighbor Discovery for IP version 6 (IPv6)", RFC 4861, DOI 10.17487/RFC4861, September 2007, . [RFC6066] Eastlake 3rd, D., "Transport Layer Security (TLS) Extensions: Extension Definitions", RFC 6066, DOI 10.17487/RFC6066, January 2011, . [RFC6583] Gashinsky, I., Jaeggli, J., and W. Kumari, "Operational Neighbor Discovery Problems", RFC 6583, DOI 10.17487/RFC6583, March 2012, . [RFC6606] Kim, E., Kaspar, D., Gomez, C., and C. Bormann, "Problem Statement and Requirements for IPv6 over Low-Power Wireless Personal Area Network (6LoWPAN) Routing", RFC 6606, DOI 10.17487/RFC6606, May 2012, . [RFC7416] Tsao, T., Alexander, R., Dohler, M., Daza, V., Lozano, A., and M. Richardson, Ed., "A Security Threat Analysis for the Routing Protocol for Low-Power and Lossy Networks (RPLs)", RFC 7416, DOI 10.17487/RFC7416, January 2015, . [RFC7554] Watteyne, T., Ed., Palattella, M., and L. Grieco, "Using IEEE 802.15.4e Time-Slotted Channel Hopping (TSCH) in the Internet of Things (IoT): Problem Statement", RFC 7554, DOI 10.17487/RFC7554, May 2015, . [RFC9898] Xiao, X., Vasilenko, E., Metz, E., Mishra, G., and N. Buraglio, "Neighbor Discovery Considerations in IPv6 Deployments", RFC 9898, DOI 10.17487/RFC9898, November 2025, . Authors' Addresses Michael Richardson Sandelman Software Works Email: mcr+ietf@sandelman.ca Rahul Arvind Jadhav Huawei Tech Email: rahul.ietf@gmail.com Richardson, et al. Expires 30 December 2026 [Page 12] Internet-Draft join-metric June 2026 Pascal Thubert Independent Email: pascal.thubert@gmail.com Konrad Iwanicki University of Warsaw Email: iwanicki@mimuw.edu.pl Richardson, et al. Expires 30 December 2026 [Page 13]