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