| < draft-ietf-roll-turnon-rfc8138-07.txt | draft-ietf-roll-turnon-rfc8138-08.txt > | |||
|---|---|---|---|---|
| ROLL P. Thubert, Ed. | ROLL P. Thubert, Ed. | |||
| Internet-Draft L. Zhao | Internet-Draft L. Zhao | |||
| Updates: 6550, 8138 (if approved) Cisco Systems | Updates: 8138 (if approved) Cisco Systems | |||
| Intended status: Standards Track 17 April 2020 | Intended status: Standards Track 8 July 2020 | |||
| Expires: 19 October 2020 | Expires: 9 January 2021 | |||
| A RPL Configuration Option for the 6LoWPAN Routing Header | A RPL DODAG Configuration Option for the 6LoWPAN Routing Header | |||
| draft-ietf-roll-turnon-rfc8138-07 | draft-ietf-roll-turnon-rfc8138-08 | |||
| Abstract | Abstract | |||
| This document updates RFC 8138 and RFC 6550 by defining a bit in the | This document updates RFC 8138 and RFC 6550 by defining a bit in the | |||
| RPL configuration option to indicate whether RFC 8138 compression is | RPL DODAG Configuration Option to indicate whether RFC 8138 | |||
| used within the RPL Instance, and specify the behavior of RFC | compression is used within the RPL Instance, and specify the behavior | |||
| 8138-capable nodes when the bit is set and reset. | of RFC 8138-capable nodes when the bit is set and reset. | |||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on 19 October 2020. | This Internet-Draft will expire on 9 January 2021. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2020 IETF Trust and the persons identified as the | Copyright (c) 2020 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents (https://trustee.ietf.org/ | |||
| license-info) in effect on the date of publication of this document. | license-info) in effect on the date of publication of this document. | |||
| Please review these documents carefully, as they describe your rights | Please review these documents carefully, as they describe your rights | |||
| skipping to change at page 2, line 11 ¶ | skipping to change at page 2, line 11 ¶ | |||
| extracted from this document must include Simplified BSD License text | extracted from this document must include Simplified BSD License text | |||
| as described in Section 4.e of the Trust Legal Provisions and are | as described in Section 4.e of the Trust Legal Provisions and are | |||
| provided without warranty as described in the Simplified BSD License. | provided without warranty as described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 2.1. References . . . . . . . . . . . . . . . . . . . . . . . 3 | 2.1. References . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 2.2. Glossary . . . . . . . . . . . . . . . . . . . . . . . . 3 | 2.2. Glossary . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 2.3. BCP 14 . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 2.3. Requirements Language . . . . . . . . . . . . . . . . . . 4 | |||
| 3. Updating RFC 6550 . . . . . . . . . . . . . . . . . . . . . . 4 | 3. The RPL DODAG Configuration Option . . . . . . . . . . . . . 4 | |||
| 4. Updating RFC 8138 . . . . . . . . . . . . . . . . . . . . . . 4 | 4. Updating RFC 8138 . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 5. Transition Scenarios . . . . . . . . . . . . . . . . . . . . 5 | 5. Transition Scenarios . . . . . . . . . . . . . . . . . . . . 5 | |||
| 5.1. Inconsistent State While Migrating . . . . . . . . . . . 6 | 5.1. Coexistence . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 5.2. Single RPL Instance Scenario . . . . . . . . . . . . . . 6 | 5.2. Inconsistent State While Migrating . . . . . . . . . . . 6 | |||
| 5.3. Double RPL Instances Scenario . . . . . . . . . . . . . . 7 | 5.3. Rolling Back . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 5.4. Rolling Back . . . . . . . . . . . . . . . . . . . . . . 8 | 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 7 | |||
| 7. Security Considerations . . . . . . . . . . . . . . . . . . . 8 | 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 9 | 9. Normative References . . . . . . . . . . . . . . . . . . . . 8 | |||
| 9. Normative References . . . . . . . . . . . . . . . . . . . . 9 | 10. Informative References . . . . . . . . . . . . . . . . . . . 8 | |||
| 10. Informative References . . . . . . . . . . . . . . . . . . . 9 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 10 | ||||
| 1. Introduction | 1. Introduction | |||
| The transition of a RPL [RFC6550] network to activate the compression | The packet compression technique defined in [RFC8138] can only be | |||
| defined in [RFC8138] can only be done when all routers in the network | activated in a RPL [RFC6550] network when all the nodes support it. | |||
| support it. Otherwise, a non-capable node acting as a router would | Otherwise, a non-capable node acting as leaf-only would fail to | |||
| drop the compressed packets and black-hole its subDAG. In a mixed | communicate, and acting as a router it would drop the compressed | |||
| case with both RFC8138-capable and non-capable nodes, the compression | packets and black-hole a portion of the network. | |||
| may be turned on only if all the non-capable nodes act as Hosts and | ||||
| their RPL parents handle the compression/decompression for them. | ||||
| The original idea was to use a flag day but that proved impractical | ||||
| in a number of situations such as a large metering network that is | ||||
| used in production and incurs financial losses when interrupted. | ||||
| This specification is designed for the scenario where a live network | ||||
| is upgraded to support [RFC8138]. During the migration, the | ||||
| compression should remain inactive, until all nodes are upgraded. | ||||
| This document complements [RFC8138] and dedicates a flag in the RPL | This document complements [RFC8138] and dedicates a flag in the RPL | |||
| configuration option to indicate whether [RFC8138] compression should | DODAG Configuration Option to indicate whether the [RFC8138] | |||
| be used within the RPL Instance. The setting of this new flag is | compression should be used within the RPL DODAG. | |||
| controlled by the Root and propagates as is in the whole network. | ||||
| When the bit is not set, source nodes that support [RFC8138] should | ||||
| refrain from using the compression unless the information is | ||||
| superseded by configuration. | ||||
| With RPL, a leaf is an IPv6 Host, which implies that leaves do not | The setting of this new flag is controlled by the Root and propagates | |||
| forward packets. This specification provides scenarios that force a | as is in the whole network as part of the normal RPL signaling. | |||
| non-capable RPL-Aware Node (RAN) to become a leaf. The parent router | ||||
| must know, e.g., by configuration, or leveraging "RPL Capabilities" | The idea is to use the flag to maintain the compression inactive | |||
| [CAPABILITIES], when a leaf does not support the compression defined | during the migration phase. When the migration is complete (e.g., as | |||
| in [RFC8138]. This is implicitly the case for a RPL-Unaware Leaf | known by network management and/or inventory), the flag is set and | |||
| (RUL) but is not known for a RPL-Aware Leaf (RAL). The parent router | the compression is globally activated in the whole DODAG. | |||
| must uncompress the packets before delivering them to a non-capable | ||||
| leaf and it must compress the traffic from the leaf. | ||||
| 2. Terminology | 2. Terminology | |||
| 2.1. References | 2.1. References | |||
| The Terminology used in this document is consistent with and | The Terminology used in this document is consistent with and | |||
| incorporates that described in "Terms Used in Routing for Low-Power | incorporates that described in "Terms Used in Routing for Low-Power | |||
| and Lossy Networks (LLNs)" [RFC7102]. Other terms in use in LLNs are | and Lossy Networks (LLNs)" [RFC7102]. Other terms in use in LLNs are | |||
| found in "Terminology for Constrained-Node Networks" [RFC7228]. | found in "Terminology for Constrained-Node Networks" [RFC7228]. | |||
| skipping to change at page 4, line 5 ¶ | skipping to change at page 4, line 5 ¶ | |||
| RPL: IPv6 Routing Protocol for Low-Power and Lossy Networks | RPL: IPv6 Routing Protocol for Low-Power and Lossy Networks | |||
| OF: RPL Objective Function | OF: RPL Objective Function | |||
| OCP: RPL Objective Code Point | OCP: RPL Objective Code Point | |||
| MOP: RPL Mode of Operation | MOP: RPL Mode of Operation | |||
| RPI: RPL Packet Information | RPI: RPL Packet Information | |||
| RAL: RPL-Aware Leaf | RAL: RPL-Aware Leaf | |||
| RAN: RPL-Aware Node | RAN: RPL-Aware Node | |||
| RUL: RPL-Unaware Leaf | RUL: RPL-Unaware Leaf | |||
| SRH: Source Routing Header | SRH: Source Routing Header | |||
| 2.3. BCP 14 | 2.3. Requirements Language | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
| "OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in BCP | |||
| 14 [RFC2119][RFC8174] when, and only when, they appear in all | 14 [RFC2119][RFC8174] when, and only when, they appear in all | |||
| capitals, as shown here. | capitals, as shown here. | |||
| 3. Updating RFC 6550 | 3. The RPL DODAG Configuration Option | |||
| The DODAG Configuration Option is defined in Section 6.7.6 of | ||||
| [RFC6550]. | ||||
| The RPL DODAG Configuration Option is typically placed in a DODAG | ||||
| Information Object (DIO) message. The DIO message propagates down | ||||
| the DODAG to form and then maintain its structure. The DODAG | ||||
| Configuration Option is copied unmodified from parents to children. | ||||
| As shown in Figure 1, the DODAG Configuration Option was designed | ||||
| with 4 bit positions reserved for future use as Flags. | ||||
| 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 = 0x04 |Opt Length = 14| Flags |A| ... | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | ||||
| | ... | | ||||
| Figure 1: DODAG Configuration Option (Partial View) | ||||
| This specification defines a new flag "Enable RFC8138 Compression" | This specification defines a new flag "Enable RFC8138 Compression" | |||
| (T). The "T" flag is set to turn on the use of the compression of | (T). The "T" flag is set to turn-on the use of the compression of | |||
| RPL artifacts with [RFC8138] within a RPL Instance. If a RPL | RPL artifacts with [RFC8138] within the DODAG. The new "T" flag is | |||
| Instance has multiple Roots then they must be coordinated to use the | encoded in one of the reserved bits in the RPL DODAG Configuration | |||
| same setting. | Option. The suggested bit position of the "T" flag is indicated in | |||
| Section 6. | ||||
| RPL defines a Configuration Option that is registered to IANA in | /[RFC6550] states, [RFC6550] states, when referring to the DODAG | |||
| section 20.14. of [RFC6550]. The "T" flag is encoded in one of the | Configuration Option, that "Nodes other than the DODAG Root MUST NOT | |||
| reserved control bits in the RPL Configuration Option. The bit | modify this information when propagating the DODAG Configuration | |||
| position of the "T" flag is indicated in Section 6. | option". Therefore, even a legacy parent propagates the "T" flag as | |||
| set by the Root whether it supports this specification or not. So | ||||
| when the "T" flag is set, it is transparently flooded to all the | ||||
| nodes in the DODAG. | ||||
| Section 6.3.1. of [RFC6550] defines a 3-bit Mode of Operation (MOP) | Section 6.3.1. of [RFC6550] defines a 3-bit Mode of Operation (MOP) | |||
| in the DIO Base Object. The new "T" flag is defined only for MOP | in the DIO Base Object. The new "T" flag is defined only for MOP | |||
| value between 0 to 6. For a MOP value of 7 or above, the flag MAY | value between 0 to 6. | |||
| indicate something different and MUST NOT be interpreted as "Enable | ||||
| RFC8138 Compression" unless the specification of the MOP indicates to | ||||
| do so. | ||||
| 4. Updating RFC 8138 | 4. Updating RFC 8138 | |||
| A node that supports this specification MUST source packets in the | A node SHOULD source packets in the compressed form using [RFC8138] | |||
| compressed form using [RFC8138] if and only if the "T" flag is set. | if and only if the "T" flag is set. This behaviour can be overridden | |||
| This behaviour can be overridden by the configuration of the node in | by e.g., configuration or network management. Overriding may be | |||
| order to cope with intermediate implementations of the Root that | needed e.g., to cope with a legacy implementations of the Root that | |||
| support [RFC8138] but not this specification and cannot set the "T" | supports [RFC8138] but not this specification and cannot set the "T" | |||
| flag. | flag. | |||
| The decision of using [RFC8138] is made by the originator of the | The decision of using [RFC8138] is made by the originator of the | |||
| packet depending on its capabilities and its knowledge of the state | packet depending on its capabilities and its knowledge of the state | |||
| of the "T" flag. A router that encapsulates a packet is the | of the "T" flag. A router that encapsulates a packet is the | |||
| originator of the resulting packet and decides whether to compress | originator of the resulting packet and is responsible to compress the | |||
| the outer headers as indicated above. An external target | outer headers with [RFC8138], but it MUST leave the encapsulated | |||
| [USEofRPLinfo] is not expected to support [RFC8138]. An intermediate | packet as is. | |||
| router MUST forward the packet in the form that the source used, | ||||
| either compressed or uncompressed, unless it is forwarding to an | An external target [USEofRPLinfo] is not expected to support | |||
| external target or delivering to a leaf that is not known to support | [RFC8138]. In most cases, packets from/to an external target are | |||
| [RFC8138], in which cases it MUST uncompress the packet. | tunneled back and forth between the RPL border router and the Root | |||
| regardless of the MOP used in the RPL DODAG. The inner packet is | ||||
| typically not compressed with [RFC8138] so the 6LR just needs to | ||||
| decapsulate the (compressed) outer header and forward the | ||||
| (uncompressed) inner packet towards the external target. | ||||
| A router MUST uncompress a packet that is to be forwarded to an | ||||
| external target. Otherwise, the router MUST forward the packet in | ||||
| the form that the source used, either compressed or uncompressed. | ||||
| A RUL [UNAWARE-LEAVES] is both a leaf and an external target . A RUL | ||||
| does not participate in RPL and depends on the parent router to | ||||
| obtain connectivity. In the case of a RUL, forwarding towards an | ||||
| external target actually means delivering the packet. | ||||
| 5. Transition Scenarios | 5. Transition Scenarios | |||
| A node that supports [RFC8138] but not this specification can only be | A node that supports [RFC8138] but not this specification can only be | |||
| used in an homogeneous network. Enabling the [RFC8138] compression | used in an homogeneous network. Enabling the [RFC8138] compression | |||
| requires a "flag day"; all nodes must be upgraded, and then the | requires a "flag day"; all nodes must be upgraded, and then the | |||
| network can be rebooted with the [RFC8138] compression turned on. | network can be rebooted with the [RFC8138] compression turned on. | |||
| A node that supports this specification can work in a network with | ||||
| [RFC8138] compression turned on or off with the "T" flag set | ||||
| accordingly and in a network in transition from off to on or on to | ||||
| off (see Section 5.1). | ||||
| A node that does not support [RFC8138] can interoperate with nodes | ||||
| that do in a network with [RFC8138] compression turned off. If the | ||||
| compression is turned on, the node cannot forward compressed packets | ||||
| and therefore it cannot act as a router. It may remain connected to | ||||
| that network as a leaf, generates uncompressed packets, and can | ||||
| receive packets if they are delivered by the parent router in the | ||||
| uncompressed form. Unless this is known by other means, the node | ||||
| SHOULD join as a RUL as an indication that its parent router needs to | ||||
| uncompress the packets before delivering. | ||||
| [RFC6550] states that "Nodes other than the DODAG Root MUST NOT | ||||
| modify this information when propagating the DODAG Configuration | ||||
| option". Therefore, even a legacy parent propagates the "T" flag as | ||||
| set by the Root whether it supports this specification or not. So | ||||
| when the "T" flag is set, it is transparently flooded to all the | ||||
| nodes in the RPL Instance. | ||||
| Sections 8.5 and 9.2 of [RFC6550] also suggests that a RAN may only | ||||
| attach to a DODAG as a leaf when it does not support the Mode of | ||||
| Operation of a RPL Instance, the Objective Function (OF) as indicated | ||||
| by the Objective Code Point (OCP) or some other parameters in the | ||||
| configuration option. | ||||
| This specification reiterates that a RAN that is configured to | ||||
| operate in a RPL Instance but does not support a value for a known | ||||
| parameter that is mandatory for routing, such as the OCP, MUST NOT | ||||
| operate as a router but MAY still join as a leaf. Note that a legacy | ||||
| RAN will not recognize when a reserved field is used and will not | ||||
| turn to a leaf when the "T" flag is set. | ||||
| The intent for this specification is to perform a migration once and | The intent for this specification is to perform a migration once and | |||
| for all without the need for a flag day. In particular it is not the | for all without the need for a flag day. In particular it is not the | |||
| intention to undo the setting of the "T" flag, and though it is | intention to undo the setting of the "T" flag. Though it is possible | |||
| possible to roll back (see Section 5.4), adding nodes that do not | to roll back (see Section 5.3), adding nodes that do not support | |||
| support [RFC8138] after a roll back may be problematic if the roll | [RFC8138] after a roll back may be problematic if the roll back did | |||
| back is not fully complete (see caveats in Section 5.2). | not fully complete. | |||
| 5.1. Inconsistent State While Migrating | ||||
| When the "T" flag is turned on in the configuration option by the | ||||
| Root, the information slowly percolates through the DODAG as the DIO | ||||
| gets propagated. | ||||
| Some nodes will see the flag and start sourcing packets in the | ||||
| compressed form while other nodes in the same RPL Instance are still | ||||
| not aware of it. Conversely, in non-storing mode, the Root will | ||||
| start using [RFC8138] with a Source Routing Header 6LoRH (SRH-6LoRH) | ||||
| that routes all the way to the parent router or to the leaf. | ||||
| To ensure that a packet is forwarded across the RPL Instance in the | ||||
| form in which it was generated, it is required that all the routers | ||||
| support [RFC8138] at the time of the switch, and that all nodes that | ||||
| do not support [RFC8138] only operate as leaves. | ||||
| Setting the "T" flag is ultimately the responsibility of the network | ||||
| administrator. In a case of upgrading a network to turn the | ||||
| compression on, the network SHOULD be operated with the "T" flag | ||||
| reset until all targeted nodes are upgraded to support this | ||||
| specification. Section 5.2 and Section 5.3 provide possible | ||||
| transition scenarios where this can be enforced. | ||||
| 5.2. Single RPL Instance Scenario | ||||
| In a Single RPL Instance Scenario, nodes that support [RFC8138] are | ||||
| configured with a new OCP, that may use the same OF operation or a | ||||
| variation of it, while nodes that do not support [RFC8138] are not, | ||||
| but are configured to join an unknown OCP. | ||||
| The Root migrates to the new OCP before it sets the "T" flag, so that | ||||
| nodes that do not support [RFC8138] are all attached as leaves when | ||||
| the "T" flag is eventually set. | ||||
| The parent router - which supports [RFC8138] - compresses the packets | ||||
| originated from the leaf and uncompresses the packets going to the | ||||
| leaf. This may be done on the fly by the parent of a non-capable | ||||
| RAL, or as part of the tunneling operation between the parent and the | ||||
| Root, if the leaf behaves as a RUL. This is described in section 7, | ||||
| 8, and 9 of [USEofRPLinfo]. | ||||
| Note that though tunneling from the Root to the parent is the generic | ||||
| case for RULs, on paper it is possible for the Root to avoid it for | ||||
| the traffic that it originates. The Root SHOULD always use tunneling | ||||
| to the parent of a RUL, even for its own packets, unless it knows | ||||
| that the leaf supports [RFC8138]. | ||||
| This scenario presents a number of caveats: | ||||
| * The method consumes an extra OCP. It also forces nodes that do | ||||
| not support [RFC8138] to operate as RULs, unless there is a method | ||||
| to let the parent router know that it must uncompress the packet | ||||
| for this RAL. | ||||
| * If the RPL implementation of a node does not turn it to a leaf | ||||
| when the OCP is changed to an unknown one, then the node may be | ||||
| stalled. | ||||
| * If the only possible parents of a node are nodes that do not | 5.1. Coexistence | |||
| support [RFC8138], then that node will loose all its parent at the | ||||
| time of the migration and it will be stalled until a parent is | ||||
| deployed with the new capability. | ||||
| 5.3. Double RPL Instances Scenario | A node that supports this specification can operate in a network with | |||
| the [RFC8138] compression turned on or off with the "T" flag set | ||||
| accordingly and in a network in transition from off to on or on to | ||||
| off (see Section 5.2). | ||||
| An alternative to the Single RPL Instance Scenario is to deploy an | A node that does not support [RFC8138] can interoperate with nodes | |||
| additional RPL Instance for the nodes that support [RFC8138]. | that do in a network with [RFC8138] compression turned off. If the | |||
| compression is turned on, all the RPL-Aware Nodes are expected to be | ||||
| able to handle compressed packets in the compressed form. A node | ||||
| that cannot do so may remain connected to the network as a RUL, but | ||||
| how the node is modified to turn into a RUL is out of scope. | ||||
| The two RPL Instances operate independently as specified in | 5.2. Inconsistent State While Migrating | |||
| [RFC6550]. The preexisting RPL Instance does not use [RFC8138], | ||||
| whereas the new RPL Instance does. This is signaled by the "T" flag | ||||
| which is only set in the configuration option in DIO messages in the | ||||
| new RPL Instance. | ||||
| Nodes that support [RFC8138] participate in both Instances but favor | When the "T" flag is turned on by the Root, the information slowly | |||
| the new RPL Instance for the traffic that they source. By contrast, | percolates through the DODAG as the DIO gets propagated. Some nodes | |||
| nodes that only support the uncompressed format would either not be | will see the flag and start sourcing packets in the compressed form | |||
| configured for the new RPL Instance, or would be configured to join | while other nodes in the same RPL DODAG are still not aware of it. | |||
| it as leaves only. | Conversely, in non-storing mode, the Root will start using [RFC8138] | |||
| with a Source Routing Header 6LoRH (SRH-6LoRH) that routes all the | ||||
| way to the parent router or to the leaf. | ||||
| This method eliminates the risks of nodes being stalled that are | To ensure that a packet is forwarded across the RPL DODAG in the form | |||
| described in Section 5.2 but requires implementations to support at | in which it was generated, it is required that all the RPL nodes | |||
| least two RPL Instances and demands management capabilities to | support [RFC8138] at the time of the switch. | |||
| introduce new RPL Instances and deprecate old ones. | ||||
| The 2 instances MUST be operated with the same security guarantees, | Setting the "T" flag is ultimately the responsibility of the Network | |||
| e.g., both "unsecured" with a lower layer security of a same | Administrator. The expectation is that the network management or | |||
| strength, both "preinstalled" or both "authenticated" security mode | upgrading tools in place enable the Network Administrator to know | |||
| (see section 3.2.3 of [RFC6550] for more details on those modes). | when all the nodes that may join a DODAG were migrated. In the case | |||
| The latter mode could be use to enforce the segregation of updated | of a RPL instance with multiple Roots, all nodes that participate to | |||
| and non-updated nodes, by providing the keys for joining as routers | the RPL Instance may potentially join any DODAG. The network MUST be | |||
| to the updated nodes only. | operated with the "T" flag reset until all nodes in the RPL Instance | |||
| are upgraded to support this specification. | ||||
| 5.4. Rolling Back | 5.3. Rolling Back | |||
| After downgrading a network to turn the [RFC8138] compression off, | When turning [RFC8138] compression off in the network, the Network | |||
| the administrator SHOULD make sure that all nodes have converged to | Administrator MUST wait until all nodes have converged to the "T" | |||
| the "T" flag reset before allowing nodes that do not support the | flag reset before allowing nodes that do not support the compression | |||
| compression in the network (see caveats in Section 5.2). | in the network. | |||
| It is RECOMMENDED to only deploy nodes that support [RFC8138] in a | It is RECOMMENDED to only deploy nodes that support [RFC8138] in a | |||
| network where the compression is turned on. A node that does not | network where the compression is turned on. A node that does not | |||
| support [RFC8138] MUST only be used as a leaf. | support [RFC8138] MUST only be used as a RUL. | |||
| 6. IANA Considerations | 6. IANA Considerations | |||
| This specification updates the Registry for the "DODAG Configuration | IANA is requested to assign a new option flag from the Registry for | |||
| Option Flags" that was created for [RFC6550] as follows: | the "DODAG Configuration Option Flags" that was created for [RFC6550] | |||
| as follows: | ||||
| +------------+---------------------------------+-----------+ | +---------------+---------------------------------+-----------+ | |||
| | Bit Number | Capability Description | Reference | | | Bit Number | Capability Description | Reference | | |||
| +============+=================================+===========+ | +---------------+---------------------------------+-----------+ | |||
| | 2 | Turn on RFC8138 Compression (T) | THIS RFC | | | 2 (suggested) | Turn on RFC8138 Compression (T) | THIS RFC | | |||
| +------------+---------------------------------+-----------+ | +---------------+---------------------------------+-----------+ | |||
| Table 1: New DODAG Configuration Option Flag | Table 1: New DODAG Configuration Option Flag | |||
| The DODAG Configuration Option Flags defined so far will be obsolete | ||||
| for RPL Mode of Operation (MOP) above and including 7. | ||||
| IANA is requested to update the name of the Registry from "DODAG | ||||
| Configuration Option Flags" to "DODAG Configuration Option Flags for | ||||
| RPL MOP 0..6". | ||||
| When MOP values of 7 and more are defined, a new registry will be | ||||
| needed. | ||||
| 7. Security Considerations | 7. Security Considerations | |||
| First of all, it is worth noting that with [RFC6550], every node in | First of all, it is worth noting that with [RFC6550], every node in | |||
| the LLN that is RPL-aware can inject any RPL-based attack in the | the LLN that is RPL-aware can inject any RPL-based attack in the | |||
| network. A trust model MUST be put in place so that rogue nodes are | network. A trust model has to be put in place in an effort to | |||
| excluded from participating to the RPL and the 6LowpAN signaling, and | exclude rogue nodes from participating to the RPL and the 6LoWPAN | |||
| from the data packet exchange. This trust model could be at a | signaling, as well as from the data packet exchange. This trust | |||
| minimum based on a Layer-2 Secure joining and the Link-Layer | model could be at a minimum based on a Layer-2 Secure joining and the | |||
| security. This is a generic RPL and 6LoWPAN requirement, see Req5.1 | Link-Layer security. This is a generic RPL and 6LoWPAN requirement, | |||
| in Appendix of [RFC8505]. | see Req5.1 in Appendix of [RFC8505]. | |||
| Setting the "T" flag before some routers are upgraded may cause a | Setting the "T" flag before all routers are upgraded may cause a loss | |||
| loss of packets. The new bit is protected as the rest of the | of packets. The new bit is protected as the rest of the | |||
| configuration so this is just one of the many attacks that can happen | configuration so this is just one of the many attacks that can happen | |||
| if an attacker manages to inject a corrupted configuration. | if an attacker manages to inject a corrupted configuration. | |||
| Setting and resetting the "T" flag may create inconsistencies in the | Setting and resetting the "T" flag may create inconsistencies in the | |||
| network but as long as all nodes are upgraded to [RFC8138] support | network but as long as all nodes are upgraded to [RFC8138] support | |||
| they will be able to forward both forms. The source is responsible | they will be able to forward both forms. The source is responsible | |||
| for selecting whether the packet is compressed or not, and all | for selecting whether the packet is compressed or not, and all | |||
| routers must use the format that the source selected. So the result | routers must use the format that the source selected. So the result | |||
| of an inconsistency is merely that both forms will be present in the | of an inconsistency is merely that both forms will be present in the | |||
| network, at an additional cost of bandwidth for packets in the | network, at an additional cost of bandwidth for packets in the | |||
| uncompressed form. | uncompressed form. | |||
| 8. Acknowledgments | 8. Acknowledgments | |||
| The authors wish to thank Dominique Barthel and Rahul Jadhav for | The authors wish to thank Alvaro Retana, Dominique Barthel and Rahul | |||
| their in-depth reviews and constructive suggestions. | Jadhav for their in-depth reviews and constructive suggestions. | |||
| Also many thanks to Michael Richardson for being always helpful and | ||||
| responsive when need comes. | ||||
| 9. Normative References | 9. Normative References | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
| [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
| 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
| skipping to change at page 9, line 32 ¶ | skipping to change at page 8, line 35 ¶ | |||
| Kelsey, R., Levis, P., Pister, K., Struik, R., Vasseur, | Kelsey, R., Levis, P., Pister, K., Struik, R., Vasseur, | |||
| JP., and R. Alexander, "RPL: IPv6 Routing Protocol for | JP., and R. Alexander, "RPL: IPv6 Routing Protocol for | |||
| Low-Power and Lossy Networks", RFC 6550, | Low-Power and Lossy Networks", RFC 6550, | |||
| DOI 10.17487/RFC6550, March 2012, | DOI 10.17487/RFC6550, March 2012, | |||
| <https://www.rfc-editor.org/info/rfc6550>. | <https://www.rfc-editor.org/info/rfc6550>. | |||
| [RFC7102] Vasseur, JP., "Terms Used in Routing for Low-Power and | [RFC7102] Vasseur, JP., "Terms Used in Routing for Low-Power and | |||
| Lossy Networks", RFC 7102, DOI 10.17487/RFC7102, January | Lossy Networks", RFC 7102, DOI 10.17487/RFC7102, January | |||
| 2014, <https://www.rfc-editor.org/info/rfc7102>. | 2014, <https://www.rfc-editor.org/info/rfc7102>. | |||
| [RFC7228] Bormann, C., Ersue, M., and A. Keranen, "Terminology for | [RFC8138] Thubert, P., Ed., Bormann, C., Toutain, L., and R. Cragie, | |||
| Constrained-Node Networks", RFC 7228, | "IPv6 over Low-Power Wireless Personal Area Network | |||
| DOI 10.17487/RFC7228, May 2014, | (6LoWPAN) Routing Header", RFC 8138, DOI 10.17487/RFC8138, | |||
| <https://www.rfc-editor.org/info/rfc7228>. | April 2017, <https://www.rfc-editor.org/info/rfc8138>. | |||
| [USEofRPLinfo] | ||||
| Robles, I., Richardson, M., and P. Thubert, "Using RPI | ||||
| Option Type, Routing Header for Source Routes and IPv6-in- | ||||
| IPv6 encapsulation in the RPL Data Plane", Work in | ||||
| Progress, Internet-Draft, draft-ietf-roll-useofrplinfo-38, | ||||
| 23 March 2020, <https://tools.ietf.org/html/draft-ietf- | ||||
| roll-useofrplinfo-38>. | ||||
| [UNAWARE-LEAVES] | ||||
| Thubert, P. and M. Richardson, "Routing for RPL Leaves", | ||||
| Work in Progress, Internet-Draft, draft-ietf-roll-unaware- | ||||
| leaves-14, 11 April 2020, <https://tools.ietf.org/html/ | ||||
| draft-ietf-roll-unaware-leaves-14>. | ||||
| 10. Informative References | 10. Informative References | |||
| [RFC6553] Hui, J. and JP. Vasseur, "The Routing Protocol for Low- | [RFC6553] Hui, J. and JP. Vasseur, "The Routing Protocol for Low- | |||
| Power and Lossy Networks (RPL) Option for Carrying RPL | Power and Lossy Networks (RPL) Option for Carrying RPL | |||
| Information in Data-Plane Datagrams", RFC 6553, | Information in Data-Plane Datagrams", RFC 6553, | |||
| DOI 10.17487/RFC6553, March 2012, | DOI 10.17487/RFC6553, March 2012, | |||
| <https://www.rfc-editor.org/info/rfc6553>. | <https://www.rfc-editor.org/info/rfc6553>. | |||
| [RFC8138] Thubert, P., Ed., Bormann, C., Toutain, L., and R. Cragie, | [RFC7228] Bormann, C., Ersue, M., and A. Keranen, "Terminology for | |||
| "IPv6 over Low-Power Wireless Personal Area Network | Constrained-Node Networks", RFC 7228, | |||
| (6LoWPAN) Routing Header", RFC 8138, DOI 10.17487/RFC8138, | DOI 10.17487/RFC7228, May 2014, | |||
| April 2017, <https://www.rfc-editor.org/info/rfc8138>. | <https://www.rfc-editor.org/info/rfc7228>. | |||
| [RFC8505] Thubert, P., Ed., Nordmark, E., Chakrabarti, S., and C. | [RFC8505] Thubert, P., Ed., Nordmark, E., Chakrabarti, S., and C. | |||
| Perkins, "Registration Extensions for IPv6 over Low-Power | Perkins, "Registration Extensions for IPv6 over Low-Power | |||
| Wireless Personal Area Network (6LoWPAN) Neighbor | Wireless Personal Area Network (6LoWPAN) Neighbor | |||
| Discovery", RFC 8505, DOI 10.17487/RFC8505, November 2018, | Discovery", RFC 8505, DOI 10.17487/RFC8505, November 2018, | |||
| <https://www.rfc-editor.org/info/rfc8505>. | <https://www.rfc-editor.org/info/rfc8505>. | |||
| [CAPABILITIES] | [UNAWARE-LEAVES] | |||
| Jadhav, R., Thubert, P., Richardson, M., and R. Sahoo, | Thubert, P. and M. Richardson, "Routing for RPL Leaves", | |||
| "RPL Capabilities", Work in Progress, Internet-Draft, | Work in Progress, Internet-Draft, draft-ietf-roll-unaware- | |||
| draft-ietf-roll-capabilities-02, 11 March 2020, | leaves-18, 12 June 2020, <https://tools.ietf.org/html/ | |||
| <https://tools.ietf.org/html/draft-ietf-roll-capabilities- | draft-ietf-roll-unaware-leaves-18>. | |||
| 02>. | ||||
| [USEofRPLinfo] | ||||
| Robles, I., Richardson, M., and P. Thubert, "Using RPI | ||||
| Option Type, Routing Header for Source Routes and IPv6-in- | ||||
| IPv6 encapsulation in the RPL Data Plane", Work in | ||||
| Progress, Internet-Draft, draft-ietf-roll-useofrplinfo-40, | ||||
| 25 June 2020, <https://tools.ietf.org/html/draft-ietf- | ||||
| roll-useofrplinfo-40>. | ||||
| Authors' Addresses | Authors' Addresses | |||
| Pascal Thubert (editor) | Pascal Thubert (editor) | |||
| Cisco Systems, Inc | Cisco Systems, Inc | |||
| Building D | Building D | |||
| 45 Allee des Ormes - BP1200 | 45 Allee des Ormes - BP1200 | |||
| 06254 MOUGINS - Sophia Antipolis | 06254 MOUGINS - Sophia Antipolis | |||
| France | France | |||
| End of changes. 38 change blocks. | ||||
| 248 lines changed or deleted | 195 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||