| < draft-ietf-roll-turnon-rfc8138-04.txt | draft-ietf-roll-turnon-rfc8138-05.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: 6550, 8138 (if approved) Cisco Systems | |||
| Intended status: Standards Track 24 January 2020 | Intended status: Standards Track 24 March 2020 | |||
| Expires: 27 July 2020 | Expires: 25 September 2020 | |||
| Configuration option for RFC 8138 | Configuration option for RFC 8138 | |||
| draft-ietf-roll-turnon-rfc8138-04 | draft-ietf-roll-turnon-rfc8138-05 | |||
| Abstract | Abstract | |||
| This document complements RFC 8138 and dedicates a bit in the RPL | This document complements RFC 8138 and dedicates a bit in the RPL | |||
| configuration option defined in RFC 6550 to indicate whether RFC 8138 | configuration option defined in RFC 6550 to indicate whether RFC 8138 | |||
| compression is used within the RPL Instance. | compression is used within the RPL Instance. | |||
| 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 | |||
| skipping to change at page 1, line 33 ¶ | skipping to change at page 1, line 33 ¶ | |||
| 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 27 July 2020. | This Internet-Draft will expire on 25 September 2020. | |||
| 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 | |||
| and restrictions with respect to this document. Code Components | and restrictions with respect to this document. Code Components | |||
| 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. BCP 14 . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 | 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 3. Updating RFC 6550 . . . . . . . . . . . . . . . . . . . . . . 3 | 2.1. References . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 4. Updating RFC 8138 . . . . . . . . . . . . . . . . . . . . . . 3 | 2.2. Glossary . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 5. Transition Scenarios . . . . . . . . . . . . . . . . . . . . 4 | 2.3. BCP 14 . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 5.1. Inconsistent State While Migrating . . . . . . . . . . . 5 | 3. Updating RFC 6550 . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 5.2. Single RPL Instance Scenario . . . . . . . . . . . . . . 5 | 4. Updating RFC 8138 . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 5.3. Double RPL Instances Scenario . . . . . . . . . . . . . . 6 | 5. Transition Scenarios . . . . . . . . . . . . . . . . . . . . 5 | |||
| 5.4. Rolling Back . . . . . . . . . . . . . . . . . . . . . . 6 | 5.1. Inconsistent State While Migrating . . . . . . . . . . . 6 | |||
| 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 6 | 5.2. Single RPL Instance Scenario . . . . . . . . . . . . . . 6 | |||
| 7. Security Considerations . . . . . . . . . . . . . . . . . . . 7 | 5.3. Double RPL Instances Scenario . . . . . . . . . . . . . . 7 | |||
| 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 7 | 5.4. Rolling Back . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 9. Normative References . . . . . . . . . . . . . . . . . . . . 7 | 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 10. Informative References . . . . . . . . . . . . . . . . . . . 8 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 8 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 8 | 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 9. Normative References . . . . . . . . . . . . . . . . . . . . 8 | ||||
| 10. Informative References . . . . . . . . . . . . . . . . . . . 9 | ||||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 10 | ||||
| 1. Introduction | 1. Introduction | |||
| The transition of a RPL [RFC6550] network to activate the compression | The transition of a RPL [RFC6550] network to activate the compression | |||
| defined in [RFC8138] can only be done when all routers in the network | defined in [RFC8138] can only be done when all routers in the network | |||
| support it. A non-capable node acting as a router would drop the | support it. Otherwise, a non-capable node acting as a router would | |||
| compressed packets and black-hole its subDAG. In a mixed case with | drop the compressed packets and black-hole its subDAG. In a mixed | |||
| both RFC8138-capable and non-capable nodes, the compression may be | case with both RFC8138-capable and non-capable nodes, the compression | |||
| turned on only if all the non-capable nodes act as leaves and their | may be turned on only if all the non-capable nodes act as Hosts and | |||
| RPL parents handle the compression/decompression on their behalf. | their RPL parents handle the compression/decompression for them. | |||
| This document complements RFC 8138 and dedicates a flag in the RPL | This document complements [RFC8138] and dedicates a flag in the RPL | |||
| configuration option to indicate whether RFC 8138 compression should | configuration option to indicate whether [RFC8138] compression should | |||
| be used within the RPL Instance. The setting of new flag is | be used within the RPL Instance. The setting of this new flag is | |||
| controlled by the Root and propagates as is in the whole network. | controlled by the Root and propagates as is in the whole network. | |||
| When the bit is not set, source nodes that support RFC 8138 should | When the bit is not set, source nodes that support [RFC8138] should | |||
| refrain from using the compression unless the information is | refrain from using the compression unless the information is | |||
| superseded by configuration. | superseded by configuration. | |||
| This specification provides scenarios that force a legacy node to | With RPL, a leaf is an IPv6 Host, which implies that leaves do not | |||
| become a RPL-Aware-Leaf (RAL). In that case, the 6LR must be aware | forward packets. This specification provides scenarios that force a | |||
| by means out of scope that it must uncompress the packets before | non-capable RPL-Aware Node (RAN) to become a leaf. The parent router | |||
| delivering to the RAL. | must know, e.g., by configuration, or leveraging "RPL Capabilities" | |||
| [CAPABILITIES], when a leaf does not support the compression defined | ||||
| in [RFC8138]. This is implicitly the case for a RPL-Unaware Leaf | ||||
| (RUL) but is not known for a RPL-Aware Leaf (RAL). The parent router | ||||
| must uncompress the packets before delivering them to a non-capable | ||||
| leaf and it must compress the traffic from the leaf. | ||||
| 2. BCP 14 | 2. Terminology | |||
| 2.1. References | ||||
| The Terminology used in this document is consistent with and | ||||
| incorporates that described in "Terms Used in Routing for Low-Power | ||||
| and Lossy Networks (LLNs)" [RFC7102]. Other terms in use in LLNs are | ||||
| found in "Terminology for Constrained-Node Networks" [RFC7228]. | ||||
| "RPL", the "RPL Packet Information" (RPI), "RPL Instance" (indexed by | ||||
| a RPLInstanceID) are defined in "RPL: IPv6 Routing Protocol for | ||||
| Low-Power and Lossy Networks" [RFC6550]. The RPI is the abstract | ||||
| information that RPL defines to be placed in data packets, e.g., as | ||||
| the RPL Option [RFC6553] within the IPv6 Hop-By-Hop Header. By | ||||
| extension the term "RPI" is often used to refer to the RPL Option | ||||
| itself. The DODAG Information Solicitation (DIS), Destination | ||||
| Advertisement Object (DAO) and DODAG Information Object (DIO) | ||||
| messages are also specified in [RFC6550]. | ||||
| This document uses the terms RPL-Unaware Leaf (RUL) and RPL Aware | ||||
| Leaf (RAL) consistently with "Using RPI Option Type, Routing Header | ||||
| for Source Routes and IPv6-in-IPv6 encapsulation in the RPL Data | ||||
| Plane" [USEofRPLinfo]. The term RPL-Aware Node (RAN) refers to a | ||||
| node that is either a RAL or a RPL Router. A RAN manages the | ||||
| reachability of its addresses and prefixes by injecting them in RPL | ||||
| by itself. In contrast, a RUL leverages "Registration Extensions for | ||||
| IPv6 over Low-Power Wireless Personal Area Network (6LoWPAN) Neighbor | ||||
| Discovery" [RFC8505] to obtain reachability services from its parent | ||||
| router(s) as specified in "Routing for RPL Leaves" [UNAWARE-LEAVES]. | ||||
| 2.2. Glossary | ||||
| This document often uses the following acronyms: | ||||
| 6LoWPAN: IPv6 over Low-Power Wireless Personal Area Network | ||||
| 6LoRH: 6LoWPAN Routing Header | ||||
| DIO: DODAG Information Object (a RPL message) | ||||
| DODAG: Destination-Oriented Directed Acyclic Graph | ||||
| LLN: Low-Power and Lossy Network | ||||
| RPL: IPv6 Routing Protocol for Low-Power and Lossy Networks | ||||
| OF: RPL Objective Function | ||||
| OCP: RPL Objective Code Point | ||||
| MOP: RPL Mode of Operation | ||||
| RPI: RPL Packet Information | ||||
| RAL: RPL-Aware Leaf | ||||
| RAN: RPL-Aware Node | ||||
| RUL: RPL-Unaware Leaf | ||||
| SRH: Source Routing Header | ||||
| 2.3. BCP 14 | ||||
| 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. Updating RFC 6550 | |||
| This specification defines a new flag "Enable RFC8138 Compression" | This specification defines a new flag "Enable RFC8138 Compression" | |||
| skipping to change at page 3, line 29 ¶ | skipping to change at page 4, line 37 ¶ | |||
| 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. For a MOP value of 7 or above, the flag MAY | |||
| indicate something different and MUST NOT be interpreted as "Enable | indicate something different and MUST NOT be interpreted as "Enable | |||
| RFC8138 Compression" unless the specification of the MOP indicates to | RFC8138 Compression" unless the specification of the MOP indicates to | |||
| do so. | do so. | |||
| 4. Updating RFC 8138 | 4. Updating RFC 8138 | |||
| A node that supports this specification MUST source packets in the | A node that supports this specification MUST source packets in the | |||
| compressed form using [RFC8138] if and only if the "T" flag is set. | compressed form using [RFC8138] if and only if the "T" flag is set. | |||
| This behaviour can be overridden by a configuration of the node in | This behaviour can be overridden by the configuration of the node in | |||
| order to cope with intermediate implementations of the root that | order to cope with intermediate implementations of the Root that | |||
| support [RFC8138] but not this specification and cannot set the "T" | support [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 decides whether to compress | |||
| the outer headers as indicated above. An external target | the outer headers as indicated above. An external target | |||
| [USEofRPLinfo] is not expected to support [RFC8138]. An intermediate | [USEofRPLinfo] is not expected to support [RFC8138]. An intermediate | |||
| router MUST forward the packet in the form that the source used, | router MUST forward the packet in the form that the source used, | |||
| either compressed or uncompressed, unless it is either forwarding to | either compressed or uncompressed, unless it is forwarding to an | |||
| an external target or delivering to a leaf that is not known to | external target or delivering to a leaf that is not known to support | |||
| support RFC 8138, in which cases it MUST uncompress the packet. | [RFC8138], in which cases it MUST uncompress the packet. | |||
| A RPL-Unaware Leaf (RUL) [UNAWARE-LEAVES] is both a leaf and an | ||||
| external target. A RUL does not participate to RPL and depends on | ||||
| the 6LR to ensure its connectivity. Packets from/to a RUL are | ||||
| tunneled back and forth to the Root regardless of the MOP used in the | ||||
| RPL Instance. A node that supports this specification but does not | ||||
| support [RFC8138] SHOULD join as a RUL to ensure that the 6LR is | ||||
| aware it needs to uncompress the packets before delivering. | ||||
| 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 a homogeneous network and an upgrade requires a "flag day" | used in an homogeneous network. Enabling the [RFC8138] compression | |||
| where all nodes are updated and then the network is rebooted with | requires a "flag day"; all nodes must be upgraded, and then the | |||
| implicitly RFC 8138 compression turned on with the "T" flag set on. | network can be rebooted with the [RFC8138] compression turned on. | |||
| A node that supports this specification can work in a network with | A node that supports this specification can work in a network with | |||
| RFC 8138 compression turned on or off with the "T" flag set | [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 | accordingly and in a network in transition from off to on or on to | |||
| off (see Section 5.1). | off (see Section 5.1). | |||
| A node that does not support [RFC8138] can interoperate with nodes | A node that does not support [RFC8138] can interoperate with nodes | |||
| that do in a network with RFC 8138 compression turned off. If the | that do in a network with [RFC8138] compression turned off. If the | |||
| compression is turned on, the node cannot forward compressed packets | compression is turned on, the node cannot forward compressed packets | |||
| and therefore it cannot act as a router. It may remain connected to | and therefore it cannot act as a router. It may remain connected to | |||
| that network as a leaf, in which case it generates uncompressed | that network as a leaf, generates uncompressed packets, and can | |||
| packets and can receive packets if they are delivered by the parent | receive packets if they are delivered by the parent router in the | |||
| 6LR in the uncompressed form. | 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 | [RFC6550] states that "Nodes other than the DODAG Root MUST NOT | |||
| modify this information when propagating the DODAG Configuration | modify this information when propagating the DODAG Configuration | |||
| option". Therefore, even a legacy parent propagates the "T" flag as | option". Therefore, even a legacy parent propagates the "T" flag as | |||
| set by the Root whether it supports this specification or not. So | 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 | when the "T" flag is set, it is transparently flooded to all the | |||
| nodes in the RPL Instance. | nodes in the RPL Instance. | |||
| Sections 8.5 and 9.2 of [RFC6550] also suggests that a RPL-aware node | Sections 8.5 and 9.2 of [RFC6550] also suggests that a RAN may only | |||
| may only attach to a DODAG as a leaf node when the node does not | attach to a DODAG as a leaf when it does not support the Mode of | |||
| support the Mode of Operation of a RPL Instance, the Objective | Operation of a RPL Instance, the Objective Function (OF) as indicated | |||
| Function (OF) as indicated by the Objective Code Point (OCP) or some | by the Objective Code Point (OCP) or some other parameters in the | |||
| other parameters in the configuration option. | configuration option. | |||
| Per the above, changing the OCP in a DODAG can be used to force nodes | This specification reiterates that a RAN that is configured to | |||
| that do not support a particular feature to join as leaf only. This | operate in a RPL Instance but does not support a value for a known | |||
| specification reiterates that a node that is configured to operate in | parameter that is mandatory for routing, such as the OCP, MUST NOT | |||
| a RPL Instance but does not support a value for a known parameter | operate as a router but MAY still join as a leaf. Note that a legacy | |||
| that is mandatory for routing MUST NOT operate as a router but MAY | RAN will not recognize when a reserved field is used and will not | |||
| still join as a leaf. Note that a legacy node will not recognize | turn to a leaf when the "T" flag is set. | |||
| when a reserved field is now 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, and though it is | |||
| possible to roll back (see Section 5.4), adding nodes that do not | possible to roll back (see Section 5.4), adding nodes that do not | |||
| support [RFC8138] after a roll back may be problematic if the roll | support [RFC8138] after a roll back may be problematic if the roll | |||
| back is not fully complete (see caveats in Section 5.2). | back is not fully complete (see caveats in Section 5.2). | |||
| 5.1. Inconsistent State While Migrating | 5.1. Inconsistent State While Migrating | |||
| When the "T" flag is turned on in the configuration option by the | When the "T" flag is turned on in the configuration option by the | |||
| root, the information slowly percolates through the DODAG as the DIO | Root, the information slowly percolates through the DODAG as the DIO | |||
| gets propagated. Some nodes will see the flag and start sourcing | gets propagated. | |||
| 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 RFC 8138 with a SRH-6LoRH that routes all | ||||
| the way to the last router or possibly to the leaf, if the leaf | ||||
| supports RFC 8138. | ||||
| This is why it is required that all the routers in the RPL Instance | Some nodes will see the flag and start sourcing packets in the | |||
| support [RFC8138] at the time of the switch, and all nodes that do | compressed form while other nodes in the same RPL Instance are still | |||
| not support [RFC8138] only operate as leaves. | 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 | Setting the "T" flag is ultimately the responsibility of the network | |||
| administrator. In a case of upgrading a network to turn the | administrator. In a case of upgrading a network to turn the | |||
| compression on, the network SHOULD be operated with the "T" flag | compression on, the network SHOULD be operated with the "T" flag | |||
| reset until all targeted nodes are upgraded to support this | reset until all targeted nodes are upgraded to support this | |||
| specification. Section 5.2 and Section 5.3 provide possible | specification. Section 5.2 and Section 5.3 provide possible | |||
| transition scenarios where this can be enforced. | transition scenarios where this can be enforced. | |||
| 5.2. Single RPL Instance Scenario | 5.2. Single RPL Instance Scenario | |||
| In a Single RPL Instance Scenario, nodes that support RFC 8138 are | 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 | configured with a new OCP, that may use the same OF operation or a | |||
| variation of it. The root sets the "T" flag at the time it migrates | variation of it, while nodes that do not support [RFC8138] are not, | |||
| to the new OCP. As a result, nodes that do not support RFC 8138 join | but are configured to join an unknown OCP. | |||
| as leaves and do not forward packets anymore. The leaves generate | ||||
| packets without compression. The parents - which supports RFC 8138 - | The Root migrates to the new OCP before it sets the "T" flag, so that | |||
| may encapsulate the packets using RFC 8138 if needed. The other way | nodes that do not support [RFC8138] are all attached as leaves when | |||
| around, the root encapsulates packets to the leaves all the way to | the "T" flag is eventually set. | |||
| the parent, which decapsulates and distribute the uncompressed inner | ||||
| packet to the leaf. | 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: | This scenario presents a number of caveats: | |||
| * The method consumes an extra OCP. It also requires a means to | * The method consumes an extra OCP. It also forces nodes that do | |||
| signal the capabilities of the leaf, e.g., using "RPL Mode of | not support [RFC8138] to operate as RULs, unless there is a method | |||
| Operation extension" [MOP-EXT]. | to let the parent router know that it must uncompress the packet | |||
| for this RAL. | ||||
| * If an implementation does not move to a leaf mode when the OCP is | * If the RPL implementation of a node does not turn it to a leaf | |||
| changed to an unknown one, then the node may be stalled. | 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 | * If the only possible parents of a node are nodes that do not | |||
| support RFC 8138, then that node will loose all its parent at the | 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 | time of the migration and it will be stalled until a parent is | |||
| deployed with the new capability. | deployed with the new capability. | |||
| * Nodes that only support RFC8138 for forwarding may not parse the | ||||
| RPI in native form. If such nodes are present, the parent needs | ||||
| to encapsulate with RFC8138. | ||||
| 5.3. Double RPL Instances Scenario | 5.3. Double RPL Instances Scenario | |||
| An alternate to the Single RPL Instance Scenario is to deploy an | An alternative to the Single RPL Instance Scenario is to deploy an | |||
| additional RPL Instance for the nodes that support [RFC8138]. The | additional RPL Instance for the nodes that support [RFC8138]. | |||
| two RPL Instances operate independently as specified in [RFC6550]. | ||||
| The preexisting RPL Instance that 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 RFC 8138 participate to both Instances but favor | The two RPL Instances operate independently as specified in | |||
| the new RPL Instance for the traffic that they source. On the other | [RFC6550]. The preexisting RPL Instance does not use [RFC8138], | |||
| hand, nodes that only support the uncompressed format would either | whereas the new RPL Instance does. This is signaled by the "T" flag | |||
| not be configured for the new RPL Instance, or would be configured to | which is only set in the configuration option in DIO messages in the | |||
| join it as leaves only. | new RPL Instance. | |||
| Nodes that support [RFC8138] participate in both Instances but favor | ||||
| the new RPL Instance for the traffic that they source. By contrast, | ||||
| nodes that only support the uncompressed format would either not be | ||||
| configured for the new RPL Instance, or would be configured to join | ||||
| it as leaves only. | ||||
| This method eliminates the risks of nodes being stalled that are | This method eliminates the risks of nodes being stalled that are | |||
| described in Section 5.2 but requires implementations to support at | described in Section 5.2 but requires implementations to support at | |||
| least two RPL Instances and demands management capabilities to | least two RPL Instances and demands management capabilities to | |||
| introduce new RPL Instances and deprecate old ones. | introduce new RPL Instances and deprecate old ones. | |||
| 5.4. Rolling Back | 5.4. Rolling Back | |||
| After downgrading a network to turn the [RFC8138] compression off, | After downgrading a network to turn the [RFC8138] compression off, | |||
| the administrator SHOULD make sure that all nodes have converged to | the administrator SHOULD make sure that all nodes have converged to | |||
| skipping to change at page 7, line 15 ¶ | skipping to change at page 8, line 20 ¶ | |||
| +------------+---------------------------------+-----------+ | +------------+---------------------------------+-----------+ | |||
| | Bit Number | Capability Description | Reference | | | Bit Number | Capability Description | Reference | | |||
| +============+=================================+===========+ | +============+=================================+===========+ | |||
| | 2 | Turn on RFC8138 Compression (T) | THIS RFC | | | 2 | Turn on RFC8138 Compression (T) | THIS RFC | | |||
| +------------+---------------------------------+-----------+ | +------------+---------------------------------+-----------+ | |||
| Table 1: New DODAG Configuration Option Flag | Table 1: New DODAG Configuration Option Flag | |||
| 7. Security Considerations | 7. Security Considerations | |||
| 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 | ||||
| network. A trust model MUST be put in place so that rogue nodes are | ||||
| excluded from participating to the RPL and the 6LowpAN signaling, and | ||||
| from the data packet exchange. This trust model could be at a | ||||
| minimum based on a Layer-2 Secure joining and the Link-Layer | ||||
| security. This is a generic RPL and 6LoWPAN requirement, see Req5.1 | ||||
| in Appendix of [RFC8505]. | ||||
| Setting the "T" flag before some routers are upgraded may cause a | Setting the "T" flag before some routers are upgraded may cause a | |||
| loss of packets. The new bit is protected as the rest of the | loss 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 RFC 8138 support | network but as long as all nodes are upgraded to [RFC8138] support | |||
| they will be able to forward both forms. The draft insists that the | they will be able to forward both forms. The source is responsible | |||
| source is responsible for selecting whether the packet is compressed | for selecting whether the packet is compressed or not, and all | |||
| or not, and all routers must use the format that the source selected. | routers must use the format that the source selected. So the result | |||
| So the result of an inconsistency is merely that both forms will be | of an inconsistency is merely that both forms will be present in the | |||
| present in the network, at an additional cost of bandwidth for | network, at an additional cost of bandwidth for packets in the | |||
| packets in the uncompressed form. | uncompressed form. | |||
| 8. Acknowledgments | 8. Acknowledgments | |||
| The authors wish to thank Rahul Jadhav for his in-depth review and | The authors wish to thank Dominique Barthel and Rahul Jadhav for | |||
| constructive suggestions. | their in-depth reviews and constructive suggestions. | |||
| 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, | |||
| May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
| [RFC6550] Winter, T., Ed., Thubert, P., Ed., Brandt, A., Hui, J., | [RFC6550] Winter, T., Ed., Thubert, P., Ed., Brandt, A., Hui, J., | |||
| 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 | ||||
| Lossy Networks", RFC 7102, DOI 10.17487/RFC7102, January | ||||
| 2014, <https://www.rfc-editor.org/info/rfc7102>. | ||||
| [RFC7228] Bormann, C., Ersue, M., and A. Keranen, "Terminology for | ||||
| Constrained-Node Networks", RFC 7228, | ||||
| DOI 10.17487/RFC7228, May 2014, | ||||
| <https://www.rfc-editor.org/info/rfc7228>. | ||||
| [USEofRPLinfo] | [USEofRPLinfo] | |||
| Robles, I., Richardson, M., and P. Thubert, "Using RPI | Robles, I., Richardson, M., and P. Thubert, "Using RPI | |||
| Option Type, Routing Header for Source Routes and IPv6-in- | Option Type, Routing Header for Source Routes and IPv6-in- | |||
| IPv6 encapsulation in the RPL Data Plane", Work in | IPv6 encapsulation in the RPL Data Plane", Work in | |||
| Progress, Internet-Draft, draft-ietf-roll-useofrplinfo-34, | Progress, Internet-Draft, draft-ietf-roll-useofrplinfo-38, | |||
| 20 January 2020, <https://tools.ietf.org/html/draft-ietf- | 23 March 2020, <https://tools.ietf.org/html/draft-ietf- | |||
| roll-useofrplinfo-34>. | roll-useofrplinfo-38>. | |||
| [UNAWARE-LEAVES] | [UNAWARE-LEAVES] | |||
| Thubert, P. and M. Richardson, "Routing for RPL Leaves", | Thubert, P. and M. Richardson, "Routing for RPL Leaves", | |||
| Work in Progress, Internet-Draft, draft-ietf-roll-unaware- | Work in Progress, Internet-Draft, draft-ietf-roll-unaware- | |||
| leaves-08, 16 December 2019, <https://tools.ietf.org/html/ | leaves-13, 17 March 2020, <https://tools.ietf.org/html/ | |||
| draft-ietf-roll-unaware-leaves-08>. | draft-ietf-roll-unaware-leaves-13>. | |||
| 10. Informative References | 10. Informative References | |||
| [RFC6553] Hui, J. and JP. Vasseur, "The Routing Protocol for Low- | ||||
| Power and Lossy Networks (RPL) Option for Carrying RPL | ||||
| Information in Data-Plane Datagrams", RFC 6553, | ||||
| DOI 10.17487/RFC6553, March 2012, | ||||
| <https://www.rfc-editor.org/info/rfc6553>. | ||||
| [RFC8138] Thubert, P., Ed., Bormann, C., Toutain, L., and R. Cragie, | [RFC8138] Thubert, P., Ed., Bormann, C., Toutain, L., and R. Cragie, | |||
| "IPv6 over Low-Power Wireless Personal Area Network | "IPv6 over Low-Power Wireless Personal Area Network | |||
| (6LoWPAN) Routing Header", RFC 8138, DOI 10.17487/RFC8138, | (6LoWPAN) Routing Header", RFC 8138, DOI 10.17487/RFC8138, | |||
| April 2017, <https://www.rfc-editor.org/info/rfc8138>. | April 2017, <https://www.rfc-editor.org/info/rfc8138>. | |||
| [MOP-EXT] Jadhav, R., Thubert, P., and M. Richardson, "Mode of | [RFC8505] Thubert, P., Ed., Nordmark, E., Chakrabarti, S., and C. | |||
| Operation extension and Capabilities", Work in Progress, | Perkins, "Registration Extensions for IPv6 over Low-Power | |||
| Internet-Draft, draft-ietf-roll-mopex-cap-01, 2 November | Wireless Personal Area Network (6LoWPAN) Neighbor | |||
| 2019, <https://tools.ietf.org/html/draft-ietf-roll-mopex- | Discovery", RFC 8505, DOI 10.17487/RFC8505, November 2018, | |||
| cap-01>. | <https://www.rfc-editor.org/info/rfc8505>. | |||
| [CAPABILITIES] | ||||
| Jadhav, R., Thubert, P., Richardson, M., and R. Sahoo, | ||||
| "RPL Capabilities", Work in Progress, Internet-Draft, | ||||
| draft-ietf-roll-capabilities-02, 11 March 2020, | ||||
| <https://tools.ietf.org/html/draft-ietf-roll-capabilities- | ||||
| 02>. | ||||
| 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. 36 change blocks. | ||||
| 127 lines changed or deleted | 219 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/ | ||||