idnits 2.17.00 (12 Aug 2021) /tmp/idnits44567/draft-ietf-roll-efficient-npdao-07.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 (September 27, 2018) is 1332 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: 'I-D.ietf-6tisch-architecture' is defined on line 554, but no explicit reference was found in the text == Outdated reference: draft-ietf-6tisch-architecture has been published as RFC 9030 Summary: 0 errors (**), 0 flaws (~~), 3 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: March 31, 2019 Cisco 6 R. Sahoo 7 Z. Cao 8 Huawei 9 September 27, 2018 11 Efficient Route Invalidation 12 draft-ietf-roll-efficient-npdao-07 14 Abstract 16 This document describes the problems associated with the use of NPDAO 17 messaging in RPL and signaling changes to improve route invalidation 18 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 March 31, 2019. 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 NPDAO messaging . . . . . . . . . . . . . . . . . 4 57 1.3. Why NPDAO is important? . . . . . . . . . . . . . . . . . 4 58 2. Problems with current NPDAO messaging . . . . . . . . 5 59 2.1. Lost NPDAO due to link break to the previous parent . . . 5 60 2.2. Invalidate routes to dependent nodes . . . . . . . . . . 5 61 2.3. Possible route downtime caused by async operation of 62 NPDAO and DAO . . . . . . . . . . . . . . . . . . . . . . 5 63 3. Requirements for the NPDAO Optimization . . . . . . . . . . . 5 64 3.1. Req#1: Tolerant to link failures to the previous 65 parents . . . . . . . . . . . . . . . . . . . . . . . . . 5 66 3.2. Req#2: Dependent nodes route invalidation on parent 67 switching . . . . . . . . . . . . . . . . . . . . . . . . 6 68 3.3. Req#3: Route invalidation should not impact data traffic 6 69 4. Proposed changes to RPL signaling . . . . . . . . . . . . . . 6 70 4.1. Change in RPL route invalidation semantics . . . . . . . 6 71 4.2. Transit Information Option changes . . . . . . . . . . . 7 72 4.3. Destination Cleanup Object (DCO) . . . . . . . . . . . . 8 73 4.3.1. Secure DCO . . . . . . . . . . . . . . . . . . . . . 9 74 4.3.2. DCO Options . . . . . . . . . . . . . . . . . . . . . 9 75 4.3.3. Path Sequence number in the DCO . . . . . . . . . . . 9 76 4.3.4. Destination Cleanup Option Acknowledgement (DCO-ACK) 9 77 4.3.5. Secure DCO-ACK . . . . . . . . . . . . . . . . . . . 10 78 4.4. Other considerations . . . . . . . . . . . . . . . . . . 11 79 4.4.1. Dependent Nodes invalidation . . . . . . . . . . . . 11 80 4.4.2. NPDAO and DCO in the same network . . . . . . . . . . 11 81 4.4.3. DCO with multiple preferred parents . . . . . . . . . 11 82 5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 11 83 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11 84 7. Security Considerations . . . . . . . . . . . . . . . . . . . 12 85 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 12 86 8.1. Normative References . . . . . . . . . . . . . . . . . . 12 87 8.2. Informative References . . . . . . . . . . . . . . . . . 12 88 Appendix A. Example DCO Messaging . . . . . . . . . . . . . . . 13 89 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 13 91 1. Introduction 93 RPL [RFC6550] specifies a proactive distance-vector based routing 94 scheme. RPL has an optional messaging in the form of DAO 95 (Destination Advertisement Object) messages using which the 6LBR can 96 learn route towards the nodes. In storing mode, DAO messages would 97 result in routing entries been created on all intermediate hops from 98 the node's parent all the 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 NPDAO is a DAO message with route 103 lifetime of zero, originates at the target node and always flows 104 upstream towards the 6LBR. This document explains the problems 105 associated with the current use of NPDAO messaging and also discusses 106 the requirements for an optimized route invalidation messaging 107 scheme. Further a new pro-active route invalidation message called 108 as "Destination Cleanup Object (DCO)" is specified which fulfills 109 requirements of an optimized route invalidation messaging. 111 The document only caters to the RPL's storing mode of operation 112 (MOP). The non-storing MOP does not require use of NPDAO for route 113 invalidation since routing entries are not maintained on 6LRs. 115 1.1. Requirements Language and Terminology 117 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 118 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 119 document are to be interpreted as described in RFC 2119 [RFC2119]. 121 DAO: Destination Advertisement Object 123 DIO: DODAG Information Object 125 Common Ancestor node: 6LR node which is the first common node on the 126 old and new path for the child node. 128 NPDAO: No-Path DAO. A DAO message which has target with lifetime 0. 130 DCO: Destination Cleanup Object, A new RPL control message type 131 defined by this draft. 133 Regular DAO: A DAO message with non-zero lifetime. 135 LLN: Low Power and Lossy Networks. 137 Target Node: The node switching its parent whose routing adjacencies 138 are updated (created/removed). 140 This document also uses terminology described in [RFC6550]. 142 1.2. Current NPDAO messaging 144 RPL uses NPDAO messaging in the storing mode so that the node 145 changing it routing adjacencies can invalidate the previous route. 146 This is needed so that nodes along previous path can release any 147 resources (such as the routing entry) it maintains on behalf of 148 target node. 150 For the rest of this document consider the following topology: 152 (6LBR) 153 | 154 | 155 | 156 (A) 157 / \ 158 / \ 159 / \ 160 (G) (H) 161 | | 162 | | 163 | | 164 (B) (C) 165 \ ; 166 \ ; 167 \ ; 168 (D) 169 / \ 170 / \ 171 / \ 172 (E) (F) 174 Figure 1: Sample topology 176 Node (D) is connected via preferred parent (B). (D) has an alternate 177 path via (C) towards the BR. Node (A) is the common ancestor for (D) 178 for paths through (B)-(G) and (C)-(H). When (D) switches from (B) to 179 (C), RPL allows sending NPDAO to (B) and regular DAO to (C). 181 1.3. Why NPDAO is important? 183 Nodes in LLNs may be resource constrained. There is limited memory 184 available and routing entry records are one of the primary elements 185 occupying dynamic memory in the nodes. Route invalidation helps 6LR 186 nodes to decide which entries could be discarded to better achieve 187 resource utilization. Thus it becomes necessary to have efficient 188 route invalidation mechanism. Also note that a single parent switch 189 may result in a "sub-tree" switching from one parent to another. 191 Thus the route invalidation needs to be done on behalf of the sub- 192 tree and not the switching node alone. In the above example, when 193 Node (D) switches parent, the route invalidation needs to be done for 194 (D), (E) and (F). Thus without efficient route invalidation, a 6LR 195 may have to hold a lot of stale route entries. 197 2. Problems with current NPDAO messaging 199 2.1. Lost NPDAO due to link break to the previous parent 201 When a node switches its parent, the NPDAO is to be sent to its 202 previous parent and a regular DAO to its new parent. In cases where 203 the node switches its parent because of transient or permanent parent 204 link/node failure then the NPDAO message is bound to fail. 206 2.2. Invalidate routes to dependent nodes 208 RPL does not specify how route invalidation will work for dependent 209 nodes rooted at switching node, resulting in stale routing entries of 210 the dependent nodes. The only way for 6LR to invalidate the route 211 entries for dependent nodes would be to use route lifetime expiry 212 which could be substantially high for LLNs. 214 In the example topology, when Node (D) switches its parent, Node (D) 215 generates an NPDAO on its behalf. There is no NPDAO generated by 216 these child nodes through the previous path resulting in stale 217 entries on nodes (B) and (G) for nodes (E) and (F). 219 2.3. Possible route downtime caused by async operation of NPDAO and DAO 221 A switching node may generate both an NPDAO and DAO via two different 222 paths at almost the same time. There is a possibility that an NPDAO 223 generated may invalidate the previous route and the regular DAO sent 224 via the new path gets lost on the way. This may result in route 225 downtime impacting downward traffic for the switching node. 227 In the example topology, consider Node (D) switches from parent (B) 228 to (C). An NPDAO sent from previous route may invalidate the 229 existing route whereas there is no way to determine whether the new 230 DAO has successfully updated the route entries on the new path. 232 3. Requirements for the NPDAO Optimization 234 3.1. Req#1: Tolerant to link failures to the previous parents 236 When the switching node sends the NPDAO message to the previous 237 parent, it is normal that the link to the previous parent is prone to 238 failure. Therefore, it is required that the route invalidation does 239 not depend on the previous link which is prone to failure. The 240 previous link referred here represents the link between the node and 241 its previous parent (from whom the node is now disassociating). 243 3.2. Req#2: Dependent nodes route invalidation on parent switching 245 It should be possible to do route invalidation for dependent nodes 246 rooted at the switching node. 248 3.3. Req#3: Route invalidation should not impact data traffic 250 While sending the NPDAO and DAO messages, it is possible that the 251 NPDAO successfully invalidates the previous path, while the newly 252 sent DAO gets lost (new path not set up successfully). This will 253 result in downstream unreachability to the node switching paths. 254 Therefore, it is desirable that the route invalidation is 255 synchronized with the DAO to avoid the risk of route downtime. 257 4. Proposed changes to RPL signaling 259 4.1. Change in RPL route invalidation semantics 261 As described in Section 1.2, the NPDAO originates at the node 262 switching the parent and traverses upstream towards the root. In 263 order to solve the problems as mentioned in Section 2, the draft adds 264 new pro-active route invalidation message called as "Destination 265 Cleanup Object" (DCO) that originates at a common ancestor node 266 between the new and old path. The common ancestor node generates a 267 DCO in response to the change in the next-hop on receiving a regular 268 DAO for the target. 270 In Figure 1, when node D decides to switch the path from B to C, it 271 sends a regular DAO to node C with reachability information 272 containing target as address of D and a incremented path sequence 273 number. Node C will update the routing table based on the 274 reachability information in DAO and in turn generate another DAO with 275 the same reachability information and forward it to H. Node H also 276 follows the same procedure as Node C and forwards it to node A. When 277 node A receives the regular DAO, it finds that it already has a 278 routing table entry on behalf of the target address of node D. It 279 finds however that the next hop information for reaching node D has 280 changed i.e. the node D has decided to change the paths. In this 281 case, Node A which is the common ancestor node for node D along the 282 two paths (previous and new), may generate a DCO which traverses 283 downwards in the network. The document in the subsequent section 284 will explain the message format changes to handle this downward flow 285 of NPDAO. 287 4.2. Transit Information Option changes 289 Every RPL message is divided into base message fields and additional 290 Options. The base fields apply to the message as a whole and options 291 are appended to add message/use-case specific attributes. As an 292 example, a DAO message may be attributed by one or more "RPL Target" 293 options which specifies the reachability information for the given 294 targets. Similarly, a Transit Information option may be associated 295 with a set of RPL Target options. 297 The draft proposes a change in Transit Information option to contain 298 "Invalidate previous route" (I) bit. This I-bit signals the common 299 ancestor node to generate a DCO on behalf of the target node. The 300 I-bit is carried in the transit information option which augments the 301 reachability information for a given set of RPL Target(s). Transit 302 information option should be carried in the DAO message with I-bit 303 set in case route invalidation is sought for the correspondig 304 target(s). 306 0 1 2 3 307 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 308 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 309 | Type = 0x06 | Option Length |E|I| Flags | Path Control | 310 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 311 | Path Sequence | Path Lifetime | | 312 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 313 | | 314 + + 315 | | 316 + Parent Address* + 317 | | 318 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 319 | | 320 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 322 Figure 2: Updated Transit Information Option (New I flag added) 324 I (Invalidate previous route) bit: 1 bit flag. The 'I' flag is set 325 by the target node to indicate that it wishes to invalidate the 326 previous route by a common ancestor node between the two paths. 328 The common ancestor node SHOULD generate a DCO message in response to 329 this I-bit when it sees that the routing adjacencies have changed for 330 the target. I-bit governs the ownership of the DCO message in a way 331 that the target node is still in control of its own route 332 invalidation. 334 4.3. Destination Cleanup Object (DCO) 336 A new ICMPv6 RPL control message type is defined by this 337 specification called as "Destination Cleanup Object" (DCO), which is 338 used for proactive cleanup of state and routing information held on 339 behalf of the target node by 6LRs. The DCO message always traverses 340 downstream and cleans up route information and other state 341 information associated with the given target. 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 | RPLInstanceID |K|D| Flags | Reserved | DCOSequence | 347 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 348 | | 349 + + 350 | | 351 + DODAGID(optional) + 352 | | 353 + + 354 | | 355 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 356 | Option(s)... 357 +-+-+-+-+-+-+-+-+ 359 Figure 3: DCO base object 361 RPLInstanceID: 8-bit field indicating the topology instance 362 associated with the DODAG, as learned from the DIO. 364 K: The 'K' flag indicates that the recipient is expected to send a 365 DCO-ACK back. 367 D: The 'D' flag indicates that the DODAGID field is present. This 368 flag MUST be set when a local RPLInstanceID is used. 370 Flags: The 6 bits remaining unused in the Flags field are reserved 371 for future use. These bits MUST be initialized to zero by the sender 372 and MUST be ignored by the receiver. 374 Reserved: 8-bit unused field. The field MUST be initialized to zero 375 by the sender and MUST be ignored by the receiver. 377 DCOSequence: Incremented at each unique DCO message from a node and 378 echoed in the DCO-ACK message. 380 DODAGID (optional): 128-bit unsigned integer set by a DODAG root that 381 uniquely identifies a DODAG. This field is only present when the 'D' 382 flag is set. This field is typically only present when a local 383 RPLInstanceID is in use, in order to identify the DODAGID that is 384 associated with the RPLInstanceID. When a global RPLInstanceID is in 385 use, this field need not be present. Unassigned bits of the DCO Base 386 are reserved. They MUST be set to zero on transmission and MUST be 387 ignored on reception. 389 4.3.1. Secure DCO 391 A Secure DCO message follows the format in [RFC6550] figure 7, where 392 the base message format is the DCO message shown in Figure 3. 394 4.3.2. DCO Options 396 The DCO message MAY carry valid options. This specification allows 397 for the DCO message to carry the following options: 399 0x00 Pad1 400 0x01 PadN 401 0x05 RPL Target 402 0x06 Transit Information 403 0x09 RPL Target Descriptor 405 The DCO carries a Target option and an associated Transit Information 406 option with a lifetime of 0x00000000 to indicate a loss of 407 reachability to that Target. 409 4.3.3. Path Sequence number in the DCO 411 A DCO message may contain a Path Sequence in the transit information 412 option to identify the freshness of the DCO message. The Path 413 Sequence in the DCO MUST use the same Path Sequence number present in 414 the regular DAO message when the DCO is generated in response to DAO 415 message. The DAO and DCO path sequence are picked from the same 416 sequence number set. Thus if a DCO is received by a 6LR and 417 subsequently a DAO is received with old seqeunce number, then the DAO 418 should be ignored. 420 4.3.4. Destination Cleanup Option Acknowledgement (DCO-ACK) 422 The DCO-ACK message may be sent as a unicast packet by a DCO 423 recipient in response to a unicast DCO message. 425 0 1 2 3 426 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 427 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 428 | RPLInstanceID |D| Reserved | DCOSequence | Status | 429 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 430 | | 431 + + 432 | | 433 + DODAGID(optional) + 434 | | 435 + + 436 | | 437 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 439 Figure 4: DCO-ACK base object 441 RPLInstanceID: 8-bit field indicating the topology instance 442 associated with the DODAG, as learned from the DIO. 444 D: The 'D' flag indicates that the DODAGID field is present. This 445 flag MUST be set when a local RPLInstanceID is used. 447 Reserved: 7-bit unused field. The field MUST be initialized to zero 448 by the sender and MUST be ignored by the receiver. 450 DCOSequence: Incremented at each unique DCO message from a node and 451 echoed in the DCO-ACK message. 453 Status: Indicates the completion. Status 0 is defined as unqualified 454 acceptance in this specification. The remaining status values are 455 reserved as rejection codes. 457 DODAGID (optional): 128-bit unsigned integer set by a DODAG root that 458 uniquely identifies a DODAG. This field is only present when the 'D' 459 flag is set. This field is typically only present when a local 460 RPLInstanceID is in use, in order to identify the DODAGID that is 461 associated with the RPLInstanceID. When a global RPLInstanceID is in 462 use, this field need not be present. Unassigned bits of the DCO-Ack 463 Base are reserved. They MUST be set to zero on transmission and MUST 464 be ignored on reception. 466 4.3.5. Secure DCO-ACK 468 A Secure DCO-ACK message follows the format in [RFC6550] figure 7, 469 where the base message format is the DCO-ACK message shown in 470 Figure 4. 472 4.4. Other considerations 474 4.4.1. Dependent Nodes invalidation 476 Current RPL [RFC6550] does not provide a mechanism for route 477 invalidation for dependent nodes. This document allows the dependent 478 nodes invalidation. Dependent nodes will generate their respective 479 DAOs to update their paths, and the previous route invalidation for 480 those nodes should work in the similar manner described for switching 481 node. The dependent node may set the I-bit in the transit 482 information option as part of regular DAO so as to request 483 invalidation of previous route from the common ancestor node. 485 4.4.2. NPDAO and DCO in the same network 487 Even with the changed semantics, the current NPDAO mechanism in 488 [RFC6550] can still be used, for example, when the route lifetime 489 expiry of the target happens or when the node simply decides to 490 gracefully terminate the RPL session on graceful node shutdown. 491 Moreover a deployment can have a mix of nodes supporting the proposed 492 DCO and the existing NPDAO mechanism. 494 4.4.3. DCO with multiple preferred parents 496 [RFC6550] allows a node to select multiple preferred parents for 497 route establishment. DCO can be used for route invalidation in such 498 cases as well. There are no changes required in the DCO messaging to 499 support multiple preferred parents and DCO should work seemlessly in 500 such scenarios. 502 5. Acknowledgements 504 Many thanks to Cenk Gundogan, Simon Duquennoy, Georgios 505 Papadopoulous, Peter Van Der Stok for their review and comments. 507 6. IANA Considerations 509 IANA is requested to allocate new ICMPv6 RPL control codes in RPL 510 [RFC6550] for DCO and DCO-ACK messages. 512 +------+---------------------------------------------+--------------+ 513 | Code | Description | Reference | 514 +------+---------------------------------------------+--------------+ 515 | 0x04 | Destination Cleanup Object | This | 516 | | | document | 517 | 0x05 | Destination Cleanup Object Acknowledgement | This | 518 | | | document | 519 | 0x84 | Secure Destination Cleanup Object | This | 520 | | | document | 521 | 0x85 | Secure Destination Cleanup Object | This | 522 | | Acknowledgement | document | 523 +------+---------------------------------------------+--------------+ 525 IANA is requested to allocate bit 18 in the Transit Information 526 Option defined in RPL [RFC6550] section 6.7.8 for Invalidate route 527 'I' flag. 529 7. Security Considerations 531 The document adds new messages (DCO, DCO-ACK) which are similar to 532 existing RPL messages such as DAO, DAO-ACK. Secure versions of DCO 533 and DCO-ACK are added similar to other RPL messages (such as DAO, 534 DAO-ACK). For general RPL security considerations, see [RFC6550]. 536 8. References 538 8.1. Normative References 540 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 541 Requirement Levels", BCP 14, RFC 2119, 542 DOI 10.17487/RFC2119, March 1997, 543 . 545 [RFC6550] Winter, T., Ed., Thubert, P., Ed., Brandt, A., Hui, J., 546 Kelsey, R., Levis, P., Pister, K., Struik, R., Vasseur, 547 JP., and R. Alexander, "RPL: IPv6 Routing Protocol for 548 Low-Power and Lossy Networks", RFC 6550, 549 DOI 10.17487/RFC6550, March 2012, 550 . 552 8.2. Informative References 554 [I-D.ietf-6tisch-architecture] 555 Thubert, P., "An Architecture for IPv6 over the TSCH mode 556 of IEEE 802.15.4", draft-ietf-6tisch-architecture-14 (work 557 in progress), April 2018. 559 Appendix A. Example DCO Messaging 561 In Figure 1, node (D) switches its parent from (B) to (C). The 562 sequence of actions is as follows: 564 1. Node D switches its parent from node B to node C 565 2. D sends a regular DAO(tgt=D,pathseq=x+1,I_flag=1) in the updated 566 path to C 567 3. C checks for routing entry on behalf of D, since it cannot find 568 an entry on behalf of D it creates a new routing entry and 569 forwards the reachability information of the target D to H in a 570 DAO. 571 4. Similar to C, node H checks for routing entry on behalf of D, 572 cannot find an entry and hence creates a new routing entry and 573 forwards the reachability information of the target D to H in a 574 DAO. 575 5. Node A receives the DAO, and checks for routing entry on behalf 576 of D. It finds a routing entry but checks that the next hop for 577 target D is now changed. Node A checks the I_flag and generates 578 DCO(tgt=D,pathseq=pathseq(DAO)) to previous next hop for target D 579 which is G. Subsequently, A updates the routing entry and 580 forwards the reachability information of target D upstream 581 DAO(tgt=D,pathseq=x+1,I_flag=x) (the I_flag carries no 582 significance henceforth). 583 6. Node G receives the DCO and invalidates routing entry of target D 584 and forwards the (un)reachability information downstream to B. 585 7. Similarly, B processes the DCO by invalidating the routing entry 586 of target D and forwards the (un)reachability information 587 downstream to D. 588 8. D ignores the DCO since the target is itself. 589 9. The propagation of the DCO will stop at any node where the node 590 does not have an routing information associated with the target. 591 If the routing information is present and the pathseq associated 592 is not older, then still the DCO is dropped. 594 Authors' Addresses 596 Rahul Arvind Jadhav (editor) 597 Huawei 598 Kundalahalli Village, Whitefield, 599 Bangalore, Karnataka 560037 600 India 602 Phone: +91-080-49160700 603 Email: rahul.ietf@gmail.com 604 Pascal Thubert 605 Cisco Systems, Inc 606 Building D 607 45 Allee des Ormes - BP1200 608 MOUGINS - Sophia Antipolis 06254 609 France 611 Phone: +33 497 23 26 34 612 Email: pthubert@cisco.com 614 Rabi Narayan Sahoo 615 Huawei 616 Kundalahalli Village, Whitefield, 617 Bangalore, Karnataka 560037 618 India 620 Phone: +91-080-49160700 621 Email: rabinarayans@huawei.com 623 Zhen Cao 624 Huawei 625 W Chang'an Ave 626 Beijing 627 China 629 Email: zhencao.ietf@gmail.com