Internet Engineering Task Force C. C. B. Silva Filho Internet-Draft R. R. Fontes Intended status: Experimental Instituto Metropole Digital (IMD) - UFRN Expires: 22 January 2027 21 July 2026 HyMRPL: Per-Node Hybrid Mode of Operation and Inter-DODAG Bridge Mechanism for RPL draft-silva-hymrpl-01 Abstract The Routing Protocol for Low-Power and Lossy Networks (RPL), defined in RFC 6550, enforces a single Mode of Operation (MOP) across all nodes within a DODAG. This rigidity prevents heterogeneous devices from independently selecting their forwarding behavior and creates permanent isolation between DODAGs operating with different MOPs. This document defines HyMRPL, a Hybrid Mode of Operation (MOP=6) that enables per-node functional profiles within a single DODAG. Nodes independently adopt Class-S (storing-like) or Class-N (non-storing- like) behavior without modifying RPL control message formats. Additionally, this document specifies an Inter-DODAG Bridge mechanism that uses MOP Extension (MOPex) signaling to interconnect DODAGs with different MOPs through cross-DODAG route injection. The mechanisms introduce zero additional control messages, maintain full backward compatibility via the J-flag in extended options, and have been validated with a functional implementation demonstrating 100% packet delivery ratio across MOP boundaries. Status of This Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. 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 22 January 2027. Silva Filho & Fontes Expires 22 January 2027 [Page 1] Internet-Draft HyMRPL July 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. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 4 1.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 4 2. Problem Statement . . . . . . . . . . . . . . . . . . . . . . 4 2.1. Intra-DODAG Heterogeneity . . . . . . . . . . . . . . . . 5 2.2. Inter-DODAG Isolation . . . . . . . . . . . . . . . . . . 5 3. HyMRPL: Hybrid Mode of Operation (MOP=6) . . . . . . . . . . 5 3.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . 5 3.2. Class Selection . . . . . . . . . . . . . . . . . . . . . 6 3.3. DAO Processing Under MOP=6 . . . . . . . . . . . . . . . 6 3.3.1. Root Behavior . . . . . . . . . . . . . . . . . . . . 6 3.3.2. Class-S Node Behavior . . . . . . . . . . . . . . . . 7 3.3.3. Class-N Node Behavior . . . . . . . . . . . . . . . . 7 3.4. Downward Forwarding Behavior . . . . . . . . . . . . . . 7 3.5. Adaptive Class Selection Model . . . . . . . . . . . . . 7 3.6. Runtime Class Switching . . . . . . . . . . . . . . . . . 8 4. Inter-DODAG Bridge Mechanism . . . . . . . . . . . . . . . . 8 4.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . 9 4.2. Wire Format . . . . . . . . . . . . . . . . . . . . . . . 9 4.3. Bridge Architecture . . . . . . . . . . . . . . . . . . . 10 4.3.1. MOP Masquerading . . . . . . . . . . . . . . . . . . 10 4.3.2. Foreign DODAG Registration . . . . . . . . . . . . . 10 4.3.3. Cross-DODAG Route Injection . . . . . . . . . . . . . 10 4.3.4. DAO Translation . . . . . . . . . . . . . . . . . . . 11 4.3.5. Data Forwarding . . . . . . . . . . . . . . . . . . . 12 4.4. DIO Option Processing . . . . . . . . . . . . . . . . . . 12 4.5. Backward Compatibility . . . . . . . . . . . . . . . . . 13 5. Security Considerations . . . . . . . . . . . . . . . . . . . 13 5.1. Class Switching Authentication . . . . . . . . . . . . . 13 5.2. Bridge Route Injection Security . . . . . . . . . . . . . 13 5.3. MOP=7 Spoofing . . . . . . . . . . . . . . . . . . . . . 14 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14 6.1. Mode of Operation Registry . . . . . . . . . . . . . . . 14 6.2. MOPex Value Registry . . . . . . . . . . . . . . . . . . 15 7. Implementation Status . . . . . . . . . . . . . . . . . . . . 15 Silva Filho & Fontes Expires 22 January 2027 [Page 2] Internet-Draft HyMRPL July 2026 7.1. rpld Implementation . . . . . . . . . . . . . . . . . . . 15 8. Operational Considerations . . . . . . . . . . . . . . . . . 16 8.1. Overhead . . . . . . . . . . . . . . . . . . . . . . . . 16 8.2. Scalability . . . . . . . . . . . . . . . . . . . . . . . 17 8.3. Deployment Guidance . . . . . . . . . . . . . . . . . . . 17 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 17 9.1. Normative References . . . . . . . . . . . . . . . . . . 18 9.2. Informative References . . . . . . . . . . . . . . . . . 18 Appendix A. Example Configurations . . . . . . . . . . . . . . . 18 A.1. MOP=6 Root Configuration . . . . . . . . . . . . . . . . 18 A.2. MOPex Bridge Configuration . . . . . . . . . . . . . . . 19 A.3. Inter-DODAG Topology Example . . . . . . . . . . . . . . 19 Appendix B. Experimental Results Summary . . . . . . . . . . . . 20 B.1. Static Topology (5 nodes, 10 runs) . . . . . . . . . . . 20 B.2. MOPex Bridge (5 nodes, 3 runs) . . . . . . . . . . . . . 21 B.3. Mesh Resilience (15 nodes, node failure) . . . . . . . . 21 Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 21 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 21 1. Introduction The Routing Protocol for Low-Power and Lossy Networks (RPL) [RFC6550] organizes communication through Destination-Oriented Directed Acyclic Graphs (DODAGs) and defines four Modes of Operation (MOP) that determine how downward routes are established and maintained. The MOP is a 3-bit field in DIO messages set globally by the DODAG root and enforced uniformly across all participating nodes. This architectural constraint creates two problems in heterogeneous IoT deployments: 1. *Intra-DODAG rigidity:* All nodes must implement the same MOP regardless of individual capabilities. Memory-constrained devices cannot operate as Non-Storing within a Storing DODAG, and capable devices cannot maintain local routing tables within a Non-Storing DODAG. 2. *Inter-DODAG isolation:* DODAGs with different MOPs are completely incompatible. No mechanism exists for routing information exchange or data forwarding across MOP boundaries, creating permanently fragmented network islands. This document addresses both problems by defining: 1. A Hybrid Mode of Operation (MOP=6) that enables per-node functional profiles (Class-S and Class-N) within a single DODAG without modifying RPL message formats. Silva Filho & Fontes Expires 22 January 2027 [Page 3] Internet-Draft HyMRPL July 2026 2. An Inter-DODAG Bridge mechanism that leverages MOPex signaling [I-D.ietf-roll-mopex] to interconnect DODAGs with different MOPs through MOP masquerading and cross-DODAG route injection. 1.1. Requirements Language 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. 1.2. Terminology This document uses terminology from [RFC6550] and additionally defines: HyMRPL: Hybrid Mode RPL. The mechanism defined in this document enabling per-node MOP behavior within a single DODAG. Class-S: Storing-like profile. A node that maintains downward routing tables and performs target aggregation in DAO messages. Class-N: Non-storing-like profile. A node that maintains no downward state and delegates routing to the root's Source Routing Header (SRH) mechanism. MOPex Bridge: A node that participates in multiple DODAGs with different MOPs simultaneously, performing route translation and cross-DODAG injection. Foreign DODAG: A DODAG with a MOP different from the bridge's native mode, which the bridge has joined for translation purposes. MOP Masquerading: The technique of advertising MOP=7 (Extended) in DIO headers while carrying the real MOP value in a MOPex option, enabling backward-compatible inter-DODAG signaling. 2. Problem Statement RFC 6550 Section 6.3.1 specifies that the MOP field in DIO messages determines how downward routes are established for the entire DODAG. A node that does not support the advertised MOP MUST either join as a leaf (if it supports the MOP for upward routes only) or not join at all. This creates several operational challenges: Silva Filho & Fontes Expires 22 January 2027 [Page 4] Internet-Draft HyMRPL July 2026 2.1. Intra-DODAG Heterogeneity In a network where some nodes have sufficient memory for routing tables (suitable for Storing mode) while others are severely constrained (suitable for Non-Storing mode), the administrator must choose a single MOP. Choosing Storing (MOP=2) wastes the memory- constrained nodes' resources on routing tables they cannot adequately maintain. Choosing Non-Storing (MOP=1) wastes the capable nodes' resources by not utilizing their local forwarding ability, increasing latency for paths that could be resolved locally. No mechanism exists in RFC 6550 for individual nodes to independently select their forwarding behavior based on their own resource constraints within a single DODAG. 2.2. Inter-DODAG Isolation When a network contains multiple DODAGs with different MOPs (e.g., a Storing DODAG for sensor nodes and a Non-Storing DODAG for actuators), no mechanism exists for: * Advertising routes from one DODAG into another * Translating DAO messages between different MOP formats * Forwarding data packets across MOP boundaries This creates permanent isolation between MOP domains with no recovery mechanism defined in the protocol. 3. HyMRPL: Hybrid Mode of Operation (MOP=6) 3.1. Overview HyMRPL defines MOP=6 as a Hybrid Mode of Operation. When the DODAG root advertises MOP=6 in DIO messages, each node in the DODAG independently selects one of two functional profiles based on its own capabilities: * *Class-S (Storing-like):* The node maintains downward routing tables, installs routes via the operating system's routing subsystem, and aggregates child targets in DAO messages sent toward the root. Silva Filho & Fontes Expires 22 January 2027 [Page 5] Internet-Draft HyMRPL July 2026 * *Class-N (Non-storing-like):* The node maintains no downward routing state. It forwards DAO messages without modification toward the root, which maintains full topology visibility and installs Source Routing Header (SRH) routes for paths traversing Class-N nodes. No modification is introduced to DIO, DAO, or DIS message formats. The hybrid logic operates entirely at the behavioral level within the RPL implementation. 3.2. Class Selection A node operating under MOP=6 MUST select either Class-S or Class-N upon joining the DODAG. The selection mechanism is implementation- specific but SHOULD consider: * Available memory for routing table entries * Energy budget and expected lifetime * Link stability to parent node * Administrative policy (static configuration) This document defines an adaptive selection model in Section 3.5 that computes a composite score from multiple metrics. A node MAY change its class at runtime without requiring DODAG reconstruction. The class change takes effect at the next DAO transmission cycle. No DIO is emitted upon class change, and no global signaling is required. 3.3. DAO Processing Under MOP=6 Under MOP=6, DAO processing is class-dependent: 3.3.1. Root Behavior The DODAG root under MOP=6 MUST: 1. Accept DAO messages from all nodes regardless of their class. 2. Maintain a complete source routing tree (as in Non-Storing mode) enabling SRH-based forwarding for any path containing at least one Class-N node. 3. Install SRH lightweight tunnel routes via the operating system's routing interface for paths that require source routing. Silva Filho & Fontes Expires 22 January 2027 [Page 6] Internet-Draft HyMRPL July 2026 3.3.2. Class-S Node Behavior A Class-S node receiving a DAO from a child MUST: 1. Install a downward route for each target in the DAO via the local routing table (as in Storing mode). 2. Aggregate the child's targets into its own DAO message sent toward the parent AND the root (dual-DAO). The dual-DAO mechanism ensures the root always maintains complete topology visibility (enabling SRH for any Class-N path) while Class-S nodes simultaneously maintain local hop-by-hop routes for immediate descendants. 3.3.3. Class-N Node Behavior A Class-N node receiving a DAO from a child MUST: 1. NOT install any downward route locally. 2. Forward the DAO without modification toward the preferred parent (and/or root). This behavior is identical to Non-Storing mode processing at intermediate nodes. 3.4. Downward Forwarding Behavior Three forwarding patterns emerge within a MOP=6 DODAG: 1. *Purely storing paths:* All nodes in the downward path are Class- S. Forwarding is hop-by-hop via locally installed routes. No SRH is needed. 2. *Purely non-storing paths:* At least one node in the path is Class-N. The root uses SRH (RFC 6554 [RFC6554]) to route packets through the complete path. 3. *Mixed paths:* Class-S segments forward hop-by-hop until reaching a Class-N segment, at which point the root's SRH takes over for the remainder. 3.5. Adaptive Class Selection Model This document defines an OPTIONAL adaptive model for automatic class selection. The model computes a composite score S_i for node i: Silva Filho & Fontes Expires 22 January 2027 [Page 7] Internet-Draft HyMRPL July 2026 S_i = w_pdr * (PDR_i / 100) + w_energy * (E_i / 100) + w_stab * I[parent_stable] Where: * w_pdr = 0.4 (weight for packet delivery ratio) * w_energy = 0.3 (weight for remaining energy) * w_stab = 0.3 (weight for parent stability indicator) * PDR_i = sliding window DAO-ACK success ratio * E_i = battery level (0-100, EMA smoothed) * I[parent_stable] = 1 if parent stable, 0 otherwise If S_i >= 0.75 (threshold), the node selects Class-S. Otherwise, it selects Class-N. A hysteresis of 3 consecutive evaluation cycles prevents oscillation. Implementations MAY use different scoring functions, weights, or thresholds appropriate to their deployment scenario. The specific model defined here is RECOMMENDED as a baseline. 3.6. Runtime Class Switching A node operating under MOP=6 MAY switch its class at runtime. The switch: * MUST NOT trigger emission of new DIO messages * MUST NOT cause DODAG reconstruction * MUST take effect at the next DAO cycle * MUST be reversible The switching mechanism is implementation-specific. This document recommends a secure command interface with authentication (e.g., HMAC-SHA256), replay protection (monotonic nonce), and rate limiting (maximum 3 switches per minute, minimum 10 seconds between switches) to prevent abuse. 4. Inter-DODAG Bridge Mechanism Silva Filho & Fontes Expires 22 January 2027 [Page 8] Internet-Draft HyMRPL July 2026 4.1. Overview The Inter-DODAG Bridge mechanism enables connectivity between DODAGs operating with different MOPs. A bridge node participates in multiple DODAGs simultaneously, translating routing information and enabling data forwarding across MOP boundaries. The bridge leverages MOPex signaling [I-D.ietf-roll-mopex] to advertise its presence using MOP=7 (Extended) in DIO headers, with the real MOP carried in the extended option. This ensures backward compatibility: legacy nodes receiving MOP=7 DIOs will join as leaf per RFC 6550 Section 6.3.1 handling of unknown MOP values. 4.2. Wire Format The bridge uses MOP=7 in the DIO header's MOP field (bits 5-3 of the mopprf byte) and appends a 4-byte Extended RPL Control Option per [I-D.ietf-roll-mopex]: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |1| Opt Type | Option Length | Option Flags | MOPex Value | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Field descriptions: X bit (MSB of Option Type): Set to 1, yielding Option Type = 0x80. This marks the option as an Extended RPL Control Option. Option Length: 2 (covers Flags + MOPex Value fields). Option Flags: * J (bit 7): Join as leaf only. MUST be set to 1 by bridge nodes to ensure legacy nodes that do not understand MOPex do not become routers in the bridge's DODAG. * C (bit 6): Copy option in forwarded DIOs. Set to 0 by default. * I (bit 5): Ignore entire message if option not understood. Set to 0 by default. * Bits 4-0: Reserved, set to 0. MOPex Value: The actual Mode of Operation implemented by this node. For HyMRPL bridge nodes, this is 6 (Hybrid). Other values follow the MOPex Value Registry defined in [I-D.ietf-roll-mopex]. Silva Filho & Fontes Expires 22 January 2027 [Page 9] Internet-Draft HyMRPL July 2026 4.3. Bridge Architecture A MOPex Bridge node operates with five components: 4.3.1. MOP Masquerading When building DIO messages, a bridge node MUST: 1. Set the MOP field in the DIO header to 7 (Extended). 2. Append the Extended RPL Control Option (type 0x80) containing the node's native MOP value and the J flag set to 1. This allows MOPex-capable receivers to determine the bridge's true mode while legacy receivers see MOP=7 (unknown) and apply the behavior specified in RFC 6550 Section 6.3.1 for unknown MOP values (join as leaf if possible, or do not join). 4.3.2. Foreign DODAG Registration When a bridge node receives a DIO from a DODAG with a MOP different from its native mode, it MUST: 1. Verify that it can support the foreign MOP (implementation- specific capability check). 2. Register the foreign DODAG in a local table, recording the RPL Instance ID, DODAGID, original MOP, and MOPex value (if MOP=7). 3. Join the foreign DODAG as a router (if capable) or leaf, creating a local DAG structure for participation in that DODAG's routing protocol. A bridge node SHOULD support up to 4 simultaneous foreign DODAGs. If the foreign DODAG table is full, the bridge MUST NOT join additional foreign DODAGs. The bridge MUST handle re-registration (updates to existing entries) when receiving subsequent DIOs from already-registered foreign DODAGs, and MUST remove entries when a foreign DODAG becomes unreachable (parent timeout or explicit notification). 4.3.3. Cross-DODAG Route Injection The core mechanism enabling inter-DODAG connectivity. When the bridge processes a DAO from DODAG X containing targets T_1 through T_n, it MUST: Silva Filho & Fontes Expires 22 January 2027 [Page 10] Internet-Draft HyMRPL July 2026 1. For each other DODAG Y (where Y != X) that the bridge participates in: 1. Add each target T_i as a child entry in the bridge's local DAG structure for DODAG Y, with the bridge's own address as the next-hop. 2. Include the injected targets in the bridge's next periodic DAO message toward the root of DODAG Y. This causes the root of DODAG Y to install routes for T_1 through T_n via the bridge, enabling data forwarding from DODAG Y to nodes in DODAG X. Route injection MUST include deduplication: before adding a target to DODAG Y, the bridge MUST check if an identical prefix is already present. Duplicate entries MUST NOT be added. The bridge SHOULD maintain a maximum of 32 injected routes per foreign DODAG to prevent unbounded table growth. 4.3.4. DAO Translation When translating DAOs between DODAGs with different MOPs, the bridge performs format conversion: 4.3.4.1. Storing to Non-Storing Translation A Storing-mode DAO contains RPL Target options without Transit Information (the DAO sender is the implicit next-hop). When translating to a Non-Storing DODAG, the bridge MUST: 1. Copy all RPL Target options unchanged. 2. Add a Transit Information option with the bridge's own address in the "parent" field, indicating to the Non-Storing root that packets for these targets should be routed via the bridge. 4.3.4.2. Non-Storing to Storing Translation A Non-Storing DAO contains RPL Target options with Transit Information carrying the full source routing path. When translating to a Storing DODAG, the bridge MUST: 1. Copy all RPL Target options unchanged. 2. Strip the Transit Information option (Storing mode does not use it; the DAO sender is the implicit next-hop). Silva Filho & Fontes Expires 22 January 2027 [Page 11] Internet-Draft HyMRPL July 2026 3. The receiving root in the Storing DODAG will interpret the bridge as the next-hop for all contained targets. 4.3.4.3. Hybrid (MOP=6) Translation MOP=6 DODAGs use a dual-DAO mechanism where DAOs are sent toward both the parent and the root. The bridge MUST handle both Storing-style DAOs (with aggregated targets from Class-S subtrees) and Non-Storing- style DAOs (with Transit Information from Class-N paths) using the appropriate translation rules above based on the target DODAG's MOP. 4.3.5. Data Forwarding Once routes are injected and propagated via standard DAO mechanisms, cross-DODAG data forwarding requires no special handling at the bridge. The bridge acts as a regular intermediate hop: * Packets from DODAG A addressed to prefixes in DODAG B are forwarded by root A toward the bridge (which has advertised those prefixes via DAO). * The bridge receives the packet and forwards it into DODAG B using its routes in that domain (either via hop-by-hop routing for Storing or via SRH for Non-Storing). No encapsulation, tunneling, or special packet marking is required for cross-DODAG data transit. 4.4. DIO Option Processing A bridge node receiving a DIO MUST scan all options in the DIO options area to locate the Extended RPL Control Option (type 0x80), regardless of option ordering. The bridge MUST NOT assume the destination prefix option (type 0x03) is always the first option after the DIO base header. If a DIO carries MOP=7 in the header: 1. The bridge MUST parse the MOPex option to determine the real MOP value. 2. If the MOPex option is not found, the bridge MUST treat the DIO as having an unknown MOP and MUST NOT join as a router. 3. If an unknown extended option is encountered with the I flag set, the bridge MUST ignore the entire DIO message. Silva Filho & Fontes Expires 22 January 2027 [Page 12] Internet-Draft HyMRPL July 2026 4.5. Backward Compatibility The J flag (Join as leaf only) in the MOPex option ensures incremental deployability: * Existing RPL implementations that receive MOP=7 DIOs will not understand the MOP and, per RFC 6550 Section 6.3.1, will either join as leaf nodes or not join at all. * The J=1 flag explicitly signals that nodes not understanding the MOPex option SHOULD join only as leaf. * Only bridge nodes require MOPex-aware firmware. All other nodes can run standard RPL implementations. 5. Security Considerations 5.1. Class Switching Authentication Runtime class switching (Section 3.6) introduces a control plane interface that could be exploited by an attacker to force nodes into suboptimal classes, degrading network performance. Implementations providing external class switching interfaces MUST implement: * Authentication of switch commands (e.g., HMAC-SHA256 with a pre- shared key). * Replay protection using monotonically increasing nonces. * Rate limiting (RECOMMENDED: maximum 3 switches per minute, minimum 10 seconds between consecutive switches). 5.2. Bridge Route Injection Security The cross-DODAG route injection mechanism (Section 4.3.3) creates a potential attack vector: a malicious bridge could advertise false routes between DODAGs, redirecting traffic through an attacker- controlled node (route poisoning). Mitigations: * Bridge nodes SHOULD be administratively authorized. Implementations MAY require explicit configuration (e.g., a "mopex_bridge=true" flag) to prevent arbitrary nodes from acting as bridges. Silva Filho & Fontes Expires 22 January 2027 [Page 13] Internet-Draft HyMRPL July 2026 * Route injection SHOULD be limited to prefixes actually learned from the foreign DODAG's DAO messages. A bridge MUST NOT inject routes for prefixes it has not received via legitimate DAO processing. * The maximum number of injected routes per foreign DODAG SHOULD be bounded (this document recommends 32) to limit the blast radius of a compromised bridge. * Implementations MAY support RPL security modes (RFC 6550 Section 10) to authenticate DAO messages between the bridge and DODAG roots. 5.3. MOP=7 Spoofing An attacker could emit DIOs with MOP=7 and a forged MOPex option to attract nodes. The J flag mitigates this by ensuring that nodes not understanding MOPex join only as leaf, limiting the attacker's ability to attract routing traffic. However, MOPex-capable nodes could still be deceived. Deployments operating in adversarial environments SHOULD use RPL security mode (authenticated DIOs per RFC 6550 Section 10) in addition to the mechanisms defined here. 6. IANA Considerations 6.1. Mode of Operation Registry This document requests IANA to assign the following value in the "RPL Mode of Operation" registry defined by RFC 6550: +=======+=========================================+===========+ | Value | Description | Reference | +=======+=========================================+===========+ | 6 | Hybrid Mode (HyMRPL): Per-node Class-S/ | [This | | | Class-N profiles within a single DODAG | Document] | +-------+-----------------------------------------+-----------+ Table 1 Note: MOP value 7 is defined by [I-D.ietf-roll-mopex] as "Extended MOP" and is not requested by this document. This document defines the semantics for MOPex Value = 6 in the MOPex Value Registry. Silva Filho & Fontes Expires 22 January 2027 [Page 14] Internet-Draft HyMRPL July 2026 6.2. MOPex Value Registry This document requests IANA to assign the following value in the "MOPex Value" registry defined by [I-D.ietf-roll-mopex]: +=======+===================================+=================+ | Value | Description | Reference | +=======+===================================+=================+ | 6 | Hybrid Mode of Operation (HyMRPL) | [This Document] | +-------+-----------------------------------+-----------------+ Table 2 7. Implementation Status [Note to RFC Editor: This section is to be removed before publication as an RFC. It is present per RFC 7942 [RFC7942].] 7.1. rpld Implementation Organization: Instituto Metropole Digital, UFRN, Brazil Implementation Name: rpld-hymrpl Description: Extension of rpld (user-space RPL daemon for Linux) implementing both HyMRPL (MOP=6) and the MOPex bridge mechanism. The implementation adds approximately 1000 lines of C code to rpld. Maturity Level: Experimental Coverage: This implementation covers the full specification defined in this document including: * MOP=6 announcement in DIO messages * Class-S and Class-N per-node behavior * Dual-DAO processing * Adaptive class selection model * Secure runtime class switching via FIFO with HMAC * MOPex option building and parsing (type 0x80) * MOP masquerading (MOP=7 in DIO header) * Foreign DODAG registration (up to 4) Silva Filho & Fontes Expires 22 January 2027 [Page 15] Internet-Draft HyMRPL July 2026 * Cross-DODAG route injection with deduplication * DAO translation between Storing and Non-Storing Licensing: Open source (available at https://github.com/CassiusClayB/ rpld_hymrpl) Implementation Experience: * Tested on Linux kernel 6.11.0 with CONFIG_IPV6_RPL_LWTUNNEL for native SRH support. * Validated using Mininet-WiFi with 6LoWPAN over virtual IEEE 802.15.4 (mac802154_hwsim) in topologies from 5 to 50 nodes. * Over 100 independent experiment runs across 12 test categories demonstrate 100% PDR for intra-DODAG paths and 100% PDR for cross- DODAG paths through the bridge. * Packet captures confirm MOP=7 visible on the wire with the 4-byte extended option (type 0x80, J=1, value=6). * 10,266 data packets captured transiting through the bridge between DODAGs in a single experiment run. * Convergence time for HyMRPL is up to 35% faster than Storing mode at 20 nodes. * Under intermediate node failure, the dual reconvergence mechanism achieves 87.2% PDR vs. 64.1% for pure Non-Storing (23 percentage point advantage). Contact: Cassius Clay B. Silva Filho 8. Operational Considerations 8.1. Overhead The mechanisms defined in this document introduce minimal overhead: Silva Filho & Fontes Expires 22 January 2027 [Page 16] Internet-Draft HyMRPL July 2026 +===================+================+=========================+ | Aspect | HyMRPL (MOP=6) | MOPex Bridge | +===================+================+=========================+ | DIO size increase | 0 bytes | +4 bytes (MOPex option) | +-------------------+----------------+-------------------------+ | Additional | 0 | 0 | | control messages | | | +-------------------+----------------+-------------------------+ | Memory per node | +1 byte (class | ~2 KB (bridge state) | | | field) | | +-------------------+----------------+-------------------------+ | Code size | ~300 lines | ~700 lines | +-------------------+----------------+-------------------------+ Table 3 8.2. Scalability The convergence advantage of MOP=6 over pure Storing mode grows superlinearly with network size (observed: 23% at 5 nodes to 35% at 20 nodes). This is because MOP=6 avoids the distributed routing table maintenance overhead that limits Storing mode scalability. The bridge mechanism scales with the number of foreign DODAGs (bounded at 4) and the number of injected routes per foreign DODAG (bounded at 32). Deployments requiring more capacity may increase these bounds at the cost of additional memory on the bridge node. 8.3. Deployment Guidance Recommended deployment patterns: * *Single DODAG with mixed capabilities:* Use MOP=6 with Class-S for capable routers and Class-N for constrained sensors. This requires only the root and participating nodes to support MOP=6. * *Multiple existing DODAGs:* Deploy a bridge node with physical connectivity to both DODAGs. Only the bridge requires MOPex support; all other nodes continue operating with their existing MOP. * *Gradual migration:* Start with MOP=6 for new deployments. Add bridge nodes when interconnection with legacy MOP=2 or MOP=1 DODAGs is needed. The J flag ensures no disruption to existing networks. 9. References Silva Filho & Fontes Expires 22 January 2027 [Page 17] Internet-Draft HyMRPL July 2026 9.1. Normative References [I-D.ietf-roll-mopex] Jadhav, R., Thubert, P., and M. Richardson, "RPL Mode of Operation Extension", Work in Progress, Internet-Draft, draft-ietf-roll-mopex-07, June 2023, . [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, . [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, . [RFC6554] Hui, J., Vasseur, JP., Culler, D., and V. Manral, "An IPv6 Routing Header for Source Routes with the Routing Protocol for Low-Power and Lossy Networks (RPL)", RFC 6554, DOI 10.17487/RFC6554, 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, . 9.2. Informative References [RFC7942] Sheffer, Y. and A. Farrel, "Improving Awareness of Running Code: The Implementation Status Section", BCP 205, RFC 7942, DOI 10.17487/RFC7942, July 2016, . Appendix A. Example Configurations A.1. MOP=6 Root Configuration Silva Filho & Fontes Expires 22 January 2027 [Page 18] Internet-Draft HyMRPL July 2026 ifaces = { { ifname = "lowpan0", dodag_root = true, mode_of_operation = 6, node_class = "S", trickle_t = 8, rpls = { { instance = 1, dags = { { mode_of_operation = 6, node_class = "S", dest_prefix = "fd00:1::/64", dodagid = "fd00:1::1", }, } }, } }, } A.2. MOPex Bridge Configuration ifaces = { { ifname = "lowpan0", dodag_root = false, mode_of_operation = 6, node_class = "S", trickle_t = 2, mopex_bridge = true, mopex_accept_foreign = true, }, } A.3. Inter-DODAG Topology Example Silva Filho & Fontes Expires 22 January 2027 [Page 19] Internet-Draft HyMRPL July 2026 DODAG A (MOP=6, HyMRPL) DODAG B (MOP=2, Storing) ======================== ========================= +--------+ +--------+ | Root A | | Root B | | MOP=6 | | MOP=2 | +---+----+ +---+----+ | | +----+----+ +----+----+ | | | | +---+--+ +--+---+ +---+--+ +--+---+ |Node A1| |Node A2| |Node B1| |Node B2| |Class-S| |Class-N| |Storing| |Storing| +-------+ +---+---+ +-------+ +-------+ | +----+----+ | BRIDGE | | MOP=7 | <-- advertises MOP=7 + option 0x80 | native=6| joins both DODAGs +----+----+ | (connected to Root B's domain) Cross-DODAG path: Node A1 -> Root A -> Bridge -> Root B -> Node B1 Appendix B. Experimental Results Summary The following results were obtained from the rpld-hymrpl implementation running on Mininet-WiFi with 6LoWPAN over mac802154_hwsim (Linux kernel 6.11.0). B.1. Static Topology (5 nodes, 10 runs) +====================+=========+=============+========+ | Metric | Storing | Non-Storing | HyMRPL | +====================+=========+=============+========+ | Convergence (s) | 12.63 | 9.81 | 9.77 | +--------------------+---------+-------------+--------+ | PDR 1-3 hop | 100% | 100% | 100% | +--------------------+---------+-------------+--------+ | Latency 3-hop (ms) | 0.21 | 0.29 | 0.29 | +--------------------+---------+-------------+--------+ | DIO count (15s) | 33 | 45 | 45 | +--------------------+---------+-------------+--------+ Table 4 Silva Filho & Fontes Expires 22 January 2027 [Page 20] Internet-Draft HyMRPL July 2026 B.2. MOPex Bridge (5 nodes, 3 runs) +=============================+=============+ | Metric | Value | +=============================+=============+ | Bridge MOPex DIOs emitted | 18+ per run | +-----------------------------+-------------+ | Foreign DODAGs registered | 2 | +-----------------------------+-------------+ | Cross-DODAG injections | 18 per run | +-----------------------------+-------------+ | Cross-DODAG PDR | 100% | +-----------------------------+-------------+ | Cross-DODAG latency | 0.3 ms | +-----------------------------+-------------+ | Data packets through bridge | 10,266 | +-----------------------------+-------------+ | Convergence time | ~15 s | +-----------------------------+-------------+ Table 5 B.3. Mesh Resilience (15 nodes, node failure) +================+===================+ | Mode | PDR under failure | +================+===================+ | Storing | 79.5% | +----------------+-------------------+ | Non-Storing | 64.1% | +----------------+-------------------+ | HyMRPL (MOP=6) | 87.2% | +----------------+-------------------+ Table 6 The dual reconvergence mechanism (centralized SRH + local hop-by-hop) provides a 23 percentage point advantage over Non-Storing under intermediate node failure. Acknowledgements The authors thank the developers of rpld for providing the base RPL daemon implementation, and the Mininet-WiFi team for the 6LoWPAN emulation framework used in experimental validation. Authors' Addresses Silva Filho & Fontes Expires 22 January 2027 [Page 21] Internet-Draft HyMRPL July 2026 Cassius Clay Batista da Silva Filho Instituto Metropole Digital (IMD) - UFRN Natal-RN Brazil Email: cassius.filho.700@ufrn.edu.br Ramon dos Reis Fontes Instituto Metropole Digital (IMD) - UFRN Natal-RN Brazil Email: ramonfontes@imd.ufrn.br Silva Filho & Fontes Expires 22 January 2027 [Page 22]