A Routing Protocol for Low-Power and Lossy Networks (RPL) Destination-Oriented Directed Acyclic Graph (DODAG) Configuration Option for the 6LoWPAN Routing Header
updates
- rfc-8138 — IPv6 over Low-Power Wireless Personal Area Network (6LoWPAN) Routing Header
Extracted elements (23)
Enabling RFC 8138 on a running network previously required a 'flag day' where the entire network had to be upgraded and rebooted simultaneously. This specification introduces the 'T' flag to enable a hot upgrade where the network migrates live, with compression remaining inactive until all nodes are upgraded.
The intent of this specification is to perform the migration from uncompressed to compressed exactly once ('once and for all') without the need for a flag day, and the 'T' flag is not designed to be toggled back and forth; rollback is possible but SHOULD be complete before non-RFC-8138 nodes are added.
The 'T' flag is controlled exclusively by the DODAG Root and propagated unmodified to all nodes via DIO messages, because the DODAG Configuration option design in RFC 6550 already prohibits non-root nodes from modifying it, making the Root the natural and safe control point for network-wide compression activation.
A node that does not support RFC 8138 can interoperate with nodes that do only when 6LoRH compression is turned off ('T' flag unset). If compression is turned on, all RPL-Aware Nodes (RANs) must handle compressed packets; a non-supporting node may only remain as a RUL.
A node that supports RFC 8138 but not this specification (i.e., without the 'T' flag mechanism) can only be used in a homogeneous network and requires a flag-day upgrade to enable compression. Coexistence with this specification requires the 'T' flag to be unset during migration.
External targets (RFC 9008) are not expected to support RFC 8138. Packets to/from external targets are tunneled between the border router and the Root; the inner packet is typically uncompressed, so the border router decapsulates the compressed outer header and forwards the uncompressed inner packet.
A border router that forwards a packet to an external target MUST uncompress the packet first. In all other cases, a router MUST forward a packet in the form the source used (compressed or uncompressed).
A node SHOULD generate packets in compressed form using RFC 8138 if and only if the 'T' flag is set. This behavior can be overridden by configuration or network management (e.g., to enable compression when the Root cannot set 'T', or to disable it locally on problems).
A router encapsulating a packet is responsible for compressing the outer headers per RFC 8138 but MUST NOT perform compression on the encapsulated (inner) packet.
For MOP value 7, RFC 8138 MUST be used on links where 6LoWPAN Header Compression (RFC 6282) applies and MUST NOT be used otherwise, per the update to RFC 6550 from RFC 9008 Section 4.1.2.
Information regarding whether compression is active in a node SHOULD be exposed in the node's management interface to facilitate rollback operations.
Nodes other than the DODAG root MUST NOT modify the DODAG Configuration option when propagating it; legacy parents therefore propagate the 'T' flag exactly as set by the Root, transparently flooding it to all nodes in the DODAG.
Nodes that do not support RFC 8138 SHOULD NOT be deployed in a network where compression is turned on; if deployed anyway, the node can only operate as a RUL (RPL-Unaware Leaf).
The network MUST be operated with the 'T' flag unset until all nodes in the RPL Instance are upgraded to support this specification, because in a multi-root RPL Instance all nodes may potentially join any DODAG.
When turning RFC 8138 compression off, the network administrator MUST wait until each node has its 'T' flag unset before allowing nodes that do not support compression to join the network.
The 'T' flag ('Enable Compression per RFC 8138') is defined at bit position 2 of the reserved flags in the RPL DODAG Configuration option. When set by the DODAG Root, it signals that RFC 8138 6LoWPAN Routing Header compression is enabled throughout the DODAG.
IANA added RFC 9035 as a reference for MOP value 7 in the RPL 'Mode of Operation' registry, documenting that MOP 7 mandates RFC 8138 use on applicable links.
IANA updated the 'DODAG Configuration Option Flags for MOP 0..6' registry (formerly 'DODAG Configuration Option Flags', created for RFC 6550 and renamed by RFC 9008) to allocate bit number 2 as 'Enable Compression per RFC 8138 (T)', referencing RFC 9035.
An attacker may unset the 'T' flag to force additional energy consumption on downstream nodes (by preventing compression), or set it to cause downstream nodes to compress when undesired (potentially causing packet loss). Such manipulation is detectable because downstream nodes with multiple parents may observe the bit with conflicting values and trigger an alert.
Every RPL-aware node with access to the RPL domain can inject any RPL-based attack; see RFC 7416 for a full threat analysis. This document does not change the security requirements or operations of existing RPL deployments and assumes existing RPL security mechanisms are in place.
Setting the 'T' flag before all routers are upgraded may cause packet loss. The 'T' bit receives the same protection as the rest of the DODAG Configuration option; corrupting it is one of many attacks possible if an attacker can inject a corrupted configuration option into the network.
During migration, the DODAG transitions through states: (1) 'T' flag unset — all packets uncompressed; (2) 'T' flag set by Root — DIO propagates flag causing gradual, inconsistent transition where some nodes compress and others do not; (3) all nodes upgraded and 'T' seen — all packets compressed. Rollback reverses by unsetting 'T' and waiting for full propagation before admitting non-RFC-8138 nodes.
The DODAG Configuration option (Type=0x04, Opt Length=14) is extended with the 'T' flag at bit position 2 of the reserved flags field (counting from bit 0 as most significant). Legacy implementations set this bit to 0 per RFC 6550 Sections 20.14 and 6.7.6.