idnits 2.17.1 draft-jadhav-roll-efficient-npdao-00.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 (February 14, 2017) is 2628 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 570, but no explicit reference was found in the text == Unused Reference: 'RFC3552' is defined on line 580, but no explicit reference was found in the text == Unused Reference: 'RFC5191' is defined on line 585, but no explicit reference was found in the text == Unused Reference: 'RFC6345' is defined on line 590, but no explicit reference was found in the text -- Possible downref: Non-RFC (?) normative reference: ref. 'CONTIKI' Summary: 0 errors (**), 0 flaws (~~), 5 warnings (==), 2 comments (--). 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: August 18, 2017 Huawei Tech 6 February 14, 2017 8 No-Path DAO modifications 9 draft-jadhav-roll-efficient-npdao-00 11 Abstract 13 This document describes the problems associated with the use of No- 14 Path DAO messaging in RPL and a signaling improvement to improve 15 route 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 http://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 August 18, 2017. 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 (http://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 . . . . . . . . . . . . . . . . . . . . . . . . 7 69 4. Existing Solution . . . . . . . . . . . . . . . . . . . . . . 7 70 4.1. NP-DAO can be generated by the parent node who detects 71 link failure to the child . . . . . . . . . . . . . . . . 7 72 4.2. NP-DAO can be generated once the link is restored to 73 the previous parent . . . . . . . . . . . . . . . . . . . 8 74 5. Proposed changes to NPDAO signaling . . . . . . . . . . . . . 8 75 5.1. Change in NPDAO semantics . . . . . . . . . . . . . . . . 8 76 5.2. DAO message format changes . . . . . . . . . . . . . . . 9 77 5.2.1. Path Sequence number in the reverse NPDAO . . . . . . 11 78 5.3. Example messaging . . . . . . . . . . . . . . . . . . . . 11 79 5.4. Other considerations . . . . . . . . . . . . . . . . . . 12 80 5.4.1. Dependent Nodes invalidation . . . . . . . . . . . . 12 81 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 12 82 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 83 8. Security Considerations . . . . . . . . . . . . . . . . . . . 13 84 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 13 85 9.1. Normative References . . . . . . . . . . . . . . . . . . 13 86 9.2. Informative References . . . . . . . . . . . . . . . . . 13 87 Appendix A. Additional Stuff . . . . . . . . . . . . . . . . . . 14 88 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 14 90 1. Introduction 92 RPL [RFC6550] specifies a proactive distance-vector based routing 93 scheme. The specification has an optional messaging in the form of 94 DAO messages using which the 6LBR can learn route towards any of the 95 nodes. In storing mode, DAO messages would result in routing entries 96 been created on all intermediate hops from the node's parent all the 97 way towards the 6LBR. 99 RPL also allows use of No-Path DAO (NPDAO) messaging to invalidate a 100 routing path and thus releasing of any resources utilized on that 101 path. A No-Path DAO is a DAO message with route lifetime of zero, 102 signaling route invalidation for the given target. This document 103 studies the problems associated with the current use of No-Path DAO 104 messaging, which creates route inefficiency and inconsistence. This 105 document also discusses the requirements for an optimized No-Path DAO 106 messaging scheme. 108 1.1. Requirements Language and Terminology 110 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 111 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 112 document are to be interpreted as described in RFC 2119 [RFC2119]. 114 The document only caters to the RPL's storing mode of operation 115 (MOP). The non-storing mode does not require use of NPDAO for route 116 invalidation since routing entries are not maintained on 6LRs in case 117 of non-storing MOP. 119 Common Ancestor node: 6LR node which is the first common node on the 120 old and new path for the child node. 122 Current parent: Parent 6LR node before switching to the new path. 124 New parent: Parent 6LR node after switching to the new path. 126 NPDAO: No-Path DAO. A DAO message which has target with lifetime 0. 128 Reverse NPDAO: A No-Path DAO message which traverses downstream in 129 the network. 131 Regular DAO: A DAO message with non-zero lifetime. 133 This document also uses terminology described in [RFC6550] and 134 [RFC6775]. 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 that child node. The No-Path DAO message 143 always traverses the RPL tree in upward direction, originating at the 144 target 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 There are following problems with the usage of current NP-DAO 215 messaging 217 2.1. Lost NP-DAO due to link break to the previous parent 219 When the 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 mentions 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. In the example 240 topology, when Node (D) switches its parent, Node (D) generates an 241 NPDAO on its behalf. Post switching, Node (D) transmits a DIO with 242 incremented DTSN so that child nodes, node (E) and (F), generate DAOs 243 to trigger route update on the new path for themselves. There is no 244 NPDAO generated by these child nodes through the previous path 245 resulting in stale entries on nodes (B) and (G) for nodes (E) and 246 (F). 248 2.3. Route downtime caused by asynchronous operation of NPDAO and DAO 250 A switching node may generate both an NPDAO and DAO via two different 251 paths at almost the same time. There is a possibility that an NPDAO 252 generated may invalidate the previous route and the regular DAO sent 253 via the new path gets lost on the way. This may result in route 254 downtime thus impacting downward traffic for the switching node. In 255 the example topology, consider Node (D) switches from parent (B) to 256 (C) because the metrics of the path via (C) are better. Note that 257 the previous path via (B) may still be available (albeit at 258 relatively bad metrics). An NPDAO sent from previous route may 259 invalidate the existing route whereas there is no way to determine 260 whether the new DAO has successfully updated the route entries on the 261 new path. 263 An implementation technique to avoid this problem is to further delay 264 the route invalidation by a fixed time interval after receiving an 265 NPDAO, considering the time taken for the new path to be established. 266 Coming up with such a time interval is tricky since the new route may 267 also not be available and it may subsequently require more parent 268 switches to establish a new path. 270 3. Requirements for the No-Path DAO Optimization 272 We identify the following requirements for the NP-DAO optimization. 274 3.1. Req#1: Tolerant to the link failures to the previous parents 276 When the switching node send the NP-DAO message to the previous 277 parent, it is normal that the link to the previous parent is prone to 278 failure. Therefore, it is required that the NP-DAO message MUST be 279 tolerant to the link failure during the switching. 281 3.2. Req#2: Dependent nodes route invalidation on parent switching 283 While switching the parent node and sending NP-DAO message, it is 284 required that the routing entries to the dependent nodes of the 285 switching node will be updated accordingly on the previous parents 286 and other relevant upstream nodes. 288 3.3. Req#3: No impact on traffic while NP-DAO operation in progress 290 While sending the NP-DAO and DAO messages, it is possible that the 291 NP-DAO successfully invalidates the previous path, while the newly 292 sent DAO gets lost (new path not set up successfully). This will 293 result into downstream unreachability to the current switching node. 294 Therefore, it is desirable that the NP-DAO is synchronized with the 295 DAO to avoid the risk of routing downtime. 297 4. Existing Solution 299 4.1. NP-DAO can be generated by the parent node who detects link 300 failure to the child 302 RPL states mechanisms which could be utilized to clear DAO states in 303 a sub-DODAG. [RFC6550] Section 11.2.2.3 states "With DAO 304 inconsistency loop recovery, a packet can be used to recursively 305 explore and clean up the obsolete DAO states along a sub-DODAG". 307 Thus in the sample topology in Figure 1, when Node (B) detects link 308 failure to (D), (B) has an option of generating an NP-DAO on behalf 309 of Node (D) and its sub-childs, (E) and (F). 311 This section explains why generation of an NP-DAO in such cases may 312 not function as desired. Primarily the DAO state information in the 313 form of Path Sequence plays a major role here. Every target is 314 associated with a Path Sequence number which relates to the latest 315 state of the target. [RFC6550] Section 7.1 explains the semantics of 316 Path Sequence number. The target node increments the Path Sequence 317 number every time it generates a new DAO. The router nodes en-route 318 utilize this Path Sequence number to decide the freshness of target 319 information. If a non-target node has to generate an NP-DAO then it 320 could use following two possibilities with Path Sequence number: 322 Let the Path Sequence number of old regular DAO that flowed through 323 (B) be x. The subsequent regular DAO generated by Node (D) will have 324 sequence number x+1. 326 i. Node (B) uses the previous Path Sequence number from the regular 327 DAO i.e. NP-DAO(pathseq=x) 329 ii. Node (B) increments the Path Sequence number i.e. NP- 330 DAO(pathseq=x+1) 332 In case i, the NP-DAO(pathseq=x) will be dropped by all the 333 intermediate nodes since the semantics of Path Sequence number 334 dictates that any DAO with an older Path Sequence number be dropped. 336 In case ii, there is a risk that the NP-DAO(pathseq=x+1) traverses up 337 the DODAG and invalidates all the routes till the root and then the 338 regular DAO(pathseq=x+1) from the target traverses upwards. In this 339 case the regular DAO(pathseq=x+1) will be dropped from common 340 ancestor node to the root. This will result in route downtime. 342 Another problem with this scheme is its dependence on the upstream 343 neighbor to detect that the downstream neighbor is unavailable. 344 There are two possibilities by which such a detection might be put to 345 work: 347 i. There is P2P traffic from the previous sub-DODAG to any of nodes 348 in the sub-tree which has switched the path. In the above example, 349 lets consider that Node (G) has P2P traffic for either of nodes (D), 350 (E), or (F). In this case, Node (B) will detect forwarding error 351 while forwarding the packets from Node (B) to (D). But dependence on 352 P2P traffic may not be an optimal way to solve this problem 353 considering the reactive approach of the scheme. The P2P traffic 354 pattern might be sparse and thus such a detection might kick-in too 355 late. 357 ii. The other case is where Node (B) explicitly employs some 358 mechanism to probe directly attached downstream child nodes. Such 359 kind of schemes are seldom used. 361 4.2. NP-DAO can be generated once the link is restored to the previous 362 parent 364 This scheme solves a specific scenario of transient links. The child 365 node can detect that the connection to previous parent is restored 366 and then transmit an NP-DAO to the previous parent to invalidate the 367 route. This scheme is stateful, thus requires more memory and solves 368 a specific scenario. 370 5. Proposed changes to NPDAO signaling 372 5.1. Change in NPDAO semantics 374 As described in Section 1.2, currently the NPDAO originates at the 375 node switching the parent and traverses upstream towards the root. 376 In order to solve the problems as mentioned in Section 2, the draft 377 proposes to change the way NPDAO originates and traverses the 378 network. The new NPDAO proposed does not originate at the node but 379 instead originates at a common ancestor node between the new and old 380 path. The trigger for the common ancestor node to generate this 381 NPDAO is the change in the next hop for the node on reception of an 382 update message in the form of regular DAO for the target. 384 In the Figure 1, when node D decides to switch the path from B to C, 385 it sends a regular DAO to node C with reachability information 386 containing target as address of D and a incremented path sequence 387 number. Node C will update the routing table based on the 388 reachability information in DAO and in turn generate another DAO with 389 the same reachability information and forward it to H. Node H also 390 follows the same procedure as Node C and forwards it to node A. When 391 node A receives the regular DAO, it finds that it already has a 392 routing table entry on behalf of the target address of node D. It 393 finds however that the next hop information for reaching node D has 394 changed i.e. the node D has decided to change the paths. In this 395 case, Node A which is the common ancestor node for node D along the 396 two paths (previous and new), may generate an NPDAO which traverses 397 downwards in the network. The document in the subsequent section 398 will explain the message format changes to handle this downward flow 399 of NPDAO. 401 5.2. DAO message format changes 403 Every RPL message is divided into base message fields and additional 404 Options. The base fields apply to the message as a whole and options 405 are appended to add message/use-case specific attributes. As an 406 example, a DAO message may be attributed by one or more "RPL Target" 407 options which specifies the reachability information for the given 408 targets. Similarly, a Transit Information option may be associated 409 with a set of RPL Target options. 411 The draft proposes a change in DAO message to contain "Invalidate 412 previous route" (I) bit. This I-bit which is carried in regular DAO 413 message, signals the common ancestor node to generate a downstream 414 NPDAO on behalf of the target node. The I-bit is carried in the 415 transit container option which augments the reachability information 416 for a given set of RPL Target(s). 418 0 1 2 3 419 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 420 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 421 | Type = 0x06 | Option Length |E|I| Flags | Path Control | 422 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 423 | Path Sequence | Path Lifetime | | 424 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 425 | | 426 + + 427 | | 428 + Parent Address* + 429 | | 430 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 431 | | 432 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 434 Figure 2: Updated Transit Information Option (New I flag added) 436 I (Invalidate previous route) bit: 1 bit flag. The 'I' flag is set 437 by the target node to indicate that it wishes to invalidate the 438 previous route by a common ancestor node between the two paths. 440 The NPDAO thus generated by the common ancestor node needs to 441 traverse downstream. An additional flag called as "Reverse NPDAO" 442 (R) is added in the base DAO object to signal this change. 444 0 1 2 3 445 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 446 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 447 | RPLInstanceID |K|D|R| Flags | Reserved | DAOSequence | 448 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 449 | | 450 + + 451 | | 452 + DODAGID* + 453 | | 454 + + 455 | | 456 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 457 | Option(s)... 458 +-+-+-+-+-+-+-+-+ 460 Figure 3: Updated DAO base object (New R flag added) 462 R (Reverse DAO) bit: 1 bit flag. The 'R' flag is used to signal that 463 the DAO traverses downwards. 465 5.2.1. Path Sequence number in the reverse NPDAO 467 Every DAO message may contain a Path Sequence in the transit 468 information option to identify the freshness of the DAO message. The 469 Path Sequence in the downward NPDAO generated by common ancestor 470 should use the same Path Sequence number present in the regular DAO 471 message. 473 5.3. Example messaging 475 In Figure 1, node (D) switches its parent from (B) to (C). The 476 sequence of actions is as follows: 478 1. Node D switches its parent from node B to node C 480 2. D sends a regular DAO(tgt=D,pathseq=x+1,I_flag=1) in the updated 481 path to C 483 3. C checks for routing entry on behalf of D, since it cannot find 484 an entry on behalf of D it creates a new routing entry and 485 forwards the reachability information of the target D to H in a 486 DAO. 488 4. Similar to C, node H checks for routing entry on behalf of D, 489 cannot find an entry and hence creates a new routing entry and 490 forwards the reachability information of the target D to H in a 491 DAO. 493 5. A receives the DAO, and checks for routing entry on behalf of D. 494 It finds a routing entry but checks that the next hop for target 495 D is now changed. Node A checks the I_flag and generates 496 downstream NPDAO(tgt=D,pathseq=x+1,R_flag=1) to previous next hop 497 for target D which is G. Subsequently, A updates the routing 498 entry and forwards the reachability information of target D 499 upstream DAO(tgt=D,pathseq=x+1,I_flag=x) (the I_flag carries no 500 significance henceforth). 502 6. Node G receives the downstream NPDAO and invalidates routing 503 entry of target D and then checks the reverse (R) flag and 504 forwards the (un)reachability information downstream to B. 506 7. Similarly, B processes the downstream NPDAO by invalidating the 507 routing entry of target D and then checks the reverse (R) flag 508 and forwards the (un)reachability information downstream to D. 510 8. D ignores the downstream NPDAO since the target is itself. 512 5.4. Other considerations 514 5.4.1. Dependent Nodes invalidation 516 Current RPL [RFC6550] does not provide a mechanism for route 517 invalidation for dependent nodes. 519 This section describes approaches for invalidating routes of 520 dependent nodes if the implementation chooses to solve this problem. 521 The common ancestor node realizes that the paths for dependent nodes 522 have changed (based on next hop change) when it receives a regular 523 DAO on behalf of the dependent nodes. Thus dependent nodes route 524 invalidation can be handled in the same way as the switching node. 525 Note that there is no way that dependent nodes can set the I_flag in 526 the DAO message selectively since they are unaware that their parent/ 527 grand parent node is switching paths. There are two ways to handle 528 dependent node route invalidation: 530 1. One way to resolve is that the common ancestor does not depend 531 upon the I_flag to generate the reverse NPDAO. The only factor 532 it makes the decision will be based on next_hop change for an 533 existing target to generate the NPDAO. Thus when the switching 534 nodes and all the below dependent nodes advertise a regular DAO, 535 the common ancestor node will detect a change in next hop and 536 generate NPDAO for the same target as in the regular DAO. 538 2. Another way is that the nodes always set the I_flag whenever they 539 send regular DAO. Thus common ancestor will first check whether 540 I_flag is set and then check whether the next_hop has changed and 541 subsequently trigger NPDAO if required. 543 This document recommends the approach in point 2. The advantage with 544 I_flag is that the generation of downstream NPDAO is still controlled 545 by the target node and thus is still in control of its own routing 546 state. 548 6. Acknowledgements 550 We would like to thank Cenk Gundogan, Simon Duquennoy and Pascal 551 Thubert for their review and insightful comments. 553 7. IANA Considerations 555 IANA is requested to allocate bit 11 in the DAO base object defined 556 in RPL [RFC6550] section 6.4 for reverse 'R' NPDAO flag. 558 IANA is requested to allocate bit 18 in the Transit Information 559 Option defined in RPL [RFC6550] section 6.7.8 for Invalidate route 560 'I' flag. 562 8. Security Considerations 564 TBA 566 9. References 568 9.1. Normative References 570 [CONTIKI] Thingsquare, "Contiki: The Open Source OS for IoT", 2012, 571 . 573 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 574 Requirement Levels", BCP 14, RFC 2119, 575 DOI 10.17487/RFC2119, March 1997, 576 . 578 9.2. Informative References 580 [RFC3552] Rescorla, E. and B. Korver, "Guidelines for Writing RFC 581 Text on Security Considerations", BCP 72, RFC 3552, 582 DOI 10.17487/RFC3552, July 2003, 583 . 585 [RFC5191] Forsberg, D., Ohba, Y., Ed., Patil, B., Tschofenig, H., 586 and A. Yegin, "Protocol for Carrying Authentication for 587 Network Access (PANA)", RFC 5191, DOI 10.17487/RFC5191, 588 May 2008, . 590 [RFC6345] Duffy, P., Chakrabarti, S., Cragie, R., Ohba, Y., Ed., and 591 A. Yegin, "Protocol for Carrying Authentication for 592 Network Access (PANA) Relay Element", RFC 6345, 593 DOI 10.17487/RFC6345, August 2011, 594 . 596 [RFC6550] Winter, T., Ed., Thubert, P., Ed., Brandt, A., Hui, J., 597 Kelsey, R., Levis, P., Pister, K., Struik, R., Vasseur, 598 JP., and R. Alexander, "RPL: IPv6 Routing Protocol for 599 Low-Power and Lossy Networks", RFC 6550, 600 DOI 10.17487/RFC6550, March 2012, 601 . 603 [RFC6775] Shelby, Z., Ed., Chakrabarti, S., Nordmark, E., and C. 604 Bormann, "Neighbor Discovery Optimization for IPv6 over 605 Low-Power Wireless Personal Area Networks (6LoWPANs)", 606 RFC 6775, DOI 10.17487/RFC6775, November 2012, 607 . 609 Appendix A. Additional Stuff 611 This becomes an Appendix. 613 Authors' Addresses 615 Rahul Arvind Jadhav (editor) 616 Huawei Tech 617 Kundalahalli Village, Whitefield, 618 Bangalore, Karnataka 560037 619 India 621 Phone: +91-080-49160700 622 Email: rahul.ietf@gmail.com 624 Rabi Narayan Sahoo 625 Huawei Tech 626 Kundalahalli Village, Whitefield, 627 Bangalore, Karnataka 560037 628 India 630 Phone: +91-080-49160700 631 Email: rabinarayans@huawei.com 633 Zhen Cao 634 Huawei Tech 635 W Chang'an Ave 636 Beijing 560037 637 China 639 Email: zhencao.ietf@gmail.com