idnits 2.17.00 (12 Aug 2021) /tmp/idnits48078/draft-ietf-roll-efficient-npdao-02.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (March 21, 2018) is 1522 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Unused Reference: 'CONTIKI' is defined on line 611, but no explicit reference was found in the text == Unused Reference: 'RFC3552' is defined on line 614, but no explicit reference was found in the text == Outdated reference: draft-ietf-6tisch-architecture has been published as RFC 9030 ** Downref: Normative reference to an Informational draft: draft-ietf-6tisch-architecture (ref. 'I-D.ietf-6tisch-architecture') Summary: 1 error (**), 0 flaws (~~), 4 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 ROLL R. Jadhav, Ed. 3 Internet-Draft Huawei 4 Intended status: Standards Track P. Thubert 5 Expires: September 22, 2018 Cisco 6 R. Sahoo 7 Z. Cao 8 Huawei 9 March 21, 2018 11 No-Path DAO modifications 12 draft-ietf-roll-efficient-npdao-02 14 Abstract 16 This document describes the problems associated with the use of No- 17 Path DAO messaging in RPL and a signaling changes to improve route 18 invalidation efficiency. 20 Status of This Memo 22 This Internet-Draft is submitted in full conformance with the 23 provisions of BCP 78 and BCP 79. 25 Internet-Drafts are working documents of the Internet Engineering 26 Task Force (IETF). Note that other groups may also distribute 27 working documents as Internet-Drafts. The list of current Internet- 28 Drafts is at https://datatracker.ietf.org/drafts/current/. 30 Internet-Drafts are draft documents valid for a maximum of six months 31 and may be updated, replaced, or obsoleted by other documents at any 32 time. It is inappropriate to use Internet-Drafts as reference 33 material or to cite them other than as "work in progress." 35 This Internet-Draft will expire on September 22, 2018. 37 Copyright Notice 39 Copyright (c) 2018 IETF Trust and the persons identified as the 40 document authors. All rights reserved. 42 This document is subject to BCP 78 and the IETF Trust's Legal 43 Provisions Relating to IETF Documents 44 (https://trustee.ietf.org/license-info) in effect on the date of 45 publication of this document. Please review these documents 46 carefully, as they describe your rights and restrictions with respect 47 to this document. Code Components extracted from this document must 48 include Simplified BSD License text as described in Section 4.e of 49 the Trust Legal Provisions and are provided without warranty as 50 described in the Simplified BSD License. 52 Table of Contents 54 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 55 1.1. Requirements Language and Terminology . . . . . . . . . . 3 56 1.2. Current No-Path DAO messaging . . . . . . . . . . . . . . 3 57 1.3. Cases when No-Path DAO may be used . . . . . . . . . . . 4 58 1.4. Why No-Path DAO is important? . . . . . . . . . . . . . . 5 59 2. Problems with current No-Path DAO messaging . . . . . . . . 5 60 2.1. Lost NP-DAO due to link break to the previous parent . . 5 61 2.2. Invalidate routes to dependent nodes of the switching 62 node . . . . . . . . . . . . . . . . . . . . . . . . . . 5 63 2.3. Route downtime caused by asynchronous operation of 64 NPDAO and DAO . . . . . . . . . . . . . . . . . . . . . . 6 65 3. Requirements for the No-Path DAO Optimization . . . . . . . . 6 66 3.1. Req#1: Tolerant to the link failures to the previous 67 parents . . . . . . . . . . . . . . . . . . . . . . . . . 6 68 3.2. Req#2: Dependent nodes route invalidation on parent 69 switching . . . . . . . . . . . . . . . . . . . . . . . . 6 70 3.3. Req#3: No impact on traffic while NP-DAO operation in 71 progress . . . . . . . . . . . . . . . . . . . . . . . . 7 72 4. Proposed changes to RPL signaling . . . . . . . . . . . . . . 7 73 4.1. Change in NPDAO semantics . . . . . . . . . . . . . . . . 7 74 4.2. DAO message format changes . . . . . . . . . . . . . . . 7 75 4.3. Destination Cleanup Object (DCO) . . . . . . . . . . . . 8 76 4.3.1. DCO Options . . . . . . . . . . . . . . . . . . . . . 10 77 4.3.2. Path Sequence number in the DCO . . . . . . . . . . . 10 78 4.3.3. Destination Cleanup Option Acknowledgement (DCO-ACK) 10 79 4.4. Example messaging . . . . . . . . . . . . . . . . . . . . 11 80 4.5. Other considerations . . . . . . . . . . . . . . . . . . 12 81 4.5.1. Dependent Nodes invalidation . . . . . . . . . . . . 12 82 5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 13 83 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13 84 7. Security Considerations . . . . . . . . . . . . . . . . . . . 13 85 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 13 86 8.1. Normative References . . . . . . . . . . . . . . . . . . 13 87 8.2. Informative References . . . . . . . . . . . . . . . . . 14 88 Appendix A. Additional Stuff . . . . . . . . . . . . . . . . . . 14 89 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 14 91 1. Introduction 93 RPL [RFC6550] specifies a proactive distance-vector based routing 94 scheme. The specification has an optional messaging in the form of 95 DAO messages using which the 6LBR can learn route towards any of the 96 nodes. In storing mode, DAO messages would result in routing entries 97 been created on all intermediate hops from the node's parent all the 98 way towards the 6LBR. 100 RPL allows use of No-Path DAO (NPDAO) messaging to invalidate a 101 routing path corresponding to the given target, thus releasing 102 resources utilized on that path. A No-Path DAO is a DAO message with 103 route lifetime of zero, originates at the target node and always 104 flows upstream towards the 6LBR, signaling route invalidation for the 105 given target. This document explains the problems associated with 106 the current use of NPDAO messaging and also discusses the 107 requirements for an optimized No-Path DAO messaging scheme. Further 108 a new pro-active route invalidation message called as "Destination 109 Cleanup Object (DCO)" is specified which fulfills all mentioned 110 requirements of an optimized route invalidation messaging. 112 6TiSCH architecture [I-D.ietf-6tisch-architecture] leverages RPL and 113 specifies use of non-storing and storing MOP for its routing 114 operation. Thus an improvement in route invalidation will help 115 optimize 6TiSCH based networks. 117 1.1. Requirements Language and Terminology 119 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 120 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 121 document are to be interpreted as described in RFC 2119 [RFC2119]. 123 The document only caters to the RPL's storing mode of operation 124 (MOP). The non-storing MOP does not require use of NPDAO for route 125 invalidation since routing entries are not maintained on 6LRs. 127 Common Ancestor node: 6LR node which is the first common node on the 128 old and new path for the child node. 130 NPDAO: No-Path DAO. A DAO message which has target with lifetime 0. 132 DCO: A new RPL control message type defined by this specification and 133 stands for Destination Cleanup Object. 135 Regular DAO: A DAO message with non-zero lifetime. 137 This document also uses terminology described in [RFC6550]. 139 1.2. Current No-Path DAO messaging 141 RPL introduced No-Path DAO messaging in the storing mode so that the 142 node switching its current parent can inform its parents and 143 ancestors to invalidate the existing route. Subsequently parents or 144 ancestors would release any resources (such as the routing entry) it 145 maintains on behalf of target node. The NPDAO message always 146 traverses the RPL tree in upward direction, originating at the target 147 node itself. 149 For the rest of this document consider the following topology: 151 (6LBR) 152 | 153 | 154 | 155 (A) 156 / \ 157 / \ 158 / \ 159 (G) (H) 160 | | 161 | | 162 | | 163 (B) (C) 164 \ ; 165 \ ; 166 \ ; 167 (D) 168 / \ 169 / \ 170 / \ 171 (E) (F) 173 Figure 1: Sample topology 175 Node (D) is connected via preferred parent (B). (D) has an alternate 176 path via (C) towards the BR. Node (A) is the common ancestor for (D) 177 for paths through (B)-(G) and (C)-(H). When (D) switches from (B) to 178 (C), [RFC6550] suggests sending No-Path DAO to (B) and regular DAO to 179 (C). 181 1.3. Cases when No-Path DAO may be used 183 There are following cases in which a node switches its parent and may 184 employ No-Path DAO messaging: 186 Case I: Current parent becomes unavailable because of transient or 187 permanent link or parent node failure. 189 Case II: The node finds a better parent node i.e. the metrics of 190 another parent is better than its current parent. 192 Case III: The node switches to a new parent whom it "thinks" has a 193 better metric but does not in reality. 195 The usual steps of operation when the node switches the parent is 196 that the node sends a No-Path DAO message via its current parent to 197 invalidate its current route and subsequently it tries to establish a 198 new routing path by sending a new DAO via its new parent. 200 1.4. Why No-Path DAO is important? 202 Nodes in LLNs may be resource constrained. There is limited memory 203 available and routing entry records are the one of the primary 204 elements occupying dynamic memory in the nodes. Route invalidation 205 helps 6LR nodes to decide which entries could be discarded to better 206 achieve resource utilization in case of contention. Thus it becomes 207 necessary to have efficient route invalidation mechanism. Also note 208 that a single parent switch may result in a "sub-tree" switching from 209 one parent to another. Thus the route invalidation needs to be done 210 on behalf of the sub-tree and not the switching node alone. In the 211 above example, when Node (D) switches parent, the route invalidation 212 needs to be done for (D), (E) and (F). Thus without efficient route 213 invalidation, a 6LR may have to hold a lot of unwanted route entries. 215 2. Problems with current No-Path DAO messaging 217 2.1. Lost NP-DAO due to link break to the previous parent 219 When a node switches its parent, the NPDAO is to be sent via its 220 previous parent and a regular DAO via its new parent. In cases where 221 the node switches its parent because of transient or permanent parent 222 link/node failure then the NPDAO message is bound to fail. RPL 223 assumes communication link with the previous parent for No-Path DAO 224 messaging. 226 RPL allows use of route lifetime to remove unwanted routes in case 227 the routes could not be refreshed. But route lifetimes in case of 228 LLNs could be substantially high and thus the route entries would be 229 stuck for long. 231 2.2. Invalidate routes to dependent nodes of the switching node 233 No-path DAO is sent by the node who has switched the parent but it 234 does not work for the dependent child nodes below it. The 235 specification does not specify how route invalidation will work for 236 sub-childs, resulting in stale routing entries on behalf of the sub- 237 childs on the previous route. The only way for 6LR to invalidate the 238 route entries for dependent nodes would be to use route lifetime 239 expiry which could be substantially high for LLNs. 241 In the example topology, when Node (D) switches its parent, Node (D) 242 generates an NPDAO on its behalf. Post switching, Node (D) transmits 243 a DIO with incremented DTSN so that child nodes, node (E) and (F), 244 generate DAOs to trigger route update on the new path for themselves. 245 There is no NPDAO generated by these child nodes through the previous 246 path resulting in stale entries on nodes (B) and (G) for nodes (E) 247 and (F). 249 2.3. Route downtime caused by asynchronous operation of NPDAO and DAO 251 A switching node may generate both an NPDAO and DAO via two different 252 paths at almost the same time. There is a possibility that an NPDAO 253 generated may invalidate the previous route and the regular DAO sent 254 via the new path gets lost on the way. This may result in route 255 downtime thus impacting downward traffic for the switching node. In 256 the example topology, consider Node (D) switches from parent (B) to 257 (C) because the metrics of the path via (C) are better. Note that 258 the previous path via (B) may still be available (albeit at 259 relatively bad metrics). An NPDAO sent from previous route may 260 invalidate the existing route whereas there is no way to determine 261 whether the new DAO has successfully updated the route entries on the 262 new path. 264 An implementation technique to avoid this problem is to further delay 265 the route invalidation by a fixed time interval after receiving an 266 NPDAO, considering the time taken for the new path to be established. 267 Coming up with such a time interval is tricky since the new route may 268 also not be available and it may subsequently require more parent 269 switches to establish a new path. 271 3. Requirements for the No-Path DAO Optimization 273 3.1. Req#1: Tolerant to the link failures to the previous parents 275 When the switching node send the NP-DAO message to the previous 276 parent, it is normal that the link to the previous parent is prone to 277 failure. Therefore, it is required that the NP-DAO message MUST be 278 tolerant to the link failure during the switching. 280 3.2. Req#2: Dependent nodes route invalidation on parent switching 282 While switching the parent node and sending NP-DAO message, it is 283 required that the routing entries to the dependent nodes of the 284 switching node will be updated accordingly on the previous parents 285 and other relevant upstream nodes. 287 3.3. Req#3: No impact on traffic while NP-DAO operation in progress 289 While sending the NP-DAO and DAO messages, it is possible that the 290 NP-DAO successfully invalidates the previous path, while the newly 291 sent DAO gets lost (new path not set up successfully). This will 292 result into downstream unreachability to the current switching node. 293 Therefore, it is desirable that the NP-DAO is synchronized with the 294 DAO to avoid the risk of route downtime. 296 4. Proposed changes to RPL signaling 298 4.1. Change in NPDAO semantics 300 As described in Section 1.2, the NPDAO originates at the node 301 switching the parent and traverses upstream towards the root. In 302 order to solve the problems as mentioned in Section 2, the draft 303 proposes to add new pro-active route invalidation message called as 304 "Destination Cleanup Object" (DCO) that originates at a common 305 ancestor node between the new and old path. The trigger for the 306 common ancestor node to generate this DCO is the change in the next 307 hop for the target on reception of an update message in the form of 308 regular DAO for the target. 310 In the Figure 1, when node D decides to switch the path from B to C, 311 it sends a regular DAO to node C with reachability information 312 containing target as address of D and a incremented path sequence 313 number. Node C will update the routing table based on the 314 reachability information in DAO and in turn generate another DAO with 315 the same reachability information and forward it to H. Node H also 316 follows the same procedure as Node C and forwards it to node A. When 317 node A receives the regular DAO, it finds that it already has a 318 routing table entry on behalf of the target address of node D. It 319 finds however that the next hop information for reaching node D has 320 changed i.e. the node D has decided to change the paths. In this 321 case, Node A which is the common ancestor node for node D along the 322 two paths (previous and new), may generate a DCO which traverses 323 downwards in the network. The document in the subsequent section 324 will explain the message format changes to handle this downward flow 325 of NPDAO. 327 4.2. DAO message format changes 329 Every RPL message is divided into base message fields and additional 330 Options. The base fields apply to the message as a whole and options 331 are appended to add message/use-case specific attributes. As an 332 example, a DAO message may be attributed by one or more "RPL Target" 333 options which specifies the reachability information for the given 334 targets. Similarly, a Transit Information option may be associated 335 with a set of RPL Target options. 337 The draft proposes a change in DAO message to contain "Invalidate 338 previous route" (I) bit. This I-bit which is carried in regular DAO 339 message, signals the common ancestor node to generate a DCO on behalf 340 of the target node. The I-bit is carried in the transit container 341 option which augments the reachability information for a given set of 342 RPL Target(s). 344 0 1 2 3 345 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 346 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 347 | Type = 0x06 | Option Length |E|I| Flags | Path Control | 348 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 349 | Path Sequence | Path Lifetime | | 350 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 351 | | 352 + + 353 | | 354 + Parent Address* + 355 | | 356 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 357 | | 358 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 360 Figure 2: Updated Transit Information Option (New I flag added) 362 I (Invalidate previous route) bit: 1 bit flag. The 'I' flag is set 363 by the target node to indicate that it wishes to invalidate the 364 previous route by a common ancestor node between the two paths. 366 4.3. Destination Cleanup Object (DCO) 368 A new ICMPv6 RPL control message type is defined by this 369 specification called as "Destination Cleanup Object" (DCO), which is 370 used for proactive cleanup of state and routing information held on 371 behalf of the target node by 6LRs. The DCO message always traverses 372 downstream and cleans up route information and other state 373 information associated with the given target. 375 0 1 2 3 376 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 377 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 378 | RPLInstanceID |K|D| Flags | Reserved | DCOSequence | 379 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 380 | | 381 + + 382 | | 383 + DODAGID(optional) + 384 | | 385 + + 386 | | 387 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 388 | Option(s)... 389 +-+-+-+-+-+-+-+-+ 391 Figure 3: DCO base object 393 RPLInstanceID: 8-bit field indicating the topology instance 394 associated with the DODAG, as learned from the DIO. 396 K: The 'K' flag indicates that the recipient is expected to send a 397 DCO-ACK back. 399 D: The 'D' flag indicates that the DODAGID field is present. This 400 flag MUST be set when a local RPLInstanceID is used. 402 Flags: The 6 bits remaining unused in the Flags field are reserved 403 for flags. The field MUST be initialized to zero by the sender and 404 MUST be ignored by the receiver. 406 Reserved: 8-bit unused field. The field MUST be initialized to zero 407 by the sender and MUST be ignored by the receiver. 409 DCOSequence: Incremented at each unique DCO message from a node and 410 echoed in the DCO-ACK message. 412 DODAGID (optional): 128-bit unsigned integer set by a DODAG root that 413 uniquely identifies a DODAG. This field is only present when the 'D' 414 flag is set. This field is typically only present when a local 415 RPLInstanceID is in use, in order to identify the DODAGID that is 416 associated with the RPLInstanceID. When a global RPLInstanceID is in 417 use, this field need not be present. Unassigned bits of the DAO Base 418 are reserved. They MUST be set to zero on transmission and MUST be 419 ignored on reception. 421 4.3.1. DCO Options 423 The DCO message MAY carry valid options. This specification allows 424 for the DCO message to carry the following options: 426 0x00 Pad1 427 0x01 PadN 428 0x05 RPL Target 429 0x06 Transit Information 430 0x09 RPL Target Descriptor 432 The DCO carries a Target option and an associated Transit Information 433 option with a lifetime of 0x00000000 to indicate a loss of 434 reachability to that Target. 436 4.3.2. Path Sequence number in the DCO 438 A DCO message may contain a Path Sequence in the transit information 439 option to identify the freshness of the DCO message. The Path 440 Sequence in the DCO and should use the same Path Sequence number 441 present in the regular DAO message when the DCO is generated in 442 response to DAO message. 444 4.3.3. Destination Cleanup Option Acknowledgement (DCO-ACK) 446 The DCO-ACK message is sent as a unicast packet by a DCO recipient in 447 response to a unicast DCO message. 449 0 1 2 3 450 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 451 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 452 | RPLInstanceID |D| Reserved | DCOSequence | Status | 453 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 454 | | 455 + + 456 | | 457 + DODAGID(optional) + 458 | | 459 + + 460 | | 461 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 463 Figure 4: DCO-ACK base object 465 RPLInstanceID: 8-bit field indicating the topology instance 466 associated with the DODAG, as learned from the DIO. 468 D: The 'D' flag indicates that the DODAGID field is present. This 469 flag MUST be set when a local RPLInstanceID is used. 471 Reserved: 7-bit unused field. The field MUST be initialized to zero 472 by the sender and MUST be ignored by the receiver. 474 DCOSequence: Incremented at each unique DCO message from a node and 475 echoed in the DCO-ACK message. 477 Status: Indicates the completion. Status 0 is defined as unqualified 478 acceptance in this specification. The remaining status values are 479 reserved as rejection codes. 481 DODAGID (optional): 128-bit unsigned integer set by a DODAG root that 482 uniquely identifies a DODAG. This field is only present when the 'D' 483 flag is set. This field is typically only present when a local 484 RPLInstanceID is in use, in order to identify the DODAGID that is 485 associated with the RPLInstanceID. When a global RPLInstanceID is in 486 use, this field need not be present. Unassigned bits of the DAO Base 487 are reserved. They MUST be set to zero on transmission and MUST be 488 ignored on reception. 490 4.4. Example messaging 492 In Figure 1, node (D) switches its parent from (B) to (C). The 493 sequence of actions is as follows: 495 1. Node D switches its parent from node B to node C 496 2. D sends a regular DAO(tgt=D,pathseq=x+1,I_flag=1) in the updated 497 path to C 498 3. C checks for routing entry on behalf of D, since it cannot find 499 an entry on behalf of D it creates a new routing entry and 500 forwards the reachability information of the target D to H in a 501 DAO. 502 4. Similar to C, node H checks for routing entry on behalf of D, 503 cannot find an entry and hence creates a new routing entry and 504 forwards the reachability information of the target D to H in a 505 DAO. 506 5. Node A receives the DAO, and checks for routing entry on behalf 507 of D. It finds a routing entry but checks that the next hop for 508 target D is now changed. Node A checks the I_flag and generates 509 DCO(tgt=D,pathseq=pathseq(DAO)) to previous next hop for target D 510 which is G. Subsequently, A updates the routing entry and 511 forwards the reachability information of target D upstream 512 DAO(tgt=D,pathseq=x+1,I_flag=x) (the I_flag carries no 513 significance henceforth). 514 6. Node G receives the DCO and invalidates routing entry of target D 515 and forwards the (un)reachability information downstream to B. 517 7. Similarly, B processes the DCO by invalidating the routing entry 518 of target D and forwards the (un)reachability information 519 downstream to D. 520 8. D ignores the DCO since the target is itself. 521 9. The propagation of the DCO will stop at any node where the node 522 does not have an routing information associated with the target. 523 If the routing information is present and the pathseq associated 524 is not older, then still the DCO is dropped. 526 4.5. Other considerations 528 4.5.1. Dependent Nodes invalidation 530 Current RPL [RFC6550] does not provide a mechanism for route 531 invalidation for dependent nodes. 533 This section describes approaches for invalidating routes of 534 dependent nodes if the implementation chooses to solve this problem. 535 The common ancestor node realizes that the paths for dependent nodes 536 have changed (based on next hop change) when it receives a regular 537 DAO on behalf of the dependent nodes. Thus dependent nodes route 538 invalidation can be handled in the same way as the switching node. 539 Note that there is no way that dependent nodes can set the I_flag in 540 the DAO message selectively since they are unaware that their parent/ 541 grand parent node is switching paths. There are two ways to handle 542 dependent node route invalidation: 544 1. One way to resolve is that the common ancestor does not depend 545 upon the I_flag to generate the reverse NPDAO. The only factor 546 it makes the decision will be based on next_hop change for an 547 existing target to generate the NPDAO. Thus when the switching 548 nodes and all the below dependent nodes advertise a regular DAO, 549 the common ancestor node will detect a change in next hop and 550 generate NPDAO for the same target as in the regular DAO. 551 2. Another way is that the nodes always set the I_flag whenever they 552 send regular DAO. Thus common ancestor will first check whether 553 I_flag is set and then check whether the next_hop has changed and 554 subsequently trigger DCO if required. 556 This document recommends the approach in point 2. The advantage with 557 I_flag is that the generation of downstream NPDAO is still controlled 558 by the target node and thus is still in control of its own routing 559 state. 561 5. Acknowledgements 563 We would like to thank Cenk Gundogan, Simon Duquennoy and Pascal 564 Thubert for their review and comments. 566 6. IANA Considerations 568 IANA is requested to allocate new ICMPv6 RPL control codes in RPL 569 [RFC6550] for DCO and DCO-ACK messages. 571 +------+--------------------------------------------+---------------+ 572 | Code | Description | Reference | 573 +------+--------------------------------------------+---------------+ 574 | 0x85 | Destination Cleanup Object | This document | 575 | 0x86 | Destination Cleanup Object Acknowledgement | This document | 576 +------+--------------------------------------------+---------------+ 578 IANA is requested to allocate bit 18 in the Transit Information 579 Option defined in RPL [RFC6550] section 6.7.8 for Invalidate route 580 'I' flag. 582 7. Security Considerations 584 The secure versions of DCO and DCO-ACK also have to be considered in 585 the future. The seucrity considerations applicable to DAO, DAO-ACK 586 messaging in RPL is also applicable here. 588 8. References 590 8.1. Normative References 592 [I-D.ietf-6tisch-architecture] 593 Thubert, P., "An Architecture for IPv6 over the TSCH mode 594 of IEEE 802.15.4", draft-ietf-6tisch-architecture-13 (work 595 in progress), November 2017. 597 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 598 Requirement Levels", BCP 14, RFC 2119, 599 DOI 10.17487/RFC2119, March 1997, 600 . 602 [RFC6550] Winter, T., Ed., Thubert, P., Ed., Brandt, A., Hui, J., 603 Kelsey, R., Levis, P., Pister, K., Struik, R., Vasseur, 604 JP., and R. Alexander, "RPL: IPv6 Routing Protocol for 605 Low-Power and Lossy Networks", RFC 6550, 606 DOI 10.17487/RFC6550, March 2012, 607 . 609 8.2. Informative References 611 [CONTIKI] Thingsquare, "Contiki: The Open Source OS for IoT", 2012, 612 . 614 [RFC3552] Rescorla, E. and B. Korver, "Guidelines for Writing RFC 615 Text on Security Considerations", BCP 72, RFC 3552, 616 DOI 10.17487/RFC3552, July 2003, 617 . 619 Appendix A. Additional Stuff 621 This becomes an Appendix. 623 Authors' Addresses 625 Rahul Arvind Jadhav (editor) 626 Huawei 627 Kundalahalli Village, Whitefield, 628 Bangalore, Karnataka 560037 629 India 631 Phone: +91-080-49160700 632 Email: rahul.ietf@gmail.com 634 Pascal Thubert 635 Cisco Systems, Inc 636 Building D 637 45 Allee des Ormes - BP1200 638 MOUGINS - Sophia Antipolis 06254 639 FRANCE 641 Phone: +33 497 23 26 34 642 Email: pthubert@cisco.com 644 Rabi Narayan Sahoo 645 Huawei 646 Kundalahalli Village, Whitefield, 647 Bangalore, Karnataka 560037 648 India 650 Phone: +91-080-49160700 651 Email: rabinarayans@huawei.com 652 Zhen Cao 653 Huawei 654 W Chang'an Ave 655 Beijing 560037 656 China 658 Email: zhencao.ietf@gmail.com