| < draft-robles-roll-useofrplinfo-01.txt | draft-robles-roll-useofrplinfo-02.txt > | |||
|---|---|---|---|---|
| ROLL Working Group M. Robles | ROLL Working Group M. Robles | |||
| Internet-Draft Ericsson | Internet-Draft Ericsson | |||
| Intended status: Informational M. Richardson | Intended status: Informational M. Richardson | |||
| Expires: March 17, 2016 SSW | Expires: April 21, 2016 SSW | |||
| September 14, 2015 | P. Thubert | |||
| Cisco | ||||
| October 19, 2015 | ||||
| When to use RFC 6553, 6554 and IPv6-in-IPv6 | When to use RFC 6553, 6554 and IPv6-in-IPv6 | |||
| draft-robles-roll-useofrplinfo-01 | draft-robles-roll-useofrplinfo-02 | |||
| Abstract | Abstract | |||
| This document states different cases where RFC 6553, RFC 6554 and | This document states different cases where RFC 6553, RFC 6554 and | |||
| IPv6-in-IPv6 encapsulation is required to set the bases to help | IPv6-in-IPv6 encapsulation is required to set the bases to help | |||
| defining the compression of RPL routing information in LLN | defining the compression of RPL routing information in LLN | |||
| environments. | environments. | |||
| Status of This Memo | Status of This Memo | |||
| skipping to change at page 1, line 34 ¶ | skipping to change at page 1, line 36 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on March 17, 2016. | This Internet-Draft will expire on April 21, 2016. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2015 IETF Trust and the persons identified as the | Copyright (c) 2015 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 2. Terminology and Requirements Language . . . . . . . . . . . . 3 | 2. Terminology and Requirements Language . . . . . . . . . . . . 3 | |||
| 3. Sample/reference topology . . . . . . . . . . . . . . . . . . 4 | 3. Sample/reference topology . . . . . . . . . . . . . . . . . . 3 | |||
| 4. Use cases . . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 4. Use cases . . . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 5. Storing mode . . . . . . . . . . . . . . . . . . . . . . . . 7 | 5. Storing mode . . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 5.1. Example of Flow from RPL-aware-leaf to root . . . . . . . 7 | 5.1. Example of Flow from RPL-aware-leaf to root . . . . . . . 8 | |||
| 5.1.1. Summary of the use of headers . . . . . . . . . . . . 8 | 5.2. Example of Flow from root to RPL-aware-leaf . . . . . . . 9 | |||
| 5.2. Example of Flow from root to RPL-aware-leaf . . . . . . . 8 | 5.3. Example of Flow from root to not-RPL-aware-leaf . . . . . 10 | |||
| 5.2.1. Summary of the use of headers . . . . . . . . . . . . 8 | 5.4. Example of Flow from not-RPL-aware-leaf to root . . . . . 10 | |||
| 5.3. Example of Flow from root to not-RPL-aware-leaf . . . . . 9 | 5.5. Example of Flow from RPL-aware-leaf to Internet . . . . . 11 | |||
| 5.3.1. Summary of the use of headers . . . . . . . . . . . . 9 | ||||
| 5.4. Example of Flow from not-RPL-aware-leaf to root . . . . . 9 | ||||
| 5.4.1. Summary of the use of headers . . . . . . . . . . . . 10 | ||||
| 5.5. Example of Flow from RPL-aware-leaf to Internet . . . . . 10 | ||||
| 5.5.1. Summary of the use of headers . . . . . . . . . . . . 10 | ||||
| 5.6. Example of Flow from Internet to RPL-aware-leaf . . . . . 11 | 5.6. Example of Flow from Internet to RPL-aware-leaf . . . . . 11 | |||
| 5.6.1. Summary of the use of headers . . . . . . . . . . . . 11 | 5.7. Example of Flow from not-RPL-aware-leaf to Internet . . . 12 | |||
| 5.7. Example of Flow from not-RPL-aware-leaf to Internet . . . 11 | 5.8. Example of Flow from Internet to not-RPL-aware-leaf . . . 13 | |||
| 5.7.1. Summary of the use of headers . . . . . . . . . . . . 11 | 5.9. Example of Flow from RPL-aware-leaf to RPL-aware-leaf . . 14 | |||
| 5.8. Example of Flow from Internet to not-RPL-aware-leaf . . . 12 | 5.10. Example of Flow from RPL-aware-leaf to non-RPL-aware-leaf 15 | |||
| 5.8.1. Summary of the use of headers . . . . . . . . . . . . 12 | 5.11. Example of Flow from not-RPL-aware-leaf to RPL-aware-leaf 16 | |||
| 5.9. Example of Flow from RPL-aware-leaf to RPL-aware-leaf . . 12 | ||||
| 5.9.1. Summary of the use of headers . . . . . . . . . . . . 13 | ||||
| 5.10. Example of Flow from RPL-aware-leaf to not-RPL-aware-leaf 13 | ||||
| 5.10.1. Summary of the use of headers . . . . . . . . . . . 13 | ||||
| 5.11. Example of Flow from not-RPL-aware-leaf to RPL-aware-leaf 13 | ||||
| 5.11.1. Summary of the use of headers . . . . . . . . . . . 14 | ||||
| 5.12. Example of Flow from not-RPL-aware-leaf to not-RPL-aware- | 5.12. Example of Flow from not-RPL-aware-leaf to not-RPL-aware- | |||
| leaf . . . . . . . . . . . . . . . . . . . . . . . . . . 14 | leaf . . . . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
| 5.12.1. Summary of the use of headers . . . . . . . . . . . 14 | 6. Non Storing mode . . . . . . . . . . . . . . . . . . . . . . 18 | |||
| 6. Non Storing mode . . . . . . . . . . . . . . . . . . . . . . 15 | 6.1. Example of Flow from RPL-aware-leaf to root . . . . . . . 18 | |||
| 6.1. Example of Flow from RPL-aware-leaf to root . . . . . . . 15 | 6.2. Example of Flow from root to RPL-aware-leaf . . . . . . . 19 | |||
| 6.1.1. Summary of the use of headers . . . . . . . . . . . . 15 | 6.3. Example of Flow from root to not-RPL-aware-leaf . . . . . 19 | |||
| 6.2. Example of Flow from root to RPL-aware-leaf . . . . . . . 16 | 6.4. Example of Flow from not-RPL-aware-leaf to root . . . . . 20 | |||
| 6.2.1. Summary of the use of headers . . . . . . . . . . . . 16 | 6.5. Example of Flow from RPL-aware-leaf to Internet . . . . . 20 | |||
| 6.3. Example of Flow from root to not-RPL-aware-leaf . . . . . 16 | 6.6. Example of Flow from Internet to RPL-aware-leaf . . . . . 21 | |||
| 6.3.1. Summary of the use of headers . . . . . . . . . . . . 16 | 6.7. Example of Flow from not-RPL-aware-leaf to Internet . . . 22 | |||
| 6.4. Example of Flow from not-RPL-aware-leaf to root . . . . . 17 | 6.8. Example of Flow from Internet to not-RPL-aware-leaf . . . 23 | |||
| 6.4.1. Summary of the use of headers . . . . . . . . . . . . 17 | 6.9. Example of Flow from RPL-aware-leaf to RPL-aware-leaf . . 24 | |||
| 6.5. Example of Flow from RPL-aware-leaf to Internet . . . . . 17 | 6.10. Example of Flow from RPL-aware-leaf to not-RPL-aware-leaf 25 | |||
| 6.5.1. Summary of the use of headers . . . . . . . . . . . . 18 | 6.11. Example of Flow from not-RPL-aware-leaf to RPL-aware-leaf 26 | |||
| 6.6. Example of Flow from Internet to RPL-aware-leaf . . . . . 18 | ||||
| 6.6.1. Summary of the use of headers . . . . . . . . . . . . 18 | ||||
| 6.7. Example of Flow from not-RPL-aware-leaf to Internet . . . 18 | ||||
| 6.7.1. Summary of the use of headers . . . . . . . . . . . . 19 | ||||
| 6.8. Example of Flow from Internet to not-RPL-aware-leaf . . . 19 | ||||
| 6.8.1. Summary of the use of headers . . . . . . . . . . . . 19 | ||||
| 6.9. Example of Flow from RPL-aware-leaf to RPL-aware-leaf . . 19 | ||||
| 6.9.1. Summary of the use of headers . . . . . . . . . . . . 20 | ||||
| 6.10. Example of Flow from RPL-aware-leaf to not-RPL-aware-leaf 20 | ||||
| 6.10.1. Summary of the use of headers . . . . . . . . . . . 20 | ||||
| 6.11. Example of Flow from not-RPL-aware-leaf to RPL-aware-leaf 20 | ||||
| 6.11.1. Summary of the use of headers . . . . . . . . . . . 21 | ||||
| 6.12. Example of Flow from not-RPL-aware-leaf to not-RPL-aware- | 6.12. Example of Flow from not-RPL-aware-leaf to not-RPL-aware- | |||
| leaf . . . . . . . . . . . . . . . . . . . . . . . . . . 21 | leaf . . . . . . . . . . . . . . . . . . . . . . . . . . 26 | |||
| 6.12.1. Summary of the use of headers . . . . . . . . . . . 21 | 7. Future RPL work . . . . . . . . . . . . . . . . . . . . . . . 27 | |||
| 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 22 | 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 27 | |||
| 8. Security Considerations . . . . . . . . . . . . . . . . . . . 22 | 9. Security Considerations . . . . . . . . . . . . . . . . . . . 27 | |||
| 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 22 | 10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 27 | |||
| 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 22 | 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 28 | |||
| 10.1. Normative References . . . . . . . . . . . . . . . . . . 22 | 11.1. Normative References . . . . . . . . . . . . . . . . . . 28 | |||
| 10.2. Informative References . . . . . . . . . . . . . . . . . 23 | 11.2. Informative References . . . . . . . . . . . . . . . . . 28 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 23 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 29 | |||
| 1. Introduction | 1. Introduction | |||
| RPL [RFC6550] is a routing protocol for constrained networks. RFC | RPL [RFC6550] is a routing protocol for constrained networks. RFC | |||
| 6553 [RFC6553] defines the "RPL option", carried within the IPv6 Hop- | 6553 [RFC6553] defines the "RPL option", carried within the IPv6 Hop- | |||
| by-Hop header to quickly identify inconsistencies in the routing | by-Hop header to quickly identify inconsistencies in the routing | |||
| topology. RFC 6554 [RFC6554] defines the "RPL Source Route Header", | topology. RFC 6554 [RFC6554] defines the "RPL Source Route Header", | |||
| an IPv6 Extension Header to deliver datagrams within a RPL routing | an IPv6 Extension Header to deliver datagrams within a RPL routing | |||
| domain. | domain. | |||
| Several discussions in the ROLL/6lo/6TiSCH Mailing Lists took place | Several discussions in the ROLL/6lo/6TiSCH Mailing Lists took place | |||
| focusing in the definition of how to compress RPL Information in | focusing in the definition of how to compress RPL Information in | |||
| constrained environment. ROLL Virtual Interim Meeting (02-2015) | constrained environment. ROLL Virtual Interim Meeting (02-2015) | |||
| concluded that there is a need to define how to use [RFC6553], | concluded that there is a need to define how to use [RFC6553], | |||
| [RFC6554] and IP-in-IP encapsulation to be able to set the correct | [RFC6554] and IPv6-in-IPv6 encapsulation to be able to set the | |||
| environment for compression. | correct environment for compression. A Routing Header Dispatch for | |||
| 6LoWPAN (6LoRH) [I-D.thubert-6lo-routing-dispatch] defines a method | ||||
| to compress RPL Option information and Routing Header type 3 | ||||
| (RFC6554) and an efficient IP-in-IP technique. | ||||
| This document is going to be focused in data plane messages and how | This document is going to be focused in data plane messages and how | |||
| can be transmitted within the above mentioned RFCs. | can be transmitted within the above mentioned RFCs. | |||
| 2. Terminology and Requirements Language | 2. Terminology and Requirements Language | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
| document are to be interpreted as described in RFC 2119 [RFC2119]. | document are to be interpreted as described in RFC 2119 [RFC2119]. | |||
| Terminology defined in [RFC7102] | Terminology defined in [RFC7102] | |||
| 3. Sample/reference topology | 3. Sample/reference topology | |||
| A RPL network is composed of a 6LBR (6LoWPAN Border Router), 6LR | A RPL network is composed of a 6LBR (6LoWPAN Border Router), Backbone | |||
| (6LoWPAN Router) and 6LN (6LoWPAN Node) as leaf logically organized | Router (6BBR), 6LR (6LoWPAN Router) and 6LN (6LoWPAN Node) as leaf | |||
| in a DODAG structure (Destination Oriented Directed Acyclic Graph). | logically organized in a DODAG structure (Destination Oriented | |||
| Directed Acyclic Graph). | ||||
| RPL defines the RPL Control messages (control plane ), a new ICMPv6 | RPL defines the RPL Control messages (control plane ), a new ICMPv6 | |||
| message with Type 155. DIS, DIO and DAO messages are all RPL Control | message with Type 155. DIS, DIO and DAO messages are all RPL Control | |||
| messages but with different Code values. | messages but with different Code values. | |||
| RPL supports two modes of Downward traffic: Storing, it is fully | RPL supports two modes of Downward traffic: in storing mode, it is | |||
| stateful or Non-Storing it is fully source routed. A RPL Instance is | fully stateful or an in non-storing, it is fully source routed. A | |||
| either fully storing or fully non-storing, i.e. a RPL Instance with a | RPL Instance is either fully storing or fully non-storing, i.e. a RPL | |||
| combination of storing and non-storing nodes is not supported with | Instance with a combination of storing and non-storing nodes is not | |||
| the current specifications. | supported with the current specifications. | |||
| +--------------+ | +--------------+ | |||
| | Upper Layers | | | Upper Layers | | |||
| | | | | | | |||
| +--------------+ | +--------------+ | |||
| | RPL | | | RPL | | |||
| | | | | | | |||
| +--------------+ | +--------------+ | |||
| | ICMPv6 | | | ICMPv6 | | |||
| | | | | | | |||
| skipping to change at page 5, line 16 ¶ | skipping to change at page 5, line 16 ¶ | |||
| +---+Internet | | +---+Internet | | |||
| | +---------+ | | +---------+ | |||
| | | | | |||
| +----+--+ | +----+--+ | |||
| |DODAG | | |DODAG | | |||
| +---------+Root +----------+ | +---------+Root +----------+ | |||
| | |6LBR | | | | |6LBR | | | |||
| | +----+--+ | | | +----+--+ | | |||
| | | | | | | | | |||
| | | | | | | | | |||
| ... ... ... | ||||
| | | | | | | | | |||
| +-----+-+ +--+---+ +--+---+ | +-----+-+ +--+---+ +--+---+ | |||
| |6LR | | | | | | |6LR | | | | | | |||
| +-----+ | | | | | | +-----+ | | | | | | |||
| | | | | | | +------+ | | | | | | | +------+ | |||
| | +-----+-+ +-+----+ +-+----+ | | | +-----+-+ +-+----+ +-+----+ | | |||
| | | | | | | | | | | | | |||
| | | | | | | | | | | | | |||
| | | | | | | | | | | | | |||
| +-+---+ +-+---+ +--+--+ +- --+ +---+-+ | +-+---+ +-+---+ +--+--+ +- --+ +---+-+ | |||
| |Leaf | | | | | | | | | | |Leaf | | | | | | | | | | |||
| |6LN | | | | | | | | | | |6LN | | | | | | | | | | |||
| +-----+ +-----+ +-----+ +----+ +-----+ | +-----+ +-----+ +-----+ +----+ +-----+ | |||
| Figure 2: A reference RPL Topology. | Figure 2: A reference RPL Topology. | |||
| This document is in part motivated by the work that is ongoing at the | ||||
| 6TiSCH working group. The 6TiSCH architecture | ||||
| [I-D.ietf-6tisch-architecture] draft explains the network | ||||
| architecture of a 6TiSCH network. This architecture is used for the | ||||
| remainder of this document. | ||||
| The scope of the 6TiSCH Architecture is a Backbone Link that | ||||
| federates multiple LLNs (mesh) as a single IPv6 Multi-Link Subnet. | ||||
| Each LLN in the subnet is anchored at a Backbone Router (6BBR). The | ||||
| Backbone Routers interconnect the LLNs over the Backbone Link and | ||||
| emulate that the LLN nodes are present on the Backbone thus creating | ||||
| a so-called: Multi-Link Subnet. An LLN node can move freely from an | ||||
| LLN anchored at a Backbone Router to another LLN anchored at the same | ||||
| or a different Backbone Router inside the Multi-Link Subnet and | ||||
| conserve its addresses. | ||||
| | | ||||
| +-----+ | ||||
| | | Border Router to the RPL domain | ||||
| | | (may be a RPL virtual root) | ||||
| +-----+ | ||||
| | | ||||
| | Backbone | ||||
| +-------------------+-------------------+ | ||||
| | | | | ||||
| +-----+ +-----+ +-----+ | ||||
| | | Backbone | | Backbone | | Backbone | ||||
| | | router | | router | | router | ||||
| +|---|+ +-|||-+ +-[_]-+ | ||||
| | | PCI-exp / | \ USB | Ethernet | ||||
| ( ) ( ) ( )( )( ) (6LBR == RPL DODAG root) | ||||
| o o o o o o o o o o o o | ||||
| o o o o o o o o o o o o o o o o | ||||
| o o o o o o o o o o 6LR == RPL router) o o | ||||
| o o o o o o o z | ||||
| o o o o o o (6LoWPAN Host) | ||||
| <----------------------- RPL Instance ------------------------> | ||||
| Figure 3: RPL domain architecture | ||||
| 4. Use cases | 4. Use cases | |||
| In data plane context a combination of RFC6553, RFC6554 and IP-in-IP | In data plane context a combination of RFC6553, RFC6554 and IPv6-in- | |||
| encapsulation is going to be analyzed for the following traffic | IPv6 encapsulation is going to be analyzed for the following traffic | |||
| flows: | flows: | |||
| -Flow from RPL-aware-leaf to root | -Flow from RPL-aware-leaf to root | |||
| -Flow from root to RPL-aware-leaf | -Flow from root to RPL-aware-leaf | |||
| -Flow from not-RPL-aware-leaf to root | -Flow from not-RPL-aware-leaf to root | |||
| -Flow from root to not-RPL-aware-leaf | -Flow from root to not-RPL-aware-leaf | |||
| -Flow from RPL-aware-leaf to Internet | -Flow from RPL-aware-leaf to Internet | |||
| -Flow from Internet to RPL-aware-leaf | -Flow from Internet to RPL-aware-leaf | |||
| -Flow from not-RPL-aware-leaf to Internet | -Flow from not-RPL-aware-leaf to Internet | |||
| -Flow from Internet to not-RPL-aware-leaf | ||||
| -Flow from Internet to not-RPL-aware-leaf | ||||
| -Flow from RPL-aware-leaf to RPL-aware-leaf | -Flow from RPL-aware-leaf to RPL-aware-leaf | |||
| -Flow from RPL-aware-leaf to not-RPL-aware-leaf | -Flow from RPL-aware-leaf to not-RPL-aware-leaf | |||
| -Flow from not-RPL-aware-leaf to RPL-aware-leaf | -Flow from not-RPL-aware-leaf to RPL-aware-leaf | |||
| -Flow from not-RPL-aware-leaf to not-RPL-aware-leaf | -Flow from not-RPL-aware-leaf to not-RPL-aware-leaf | |||
| The applicability for Storing and Non-Storing (Non-S) modes for the | This document assumes a rule that a Header cannot be inserted or | |||
| previous cases is showed as follows: | removed on the fly inside an IPv6 packet that is being routed. | |||
| +-----------------+------+------+---------+-------+-------+---------+ | - This means that an intermediate router that needs to add a header | |||
| | Use Case | RPI | RH3 | IP-in- | Non-S | Non-S | Non-S | | must encapsulate the packet in an outer IP header where the new | |||
| | | (RFC | (RFC | IP | RPI | RH3 | IP-in- | | header can be placed. | |||
| | | 6553 | 6554 | | | | IP | | ||||
| | | ) | ) | | | | | | - This also means that a Header can only be removed by an | |||
| +-----------------+------+------+---------+-------+-------+---------+ | intermediate router if it is placed in an encapsulating IPv6 Header, | |||
| | RPL-aware-leaf | Yes | ? | Yes | Yes | ? | Yes | | and in that case, the whole encapsulating header must be removed - a | |||
| | to root | | | | | | | | replacement may be added. | |||
| | root to RPL- | ? | ? | Yes | ? | ? | Yes | | ||||
| | aware-leaf | | | | | | | | This document recognizes that some headers such as a Routing Header | |||
| | not-RPL-aware- | Yes | ? | Yes | Yes | ? | Yes | | or a Hop-by-Hop header may be modified by routers on the path of the | |||
| | leaf to root | | | | | | | | packet without the need to add to remove an encapsulating header. | |||
| | root to not- | ? | ? | Yes | ? | ? | Yes | | ||||
| | RPL-aware-leaf | | | | | | | | The RPL RH and the RPL option are mutable but recoverable . | |||
| | RPL-aware-leaf | Yes | ? | Yes | Yes | ? | Yes | | ||||
| | to Internet | | | | | | | | RPI should be present in every single RPL data packet. There is an | |||
| | Internet to | ? | ? | ? | ? | ? | ? | | exception in non-storing mode, when a packet is going down from the | |||
| | RPL-aware-leaf | | | | | | | | route: the entire route is written, so there are no loops of | |||
| | not-RPL-aware- | ? | ? | yes | ? | ? | Yes | | confusion about which table to use (purpose of instanceID). | |||
| | leaf to | | | | | | | | ||||
| | Internet | | | | | | | | The applicability for storing (RPL-SN) and non-Storing (RPL-NSN) | |||
| | Internet to | ? | ? | Yes | ? | ? | Yes | | modes for the previous cases is showed as follows: | |||
| | not-RPL-aware- | | | | | | | | ||||
| | leaf | | | | | | | | +---------------+------+------+---------+--------+--------+---------+ | |||
| | RPL-aware-leaf | Yes | ? | Yes | Yes | ? | Yes | | | Use Case | RPL- | RPL- | RPL-SN | RPL- | RPL- | RPL-NSN | | |||
| | to RPL-aware- | | | | | | | | | | SN | SN | IP-in- | NSN | NSN | IP-in- | | |||
| | leaf | | | | | | | | | | RPI | RH3 | IP | RPI | RH3 | IP | | |||
| | RPL-aware-leaf | ? | ? | Yes | ? | ? | Yes | | | | (RFC | (RFC | | | | | | |||
| | to not-RPL- | | | | | | | | | | 6553 | 6554 | | | | | | |||
| | aware-leaf | | | | | | | | | | ) | ) | | | | | | |||
| | not-RPL-aware- | ? | ? | Yes | ? | ? | Yes | | +---------------+------+------+---------+--------+--------+---------+ | |||
| | leaf to RPL- | | | | | | | | | RPL-aware- | Yes | No | No | Yes | No | No | | |||
| | aware-leaf | | | | | | | | | leaf to root | | | | | | | | |||
| | not-RPL-aware- | ? | ? | Yes | ? | ? | Yes | | | root to RPL- | Yes | No | No | Yes | Yes | No | | |||
| | leaf to not- | | | | | | | | | aware-leaf | | | | | | | | |||
| | RPL-aware-leaf | | | | | | | | | not-RPL- | Yes | No | Yes | Yes | No | Yes | | |||
| +-----------------+------+------+---------+-------+-------+---------+ | | aware-leaf to | | | | | | | | |||
| | root | | | | | | | | ||||
| | root to not- | Yes | No | Yes | Yes | Yes | Yes | | ||||
| | RPL-aware- | | | | | | | | ||||
| | leaf | | | | | | | | ||||
| | RPL-aware- | Yes | No | Yes | Yes | No | Yes | | ||||
| | leaf to | | | | | | | | ||||
| | Internet | | | | | | | | ||||
| | Internet to | Yes | No | Yes | Yes | Yes | Yes | | ||||
| | RPL-aware- | | | | | | | | ||||
| | leaf | | | | | | | | ||||
| | not-RPL- | Yes | No | Yes | Yes | No | Yes | | ||||
| | aware-leaf to | | | | | | | | ||||
| | Internet | | | | | | | | ||||
| | Internet to | Yes | No | Yes | Yes | Yes | Yes | | ||||
| | not-RPL- | | | | | | | | ||||
| | aware-leaf | | | | | | | | ||||
| | RPL-aware- | Yes | No | No | Yes | Yes | Yes | | ||||
| | leaf to RPL- | | | | | | | | ||||
| | aware-leaf | | | | | | | | ||||
| | RPL-aware- | Yes | No | Yes | Yes | Yes | Yes | | ||||
| | leaf to not- | | | | | | | | ||||
| | RPL-aware- | | | | | | | | ||||
| | leaf | | | | | | | | ||||
| | not-RPL- | Yes | No | Yes | Yes | Yes | Yes | | ||||
| | aware-leaf to | | | | | | | | ||||
| | RPL-aware- | | | | | | | | ||||
| | leaf | | | | | | | | ||||
| | not-RPL- | Yes | No | Yes | Yes | Yes | Yes | | ||||
| | aware-leaf to | | | | | | | | ||||
| | not-RPL- | | | | | | | | ||||
| | aware-leaf | | | | | | | | ||||
| +---------------+------+------+---------+--------+--------+---------+ | ||||
| Table 1: Posibility to transmit in Storing or Non-Storing mode: RPI, | Table 1: Posibility to transmit in Storing or Non-Storing mode: RPI, | |||
| RH3, IP-in-IP encapsulation | RH3, IP-in-IP encapsulation | |||
| 5. Storing mode | 5. Storing mode | |||
| 5.1. Example of Flow from RPL-aware-leaf to root | 5.1. Example of Flow from RPL-aware-leaf to root | |||
| As states in Section 16.2 of [RFC6550] a leaf node does not | As states in Section 16.2 of [RFC6550] a RPL-aware-leaf node does | |||
| generally issue DIO messages, a leaf node accepts DIO messages (In | not generally issue DIO messages, a leaf node accepts DIO messages | |||
| inconsistency a leaf node generates DIO with infinite rank, to fix | (In inconsistency a leaf node generates DIO with infinite rank, to | |||
| it). It may issue DAO and DIS messages though it generally ignores | fix it). It may issue DAO and DIS messages though it generally | |||
| DAO and DIS messages. | ignores DAO and DIS messages. | |||
| Related to RFC 6554 the Source Header route is added and removed by | ||||
| DODAG root. RFC 6554 was created to strictly send information | ||||
| between RPL routers in the same RPL routing domain. | ||||
| In storing mode is suitable the use of RFC 6553 to send RPL | In storing mode is suitable the use of RFC 6553 to send RPL | |||
| Information through HBH field checking the routing table to find out | Information through HBH field checking the routing table to find out | |||
| where to send the message. It may include IP-in-IP encapsulation to | where to send the message. | |||
| transmit information not related with the RPL domain. | ||||
| In this case the flow comprises: | In this case the flow comprises: | |||
| RPL-aware-leaf (6LN) --> 6LR --> root (6LBR) | RPL-aware-leaf (6LN) --> 6LR --> 6LR,... --> root (6LBR) Note: In | |||
| this document 6LRs, 6LBR are always full-fledge RPL routers | ||||
| TODO: ADD explanation and picture based on the following table. | ||||
| 5.1.1. Summary of the use of headers | ||||
| TODO: What about fragmentations headers? | The 6LN inserts the RPI header, and send the packet to 6LR which | |||
| decrement the rank in RPI and send the packet up. When the packet | ||||
| arrives to 6LBR, the RPI is removed and the packet is processed. | ||||
| +-------------------+-----+-----+------+ | +-------------------+-----+------+------+ | |||
| | Header | 6LN | 6LR | 6LBR | | | Header | 6LN | 6LR | 6LBR | | |||
| +-------------------+-----+-----+------+ | +-------------------+-----+------+------+ | |||
| | Inserted headers | ? | ? | ? | | | Inserted headers | RPI | -- | -- | | |||
| | Removed headers | ? | ? | ? | | | Removed headers | -- | -- | RPI | | |||
| | Re-added headers | ? | ? | ? | | | Re-added headers | -- | -- | -- | | |||
| | Modified headers | ? | ? | ? | | | Modified headers | -- | RPI | -- | | |||
| | Untouched headers | ? | ? | ? | | | Untouched headers | -- | -- | -- | | |||
| +-------------------+-----+-----+------+ | +-------------------+-----+------+------+ | |||
| Storing: Summary of the use of headers from RPL-aware-leaf to root | Storing: Summary of the use of headers from RPL-aware-leaf to root | |||
| 5.2. Example of Flow from root to RPL-aware-leaf | 5.2. Example of Flow from root to RPL-aware-leaf | |||
| In this case the flow comprises: | In this case the flow comprises: | |||
| root (6LBR)--> 6LR --> RPL-aware-leaf (6LN) | root (6LBR)--> 6LR --> RPL-aware-leaf (6LN) | |||
| TODO: ADD explanation and picture based on the following table | In this case the 6LBR insert RPI header and send the packet down, the | |||
| 6LR is going to increment the rank in RPI (examines instanceID for | ||||
| 5.2.1. Summary of the use of headers | multiple tables), the packet is processed in 6LN and RPI removed. | |||
| TODO: What about fragmentations headers? | +-------------------+------+-------+------+ | |||
| +-------------------+------+-----+-----+ | | Header | 6LBR | 6LR | 6LN | | |||
| | Header | 6LBR | 6LR | 6LN | | +-------------------+------+-------+------+ | |||
| +-------------------+------+-----+-----+ | | Inserted headers | RPI | -- | -- | | |||
| | Inserted headers | ? | ? | ? | | | Removed headers | -- | -- | RPI | | |||
| | Removed headers | ? | ? | ? | | | Re-added headers | -- | -- | -- | | |||
| | Re-added headers | ? | ? | ? | | | Modified headers | -- | RPI | -- | | |||
| | Modified headers | ? | ? | ? | | | Untouched headers | -- | -- | -- | | |||
| | Untouched headers | ? | ? | ? | | +-------------------+------+-------+------+ | |||
| +-------------------+------+-----+-----+ | ||||
| Storing: Summary of the use of headers from root to RPL-aware-leaf | Storing: Summary of the use of headers from root to RPL-aware-leaf | |||
| 5.3. Example of Flow from root to not-RPL-aware-leaf | 5.3. Example of Flow from root to not-RPL-aware-leaf | |||
| In this case the flow comprises: | In this case the flow comprises: | |||
| root (6LBR)--> 6LR --> not-RPL-aware-leaf (6LN) | root (6LBR)--> 6LR --> not-RPL-aware-leaf (6LN) | |||
| TODO: ADD explanation and picture based on the following table | It includes IPv6-in-IPv6 encapsulation to transmit information not | |||
| related with the RPL domain. In the 6LBR the RPI header is inserted | ||||
| 5.3.1. Summary of the use of headers | into an IPv6-in-IPv6 header addressed to the last 6LR, which removes | |||
| the header before pass the packet to the IPv6 node. | ||||
| TODO: What about fragmentations headers? | ||||
| +-------------------+------+-----+-------------------+ | +-------------------+-------------------+-------------------+------+ | |||
| | Header | 6LBR | 6LR | not-RPL-aware 6LN | | | Header | 6LBR | 6LR | IPv6 | | |||
| +-------------------+------+-----+-------------------+ | +-------------------+-------------------+-------------------+------+ | |||
| | Inserted headers | ? | ? | ? | | | Inserted headers | IPv6-in-IPv6(RPI) | -- | -- | | |||
| | Removed headers | ? | ? | ? | | | Removed headers | -- | IPv6-in-IPv6(RPI) | -- | | |||
| | Re-added headers | ? | ? | ? | | | Re-added headers | -- | -- | -- | | |||
| | Modified headers | ? | ? | ? | | | Modified headers | -- | -- | -- | | |||
| | Untouched headers | ? | ? | ? | | | Untouched headers | -- | -- | -- | | |||
| +-------------------+------+-----+-------------------+ | +-------------------+-------------------+-------------------+------+ | |||
| Storing: Summary of the use of headers from root to not-RPL-aware- | Storing: Summary of the use of headers from root to not-RPL-aware- | |||
| leaf | leaf | |||
| 5.4. Example of Flow from not-RPL-aware-leaf to root | 5.4. Example of Flow from not-RPL-aware-leaf to root | |||
| In this case the flow comprises: | In this case the flow comprises: | |||
| not-RPL-aware-leaf (6LN) --> 6LR --> root (6LBR) | not-RPL-aware-leaf (6LN) --> 6LR --> root (6LBR) | |||
| TODO: ADD explanation and picture based on the following table | When the packet arrives from IPv6 node to 6LR. This router insert | |||
| the RPI encapsuladed in a IPv6-in-IPv6 header addressed to the root. | ||||
| 5.4.1. Summary of the use of headers | The root removes the header and process the packet | |||
| TODO: What about fragmentations headers? | ||||
| +-------------------+-------------------+-----+------+ | +-------------------+------+--------------------+-------------------+ | |||
| | Header | not-RPL-aware 6LN | 6LR | 6LBR | | | Header | IPv6 | 6LR | 6LBR | | |||
| +-------------------+-------------------+-----+------+ | +-------------------+------+--------------------+-------------------+ | |||
| | Inserted headers | ? | ? | ? | | | Inserted headers | -- | IPv6-in-IPv6(RPI) | -- | | |||
| | Removed headers | ? | ? | ? | | | Removed headers | -- | -- | IPv6-in-IPv6(RPI) | | |||
| | Re-added headers | ? | ? | ? | | | Re-added headers | -- | -- | -- | | |||
| | Modified headers | ? | ? | ? | | | Modified headers | -- | -- | -- | | |||
| | Untouched headers | ? | ? | ? | | | Untouched headers | -- | -- | -- | | |||
| +-------------------+-------------------+-----+------+ | +-------------------+------+--------------------+-------------------+ | |||
| Storing: Summary of the use of headers from not-RPL-aware-leaf to | Storing: Summary of the use of headers from not-RPL-aware-leaf to | |||
| root | root | |||
| 5.5. Example of Flow from RPL-aware-leaf to Internet | 5.5. Example of Flow from RPL-aware-leaf to Internet | |||
| RPL information from RFC 6553 should not go out to Internet. The | RPL information from RFC 6553 should not go out to Internet. The | |||
| router should take this information out before send the packet to | router should take this information out before send the packet to | |||
| Internet. The HBH Option is going to be analyzed in each node to the | Internet. The HBH Option is going to be analyzed in each node to the | |||
| root. | root. | |||
| In this case the flow comprises: | In this case the flow comprises: | |||
| RPL-aware-leaf (6LN) --> 6LR --> root (6LBR) --> Internet | RPL-aware-leaf (6LN) --> 6LR --> root (6LBR) --> Internet | |||
| TODO: ADD explanation and picture based on the following table | 6LN insert RPI in a IPv6-in-IPv6 in a outer header, and send the | |||
| packet to 6LR, which modified the rank in the RPI. When the packet | ||||
| 5.5.1. Summary of the use of headers | arrives to 6LBR, the RPI is removed. | |||
| TODO: What about fragmentations headers? | ||||
| +-------------------+-----+-----+------+----------+ | +----------+-------------------+-----+-------------------+----------+ | |||
| | Header | 6LN | 6LR | 6LBR | Internet | | | Header | 6LN | 6LR | 6LBR | Internet | | |||
| +-------------------+-----+-----+------+----------+ | +----------+-------------------+-----+-------------------+----------+ | |||
| | Inserted headers | ? | ? | ? | ? | | | Inserted | IPv6-in-IPv6(RPI) | -- | -- | -- | | |||
| | Removed headers | ? | ? | ? | ? | | | headers | | | | | | |||
| | Re-added headers | ? | ? | ? | ? | | | Removed | -- | -- | IPv6-in-IPv6(RPI) | -- | | |||
| | Modified headers | ? | ? | ? | ? | | | headers | | | | | | |||
| | Untouched headers | ? | ? | ? | ? | | | Re-added | -- | -- | -- | -- | | |||
| +-------------------+-----+-----+------+----------+ | | headers | | | | | | |||
| | Modified | -- | RPI | -- | -- | | ||||
| | headers | | | | | | ||||
| | Untouche | -- | -- | -- | -- | | ||||
| | d | | | | | | ||||
| | headers | | | | | | ||||
| +----------+-------------------+-----+-------------------+----------+ | ||||
| Storing: Summary of the use of headers from RPL-aware-leaf to | Storing: Summary of the use of headers from RPL-aware-leaf to | |||
| Internet | Internet | |||
| 5.6. Example of Flow from Internet to RPL-aware-leaf | 5.6. Example of Flow from Internet to RPL-aware-leaf | |||
| In this case the flow comprises: | In this case the flow comprises: | |||
| Internet --> root (6LBR) --> 6LR --> RPL-aware-leaf (6LN) | Internet --> root (6LBR) --> 6LR --> RPL-aware-leaf (6LN) | |||
| TODO: ADD explanation and picture based on the following table | When the packet arrives from Internet to 6LBR the RPI header is added | |||
| in a outer IPv6-in-IPv6 header and send to 6LR, which modifies the | ||||
| 5.6.1. Summary of the use of headers | rank in the RPI. When the packet arrives 6LN the RPI header is | |||
| removed and the packet processed. | ||||
| TODO: What about fragmentations headers? | ||||
| +-------------------+----------+------+-----+-----+ | +----------+----------+-------------------+-----+-------------------+ | |||
| | Header | Internet | 6LBR | 6LR | 6LN | | | Header | Internet | 6LBR | 6LR | 6LN | | |||
| +-------------------+----------+------+-----+-----+ | +----------+----------+-------------------+-----+-------------------+ | |||
| | Inserted headers | ? | ? | ? | ? | | | Inserted | -- | IPv6-in-IPv6(RPI) | -- | -- | | |||
| | Removed headers | ? | ? | ? | ? | | | headers | | | | | | |||
| | Re-added headers | ? | ? | ? | ? | | | Removed | -- | -- | -- | IPv6-in-IPv6(RPI) | | |||
| | Modified headers | ? | ? | ? | ? | | | headers | | | | | | |||
| | Untouched headers | ? | ? | ? | ? | | | Re-added | -- | -- | -- | -- | | |||
| +-------------------+----------+------+-----+-----+ | | headers | | | | | | |||
| | Modified | -- | -- | RPI | -- | | ||||
| | headers | | | | | | ||||
| | Untouche | -- | -- | -- | -- | | ||||
| | d | | | | | | ||||
| | headers | | | | | | ||||
| +----------+----------+-------------------+-----+-------------------+ | ||||
| Storing: Summary of the use of headers from Internet to RPL-aware- | Storing: Summary of the use of headers from Internet to RPL-aware- | |||
| leaf | leaf | |||
| 5.7. Example of Flow from not-RPL-aware-leaf to Internet | 5.7. Example of Flow from not-RPL-aware-leaf to Internet | |||
| In this case the flow comprises: | In this case the flow comprises: | |||
| not-RPL-aware-leaf (6LN) --> 6LR --> root (6LBR) --> Internet | not-RPL-aware-leaf (6LN) = IPv6 node --> 6LR --> root (6LBR) --> | |||
| Internet | ||||
| TODO: ADD explanation and picture based on the following table | ||||
| 5.7.1. Summary of the use of headers | In the IPv6 node the flow label is assumed to be zero, the packet is | |||
| transmited to 6LR which encapsule the RPI header in an outer IPv6-in- | ||||
| IPv6 header and send to 6LBR, which removes this header and send the | ||||
| packet to Internet and might set the flow label field. | ||||
| TODO: What about fragmentations headers? | +----------+-----+-------------------+-------------------+----------+ | |||
| +-------------------+-------------------+-----+------+----------+ | | Header | IPv | 6LR | 6LBR | Internet | | |||
| | Header | not-RPL-aware 6LN | 6LR | 6LBR | Internet | | | | 6 | | | | | |||
| +-------------------+-------------------+-----+------+----------+ | +----------+-----+-------------------+-------------------+----------+ | |||
| | Inserted headers | ? | ? | ? | ? | | | Inserted | -- | IPv6-in-IPv6(RPI) | -- | -- | | |||
| | Removed headers | ? | ? | ? | ? | | | headers | | | | | | |||
| | Re-added headers | ? | ? | ? | ? | | | Removed | -- | -- | IPv6-in-IPv6(RPI) | -- | | |||
| | Modified headers | ? | ? | ? | ? | | | headers | | | | | | |||
| | Untouched headers | ? | ? | ? | ? | | | Re-added | -- | -- | -- | -- | | |||
| +-------------------+-------------------+-----+------+----------+ | | headers | | | | | | |||
| | Modified | -- | -- | -- | -- | | ||||
| | headers | | | | | | ||||
| | Untouche | -- | -- | -- | -- | | ||||
| | d | | | | | | ||||
| | headers | | | | | | ||||
| +----------+-----+-------------------+-------------------+----------+ | ||||
| Storing: Summary of the use of headers from not-RPL-aware-leaf to | Storing: Summary of the use of headers from not-RPL-aware-leaf to | |||
| Internet | Internet | |||
| 5.8. Example of Flow from Internet to not-RPL-aware-leaf | 5.8. Example of Flow from Internet to not-RPL-aware-leaf | |||
| In this case the flow comprises: | In this case the flow comprises: | |||
| Internet --> root (6LBR) --> 6LR --> not-RPL-aware-leaf (6LN) | Internet --> root (6LBR) --> 6LR --> not-RPL-aware-leaf (6LN) | |||
| TODO: ADD explanation and picture based on the following table | 6LBR get the packet from Internet and add a RPI header encapsulated | |||
| in a IPv6-in-IPv6 header addressed to 6LR and send the packet down. | ||||
| 5.8.1. Summary of the use of headers | The flow label is set to zero on inner IP. The last 6LR removes the | |||
| RPI header. The IPv6 node might set the flow label since may arrive | ||||
| with zero value. | ||||
| +-------------------+----------+------+-----+-------------------+ | +----------+---------+-------------------+-------------------+------+ | |||
| | Header | Internet | 6LBR | 6LR | not-RPL-aware 6LN | | | Header | Interne | 6LBR | 6LR | IPv6 | | |||
| +-------------------+----------+------+-----+-------------------+ | | | t | | | | | |||
| | Inserted headers | ? | ? | ? | ? | | +----------+---------+-------------------+-------------------+------+ | |||
| | Removed headers | ? | ? | ? | ? | | | Inserted | -- | IPv6-in-IPv6(RPI) | -- | -- | | |||
| | Re-added headers | ? | ? | ? | ? | | | headers | | | | | | |||
| | Modified headers | ? | ? | ? | ? | | | Removed | -- | -- | IPv6-in-IPv6(RPI) | -- | | |||
| | Untouched headers | ? | ? | ? | ? | | | headers | | | | | | |||
| +-------------------+----------+------+-----+-------------------+ | | Re-added | -- | -- | -- | -- | | |||
| | headers | | | | | | ||||
| | Modified | -- | -- | -- | -- | | ||||
| | headers | | | | | | ||||
| | Untouche | -- | -- | -- | -- | | ||||
| | d | | | | | | ||||
| | headers | | | | | | ||||
| +----------+---------+-------------------+-------------------+------+ | ||||
| Storing: Summary of the use of headers from Internet to not-RPL- | Storing: Summary of the use of headers from Internet to not-RPL- | |||
| aware-leaf | aware-leaf | |||
| 5.9. Example of Flow from RPL-aware-leaf to RPL-aware-leaf | 5.9. Example of Flow from RPL-aware-leaf to RPL-aware-leaf | |||
| In [RFC6550] RPL allows a simple one-hop P2P optimization for both | In [RFC6550] RPL allows a simple one-hop P2P optimization for both | |||
| storing and non-storing networks. A node may send a P2P packet | storing and non-storing networks. A node may send a P2P packet | |||
| destined to a one-hop neighbor directly to that node. Section 9 in | destined to a one-hop neighbor directly to that node. Section 9 in | |||
| [RFC6550]. | [RFC6550]. | |||
| In this case the flow comprises: | In this case the flow comprises: | |||
| 6LN --> 6LR --> root (6LBR) --> 6LR --> 6LN | 6LN --> 6LR --> common parent (6LR) --> 6LR --> 6LN | |||
| TODO: ADD explanation and picture based on the following table | ||||
| 5.9.1. Summary of the use of headers | This case is assumed in the same RPL Domain. In the common parent, | |||
| the direction of RPI is changed (from increasing to decreasing the | ||||
| rank). | ||||
| +-------------------+---------+-----+------+---------+ | +-------------+-------+---------------+---------------+-----+-------+ | |||
| | Header | 6LN src | 6LR | 6LBR | 6LN dst | | | Header | 6LN | 6LR | 6LR (common | 6LR | 6LN | | |||
| +-------------------+---------+-----+------+---------+ | | | src | | parent) | | dst | | |||
| | Inserted headers | ? | ? | ? | ? | | +-------------+-------+---------------+---------------+-----+-------+ | |||
| | Removed headers | ? | ? | ? | ? | | | Inserted | RPI | -- | -- | -- | -- | | |||
| | Re-added headers | ? | ? | ? | ? | | | headers | | | | | | | |||
| | Modified headers | ? | ? | ? | ? | | | Removed | -- | -- | -- | -- | RPI | | |||
| | Untouched headers | ? | ? | ? | ? | | | headers | | | | | | | |||
| +-------------------+---------+-----+------+---------+ | | Re-added | -- | -- | -- | -- | -- | | |||
| | headers | | | | | | | ||||
| | Modified | -- | RPI | RPI | -- | -- | | ||||
| | headers | | (decreasing | (increasing | | | | ||||
| | | | rank) | rank) | | | | ||||
| | Untouched | -- | -- | -- | -- | -- | | ||||
| | headers | | | | | | | ||||
| +-------------+-------+---------------+---------------+-----+-------+ | ||||
| Storing: Summary of the use of headers for RPL-aware-leaf to RPL- | Storing: Summary of the use of headers for RPL-aware-leaf to RPL- | |||
| aware-leaf | aware-leaf | |||
| 5.10. Example of Flow from RPL-aware-leaf to not-RPL-aware-leaf | 5.10. Example of Flow from RPL-aware-leaf to non-RPL-aware-leaf | |||
| In this case the flow comprises: | In this case the flow comprises: | |||
| 6LN --> 6LR --> root (6LBR) --> 6LR --> not-RPL-aware 6LN | 6LN --> 6LR --> common parent (6LR) --> 6LR --> not-RPL-aware 6LN | |||
| TODO: ADD explanation and picture based on the following table | ||||
| 5.10.1. Summary of the use of headers | Somehow, the sender has to know that the receiver is not RPL aware, | |||
| and needs to know 6LR, and not even the root knows where the 6LR is | ||||
| (in storing mode). This case FAILS. | ||||
| +-------------------+-----+-----+------+--------------------+ | +-------+------------+------------+-------------+-------------+-----+ | |||
| | Header | 6LN | 6LR | 6LBR | not-RPL-aware 6LBR | | | Heade | 6LN | 6LR | 6LR (common | 6LR | IPv | | |||
| +-------------------+-----+-----+------+--------------------+ | | r | | | parent) | | 6 | | |||
| | Inserted headers | ? | ? | ? | ? | | +-------+------------+------------+-------------+-------------+-----+ | |||
| | Removed headers | ? | ? | ? | ? | | | Inser | IPv6-in- | -- | -- | -- | -- | | |||
| | Re-added headers | ? | ? | ? | ? | | | ted h | IPv6(RPI) | | | | | | |||
| | Modified headers | ? | ? | ? | ? | | | eader | | | | | | | |||
| | Untouched headers | ? | ? | ? | ? | | | s | | | | | | | |||
| +-------------------+-----+-----+------+--------------------+ | | Remov | -- | -- | -- | IPv6-in- | -- | | |||
| | ed he | | | | IPv6(RPI) | | | ||||
| | aders | | | | | | | ||||
| | Re- | -- | -- | -- | -- | -- | | ||||
| | added | | | | | | | ||||
| | heade | | | | | | | ||||
| | rs | | | | | | | ||||
| | Modif | -- | IPv6-in- | IPv6-in- | -- | -- | | ||||
| | ied h | | IPv6(RPI) | IPv6(RPI) | | | | ||||
| | eader | | | | | | | ||||
| | s | | | | | | | ||||
| | Untou | -- | -- | -- | -- | -- | | ||||
| | ched | | | | | | | ||||
| | heade | | | | | | | ||||
| | rs | | | | | | | ||||
| +-------+------------+------------+-------------+-------------+-----+ | ||||
| Storing: Summary of the use of headers from RPL-aware-leaf to not- | Storing: Summary of the use of headers from RPL-aware-leaf to not- | |||
| RPL-aware-leaf | RPL-aware-leaf | |||
| 5.11. Example of Flow from not-RPL-aware-leaf to RPL-aware-leaf | 5.11. Example of Flow from not-RPL-aware-leaf to RPL-aware-leaf | |||
| In this case the flow comprises: | In this case the flow comprises: | |||
| not-RPL-aware 6LN --> 6LR --> root (6LBR) --> 6LR --> 6LN | not-RPL-aware 6LN --> 6LR --> common parent (6LR) --> 6LR --> 6LN | |||
| TODO: ADD explanation and picture based on the following table | ||||
| 5.11.1. Summary of the use of headers | The 6LR that get the packet from IPv6 node, insert the RPI header | |||
| encapsulated in IPv6-in-IPv6 header with destination to 6LN, the | ||||
| common parent change the direction of RPI and finally it is removed | ||||
| by 6LN. | ||||
| +-------------------+--------------------+-----+------+-----+ | +-------+----+------------+-------------+-------------+-------------+ | |||
| | Header | not-RPL-aware 6LBR | 6LR | 6LBR | 6LN | | | Heade | IP | 6LR | common | 6LR | 6LN | | |||
| +-------------------+--------------------+-----+------+-----+ | | r | v6 | | parent | | | | |||
| | Inserted headers | ? | ? | ? | ? | | | | | | (6LR) | | | | |||
| | Removed headers | ? | ? | ? | ? | | +-------+----+------------+-------------+-------------+-------------+ | |||
| | Re-added headers | ? | ? | ? | ? | | | Inser | -- | IPv6-in- | -- | -- | -- | | |||
| | Modified headers | ? | ? | ? | ? | | | ted h | | IPv6(RPI) | | | | | |||
| | Untouched headers | ? | ? | ? | ? | | | eader | | | | | | | |||
| +-------------------+--------------------+-----+------+-----+ | | s | | | | | | | |||
| | Remov | -- | -- | -- | -- | IPv6-in- | | ||||
| | ed he | | | | | IPv6(RPI) | | ||||
| | aders | | | | | | | ||||
| | Re- | -- | -- | -- | -- | -- | | ||||
| | added | | | | | | | ||||
| | heade | | | | | | | ||||
| | rs | | | | | | | ||||
| | Modif | -- | -- | IPv6-in- | IPv6-in- | -- | | ||||
| | ied h | | | IPv6(RPI) | IPv6(RPI) | | | ||||
| | eader | | | | | | | ||||
| | s | | | | | | | ||||
| | Untou | -- | -- | -- | -- | -- | | ||||
| | ched | | | | | | | ||||
| | heade | | | | | | | ||||
| | rs | | | | | | | ||||
| +-------+----+------------+-------------+-------------+-------------+ | ||||
| Storing: Summary of the use of headers from not-RPL-aware-leaf to | Storing: Summary of the use of headers from not-RPL-aware-leaf to | |||
| RPL-aware-leaf | RPL-aware-leaf | |||
| 5.12. Example of Flow from not-RPL-aware-leaf to not-RPL-aware-leaf | 5.12. Example of Flow from not-RPL-aware-leaf to not-RPL-aware-leaf | |||
| In this case the flow comprises: | In this case the flow comprises: | |||
| not-RPL-aware 6LN --> 6LR --> root (6LBR) --> 6LR --> not-RPL-aware | not-RPL-aware 6LN --> 6LR --> root (6LBR) --> 6LR --> not-RPL-aware | |||
| 6LN | 6LN | |||
| TODO: ADD explanation and picture based on the following table | The problem to solve is how to indicate where to send the packet when | |||
| get into LLN. | ||||
| 5.12.1. Summary of the use of headers | ||||
| +--------------+-------------------+-----+------+-------------------+ | +---------+-----+----------------+---------+-----------------+------+ | |||
| | Header | not-RPL-aware 6LN | 6LR | 6LBR | not-RPL-aware 6LN | | | Header | IPv | 6LR | 6LR | 6LR | IPv6 | | |||
| | | src | | | dst | | | | 6 | | (common | | dst | | |||
| +--------------+-------------------+-----+------+-------------------+ | | | src | | parent) | | | | |||
| | Inserted | ? | ? | ? | ? | | +---------+-----+----------------+---------+-----------------+------+ | |||
| | headers | | | | | | | Inserte | -- | IPv6-in- | -- | -- | -- | | |||
| | Removed | ? | ? | ? | ? | | | d | | IPv6(RPI) | | | | | |||
| | headers | | | | | | | headers | | | | | | | |||
| | Re-added | ? | ? | ? | ? | | | Removed | -- | -- | -- | IPv6-in- | -- | | |||
| | headers | | | | | | | headers | | | | IPv6(RPI) | | | |||
| | Modified | ? | ? | ? | ? | | | Re- | -- | -- | -- | -- | -- | | |||
| | headers | | | | | | | added | | | | | | | |||
| | Untouched | ? | ? | ? | ? | | | headers | | | | | | | |||
| | headers | | | | | | | Modifie | -- | -- | -- | -- | -- | | |||
| +--------------+-------------------+-----+------+-------------------+ | | d | | | | | | | |||
| | headers | | | | | | | ||||
| | Untouch | -- | -- | -- | -- | -- | | ||||
| | ed | | | | | | | ||||
| | headers | | | | | | | ||||
| +---------+-----+----------------+---------+-----------------+------+ | ||||
| Storing: Summary of the use of headers from not-RPL-aware-leaf to | Storing: Summary of the use of headers from not-RPL-aware-leaf to | |||
| not-RPL-aware-leaf | not-RPL-aware-leaf | |||
| 6. Non Storing mode | 6. Non Storing mode | |||
| 6.1. Example of Flow from RPL-aware-leaf to root | 6.1. Example of Flow from RPL-aware-leaf to root | |||
| In non-storing mode the leaf node uses Hop-By-Hop option (RFC 6553) | In non-storing mode the leaf node uses Hop-By-Hop option (RFC 6553) | |||
| to indicate the routing information to send messages to the DODAG | to indicate the routing information to send messages to the DODAG | |||
| root, this message is going to be analyzed in each node until arrive | root, this message is going to be analyzed in each node until arrive | |||
| the DODAG root. | the DODAG root. | |||
| In this case the flow comprises: | In this case not need to use IPv6-in-IPv6 because no header is not | |||
| going to be removed, neither RH3, the flow comprises: | ||||
| RPL-aware-leaf (6LN) --> 6LR --> root (6LBR) | RPL-aware-leaf (6LN) --> 6LR --> root (6LBR) | |||
| +------------------+ | This case is the same case as storing mode. | |||
| | Dispatch | | ||||
| | | | ||||
| +------------------+ | ||||
| | LowPAN_HC | | ||||
| | | | ||||
| +------------------+ | ||||
| | rpl_option | | ||||
| | | | ||||
| +------------------+ | ||||
| | SHR | | ||||
| | | | ||||
| +------------------+ | ||||
| | IPv6 payload | | ||||
| | | | ||||
| +------------------+ | ||||
| Figure 3: From leaf to Root - Non-Storing Mode | ||||
| TODO: ADD explanation/fix picture based on the following table | ||||
| 6.1.1. Summary of the use of headers | +-------------------+-----+------+------+ | |||
| +-------------------+-----+-----+------+ | | Header | 6LN | 6LR | 6LBR | | |||
| | Header | 6LN | 6LR | 6LBR | | +-------------------+-----+------+------+ | |||
| +-------------------+-----+-----+------+ | | Inserted headers | RPI | -- | -- | | |||
| | Inserted headers | ? | ? | ? | | | Removed headers | -- | -- | RPI | | |||
| | Removed headers | ? | ? | ? | | | Re-added headers | -- | -- | -- | | |||
| | Re-added headers | ? | ? | ? | | | Modified headers | -- | RPI | -- | | |||
| | Modified headers | ? | ? | ? | | | Untouched headers | -- | -- | -- | | |||
| | Untouched headers | ? | ? | ? | | +-------------------+-----+------+------+ | |||
| +-------------------+-----+-----+------+ | ||||
| Storing: Summary of the use of headers from RPL-aware-leaf to root | Non Storing: Summary of the use of headers from RPL-aware-leaf to | |||
| root | ||||
| 6.2. Example of Flow from root to RPL-aware-leaf | 6.2. Example of Flow from root to RPL-aware-leaf | |||
| In this case the flow comprises: | In this case the flow comprises: | |||
| root (6LBR)--> 6LR --> RPL-aware-leaf (6LN) | root (6LBR)--> 6LR --> RPL-aware-leaf (6LN) | |||
| TODO: ADD explanation and picture based on the following table | 6LBR might instert RPI header, and the rute is indicated in RH3. 6LR | |||
| updated RH3 and 6LN remove these headers. | ||||
| 6.2.1. Summary of the use of headers | ||||
| +-------------------+------+-----+-----+ | +-------------------+----------------------+------+----------+ | |||
| | Header | 6LBR | 6LR | 6LN | | | Header | 6LBR | 6LR | 6LN | | |||
| +-------------------+------+-----+-----+ | +-------------------+----------------------+------+----------+ | |||
| | Inserted headers | ? | ? | ? | | | Inserted headers | (optional: RPI), RH3 | -- | -- | | |||
| | Removed headers | ? | ? | ? | | | Removed headers | -- | -- | RH3,RPI | | |||
| | Re-added headers | ? | ? | ? | | | Re-added headers | -- | -- | -- | | |||
| | Modified headers | ? | ? | ? | | | Modified headers | -- | RH3 | -- | | |||
| | Untouched headers | ? | ? | ? | | | Untouched headers | -- | -- | -- | | |||
| +-------------------+------+-----+-----+ | +-------------------+----------------------+------+----------+ | |||
| Storing: Summary of the use of headers from root to RPL-aware-leaf | Non Storing: Summary of the use of headers from root to RPL-aware- | |||
| leaf | ||||
| 6.3. Example of Flow from root to not-RPL-aware-leaf | 6.3. Example of Flow from root to not-RPL-aware-leaf | |||
| In this case the flow comprises: | In this case the flow comprises: | |||
| root (6LBR)--> 6LR --> not-RPL-aware-leaf (6LN) | root (6LBR)--> 6LR --> not-RPL-aware-leaf (IPv6 node) | |||
| TODO: ADD explanation and picture based on the following table | In 6LBR the RH3 is added, and modified in 6LR where is fully | |||
| consumed, but left there. If the RPI is present, the IPv6 node which | ||||
| does not understand it will drop it. To avoid it the RPI should be | ||||
| removed before reach IPv6 node or it is recommended that RPI be | ||||
| omitted. An IPv6-in-IPv6 header should be necessary in this case. | ||||
| The DAO from 6LR about IPv6 could say if that the final IPv6 is not | ||||
| RPL (RPI) capable. | ||||
| 6.3.1. Summary of the use of headers | +-------------------+------+-----+------+ | |||
| +-------------------+------+-----+-------------------+ | | Header | 6LBR | 6LR | IPv6 | | |||
| | Header | 6LBR | 6LR | not-RPL-aware 6LN | | +-------------------+------+-----+------+ | |||
| +-------------------+------+-----+-------------------+ | | Inserted headers | RH3 | -- | -- | | |||
| | Inserted headers | ? | ? | ? | | | Removed headers | -- | -- | -- | | |||
| | Removed headers | ? | ? | ? | | | Re-added headers | -- | -- | -- | | |||
| | Re-added headers | ? | ? | ? | | | Modified headers | -- | RH3 | -- | | |||
| | Modified headers | ? | ? | ? | | | Untouched headers | -- | -- | -- | | |||
| | Untouched headers | ? | ? | ? | | +-------------------+------+-----+------+ | |||
| +-------------------+------+-----+-------------------+ | ||||
| Storing: Summary of the use of headers from root to not-RPL-aware- | Non Storing: Summary of the use of headers from root to not-RPL- | |||
| leaf | aware-leaf | |||
| 6.4. Example of Flow from not-RPL-aware-leaf to root | 6.4. Example of Flow from not-RPL-aware-leaf to root | |||
| In this case the flow comprises: | In this case the flow comprises: | |||
| not-RPL-aware-leaf (6LN) --> 6LR --> root (6LBR) | IPv6-node --> 6LR1 --> 6LR2 --> root (6LBR) | |||
| TODO: ADD explanation and picture based on the following table | ||||
| 6.4.1. Summary of the use of headers | In this case the RPI is encapsulated in the first 6LR, and is not | |||
| modified in the followings 6LRs. | ||||
| +-------------------+-------------------+-----+------+ | +-------------+------+-------------------+------+-------------------+ | |||
| | Header | not-RPL-aware 6LN | 6LR | 6LBR | | | Header | IPv6 | 6LR1 | 6LR2 | 6LBR | | |||
| +-------------------+-------------------+-----+------+ | +-------------+------+-------------------+------+-------------------+ | |||
| | Inserted headers | ? | ? | ? | | | Inserted | -- | IPv6-in-IPv6(RPI) | -- | -- | | |||
| | Removed headers | ? | ? | ? | | | headers | | | | | | |||
| | Re-added headers | ? | ? | ? | | | Removed | -- | -- | -- | IPv6-in-IPv6(RPI) | | |||
| | Modified headers | ? | ? | ? | | | headers | | | | | | |||
| | Untouched headers | ? | ? | ? | | | Re-added | -- | -- | -- | -- | | |||
| +-------------------+-------------------+-----+------+ | | headers | | | | | | |||
| | Modified | -- | -- | -- | -- | | ||||
| | headers | | | | | | ||||
| | Untouched | -- | IPv6-in-IPv6(RPI) | -- | -- | | ||||
| | headers | | | | | | ||||
| +-------------+------+-------------------+------+-------------------+ | ||||
| Storing: Summary of the use of headers from not-RPL-aware-leaf to | Non Storing: Summary of the use of headers from not-RPL-aware-leaf to | |||
| root | root | |||
| 6.5. Example of Flow from RPL-aware-leaf to Internet | 6.5. Example of Flow from RPL-aware-leaf to Internet | |||
| In this case the flow comprises: | In this case the flow comprises: | |||
| RPL-aware-leaf (6LN) --> 6LR --> root (6LBR) --> Internet | RPL-aware-leaf (6LN) --> 6LR --> root (6LBR) --> Internet | |||
| TODO: ADD explanation and picture based on the following table | This case requires that the network is awareness of what is external | |||
| to the LLN. Internet node never sees RPI or IPv6-in-IPv6 header. In | ||||
| 6.5.1. Summary of the use of headers | the 6LBR the flow label is computed if it is zero. RPI remains | |||
| unmodified. | ||||
| +-------------------+-----+-----+------+----------+ | +----------+-------------------+-----+-------------------+----------+ | |||
| | Header | 6LN | 6LR | 6LBR | Internet | | | Header | 6LN | 6LR | 6LBR | Internet | | |||
| +-------------------+-----+-----+------+----------+ | +----------+-------------------+-----+-------------------+----------+ | |||
| | Inserted headers | ? | ? | ? | ? | | | Inserted | IPV6-in-IPv6(RPI) | -- | -- | -- | | |||
| | Removed headers | ? | ? | ? | ? | | | headers | | | | | | |||
| | Re-added headers | ? | ? | ? | ? | | | Removed | -- | -- | IPV6-in-IPv6(RPI) | -- | | |||
| | Modified headers | ? | ? | ? | ? | | | headers | | | | | | |||
| | Untouched headers | ? | ? | ? | ? | | | Re-added | -- | -- | -- | -- | | |||
| +-------------------+-----+-----+------+----------+ | | headers | | | | | | |||
| | Modified | -- | -- | -- | -- | | ||||
| | headers | | | | | | ||||
| | Untouche | -- | RPI | -- | -- | | ||||
| | d | | | | | | ||||
| | headers | | | | | | ||||
| +----------+-------------------+-----+-------------------+----------+ | ||||
| Storing: Summary of the use of headers from RPL-aware-leaf to | Non Storing: Summary of the use of headers from RPL-aware-leaf to | |||
| Internet | Internet | |||
| 6.6. Example of Flow from Internet to RPL-aware-leaf | 6.6. Example of Flow from Internet to RPL-aware-leaf | |||
| In this case the flow comprises: | In this case the flow comprises: | |||
| Internet --> root (6LBR) --> 6LR --> RPL-aware-leaf (6LN) | Internet --> root (6LBR) --> 6LR --> RPL-aware-leaf (6LN) | |||
| TODO: ADD explanation and picture based on the following table | If the last RH3 entry is the 6LR, then the IPv6-in-IPv6 will be | |||
| removed there, if the last entry is the 6LN, then the RH3 will go all | ||||
| 6.6.1. Summary of the use of headers | the way to the leaf. In 6LBR the flow label should be set to zero. | |||
| +-------------------+----------+------+-----+-----+ | +---------+--------+-------------------------+----------------+-----+ | |||
| | Header | Internet | 6LBR | 6LR | 6LN | | | Header | Intern | 6LBR | 6LR | 6LN | | |||
| +-------------------+----------+------+-----+-----+ | | | et | | | | | |||
| | Inserted headers | ? | ? | ? | ? | | +---------+--------+-------------------------+----------------+-----+ | |||
| | Removed headers | ? | ? | ? | ? | | | Inserte | -- | IPv6-in- | -- | -- | | |||
| | Re-added headers | ? | ? | ? | ? | | | d | | IPv6(RH3,optional:RPI) | | | | |||
| | Modified headers | ? | ? | ? | ? | | | headers | | | | | | |||
| | Untouched headers | ? | ? | ? | ? | | | Removed | -- | -- | IPv6-in-IPv6 | -- | | |||
| +-------------------+----------+------+-----+-----+ | | headers | | | can be removed | | | |||
| | | | | if RH3 | | | ||||
| | | | | consumed | | | ||||
| | Re- | -- | -- | -- | -- | | ||||
| | added | | | | | | ||||
| | headers | | | | | | ||||
| | Modifie | -- | -- | IPv6-in- | -- | | ||||
| | d | | | IPv6(RH3) | | | ||||
| | headers | | | | | | ||||
| | Untouch | -- | -- | -- | -- | | ||||
| | ed | | | | | | ||||
| | headers | | | | | | ||||
| +---------+--------+-------------------------+----------------+-----+ | ||||
| Storing: Summary of the use of headers from Internet to RPL-aware- | Non Storing: Summary of the use of headers from Internet to RPL- | |||
| leaf | aware-leaf | |||
| 6.7. Example of Flow from not-RPL-aware-leaf to Internet | 6.7. Example of Flow from not-RPL-aware-leaf to Internet | |||
| In this case the flow comprises: | In this case the flow comprises: | |||
| not-RPL-aware-leaf (6LN) --> 6LR --> root (6LBR) --> Internet | not-RPL-aware-leaf (6LN) --> 6LR --> root (6LBR) --> Internet | |||
| TODO: ADD explanation and picture based on the following table | In this case the flow label is recommended to be zero in the IPv6 | |||
| node. no RPL headers are added in the IPv6 node, since it is ignorant | ||||
| 6.7.1. Summary of the use of headers | of RPL. Internet node does not see special headers. In 6LBR the | |||
| flow label is computed if it is zero. | ||||
| +-------------------+-------------------+-----+------+----------+ | +----------+-----+-------------------+-------------------+----------+ | |||
| | Header | not-RPL-aware 6LN | 6LR | 6LBR | Internet | | | Header | IPv | 6LR | 6LBR | Internet | | |||
| +-------------------+-------------------+-----+------+----------+ | | | 6 | | | | | |||
| | Inserted headers | ? | ? | ? | ? | | +----------+-----+-------------------+-------------------+----------+ | |||
| | Removed headers | ? | ? | ? | ? | | | Inserted | -- | IPv6-in-IPv6(RPI) | -- | -- | | |||
| | Re-added headers | ? | ? | ? | ? | | | headers | | | | | | |||
| | Modified headers | ? | ? | ? | ? | | | Removed | -- | -- | IPv6-in-IPv6(RPI) | -- | | |||
| | Untouched headers | ? | ? | ? | ? | | | headers | | | | | | |||
| +-------------------+-------------------+-----+------+----------+ | | Re-added | -- | -- | -- | -- | | |||
| | headers | | | | | | ||||
| | Modified | -- | -- | -- | -- | | ||||
| | headers | | | | | | ||||
| | Untouche | -- | -- | -- | -- | | ||||
| | d | | | | | | ||||
| | headers | | | | | | ||||
| +----------+-----+-------------------+-------------------+----------+ | ||||
| Storing: Summary of the use of headers from not-RPL-aware-leaf to | Non Storing: Summary of the use of headers from not-RPL-aware-leaf to | |||
| Internet | Internet | |||
| 6.8. Example of Flow from Internet to not-RPL-aware-leaf | 6.8. Example of Flow from Internet to not-RPL-aware-leaf | |||
| In this case the flow comprises: | In this case the flow comprises: | |||
| Internet --> root (6LBR) --> 6LR --> not-RPL-aware-leaf (6LN) | Internet --> root (6LBR) --> 6LR --> not-RPL-aware-leaf (6LN) | |||
| TODO: ADD explanation and picture based on the following table | In this case the flow label in 6LBR should be set zero in 6LBR, where | |||
| RH3 is inserted and optionally RHI. RH3 must end at 6LR. | ||||
| 6.8.1. Summary of the use of headers | ||||
| +-------------------+----------+------+-----+-------------------+ | +---------+--------+-------------------------+---------------+------+ | |||
| | Header | Internet | 6LBR | 6LR | not-RPL-aware 6LN | | | Header | Intern | 6LBR | 6LR | IPv6 | | |||
| +-------------------+----------+------+-----+-------------------+ | | | et | | | | | |||
| | Inserted headers | ? | ? | ? | ? | | +---------+--------+-------------------------+---------------+------+ | |||
| | Removed headers | ? | ? | ? | ? | | | Inserte | -- | IPv6-in- | -- | -- | | |||
| | Re-added headers | ? | ? | ? | ? | | | d | | IPv6(RH3,optional:RPI) | | | | |||
| | Modified headers | ? | ? | ? | ? | | | headers | | | | | | |||
| | Untouched headers | ? | ? | ? | ? | | | Removed | -- | -- | IPv6-in- | -- | | |||
| +-------------------+----------+------+-----+-------------------+ | | headers | | | IPv6(RH3, | | | |||
| | | | | RPI) | | | ||||
| | Re- | -- | -- | -- | -- | | ||||
| | added | | | | | | ||||
| | headers | | | | | | ||||
| | Modifie | -- | -- | -- | -- | | ||||
| | d | | | | | | ||||
| | headers | | | | | | ||||
| | Untouch | -- | -- | -- | -- | | ||||
| | ed | | | | | | ||||
| | headers | | | | | | ||||
| +---------+--------+-------------------------+---------------+------+ | ||||
| Storing: Summary of the use of headers from Internet to not-RPL- | NonStoring: Summary of the use of headers from Internet to not-RPL- | |||
| aware-leaf | aware-leaf | |||
| 6.9. Example of Flow from RPL-aware-leaf to RPL-aware-leaf | 6.9. Example of Flow from RPL-aware-leaf to RPL-aware-leaf | |||
| In this case the flow comprises: | In this case the flow comprises: | |||
| 6LN --> 6LR --> root (6LBR) --> 6LR --> 6LN | 6LN --> 6LR --> root (6LBR) --> 6LR --> 6LN | |||
| TODO: ADD explanation and picture based on the following table | This case comprises in the same RPL Domain. In the 6LN the RPI | |||
| header is inserted. In the 6LBR the RH3 header is inserted in a | ||||
| 6.9.1. Summary of the use of headers | IPv6-in-IPv6 header and removed at the 6LN destination. | |||
| +-------------------+---------+-----+------+---------+ | +-----------+------+---------------------+-----+--------------------+ | |||
| | Header | 6LN src | 6LR | 6LBR | 6LN dst | | | Header | 6LN | 6LBR | 6LR | 6LN dst | | |||
| +-------------------+---------+-----+------+---------+ | | | src | | | | | |||
| | Inserted headers | ? | ? | ? | ? | | +-----------+------+---------------------+-----+--------------------+ | |||
| | Removed headers | ? | ? | ? | ? | | | Inserted | RPI | IPv6-in-IPv6(RH3 to | -- | -- | | |||
| | Re-added headers | ? | ? | ? | ? | | | headers | | 6LN) | | | | |||
| | Modified headers | ? | ? | ? | ? | | | | | {IP,RPI,payload} | | | | |||
| | Untouched headers | ? | ? | ? | ? | | | Removed | -- | -- | -- | IPv6-in-IPv6(RH3) | | |||
| +-------------------+---------+-----+------+---------+ | | headers | | | | {IP,RPI,payload} | | |||
| | Re-added | -- | -- | -- | -- | | ||||
| | headers | | | | | | ||||
| | Modified | -- | -- | -- | -- | | ||||
| | headers | | | | | | ||||
| | Untouched | -- | -- | -- | -- | | ||||
| | headers | | | | | | ||||
| +-----------+------+---------------------+-----+--------------------+ | ||||
| Storing: Summary of the use of headers for RPL-aware-leaf to RPL- | Non Storing: Summary of the use of headers for RPL-aware-leaf to RPL- | |||
| aware-leaf | aware-leaf | |||
| 6.10. Example of Flow from RPL-aware-leaf to not-RPL-aware-leaf | 6.10. Example of Flow from RPL-aware-leaf to not-RPL-aware-leaf | |||
| In this case the flow comprises: | In this case the flow comprises: | |||
| 6LN --> 6LR --> root (6LBR) --> 6LR --> not-RPL-aware 6LN | 6LN --> 6LR --> root (6LBR) --> 6LR --> not-RPL-aware 6LN | |||
| TODO: ADD explanation and picture based on the following table | The 6LN insert the RPI in a IPv6-in-IPv6 header, which is addressed | |||
| to 6LBR. The 6LBR remove this RPI header and insert a RH3 header | ||||
| 6.10.1. Summary of the use of headers | with an optional RPI. These headers are removed by 6LR before send | |||
| the packet to the IPv6 node. | ||||
| +-------------------+-----+-----+------+--------------------+ | +------------+-------------------+-------------+-------------+------+ | |||
| | Header | 6LN | 6LR | 6LBR | not-RPL-aware 6LBR | | | Header | 6LN | 6LBR | 6LR | IPv6 | | |||
| +-------------------+-----+-----+------+--------------------+ | +------------+-------------------+-------------+-------------+------+ | |||
| | Inserted headers | ? | ? | ? | ? | | | Inserted | IPv6-in-IPv6(RPI) | IPIP(RH3, | -- | -- | | |||
| | Removed headers | ? | ? | ? | ? | | | headers | | opt RPI) | | | | |||
| | Re-added headers | ? | ? | ? | ? | | | Removed | -- | IPIP(RPI) | IPIP(RH3, | -- | | |||
| | Modified headers | ? | ? | ? | ? | | | headers | | | opt RPI) | | | |||
| | Untouched headers | ? | ? | ? | ? | | | Re-added | -- | -- | -- | -- | | |||
| +-------------------+-----+-----+------+--------------------+ | | headers | | | | | | |||
| | Modified | -- | -- | -- | -- | | ||||
| | headers | | | | | | ||||
| | Untouched | -- | -- | -- | -- | | ||||
| | headers | | | | | | ||||
| +------------+-------------------+-------------+-------------+------+ | ||||
| Storing: Summary of the use of headers from RPL-aware-leaf to not- | Non Storing: Summary of the use of headers from RPL-aware-leaf to | |||
| RPL-aware-leaf | not-RPL-aware-leaf | |||
| 6.11. Example of Flow from not-RPL-aware-leaf to RPL-aware-leaf | 6.11. Example of Flow from not-RPL-aware-leaf to RPL-aware-leaf | |||
| In this case the flow comprises: | In this case the flow comprises: | |||
| not-RPL-aware 6LN --> 6LR --> root (6LBR) --> 6LR --> 6LN | not-RPL-aware 6LN --> 6LR --> root (6LBR) --> 6LR --> 6LN | |||
| TODO: ADD explanation and picture based on the following table | RPI is added in 6LR until the root and then removed, then RH3 is | |||
| added and removed at destination. | ||||
| 6.11.1. Summary of the use of headers | ||||
| +-------------------+--------------------+-----+------+-----+ | +-------------------+------+------------+-----------+------------+ | |||
| | Header | not-RPL-aware 6LBR | 6LR | 6LBR | 6LN | | | Header | IPv6 | 6LR | 6LBR | 6LN | | |||
| +-------------------+--------------------+-----+------+-----+ | +-------------------+------+------------+-----------+------------+ | |||
| | Inserted headers | ? | ? | ? | ? | | | Inserted headers | -- | IPIP(RPI) | IPIP(RH3) | -- | | |||
| | Removed headers | ? | ? | ? | ? | | | Removed headers | -- | IPIP(RPI) | -- | IPIP(RH3) | | |||
| | Re-added headers | ? | ? | ? | ? | | | Re-added headers | -- | -- | -- | -- | | |||
| | Modified headers | ? | ? | ? | ? | | | Modified headers | -- | -- | -- | -- | | |||
| | Untouched headers | ? | ? | ? | ? | | | Untouched headers | -- | -- | -- | -- | | |||
| +-------------------+--------------------+-----+------+-----+ | +-------------------+------+------------+-----------+------------+ | |||
| Storing: Summary of the use of headers from not-RPL-aware-leaf to | Non Storing: Summary of the use of headers from not-RPL-aware-leaf to | |||
| RPL-aware-leaf | RPL-aware-leaf | |||
| 6.12. Example of Flow from not-RPL-aware-leaf to not-RPL-aware-leaf | 6.12. Example of Flow from not-RPL-aware-leaf to not-RPL-aware-leaf | |||
| In this case the flow comprises: | In this case the flow comprises: | |||
| not-RPL-aware 6LN --> 6LR --> root (6LBR) --> 6LR --> not-RPL-aware | not-RPL-aware 6LN --> 6LR --> root (6LBR) --> 6LR --> not-RPL-aware | |||
| 6LN | 6LN | |||
| TODO: ADD explanation and picture based on the following table | RPI is added in 6LR until the root and then might be removed, then | |||
| RH3 is added. These headers are removed at 6LR before go to | ||||
| 6.12.1. Summary of the use of headers | destination. | |||
| +--------------+-------------------+-----+------+-------------------+ | +--------------+------+-----------+-----------+--------------+------+ | |||
| | Header | not-RPL-aware 6LN | 6LR | 6LBR | not-RPL-aware 6LN | | | Header | IPv6 | 6LR | 6LBR | 6LR | IPv6 | | |||
| | | src | | | dst | | +--------------+------+-----------+-----------+--------------+------+ | |||
| +--------------+-------------------+-----+------+-------------------+ | | Inserted | -- | IPIP(RPI) | IPIP(RH3) | -- | -- | | |||
| | Inserted | ? | ? | ? | ? | | | headers | | | | | | | |||
| | headers | | | | | | | Removed | -- | -- | IPIP(RPI) | IPIP(RH3, | -- | | |||
| | Removed | ? | ? | ? | ? | | | headers | | | | opt RPI) | | | |||
| | headers | | | | | | | Re-added | -- | -- | -- | -- | -- | | |||
| | Re-added | ? | ? | ? | ? | | | headers | | | | | | | |||
| | headers | | | | | | | Modified | -- | -- | -- | -- | -- | | |||
| | Modified | ? | ? | ? | ? | | | headers | | | | | | | |||
| | headers | | | | | | | Untouched | -- | -- | -- | -- | -- | | |||
| | Untouched | ? | ? | ? | ? | | | headers | | | | | | | |||
| | headers | | | | | | +--------------+------+-----------+-----------+--------------+------+ | |||
| +--------------+-------------------+-----+------+-------------------+ | ||||
| Storing: Summary of the use of headers from not-RPL-aware-leaf to | Non Storing: Summary of the use of headers from not-RPL-aware-leaf to | |||
| not-RPL-aware-leaf | not-RPL-aware-leaf | |||
| 7. IANA Considerations | 7. Future RPL work | |||
| There are cases from above that are not clear how to send the | ||||
| information. It requires furhter analysis on how to proceed to send | ||||
| the information from source to destination. | ||||
| From the above cases, we have in storing mode: | ||||
| - Flow from RPL-aware-leaf to non-RPL-aware-leaf: Somehow, the sender | ||||
| has to know that the receiver is not RPL aware, and needs to know | ||||
| 6LR, and not even the root knows where the 6LR is located. | ||||
| - Flow from not-RPL-aware-leaf to not-RPL-aware-leaf: The problem to | ||||
| solve is how to indicate where to send the packet when get into LLN. | ||||
| 8. IANA Considerations | ||||
| There are no IANA considerations related to this document. | There are no IANA considerations related to this document. | |||
| 8. Security Considerations | 9. Security Considerations | |||
| TODO. | TODO. | |||
| 9. Acknowledgments | 10. Acknowledgments | |||
| This work is partially funded by the FP7 Marie Curie Initial Training | This work is partially funded by the FP7 Marie Curie Initial Training | |||
| Network (ITN) METRICS project (grant agreement No. 607728). | Network (ITN) METRICS project (grant agreement No. 607728). | |||
| The authors would like to acknowledge the review, feedback, and | The authors would like to acknowledge the review, feedback, and | |||
| comments of Thomas Watteyne, Xavier Vilajosana, Robert Cragie and | comments of Thomas Watteyne, Xavier Vilajosana and Robert Cragie. | |||
| Pascal Thubert | ||||
| To be completed with additional Acknowledgments. | To be completed with additional Acknowledgments. | |||
| 10. References | 11. References | |||
| 10.1. Normative References | 11.1. Normative References | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <http://www.rfc-editor.org/info/rfc2119>. | <http://www.rfc-editor.org/info/rfc2119>. | |||
| [RFC6550] Winter, T., Ed., Thubert, P., Ed., Brandt, A., Hui, J., | [RFC6550] Winter, T., Ed., Thubert, P., Ed., Brandt, A., Hui, J., | |||
| Kelsey, R., Levis, P., Pister, K., Struik, R., Vasseur, | Kelsey, R., Levis, P., Pister, K., Struik, R., Vasseur, | |||
| JP., and R. Alexander, "RPL: IPv6 Routing Protocol for | JP., and R. Alexander, "RPL: IPv6 Routing Protocol for | |||
| Low-Power and Lossy Networks", RFC 6550, | Low-Power and Lossy Networks", RFC 6550, | |||
| skipping to change at page 23, line 5 ¶ | skipping to change at page 28, line 35 ¶ | |||
| Information in Data-Plane Datagrams", RFC 6553, | Information in Data-Plane Datagrams", RFC 6553, | |||
| DOI 10.17487/RFC6553, March 2012, | DOI 10.17487/RFC6553, March 2012, | |||
| <http://www.rfc-editor.org/info/rfc6553>. | <http://www.rfc-editor.org/info/rfc6553>. | |||
| [RFC6554] Hui, J., Vasseur, JP., Culler, D., and V. Manral, "An IPv6 | [RFC6554] Hui, J., Vasseur, JP., Culler, D., and V. Manral, "An IPv6 | |||
| Routing Header for Source Routes with the Routing Protocol | Routing Header for Source Routes with the Routing Protocol | |||
| for Low-Power and Lossy Networks (RPL)", RFC 6554, | for Low-Power and Lossy Networks (RPL)", RFC 6554, | |||
| DOI 10.17487/RFC6554, March 2012, | DOI 10.17487/RFC6554, March 2012, | |||
| <http://www.rfc-editor.org/info/rfc6554>. | <http://www.rfc-editor.org/info/rfc6554>. | |||
| 10.2. Informative References | 11.2. Informative References | |||
| [I-D.ietf-6tisch-architecture] | ||||
| Thubert, P., "An Architecture for IPv6 over the TSCH mode | ||||
| of IEEE 802.15.4", draft-ietf-6tisch-architecture-08 (work | ||||
| in progress), May 2015. | ||||
| [I-D.thubert-6lo-routing-dispatch] | ||||
| Thubert, P., Bormann, C., Toutain, L., and R. Cragie, "A | ||||
| Routing Header Dispatch for 6LoWPAN", draft-thubert-6lo- | ||||
| routing-dispatch-06 (work in progress), August 2015. | ||||
| [RFC7102] Vasseur, JP., "Terms Used in Routing for Low-Power and | [RFC7102] Vasseur, JP., "Terms Used in Routing for Low-Power and | |||
| Lossy Networks", RFC 7102, DOI 10.17487/RFC7102, January | Lossy Networks", RFC 7102, DOI 10.17487/RFC7102, January | |||
| 2014, <http://www.rfc-editor.org/info/rfc7102>. | 2014, <http://www.rfc-editor.org/info/rfc7102>. | |||
| Authors' Addresses | Authors' Addresses | |||
| Maria Ines Robles | Maria Ines Robles | |||
| Ericsson | Ericsson | |||
| Hirsalantie 11 | Hirsalantie 11 | |||
| Jorvas 02420 | Jorvas 02420 | |||
| Finland | Finland | |||
| Email: maria.ines.robles@ericsson.com | Email: maria.ines.robles@ericsson.com | |||
| Michaelbl C. Richardson | Michael C. Richardson | |||
| Sandelman Software Works | Sandelman Software Works | |||
| 470 Dawson Avenue | 470 Dawson Avenue | |||
| Ottawa, ON K1Z 5V7 | Ottawa, ON K1Z 5V7 | |||
| CA | CA | |||
| Email: mcr+ietf@sandelman.ca | Email: mcr+ietf@sandelman.ca | |||
| URI: http://www.sandelman.ca/ | URI: http://www.sandelman.ca/ | |||
| Pascal Thubert | ||||
| Cisco Systems, Inc | ||||
| Village d'Entreprises Green Side 400, Avenue de Roumanille | ||||
| Batiment T3, Biot - Sophia Antipolis 06410 | ||||
| France | ||||
| Email: pthubert@cisco.com | ||||
| End of changes. 97 change blocks. | ||||
| 487 lines changed or deleted | 666 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||