idnits 2.17.00 (12 Aug 2021) /tmp/idnits30856/draft-ietf-roll-useofrplinfo-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, 2016) is 2252 days in the past. Is this intentional? Checking references for intended status: Informational ---------------------------------------------------------------------------- == Outdated reference: draft-ietf-6tisch-architecture has been published as RFC 9030 Summary: 0 errors (**), 0 flaws (~~), 2 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 ROLL Working Group M. Robles 3 Internet-Draft Ericsson 4 Intended status: Informational M. Richardson 5 Expires: September 22, 2016 SSW 6 P. Thubert 7 Cisco 8 March 21, 2016 10 When to use RFC 6553, 6554 and IPv6-in-IPv6 11 draft-ietf-roll-useofrplinfo-02 13 Abstract 15 This document states different cases where RFC 6553, RFC 6554 and 16 IPv6-in-IPv6 encapsulation is required to set the bases to help 17 defining the compression of RPL routing information in LLN 18 environments. 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 http://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, 2016. 37 Copyright Notice 39 Copyright (c) 2016 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 (http://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 . . . . . . . . . . . . . . . . . . . . . . . . 3 55 2. Terminology and Requirements Language . . . . . . . . . . . . 3 56 3. Sample/reference topology . . . . . . . . . . . . . . . . . . 3 57 4. Use cases . . . . . . . . . . . . . . . . . . . . . . . . . . 6 58 5. Storing mode . . . . . . . . . . . . . . . . . . . . . . . . 8 59 5.1. Example of Flow from RPL-aware-leaf to root . . . . . . . 8 60 5.2. Example of Flow from root to RPL-aware-leaf . . . . . . . 9 61 5.3. Example of Flow from root to not-RPL-aware-leaf . . . . . 10 62 5.4. Example of Flow from not-RPL-aware-leaf to root . . . . . 10 63 5.5. Example of Flow from RPL-aware-leaf to Internet . . . . . 11 64 5.6. Example of Flow from Internet to RPL-aware-leaf . . . . . 11 65 5.7. Example of Flow from not-RPL-aware-leaf to Internet . . . 12 66 5.8. Example of Flow from Internet to non-RPL-aware-leaf . . . 13 67 5.9. Example of Flow from RPL-aware-leaf to RPL-aware-leaf . . 14 68 5.10. Example of Flow from RPL-aware-leaf to non-RPL-aware-leaf 15 69 5.11. Example of Flow from not-RPL-aware-leaf to RPL-aware-leaf 17 70 5.12. Example of Flow from not-RPL-aware-leaf to not-RPL-aware- 71 leaf . . . . . . . . . . . . . . . . . . . . . . . . . . 18 72 6. Non Storing mode . . . . . . . . . . . . . . . . . . . . . . 19 73 6.1. Example of Flow from RPL-aware-leaf to root . . . . . . . 19 74 6.2. Example of Flow from root to RPL-aware-leaf . . . . . . . 20 75 6.3. Example of Flow from root to not-RPL-aware-leaf . . . . . 20 76 6.4. Example of Flow from not-RPL-aware-leaf to root . . . . . 21 77 6.5. Example of Flow from RPL-aware-leaf to Internet . . . . . 21 78 6.6. Example of Flow from Internet to RPL-aware-leaf . . . . . 22 79 6.7. Example of Flow from not-RPL-aware-leaf to Internet . . . 23 80 6.8. Example of Flow from Internet to non-RPL-aware-leaf . . . 24 81 6.9. Example of Flow from RPL-aware-leaf to RPL-aware-leaf . . 25 82 6.10. Example of Flow from RPL-aware-leaf to not-RPL-aware-leaf 26 83 6.11. Example of Flow from not-RPL-aware-leaf to RPL-aware-leaf 27 84 6.12. Example of Flow from not-RPL-aware-leaf to not-RPL-aware- 85 leaf . . . . . . . . . . . . . . . . . . . . . . . . . . 27 86 7. Problem statement . . . . . . . . . . . . . . . . . . . . . . 28 87 8. 6LoRH Compression cases . . . . . . . . . . . . . . . . . . . 29 88 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 29 89 10. Security Considerations . . . . . . . . . . . . . . . . . . . 29 90 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 29 91 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 29 92 12.1. Normative References . . . . . . . . . . . . . . . . . . 29 93 12.2. Informative References . . . . . . . . . . . . . . . . . 30 94 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 30 96 1. Introduction 98 RPL [RFC6550] is a routing protocol for constrained networks. RFC 99 6553 [RFC6553] defines the "RPL option", carried within the IPv6 Hop- 100 by-Hop header to quickly identify inconsistencies in the routing 101 topology. RFC 6554 [RFC6554] defines the "RPL Source Route Header", 102 an IPv6 Extension Header to deliver datagrams within a RPL routing 103 domain. 105 Several discussions in the ROLL/6lo/6TiSCH Mailing Lists took place 106 focusing in the definition of how to compress RPL Information in 107 constrained environment. ROLL Virtual Interim Meeting (02-2015) 108 concluded that there is a need to define how to use [RFC6553], 109 [RFC6554] and IPv6-in-IPv6 encapsulation to be able to set the 110 correct environment for compression A Routing Header Dispatch for 111 6LoWPAN (6LoRH) [I-D.ietf-6lo-routing-dispatch] defines a method to 112 compress RPL Option information and Routing Header type 3 (RFC6554) 113 and an efficient IP-in-IP technique. Uses cases proposed for the 114 [Second6TischPlugtest] involving 6loRH: When the packet travel inside 115 the RPL domain, the IP in IP 6LoRH is not be presented in the packet 116 and when the packet travel outside a RPL domain, Ip in IP 6LoRH is 117 present in the packet. 119 This document is going to be focused in data plane messages and how 120 can be transmitted within the above mentioned RFCs. 122 2. Terminology and Requirements Language 124 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 125 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 126 document are to be interpreted as described in RFC 2119 [RFC2119]. 128 Terminology defined in [RFC7102] 130 3. Sample/reference topology 132 A RPL network is composed of a 6LBR (6LoWPAN Border Router), Backbone 133 Router (6BBR), 6LR (6LoWPAN Router) and 6LN (6LoWPAN Node) as leaf 134 logically organized in a DODAG structure (Destination Oriented 135 Directed Acyclic Graph). 137 RPL defines the RPL Control messages (control plane ), a new ICMPv6 138 message with Type 155. DIS, DIO and DAO messages are all RPL Control 139 messages but with different Code values. 141 RPL supports two modes of Downward traffic: in storing mode, it is 142 fully stateful or an in non-storing, it is fully source routed. A 143 RPL Instance is either fully storing or fully non-storing, i.e. a RPL 144 Instance with a combination of storing and non-storing nodes is not 145 supported with the current specifications. 147 +--------------+ 148 | Upper Layers | 149 | | 150 +--------------+ 151 | RPL | 152 | | 153 +--------------+ 154 | ICMPv6 | 155 | | 156 +--------------+ 157 | IPv6 | 158 | | 159 +--------------+ 160 | 6LoWPAN | 161 | | 162 +--------------+ 163 | PHY-MAC | 164 | | 165 +--------------+ 167 Figure 1: RPL Stack. 169 +---------+ 170 +---+Internet | 171 | +---------+ 172 | 173 +----+--+ 174 |DODAG | 175 +---------+Root +----------+ 176 | |6LBR | | 177 | +----+--+ | 178 | | | 179 | | | 180 ... ... ... 181 | | | 182 +-----+-+ +--+---+ +--+---+ 183 |6LR | | | | | 184 +-----+ | | | | | 185 | | | | | | +------+ 186 | +-----+-+ +-+----+ +-+----+ | 187 | | | | | 188 | | | | | 189 | | | | | 190 +-+---+ +-+---+ +--+--+ +- --+ +---+-+ 191 |Leaf | | | | | | | | | 192 |6LN | | | | | | | | | 193 +-----+ +-----+ +-----+ +----+ +-----+ 195 Figure 2: A reference RPL Topology. 197 This document is in part motivated by the work that is ongoing at the 198 6TiSCH working group. The 6TiSCH architecture 199 [I-D.ietf-6tisch-architecture] draft explains the network 200 architecture of a 6TiSCH network. This architecture is used for the 201 remainder of this document. 203 The scope of the 6TiSCH Architecture is a Backbone Link that 204 federates multiple LLNs (mesh) as a single IPv6 Multi-Link Subnet. 205 Each LLN in the subnet is anchored at a Backbone Router (6BBR). The 206 Backbone Routers interconnect the LLNs over the Backbone Link and 207 emulate that the LLN nodes are present on the Backbone thus creating 208 a so-called: Multi-Link Subnet. An LLN node can move freely from an 209 LLN anchored at a Backbone Router to another LLN anchored at the same 210 or a different Backbone Router inside the Multi-Link Subnet and 211 conserve its addresses. 213 | 214 +-----+ 215 | | Border Router to the RPL domain 216 | | (may be a RPL virtual root) 217 +-----+ 218 | 219 | Backbone 220 +-------------------+-------------------+ 221 | | | 222 +-----+ +-----+ +-----+ 223 | | Backbone | | Backbone | | Backbone 224 | | router | | router | | router 225 +|---|+ +-|||-+ +-[_]-+ 226 | | PCI-exp / | \ USB | Ethernet 227 ( ) ( ) ( )( )( ) (6LBR == RPL DODAG root) 228 o o o o o o o o o o o o 229 o o o o o o o o o o o o o o o o 230 o o o o o o o o o o 6LR == RPL router) o o 231 o o o o o o o z 232 o o o o o o (6LoWPAN Host) 234 <----------------------- RPL Instance ------------------------> 236 Figure 3: RPL domain architecture 238 4. Use cases 240 In data plane context a combination of RFC6553, RFC6554 and IPv6-in- 241 IPv6 encapsulation is going to be analyzed for the following traffic 242 flows: 244 -Flow from RPL-aware-leaf to root 246 -Flow from root to RPL-aware-leaf 248 -Flow from not-RPL-aware-leaf to root 250 -Flow from root to not-RPL-aware-leaf 252 -Flow from RPL-aware-leaf to Internet 254 -Flow from Internet to RPL-aware-leaf 256 -Flow from not-RPL-aware-leaf to Internet 258 -Flow from Internet to not-RPL-aware-leaf 259 -Flow from RPL-aware-leaf to RPL-aware-leaf 261 -Flow from RPL-aware-leaf to not-RPL-aware-leaf 263 -Flow from not-RPL-aware-leaf to RPL-aware-leaf 265 -Flow from not-RPL-aware-leaf to not-RPL-aware-leaf 267 This document assumes a rule that a Header cannot be inserted or 268 removed on the fly inside an IPv6 packet that is being routed. 270 - This means that an intermediate router that needs to add a header 271 must encapsulate the packet in an outer IP header where the new 272 header can be placed. 274 - This also means that a Header can only be removed by an 275 intermediate router if it is placed in an encapsulating IPv6 Header, 276 and in that case, the whole encapsulating header must be removed - a 277 replacement may be added. 279 This document recognizes that some headers such as a Routing Header 280 or a Hop-by-Hop header may be modified by routers on the path of the 281 packet without the need to add to remove an encapsulating header. 283 The RPL RH and the RPL option are mutable but recoverable . 285 RPI should be present in every single RPL data packet. There is an 286 exception in non-storing mode, when a packet is going down from the 287 route: the entire route is written, so there are no loops of 288 confusion about which table to use (purpose of instanceID). 290 The applicability for storing (RPL-SN) and non-Storing (RPL-NSN) 291 modes for the previous cases is showed as follows: 293 +---------------+------+------+---------+--------+--------+---------+ 294 | Use Case | RPL- | RPL- | RPL-SN | RPL- | RPL- | RPL-NSN | 295 | | SN | SN | IP-in- | NSN | NSN | IP-in- | 296 | | RPI | RH3 | IP | RPI | RH3 | IP | 297 | | (RFC | (RFC | | | | | 298 | | 6553 | 6554 | | | | | 299 | | ) | ) | | | | | 300 +---------------+------+------+---------+--------+--------+---------+ 301 | RPL-aware- | Yes | No | No | Yes | No | No | 302 | leaf to root | | | | | | | 303 | root to RPL- | Yes | No | No | Yes | Yes | No | 304 | aware-leaf | | | | | | | 305 | not-RPL- | Yes | No | Yes | Yes | No | Yes | 306 | aware-leaf to | | | | | | | 307 | root | | | | | | | 308 | root to not- | Yes | No | Yes | Yes | Yes | Yes | 309 | RPL-aware- | | | | | | | 310 | leaf | | | | | | | 311 | RPL-aware- | Yes | No | Yes | Yes | No | Yes | 312 | leaf to | | | | | | | 313 | Internet | | | | | | | 314 | Internet to | Yes | No | Yes | Yes | Yes | Yes | 315 | RPL-aware- | | | | | | | 316 | leaf | | | | | | | 317 | not-RPL- | Yes | No | Yes | Yes | No | Yes | 318 | aware-leaf to | | | | | | | 319 | Internet | | | | | | | 320 | Internet to | Yes | No | Yes | Yes | Yes | Yes | 321 | not-RPL- | | | | | | | 322 | aware-leaf | | | | | | | 323 | RPL-aware- | Yes | No | No | Yes | Yes | Yes | 324 | leaf to RPL- | | | | | | | 325 | aware-leaf | | | | | | | 326 | RPL-aware- | Yes | No | Yes | Yes | Yes | Yes | 327 | leaf to not- | | | | | | | 328 | RPL-aware- | | | | | | | 329 | leaf | | | | | | | 330 | not-RPL- | Yes | No | Yes | Yes | Yes | Yes | 331 | aware-leaf to | | | | | | | 332 | RPL-aware- | | | | | | | 333 | leaf | | | | | | | 334 | not-RPL- | Yes | No | Yes | Yes | Yes | Yes | 335 | aware-leaf to | | | | | | | 336 | not-RPL- | | | | | | | 337 | aware-leaf | | | | | | | 338 +---------------+------+------+---------+--------+--------+---------+ 340 Table 1: Posibility to transmit in Storing or Non-Storing mode: RPI, 341 RH3, IP-in-IP encapsulation 343 5. Storing mode 345 5.1. Example of Flow from RPL-aware-leaf to root 347 As states in Section 16.2 of [RFC6550] a RPL-aware-leaf node does 348 not generally issue DIO messages, a leaf node accepts DIO messages 349 (In inconsistency a leaf node generates DIO with infinite rank, to 350 fix it). It may issue DAO and DIS messages though it generally 351 ignores DAO and DIS messages. 353 In storing mode is suitable the use of RFC 6553 to send RPL 354 Information through HBH field checking the routing table to find out 355 where to send the message. 357 In this case the flow comprises: 359 RPL-aware-leaf (6LN) --> 6LR --> 6LR,... --> root (6LBR) Note: In 360 this document 6LRs, 6LBR are always full-fledge RPL routers 362 The 6LN inserts the RPI header, and send the packet to 6LR which 363 decrement the rank in RPI and send the packet up. When the packet 364 arrives to 6LBR, the RPI is removed and the packet is processed. 366 +-------------------+-----+------+------+ 367 | Header | 6LN | 6LR | 6LBR | 368 +-------------------+-----+------+------+ 369 | Inserted headers | RPI | -- | -- | 370 | Removed headers | -- | -- | RPI | 371 | Re-added headers | -- | -- | -- | 372 | Modified headers | -- | RPI | -- | 373 | Untouched headers | -- | -- | -- | 374 +-------------------+-----+------+------+ 376 Storing: Summary of the use of headers from RPL-aware-leaf to root 378 5.2. Example of Flow from root to RPL-aware-leaf 380 In this case the flow comprises: 382 root (6LBR)--> 6LR --> RPL-aware-leaf (6LN) 384 In this case the 6LBR insert RPI header and send the packet down, the 385 6LR is going to increment the rank in RPI (examines instanceID for 386 multiple tables), the packet is processed in 6LN and RPI removed. 388 +-------------------+------+-------+------+ 389 | Header | 6LBR | 6LR | 6LN | 390 +-------------------+------+-------+------+ 391 | Inserted headers | RPI | -- | -- | 392 | Removed headers | -- | -- | RPI | 393 | Re-added headers | -- | -- | -- | 394 | Modified headers | -- | RPI | -- | 395 | Untouched headers | -- | -- | -- | 396 +-------------------+------+-------+------+ 398 Storing: Summary of the use of headers from root to RPL-aware-leaf 400 5.3. Example of Flow from root to not-RPL-aware-leaf 402 In this case the flow comprises: 404 root (6LBR)--> 6LR --> not-RPL-aware-leaf (6LN) 406 It includes IPv6-in-IPv6 encapsulation to transmit information not 407 related with the RPL domain. In the 6LBR the RPI header is inserted 408 into an IPv6-in-IPv6 header addressed to the last 6LR, which removes 409 the header before pass the packet to the IPv6 node. 411 +-------------------+-------------------+-------------------+------+ 412 | Header | 6LBR | 6LR | IPv6 | 413 +-------------------+-------------------+-------------------+------+ 414 | Inserted headers | IPv6-in-IPv6(RPI) | -- | -- | 415 | Removed headers | -- | IPv6-in-IPv6(RPI) | -- | 416 | Re-added headers | -- | -- | -- | 417 | Modified headers | -- | -- | -- | 418 | Untouched headers | -- | -- | -- | 419 +-------------------+-------------------+-------------------+------+ 421 Storing: Summary of the use of headers from root to not-RPL-aware- 422 leaf 424 5.4. Example of Flow from not-RPL-aware-leaf to root 426 In this case the flow comprises: 428 not-RPL-aware-leaf (6LN) --> 6LR --> root (6LBR) 430 When the packet arrives from IPv6 node to 6LR. This router insert 431 the RPI encapsuladed in a IPv6-in-IPv6 header addressed to the root. 432 The root removes the header and process the packet 434 +-------------------+------+--------------------+-------------------+ 435 | Header | IPv6 | 6LR | 6LBR | 436 +-------------------+------+--------------------+-------------------+ 437 | Inserted headers | -- | IPv6-in-IPv6(RPI) | -- | 438 | Removed headers | -- | -- | IPv6-in-IPv6(RPI) | 439 | Re-added headers | -- | -- | -- | 440 | Modified headers | -- | -- | -- | 441 | Untouched headers | -- | -- | -- | 442 +-------------------+------+--------------------+-------------------+ 444 Storing: Summary of the use of headers from not-RPL-aware-leaf to 445 root 447 5.5. Example of Flow from RPL-aware-leaf to Internet 449 RPL information from RFC 6553 should not go out to Internet. The 450 router should take this information out before send the packet to 451 Internet. The HBH Option is going to be analyzed in each node to the 452 root. 454 In this case the flow comprises: 456 RPL-aware-leaf (6LN) --> 6LR --> root (6LBR) --> Internet 458 6LN insert RPI in a IPv6-in-IPv6 in a outer header, and send the 459 packet to 6LR, which modified the rank in the RPI. When the packet 460 arrives to 6LBR, the RPI is removed. 462 +----------+-------------------+-----+-------------------+----------+ 463 | Header | 6LN | 6LR | 6LBR | Internet | 464 +----------+-------------------+-----+-------------------+----------+ 465 | Inserted | IPv6-in-IPv6(RPI) | -- | -- | -- | 466 | headers | | | | | 467 | Removed | -- | -- | IPv6-in-IPv6(RPI) | -- | 468 | headers | | | | | 469 | Re-added | -- | -- | -- | -- | 470 | headers | | | | | 471 | Modified | -- | RPI | -- | -- | 472 | headers | | | | | 473 | Untouche | -- | -- | -- | -- | 474 | d | | | | | 475 | headers | | | | | 476 +----------+-------------------+-----+-------------------+----------+ 478 Storing: Summary of the use of headers from RPL-aware-leaf to 479 Internet 481 5.6. Example of Flow from Internet to RPL-aware-leaf 483 In this case the flow comprises: 485 Internet --> root (6LBR) --> 6LR --> RPL-aware-leaf (6LN) 487 When the packet arrives from Internet to 6LBR the RPI header is added 488 in a outer IPv6-in-IPv6 header and send to 6LR, which modifies the 489 rank in the RPI. When the packet arrives 6LN the RPI header is 490 removed and the packet processed. 492 +----------+----------+-------------------+-----+-------------------+ 493 | Header | Internet | 6LBR | 6LR | 6LN | 494 +----------+----------+-------------------+-----+-------------------+ 495 | Inserted | -- | IPv6-in-IPv6(RPI) | -- | -- | 496 | headers | | | | | 497 | Removed | -- | -- | -- | IPv6-in-IPv6(RPI) | 498 | headers | | | | | 499 | Re-added | -- | -- | -- | -- | 500 | headers | | | | | 501 | Modified | -- | -- | RPI | -- | 502 | headers | | | | | 503 | Untouche | -- | -- | -- | -- | 504 | d | | | | | 505 | headers | | | | | 506 +----------+----------+-------------------+-----+-------------------+ 508 Storing: Summary of the use of headers from Internet to RPL-aware- 509 leaf 511 5.7. Example of Flow from not-RPL-aware-leaf to Internet 513 In this case the flow comprises: 515 not-RPL-aware-leaf (6LN) = IPv6 node --> 6LR --> root (6LBR) --> 516 Internet 518 In the IPv6 node the flow label is assumed to be zero, the packet is 519 transmited to 6LR which encapsule the RPI header in an outer IPv6-in- 520 IPv6 header and send to 6LBR, which removes this header and send the 521 packet to Internet and might set the flow label field. 523 +----------+-----+-------------------+-------------------+----------+ 524 | Header | IPv | 6LR | 6LBR | Internet | 525 | | 6 | | | | 526 +----------+-----+-------------------+-------------------+----------+ 527 | Inserted | -- | IPv6-in-IPv6(RPI) | -- | -- | 528 | headers | | | | | 529 | Removed | -- | -- | IPv6-in-IPv6(RPI) | -- | 530 | headers | | | | | 531 | Re-added | -- | -- | -- | -- | 532 | headers | | | | | 533 | Modified | -- | -- | -- | -- | 534 | headers | | | | | 535 | Untouche | -- | -- | -- | -- | 536 | d | | | | | 537 | headers | | | | | 538 +----------+-----+-------------------+-------------------+----------+ 540 Storing: Summary of the use of headers from not-RPL-aware-leaf to 541 Internet 543 5.8. Example of Flow from Internet to non-RPL-aware-leaf 545 In this case the flow comprises: 547 Internet --> root (6LBR) --> 6LR --> not-RPL-aware-leaf (6LN) 549 6LBR get the packet from Internet and add a RPI header encapsulated 550 in a IPv6-in-IPv6 header addressed to 6LR and send the packet down. 551 The flow label is set to zero on inner IP. The last 6LR removes the 552 RPI header. The IPv6 node might set the flow label since may arrive 553 with zero value. The RPI should be in IP-in-IP header. 555 +----------+---------+-------------------+-------------------+------+ 556 | Header | Interne | 6LBR | 6LR | IPv6 | 557 | | t | | | | 558 +----------+---------+-------------------+-------------------+------+ 559 | Inserted | -- | IPv6-in-IPv6(RPI) | -- | -- | 560 | headers | | | | | 561 | Removed | -- | -- | IPv6-in-IPv6(RPI) | -- | 562 | headers | | | | | 563 | Re-added | -- | -- | -- | -- | 564 | headers | | | | | 565 | Modified | -- | -- | -- | -- | 566 | headers | | | | | 567 | Untouche | -- | -- | -- | -- | 568 | d | | | | | 569 | headers | | | | | 570 +----------+---------+-------------------+-------------------+------+ 572 Storing: Summary of the use of headers from Internet to non-RPL- 573 aware-leaf 575 5.9. Example of Flow from RPL-aware-leaf to RPL-aware-leaf 577 In [RFC6550] RPL allows a simple one-hop P2P optimization for both 578 storing and non-storing networks. A node may send a P2P packet 579 destined to a one-hop neighbor directly to that node. Section 9 in 580 [RFC6550]. 582 In this case the flow comprises: 584 6LN --> 6LR --> common parent (6LR) --> 6LR --> 6LN 586 This case is assumed in the same RPL Domain. In the common parent, 587 the direction of RPI is changed (from increasing to decreasing the 588 rank). 590 +-------------+-------+---------------+---------------+-----+-------+ 591 | Header | 6LN | 6LR | 6LR (common | 6LR | 6LN | 592 | | src | | parent) | | dst | 593 +-------------+-------+---------------+---------------+-----+-------+ 594 | Inserted | RPI | -- | -- | -- | -- | 595 | headers | | | | | | 596 | Removed | -- | -- | -- | -- | RPI | 597 | headers | | | | | | 598 | Re-added | -- | -- | -- | -- | -- | 599 | headers | | | | | | 600 | Modified | -- | RPI | RPI | -- | -- | 601 | headers | | (decreasing | (increasing | | | 602 | | | rank) | rank) | | | 603 | Untouched | -- | -- | -- | -- | -- | 604 | headers | | | | | | 605 +-------------+-------+---------------+---------------+-----+-------+ 607 Storing: Summary of the use of headers for RPL-aware-leaf to RPL- 608 aware-leaf 610 5.10. Example of Flow from RPL-aware-leaf to non-RPL-aware-leaf 612 In this case the flow comprises: 614 6LN --> 6LR --> common parent (6LR) --> 6LR --> not-RPL-aware 6LN 616 Somehow, the sender has to know that the receiver is not RPL aware, 617 and needs to know 6LR, and not even the root knows where the 6LR is 618 (in storing mode). 620 This case FAILS. 622 Possible solutions, which are not mutually exclusive: 624 1 - An IPv6-in-IPv6 header can be used on a hop-by-hop basis, using 625 either link-local addresses, or even IPv6 Global Unicast Addresses, 626 but each IPv6-in-IPv6 header needs to be added/removed at each hop. 628 ,---. 629 / \ 630 ( 6LR2 ) IP3,RPI,IP,ULP 631 ,-" . 632 ,-" `---' `. 633 ,' `. 634 ,---. ,-" `,---. 635 / +" / \ 636 ( 6LR1 ) Remove the IP3,RPI( 6LR3 ) 637 \ / \ / 638 /---' `---'| 639 / IP2,RPI,IP,ULP \ 640 / | 641 / \ 642 ,---+-. | 643 / \ +--+----+ 644 ( 6LN ) | | 645 \ / | IPv6 | IP,ULP 646 `-----' | | 647 IP1,RPI,IP,ULP +-------+ 649 Figure 4: Solution IPv6-in-IPv6 in each hop 651 2- If the definition of the Option Type field of RPL Option '01' were 652 changed so that it isn't a "discard if not recognized". This change 653 is an incompatible on-the-wire change. However, this change could 654 perhaps be done with the updated 6LoRH compression work, as that is 655 also an incompatible on-the-wire change for which we presently have 656 no way to signal. 658 +-------+------------+------------+-------------+-------------+-----+ 659 | Heade | 6LN | 6LR | 6LR (common | 6LR | IPv | 660 | r | | | parent) | | 6 | 661 +-------+------------+------------+-------------+-------------+-----+ 662 | Inser | IPv6-in- | -- | -- | -- | -- | 663 | ted h | IPv6(RPI) | | | | | 664 | eader | | | | | | 665 | s | | | | | | 666 | Remov | -- | -- | -- | IPv6-in- | -- | 667 | ed he | | | | IPv6(RPI) | | 668 | aders | | | | | | 669 | Re- | -- | -- | -- | -- | -- | 670 | added | | | | | | 671 | heade | | | | | | 672 | rs | | | | | | 673 | Modif | -- | IPv6-in- | IPv6-in- | -- | -- | 674 | ied h | | IPv6(RPI) | IPv6(RPI) | | | 675 | eader | | | | | | 676 | s | | | | | | 677 | Untou | -- | -- | -- | -- | -- | 678 | ched | | | | | | 679 | heade | | | | | | 680 | rs | | | | | | 681 +-------+------------+------------+-------------+-------------+-----+ 683 Storing: Summary of the use of headers from RPL-aware-leaf to not- 684 RPL-aware-leaf 686 5.11. Example of Flow from not-RPL-aware-leaf to RPL-aware-leaf 688 In this case the flow comprises: 690 not-RPL-aware 6LN --> 6LR --> common parent (6LR) --> 6LR --> 6LN 692 The 6LR that get the packet from IPv6 node, insert the RPI header 693 encapsulated in IPv6-in-IPv6 header with destination to 6LN, the 694 common parent change the direction of RPI and finally it is removed 695 by 6LN. 697 +-------+----+------------+-------------+-------------+-------------+ 698 | Heade | IP | 6LR | common | 6LR | 6LN | 699 | r | v6 | | parent | | | 700 | | | | (6LR) | | | 701 +-------+----+------------+-------------+-------------+-------------+ 702 | Inser | -- | IPv6-in- | -- | -- | -- | 703 | ted h | | IPv6(RPI) | | | | 704 | eader | | | | | | 705 | s | | | | | | 706 | Remov | -- | -- | -- | -- | IPv6-in- | 707 | ed he | | | | | IPv6(RPI) | 708 | aders | | | | | | 709 | Re- | -- | -- | -- | -- | -- | 710 | added | | | | | | 711 | heade | | | | | | 712 | rs | | | | | | 713 | Modif | -- | -- | IPv6-in- | IPv6-in- | -- | 714 | ied h | | | IPv6(RPI) | IPv6(RPI) | | 715 | eader | | | | | | 716 | s | | | | | | 717 | Untou | -- | -- | -- | -- | -- | 718 | ched | | | | | | 719 | heade | | | | | | 720 | rs | | | | | | 721 +-------+----+------------+-------------+-------------+-------------+ 723 Storing: Summary of the use of headers from not-RPL-aware-leaf to 724 RPL-aware-leaf 726 5.12. Example of Flow from not-RPL-aware-leaf to not-RPL-aware-leaf 728 In this case the flow comprises: 730 not-RPL-aware 6LN (IPv6 node)--> 6LR --> root (6LBR) --> 6LR --> not- 731 RPL-aware 6LN (IPv6 node) 733 The problem to solve is how to indicate where to send the packet when 734 get into LLN. One approach is that the 6LBR should know in which 6LR 735 the IPv6 node is attached. The RPI information is encapsulated in a 736 IPv6-in-IPv6 header, each IPv6-in-IPv6 header needs to be added/ 737 removed at each hop.. 739 +---------+-----+----------------+---------+-----------------+------+ 740 | Header | IPv | 6LR | 6LR | 6LR | IPv6 | 741 | | 6 | | (common | | dst | 742 | | src | | parent) | | | 743 +---------+-----+----------------+---------+-----------------+------+ 744 | Inserte | -- | IPv6-in- | -- | -- | -- | 745 | d | | IPv6(RPI) | | | | 746 | headers | | | | | | 747 | Removed | -- | -- | -- | IPv6-in- | -- | 748 | headers | | | | IPv6(RPI) | | 749 | Re- | -- | -- | -- | -- | -- | 750 | added | | | | | | 751 | headers | | | | | | 752 | Modifie | -- | -- | -- | -- | -- | 753 | d | | | | | | 754 | headers | | | | | | 755 | Untouch | -- | -- | -- | -- | -- | 756 | ed | | | | | | 757 | headers | | | | | | 758 +---------+-----+----------------+---------+-----------------+------+ 760 Storing: Summary of the use of headers from not-RPL-aware-leaf to 761 not-RPL-aware-leaf 763 6. Non Storing mode 765 6.1. Example of Flow from RPL-aware-leaf to root 767 In non-storing mode the leaf node uses Hop-By-Hop option (RFC 6553) 768 to indicate the routing information to send messages to the DODAG 769 root, this message is going to be analyzed in each node until arrive 770 the DODAG root. 772 In this case not need to use IPv6-in-IPv6 because no header is not 773 going to be removed, neither RH3, the flow comprises: 775 RPL-aware-leaf (6LN) --> 6LR --> root (6LBR) 777 This case is the same case as storing mode. 779 +-------------------+-----+------+------+ 780 | Header | 6LN | 6LR | 6LBR | 781 +-------------------+-----+------+------+ 782 | Inserted headers | RPI | -- | -- | 783 | Removed headers | -- | -- | RPI | 784 | Re-added headers | -- | -- | -- | 785 | Modified headers | -- | RPI | -- | 786 | Untouched headers | -- | -- | -- | 787 +-------------------+-----+------+------+ 789 Non Storing: Summary of the use of headers from RPL-aware-leaf to 790 root 792 6.2. Example of Flow from root to RPL-aware-leaf 794 In this case the flow comprises: 796 root (6LBR)--> 6LR --> RPL-aware-leaf (6LN) 798 6LBR might instert RPI header, and the rute is indicated in RH3. 6LR 799 updated RH3 and 6LN remove these headers. 801 +-------------------+----------------------+------+----------+ 802 | Header | 6LBR | 6LR | 6LN | 803 +-------------------+----------------------+------+----------+ 804 | Inserted headers | (optional: RPI), RH3 | -- | -- | 805 | Removed headers | -- | -- | RH3,RPI | 806 | Re-added headers | -- | -- | -- | 807 | Modified headers | -- | RH3 | -- | 808 | Untouched headers | -- | -- | -- | 809 +-------------------+----------------------+------+----------+ 811 Non Storing: Summary of the use of headers from root to RPL-aware- 812 leaf 814 6.3. Example of Flow from root to not-RPL-aware-leaf 816 In this case the flow comprises: 818 root (6LBR)--> 6LR --> not-RPL-aware-leaf (IPv6 node) 820 In 6LBR the RH3 is added, and modified in 6LR where is fully 821 consumed, but left there. If the RPI is present, the IPv6 node which 822 does not understand it will drop it. To avoid it the RPI should be 823 removed before reach IPv6 node or it is recommended that RPI be 824 omitted. An IPv6-in-IPv6 header should be necessary in this case. 825 The DAO from 6LR about IPv6 could say if that the final IPv6 is not 826 RPL (RPI) capable. 828 +-------------------+------+-----+------+ 829 | Header | 6LBR | 6LR | IPv6 | 830 +-------------------+------+-----+------+ 831 | Inserted headers | RH3 | -- | -- | 832 | Removed headers | -- | -- | -- | 833 | Re-added headers | -- | -- | -- | 834 | Modified headers | -- | RH3 | -- | 835 | Untouched headers | -- | -- | -- | 836 +-------------------+------+-----+------+ 838 Non Storing: Summary of the use of headers from root to not-RPL- 839 aware-leaf 841 6.4. Example of Flow from not-RPL-aware-leaf to root 843 In this case the flow comprises: 845 IPv6-node --> 6LR1 --> 6LR2 --> root (6LBR) 847 In this case the RPI is encapsulated in the first 6LR, and is not 848 modified in the followings 6LRs. 850 +-------------+------+-------------------+------+-------------------+ 851 | Header | IPv6 | 6LR1 | 6LR2 | 6LBR | 852 +-------------+------+-------------------+------+-------------------+ 853 | Inserted | -- | IPv6-in-IPv6(RPI) | -- | -- | 854 | headers | | | | | 855 | Removed | -- | -- | -- | IPv6-in-IPv6(RPI) | 856 | headers | | | | | 857 | Re-added | -- | -- | -- | -- | 858 | headers | | | | | 859 | Modified | -- | -- | -- | -- | 860 | headers | | | | | 861 | Untouched | -- | IPv6-in-IPv6(RPI) | -- | -- | 862 | headers | | | | | 863 +-------------+------+-------------------+------+-------------------+ 865 Non Storing: Summary of the use of headers from not-RPL-aware-leaf to 866 root 868 6.5. Example of Flow from RPL-aware-leaf to Internet 870 In this case the flow comprises: 872 RPL-aware-leaf (6LN) --> 6LR --> root (6LBR) --> Internet 874 This case requires that the network is awareness of what is external 875 to the LLN. Internet node never sees RPI or IPv6-in-IPv6 header. In 876 the 6LBR the flow label is computed if it is zero. RPI remains 877 unmodified. 879 +----------+-------------------+-----+-------------------+----------+ 880 | Header | 6LN | 6LR | 6LBR | Internet | 881 +----------+-------------------+-----+-------------------+----------+ 882 | Inserted | IPV6-in-IPv6(RPI) | -- | -- | -- | 883 | headers | | | | | 884 | Removed | -- | -- | IPV6-in-IPv6(RPI) | -- | 885 | headers | | | | | 886 | Re-added | -- | -- | -- | -- | 887 | headers | | | | | 888 | Modified | -- | -- | -- | -- | 889 | headers | | | | | 890 | Untouche | -- | RPI | -- | -- | 891 | d | | | | | 892 | headers | | | | | 893 +----------+-------------------+-----+-------------------+----------+ 895 Non Storing: Summary of the use of headers from RPL-aware-leaf to 896 Internet 898 6.6. Example of Flow from Internet to RPL-aware-leaf 900 In this case the flow comprises: 902 Internet --> root (6LBR) --> 6LR --> RPL-aware-leaf (6LN) 904 If the last RH3 entry is the 6LR, then the IPv6-in-IPv6 will be 905 removed there, if the last entry is the 6LN, then the RH3 will go all 906 the way to the leaf. In 6LBR the flow label should be set to zero. 908 +---------+--------+-------------------------+----------------+-----+ 909 | Header | Intern | 6LBR | 6LR | 6LN | 910 | | et | | | | 911 +---------+--------+-------------------------+----------------+-----+ 912 | Inserte | -- | IPv6-in- | -- | -- | 913 | d | | IPv6(RH3,optional:RPI) | | | 914 | headers | | | | | 915 | Removed | -- | -- | IPv6-in-IPv6 | -- | 916 | headers | | | can be removed | | 917 | | | | if RH3 | | 918 | | | | consumed | | 919 | Re- | -- | -- | -- | -- | 920 | added | | | | | 921 | headers | | | | | 922 | Modifie | -- | -- | IPv6-in- | -- | 923 | d | | | IPv6(RH3) | | 924 | headers | | | | | 925 | Untouch | -- | -- | -- | -- | 926 | ed | | | | | 927 | headers | | | | | 928 +---------+--------+-------------------------+----------------+-----+ 930 Non Storing: Summary of the use of headers from Internet to RPL- 931 aware-leaf 933 6.7. Example of Flow from not-RPL-aware-leaf to Internet 935 In this case the flow comprises: 937 not-RPL-aware-leaf (6LN) --> 6LR --> root (6LBR) --> Internet 939 In this case the flow label is recommended to be zero in the IPv6 940 node. no RPL headers are added in the IPv6 node, since it is ignorant 941 of RPL. Internet node does not see special headers. In 6LBR the 942 flow label is computed if it is zero. 944 +----------+-----+-------------------+-------------------+----------+ 945 | Header | IPv | 6LR | 6LBR | Internet | 946 | | 6 | | | | 947 +----------+-----+-------------------+-------------------+----------+ 948 | Inserted | -- | IPv6-in-IPv6(RPI) | -- | -- | 949 | headers | | | | | 950 | Removed | -- | -- | IPv6-in-IPv6(RPI) | -- | 951 | headers | | | | | 952 | Re-added | -- | -- | -- | -- | 953 | headers | | | | | 954 | Modified | -- | -- | -- | -- | 955 | headers | | | | | 956 | Untouche | -- | -- | -- | -- | 957 | d | | | | | 958 | headers | | | | | 959 +----------+-----+-------------------+-------------------+----------+ 961 Non Storing: Summary of the use of headers from not-RPL-aware-leaf to 962 Internet 964 6.8. Example of Flow from Internet to non-RPL-aware-leaf 966 In this case the flow comprises: 968 Internet --> root (6LBR) --> 6LR --> not-RPL-aware-leaf (6LN) 970 In this case the flow label in 6LBR should be set zero in 6LBR, where 971 RH3 is inserted and optionally RHI. RH3 must end at 6LR. 973 In Non-Storing mode, root knows that the non-RPL-aware-leaf is 974 attached to the parent 6LR, and builds RH3 with IPv6-in-IPv6 with 975 this 6LR as destination. 977 +---------+--------+-------------------------+---------------+------+ 978 | Header | Intern | 6LBR | 6LR | IPv6 | 979 | | et | | | | 980 +---------+--------+-------------------------+---------------+------+ 981 | Inserte | -- | IPv6-in- | -- | -- | 982 | d | | IPv6(RH3,optional:RPI) | | | 983 | headers | | | | | 984 | Removed | -- | -- | IPv6-in- | -- | 985 | headers | | | IPv6(RH3, | | 986 | | | | RPI) | | 987 | Re- | -- | -- | -- | -- | 988 | added | | | | | 989 | headers | | | | | 990 | Modifie | -- | -- | -- | -- | 991 | d | | | | | 992 | headers | | | | | 993 | Untouch | -- | -- | -- | -- | 994 | ed | | | | | 995 | headers | | | | | 996 +---------+--------+-------------------------+---------------+------+ 998 NonStoring: Summary of the use of headers from Internet to non-RPL- 999 aware-leaf 1001 6.9. Example of Flow from RPL-aware-leaf to RPL-aware-leaf 1003 In this case the flow comprises: 1005 6LN --> 6LR --> root (6LBR) --> 6LR --> 6LN 1007 This case comprises in the same RPL Domain. In the 6LN the RPI 1008 header is inserted. In the 6LBR the RH3 header is inserted in a 1009 IPv6-in-IPv6 header and removed at the 6LN destination. 1011 In case of the flow goes from RPL-aware-Leaf to RPL-aware-Leaf, the 1012 RPI should be set in a IP-in-IP header, to avoid repetition of RPI 1013 header. 1015 +---------+---------------+---------------+-----+-------------------+ 1016 | Header | 6LN src | 6LBR | 6LR | 6LN dst | 1017 +---------+---------------+---------------+-----+-------------------+ 1018 | Inserte | IPv6-in- | IPv6-in- | -- | -- | 1019 | d | IPv6(RPI) | IPv6(RH3 to | | | 1020 | headers | | 6LN,RPI) | | | 1021 | | | {IP,payload} | | | 1022 | Removed | -- | -- | -- | IPv6-in- | 1023 | headers | | | | IPv6(RH3,RPI) | 1024 | | | | | {IP,RPI,payload} | 1025 | Re- | -- | -- | -- | -- | 1026 | added | | | | | 1027 | headers | | | | | 1028 | Modifie | -- | -- | -- | -- | 1029 | d | | | | | 1030 | headers | | | | | 1031 | Untouch | -- | -- | -- | -- | 1032 | ed | | | | | 1033 | headers | | | | | 1034 +---------+---------------+---------------+-----+-------------------+ 1036 Non Storing: Summary of the use of headers for RPL-aware-leaf to RPL- 1037 aware-leaf 1039 6.10. Example of Flow from RPL-aware-leaf to not-RPL-aware-leaf 1041 In this case the flow comprises: 1043 6LN --> 6LR --> root (6LBR) --> 6LR --> not-RPL-aware 6LN 1045 The 6LN insert the RPI in a IPv6-in-IPv6 header, which is addressed 1046 to 6LBR. The 6LBR remove this RPI header and insert a RH3 header 1047 with an optional RPI. These headers are removed by 6LR before send 1048 the packet to the IPv6 node. 1050 +------------+-------------------+-------------+-------------+------+ 1051 | Header | 6LN | 6LBR | 6LR | IPv6 | 1052 +------------+-------------------+-------------+-------------+------+ 1053 | Inserted | IPv6-in-IPv6(RPI) | IPIP(RH3, | -- | -- | 1054 | headers | | opt RPI) | | | 1055 | Removed | -- | IPIP(RPI) | IPIP(RH3, | -- | 1056 | headers | | | opt RPI) | | 1057 | Re-added | -- | -- | -- | -- | 1058 | headers | | | | | 1059 | Modified | -- | -- | -- | -- | 1060 | headers | | | | | 1061 | Untouched | -- | -- | -- | -- | 1062 | headers | | | | | 1063 +------------+-------------------+-------------+-------------+------+ 1065 Non Storing: Summary of the use of headers from RPL-aware-leaf to 1066 not-RPL-aware-leaf 1068 6.11. Example of Flow from not-RPL-aware-leaf to RPL-aware-leaf 1070 In this case the flow comprises: 1072 not-RPL-aware 6LN --> 6LR --> root (6LBR) --> 6LR --> 6LN 1074 RPI is added in 6LR until the root and then removed, then RH3 is 1075 added and removed at destination. 1077 +-------------------+------+------------+-----------+------------+ 1078 | Header | IPv6 | 6LR | 6LBR | 6LN | 1079 +-------------------+------+------------+-----------+------------+ 1080 | Inserted headers | -- | IPIP(RPI) | IPIP(RH3) | -- | 1081 | Removed headers | -- | IPIP(RPI) | -- | IPIP(RH3) | 1082 | Re-added headers | -- | -- | -- | -- | 1083 | Modified headers | -- | -- | -- | -- | 1084 | Untouched headers | -- | -- | -- | -- | 1085 +-------------------+------+------------+-----------+------------+ 1087 Non Storing: Summary of the use of headers from not-RPL-aware-leaf to 1088 RPL-aware-leaf 1090 6.12. Example of Flow from not-RPL-aware-leaf to not-RPL-aware-leaf 1092 In this case the flow comprises: 1094 not-RPL-aware 6LN --> 6LR --> root (6LBR) --> 6LR --> not-RPL-aware 1095 6LN 1096 RPI is added in 6LR until the root and then might be removed, then 1097 RH3 is added. These headers are removed at 6LR before go to 1098 destination. 1100 +--------------+------+-----------+-----------+--------------+------+ 1101 | Header | IPv6 | 6LR | 6LBR | 6LR | IPv6 | 1102 +--------------+------+-----------+-----------+--------------+------+ 1103 | Inserted | -- | IPIP(RPI) | IPIP(RH3) | -- | -- | 1104 | headers | | | | | | 1105 | Removed | -- | -- | IPIP(RPI) | IPIP(RH3, | -- | 1106 | headers | | | | opt RPI) | | 1107 | Re-added | -- | -- | -- | -- | -- | 1108 | headers | | | | | | 1109 | Modified | -- | -- | -- | -- | -- | 1110 | headers | | | | | | 1111 | Untouched | -- | -- | -- | -- | -- | 1112 | headers | | | | | | 1113 +--------------+------+-----------+-----------+--------------+------+ 1115 Non Storing: Summary of the use of headers from not-RPL-aware-leaf to 1116 not-RPL-aware-leaf 1118 7. Problem statement 1120 There are cases from above that are not clear how to send the 1121 information. It requires furhter analysis on how to proceed to send 1122 the information from source to destination. 1124 From the above cases, we have in storing mode: 1126 - Flow from RPL-aware-leaf to non-RPL-aware-leaf: Somehow, the sender 1127 has to know that the receiver is not RPL aware, and needs to know 1128 6LR, and not even the root knows where the 6LR is located. 1130 - Flow from not-RPL-aware-leaf to not-RPL-aware-leaf: The problem to 1131 solve is how to indicate where to send the packet when get into LLN. 1132 One approach is the 6LBR should be aware in which 6LR is the IPv6 1133 node attached. 1135 As was mentioned above in the document, a possible solution could be 1136 adapted to all cases: An IPv6-in-IPv6 header can be used on a hop-by- 1137 hop basis, using either link-local addresses, or even IPv6 Global 1138 Unicast Addresses, but each IPv6-in-IPv6 header needs to be added/ 1139 removed at each hop. 1141 8. 6LoRH Compression cases 1143 The [I-D.ietf-6lo-routing-dispatch] proposes a compression method for 1144 RPI, RH3 and IPv6-in-IPv6. 1146 The uses cases mentioned in this draft MUST use 6LoRH. Examples of 1147 the use of 6LoRH are found in Apendix A of 1148 [I-D.ietf-6lo-routing-dispatch]. 1150 9. IANA Considerations 1152 There are no IANA considerations related to this document. 1154 10. Security Considerations 1156 The security considerations covering of [RFC6553] and [RFC6554] apply 1157 when the packets get into RPL Domain. 1159 11. Acknowledgments 1161 This work is partially funded by the FP7 Marie Curie Initial Training 1162 Network (ITN) METRICS project (grant agreement No. 607728). 1164 The authors would like to acknowledge the review, feedback, and 1165 comments of Thomas Watteyne, Xavier Vilajosana, Robert Cragie and 1166 Simon Duquennoy. 1168 12. References 1170 12.1. Normative References 1172 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 1173 Requirement Levels", BCP 14, RFC 2119, 1174 DOI 10.17487/RFC2119, March 1997, 1175 . 1177 [RFC6550] Winter, T., Ed., Thubert, P., Ed., Brandt, A., Hui, J., 1178 Kelsey, R., Levis, P., Pister, K., Struik, R., Vasseur, 1179 JP., and R. Alexander, "RPL: IPv6 Routing Protocol for 1180 Low-Power and Lossy Networks", RFC 6550, 1181 DOI 10.17487/RFC6550, March 2012, 1182 . 1184 [RFC6553] Hui, J. and JP. Vasseur, "The Routing Protocol for Low- 1185 Power and Lossy Networks (RPL) Option for Carrying RPL 1186 Information in Data-Plane Datagrams", RFC 6553, 1187 DOI 10.17487/RFC6553, March 2012, 1188 . 1190 [RFC6554] Hui, J., Vasseur, JP., Culler, D., and V. Manral, "An IPv6 1191 Routing Header for Source Routes with the Routing Protocol 1192 for Low-Power and Lossy Networks (RPL)", RFC 6554, 1193 DOI 10.17487/RFC6554, March 2012, 1194 . 1196 12.2. Informative References 1198 [I-D.ietf-6lo-routing-dispatch] 1199 Thubert, P., Bormann, C., Toutain, L., and R. Cragie, 1200 "6LoWPAN Routing Header", draft-ietf-6lo-routing- 1201 dispatch-05 (work in progress), February 2016. 1203 [I-D.ietf-6tisch-architecture] 1204 Thubert, P., "An Architecture for IPv6 over the TSCH mode 1205 of IEEE 802.15.4", draft-ietf-6tisch-architecture-09 (work 1206 in progress), November 2015. 1208 [RFC7102] Vasseur, JP., "Terms Used in Routing for Low-Power and 1209 Lossy Networks", RFC 7102, DOI 10.17487/RFC7102, January 1210 2014, . 1212 [Second6TischPlugtest] 1213 "2nd 6Tisch Plugtest", . 1216 Authors' Addresses 1218 Maria Ines Robles 1219 Ericsson 1220 Hirsalantie 11 1221 Jorvas 02420 1222 Finland 1224 Email: maria.ines.robles@ericsson.com 1226 Michael C. Richardson 1227 Sandelman Software Works 1228 470 Dawson Avenue 1229 Ottawa, ON K1Z 5V7 1230 CA 1232 Email: mcr+ietf@sandelman.ca 1233 URI: http://www.sandelman.ca/ 1234 Pascal Thubert 1235 Cisco Systems, Inc 1236 Village d'Entreprises Green Side 400, Avenue de Roumanille 1237 Batiment T3, Biot - Sophia Antipolis 06410 1238 France 1240 Email: pthubert@cisco.com