| < draft-ietf-roll-useofrplinfo-05.txt | draft-ietf-roll-useofrplinfo-06.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: December 12, 2016 SSW | Expires: January 19, 2017 SSW | |||
| P. Thubert | P. Thubert | |||
| Cisco | Cisco | |||
| June 10, 2016 | July 18, 2016 | |||
| When to use RFC 6553, 6554 and IPv6-in-IPv6 | When to use RFC 6553, 6554 and IPv6-in-IPv6 | |||
| draft-ietf-roll-useofrplinfo-05 | draft-ietf-roll-useofrplinfo-06 | |||
| Abstract | Abstract | |||
| This document looks at different data flows through LLN (Low-Power | This document looks at different data flows through LLN (Low-Power | |||
| and Lossy Networks) where RPL (IPv6 Routing Protocol for Low-Power | and Lossy Networks) where RPL (IPv6 Routing Protocol for Low-Power | |||
| and Lossy Networks) is used to establish routing. The document | and Lossy Networks) is used to establish routing. The document | |||
| enumerates the cases where RFC 6553, RFC 6554 and IPv6-in-IPv6 | enumerates the cases where RFC 6553, RFC 6554 and IPv6-in-IPv6 | |||
| encapsulation is required. This analysis provides the basis on which | encapsulation is required. This analysis provides the basis on which | |||
| to design efficient compression of these headers. | to design efficient compression of these headers. | |||
| skipping to change at page 1, line 38 ¶ | skipping to change at page 1, line 38 ¶ | |||
| 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 December 12, 2016. | This Internet-Draft will expire on January 19, 2017. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2016 IETF Trust and the persons identified as the | Copyright (c) 2016 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 | |||
| 2.1. hop-by-hop IPv6-in-IPv6 headers . . . . . . . . . . . . . 4 | ||||
| 3. Sample/reference topology . . . . . . . . . . . . . . . . . . 4 | 3. Sample/reference topology . . . . . . . . . . . . . . . . . . 4 | |||
| 4. Use cases . . . . . . . . . . . . . . . . . . . . . . . . . . 6 | 4. Use cases . . . . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 5. Storing mode . . . . . . . . . . . . . . . . . . . . . . . . 8 | 5. Storing mode . . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 5.1. Example of Flow from RPL-aware-leaf to root . . . . . . . 9 | 5.1. Example of Flow from RPL-aware-leaf to root . . . . . . . 9 | |||
| 5.2. Example of Flow from root to RPL-aware-leaf . . . . . . . 10 | 5.2. Example of Flow from root to RPL-aware-leaf . . . . . . . 10 | |||
| 5.3. Example of Flow from root to not-RPL-aware-leaf . . . . . 11 | 5.3. Example of Flow from root to not-RPL-aware-leaf . . . . . 11 | |||
| 5.4. Example of Flow from not-RPL-aware-leaf to root . . . . . 11 | 5.4. Example of Flow from not-RPL-aware-leaf to root . . . . . 12 | |||
| 5.5. Example of Flow from RPL-aware-leaf to Internet . . . . . 12 | 5.5. Example of Flow from RPL-aware-leaf to Internet . . . . . 12 | |||
| 5.6. Example of Flow from Internet to RPL-aware-leaf . . . . . 13 | 5.6. Example of Flow from Internet to RPL-aware-leaf . . . . . 13 | |||
| 5.7. Example of Flow from not-RPL-aware-leaf to Internet . . . 13 | 5.7. Example of Flow from not-RPL-aware-leaf to Internet . . . 14 | |||
| 5.8. Example of Flow from Internet to non-RPL-aware-leaf . . . 14 | 5.8. Example of Flow from Internet to non-RPL-aware-leaf . . . 14 | |||
| 5.9. Example of Flow from RPL-aware-leaf to RPL-aware-leaf . . 15 | 5.9. Example of Flow from RPL-aware-leaf to RPL-aware-leaf . . 15 | |||
| 5.10. Example of Flow from RPL-aware-leaf to non-RPL-aware-leaf 16 | 5.10. Example of Flow from RPL-aware-leaf to non-RPL-aware-leaf 16 | |||
| 5.11. Example of Flow from not-RPL-aware-leaf to RPL-aware-leaf 17 | 5.11. Example of Flow from not-RPL-aware-leaf to RPL-aware-leaf 18 | |||
| 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 . . . . . . . . . . . . . . . . . . . . . . . . . . 18 | leaf . . . . . . . . . . . . . . . . . . . . . . . . . . 19 | |||
| 6. Non Storing mode . . . . . . . . . . . . . . . . . . . . . . 19 | 6. Non Storing mode . . . . . . . . . . . . . . . . . . . . . . 20 | |||
| 6.1. Example of Flow from RPL-aware-leaf to root . . . . . . . 19 | 6.1. Example of Flow from RPL-aware-leaf to root . . . . . . . 20 | |||
| 6.2. Example of Flow from root to RPL-aware-leaf . . . . . . . 20 | 6.2. Example of Flow from root to RPL-aware-leaf . . . . . . . 21 | |||
| 6.3. Example of Flow from root to not-RPL-aware-leaf . . . . . 20 | 6.3. Example of Flow from root to not-RPL-aware-leaf . . . . . 21 | |||
| 6.4. Example of Flow from not-RPL-aware-leaf to root . . . . . 21 | 6.4. Example of Flow from not-RPL-aware-leaf to root . . . . . 22 | |||
| 6.5. Example of Flow from RPL-aware-leaf to Internet . . . . . 22 | 6.5. Example of Flow from RPL-aware-leaf to Internet . . . . . 23 | |||
| 6.6. Example of Flow from Internet to RPL-aware-leaf . . . . . 22 | 6.6. Example of Flow from Internet to RPL-aware-leaf . . . . . 23 | |||
| 6.7. Example of Flow from not-RPL-aware-leaf to Internet . . . 23 | 6.7. Example of Flow from not-RPL-aware-leaf to Internet . . . 24 | |||
| 6.8. Example of Flow from Internet to non-RPL-aware-leaf . . . 24 | 6.8. Example of Flow from Internet to non-RPL-aware-leaf . . . 25 | |||
| 6.9. Example of Flow from RPL-aware-leaf to RPL-aware-leaf . . 24 | 6.9. Example of Flow from RPL-aware-leaf to RPL-aware-leaf . . 25 | |||
| 6.10. Example of Flow from RPL-aware-leaf to not-RPL-aware-leaf 25 | 6.10. Example of Flow from RPL-aware-leaf to not-RPL-aware-leaf 26 | |||
| 6.11. Example of Flow from not-RPL-aware-leaf to RPL-aware-leaf 26 | 6.11. Example of Flow from not-RPL-aware-leaf to RPL-aware-leaf 27 | |||
| 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 . . . . . . . . . . . . . . . . . . . . . . . . . . 27 | leaf . . . . . . . . . . . . . . . . . . . . . . . . . . 28 | |||
| 7. Observations about the problem . . . . . . . . . . . . . . . 27 | 7. Observations about the problem . . . . . . . . . . . . . . . 28 | |||
| 7.1. Storing mode . . . . . . . . . . . . . . . . . . . . . . 27 | 7.1. Storing mode . . . . . . . . . . . . . . . . . . . . . . 28 | |||
| 7.2. Non-Storing mode . . . . . . . . . . . . . . . . . . . . 28 | 7.2. Non-Storing mode . . . . . . . . . . . . . . . . . . . . 29 | |||
| 8. 6LoRH Compression cases . . . . . . . . . . . . . . . . . . . 29 | 8. 6LoRH Compression cases . . . . . . . . . . . . . . . . . . . 30 | |||
| 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 29 | 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 30 | |||
| 10. Security Considerations . . . . . . . . . . . . . . . . . . . 29 | 10. Security Considerations . . . . . . . . . . . . . . . . . . . 30 | |||
| 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 29 | 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 30 | |||
| 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 29 | 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 30 | |||
| 12.1. Normative References . . . . . . . . . . . . . . . . . . 29 | 12.1. Normative References . . . . . . . . . . . . . . . . . . 30 | |||
| 12.2. Informative References . . . . . . . . . . . . . . . . . 30 | 12.2. Informative References . . . . . . . . . . . . . . . . . 31 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 31 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 32 | |||
| 1. Introduction | 1. Introduction | |||
| RPL (IPv6 Routing Protocol for Low-Power and Lossy Networks) | RPL (IPv6 Routing Protocol for Low-Power and Lossy Networks) | |||
| [RFC6550] is a routing protocol for constrained networks. RFC 6553 | [RFC6550] is a routing protocol for constrained networks. RFC 6553 | |||
| [RFC6553] defines the "RPL option" (RPI), carried within the IPv6 | [RFC6553] defines the "RPL option" (RPI), carried within the IPv6 | |||
| Hop-by-Hop header to quickly identify inconsistencies (loops) in the | Hop-by-Hop header to quickly identify inconsistencies (loops) in the | |||
| routing topology. RFC 6554 [RFC6554] defines the "RPL Source Route | routing topology. RFC 6554 [RFC6554] defines the "RPL Source Route | |||
| Header" (RH3), an IPv6 Extension Header to deliver datagrams within a | Header" (RH3), an IPv6 Extension Header to deliver datagrams within a | |||
| RPL routing domain, particularly in non-storing mode. | RPL routing domain, particularly in non-storing mode. | |||
| skipping to change at page 3, line 35 ¶ | skipping to change at page 3, line 36 ¶ | |||
| artifacts as possible that not all implementors agree when artifacts | artifacts as possible that not all implementors agree when artifacts | |||
| are necessary, or when they can be safely omitted, or removed. | are necessary, or when they can be safely omitted, or removed. | |||
| An interim meeting went through the 24 cases defined here to discover | An interim meeting went through the 24 cases defined here to discover | |||
| if there were any shortcuts, and this document is the result of that | if there were any shortcuts, and this document is the result of that | |||
| discussion. This document should not be defining anything new, but | discussion. This document should not be defining anything new, but | |||
| it may clarify what is correct and incorrect behaviour. | it may clarify what is correct and incorrect behaviour. | |||
| The related document A Routing Header Dispatch for 6LoWPAN (6LoRH) | The related document A Routing Header Dispatch for 6LoWPAN (6LoRH) | |||
| [I-D.ietf-roll-routing-dispatch] defines a method to compress RPL | [I-D.ietf-roll-routing-dispatch] defines a method to compress RPL | |||
| Option information and Routing Header type 3 (RFC6554) and an | Option information and Routing Header type 3 [RFC6554], an efficient | |||
| efficient IP-in-IP technique. Uses cases proposed for the | IP-in-IP technique, and use cases proposed for the | |||
| [Second6TischPlugtest] involving 6loRH. | [Second6TischPlugtest] involving 6loRH. | |||
| 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] applies to this document: LBR, LLN, | Terminology defined in [RFC7102] applies to this document: LBR, LLN, | |||
| RPL, RPL Domain and ROLL. | RPL, RPL Domain and ROLL. | |||
| 2.1. hop-by-hop IPv6-in-IPv6 headers | ||||
| The term "hop-by-hop IPv6-in-IPv6" header refers to: adding a header | ||||
| that originates from a node to an adjacent node, using the addresses | ||||
| (usually the GUA or ULA, but could use the link-local addresses) of | ||||
| each node. If the packet must traverse multiple hops, then it must | ||||
| be decapsulated at each hop, and then re-encapsulated again in a | ||||
| similar fashion. | ||||
| 3. Sample/reference topology | 3. Sample/reference topology | |||
| A RPL network is composed of a 6LBR (6LoWPAN Border Router), Backbone | A RPL network is composed of a 6LBR (6LoWPAN Border Router), Backbone | |||
| Router (6BBR), 6LR (6LoWPAN Router) and 6LN (6LoWPAN Node) as leaf | Router (6BBR), 6LR (6LoWPAN Router) and 6LN (6LoWPAN Node) as leaf | |||
| logically organized in a DODAG structure (Destination Oriented | logically organized in a DODAG structure (Destination Oriented | |||
| Directed Acyclic Graph). | 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 | |||
| [RFC4443] message with Type 155. DIS (DODAG Information | [RFC4443] message with Type 155. DIS (DODAG Information | |||
| Solicitation), DIO (DODAG Information Object) and DAO (Destination | Solicitation), DIO (DODAG Information Object) and DAO (Destination | |||
| Advertisement Object) messages are all RPL Control messages but with | Advertisement Object) messages are all RPL Control messages but with | |||
| different Code values. | different Code values. A RPL Stack is showed in Figure 1. | |||
| RPL supports two modes of Downward traffic: in storing mode (RPL-SM), | RPL supports two modes of Downward traffic: in storing mode (RPL-SM), | |||
| it is fully stateful or an in non-storing (RPL-NSM), it is fully | it is fully stateful or an in non-storing (RPL-NSM), it is fully | |||
| source routed. A RPL Instance is either fully storing or fully non- | source routed. A RPL Instance is either fully storing or fully non- | |||
| storing, i.e. a RPL Instance with a combination of storing and non- | storing, i.e. a RPL Instance with a combination of storing and non- | |||
| storing nodes is not supported with the current specifications at the | storing nodes is not supported with the current specifications at the | |||
| time of writing this document. | time of writing this document. | |||
| +--------------+ | +--------------+ | |||
| | Upper Layers | | | Upper Layers | | |||
| skipping to change at page 5, line 33 ¶ | skipping to change at page 6, line 33 ¶ | |||
| | | | | | | | | | | | | |||
| | | | | | | | | | | | | |||
| | 21 | 22 | 23 | 24 | 25 | | 21 | 22 | 23 | 24 | 25 | |||
| +-+---+ +-+---+ +--+--+ +- --+ +---+-+ | +-+---+ +-+---+ +--+--+ +- --+ +---+-+ | |||
| |Leaf | | | | | |Leaf| |Leaf | | |Leaf | | | | | |Leaf| |Leaf | | |||
| | 6LN | | | | | | 6LN| | 6LN | | | 6LN | | | | | | 6LN| | 6LN | | |||
| +-----+ +-----+ +-----+ +----+ +-----+ | +-----+ +-----+ +-----+ +----+ +-----+ | |||
| Figure 2: A reference RPL Topology. | Figure 2: A reference RPL Topology. | |||
| In Figure 2 is showed the reference RPL Topology for this document. | ||||
| The numbers in or above the nodes are there so that they may be | The numbers in or above the nodes are there so that they may be | |||
| referenced in subsequent sections. In the figure 2, 6LN can be a | referenced in subsequent sections. In the figure, a 6LN can be a | |||
| router or a host. The 6LN leaf marked as (21) and (25) are routers. | router or a host. The 6LN leafs marked as (21) and (25) are routers. | |||
| The leaf marked 6LN (24) is a device which does not speak RPL at all | The leaf marked 6LN (24) is a device which does not speak RPL at all | |||
| (not-RPL-aware), but uses Router-Advertisements, 6LowPAN DAR/DAC and | (not-RPL-aware), but uses Router-Advertisements, 6LowPAN DAR/DAC and | |||
| efficient-ND only to participate in the network [RFC6775]. In the | efficient-ND only to participate in the network [RFC6775]. In the | |||
| document this leaf (24) is mentioned as well as IPv6 node. The 6LBR | document this leaf (24) is often named IPv6 node. The 6LBR in the | |||
| in the figure is the root of the Global DODAG. | figure is the root of the Global DODAG. | |||
| This document is in part motivated by the work that is ongoing at the | This document is in part motivated by the work that is ongoing at the | |||
| 6TiSCH working group. The 6TiSCH architecture | 6TiSCH working group. The 6TiSCH architecture | |||
| [I-D.ietf-6tisch-architecture] draft explains the network | [I-D.ietf-6tisch-architecture] draft explains the network | |||
| architecture of a 6TiSCH network. This architecture is used for the | architecture of a 6TiSCH network. | |||
| remainder of this document. | ||||
| The scope of the 6TiSCH (IPv6 over the TSCH mode of IEEE 802.15.4e) | ||||
| 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. Internet is connected through the 6BBR. For the | ||||
| following uses cases the 6BBR would be mapped to 6LBR and the | ||||
| Backbone router to 6LR. | ||||
| +---------+ | ||||
| +---+Internet | | ||||
| | +---------+ | ||||
| | | ||||
| | | ||||
| +-----+ | ||||
| | | 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 Instances ------------------------> | ||||
| Figure 3: RPL domain architecture | ||||
| 4. Use cases | 4. Use cases | |||
| In data plane context a combination of RFC6553, RFC6554 and IPv6-in- | In data plane context a combination of RFC6553, RFC6554 and IPv6-in- | |||
| IPv6 encapsulation is going to be analyzed for the following traffic | IPv6 encapsulation is going to be analyzed for the following traffic | |||
| flows: | flows: | |||
| RPL-aware-leaf to root | RPL-aware-leaf to root | |||
| root to RPL-aware-leaf | root to RPL-aware-leaf | |||
| not-RPL-aware-leaf to root | not-RPL-aware-leaf to root | |||
| root to not-RPL-aware-leaf | root to not-RPL-aware-leaf | |||
| RPL-aware-leaf to Internet | RPL-aware-leaf to Internet | |||
| Internet to RPL-aware-leaf | Internet to RPL-aware-leaf | |||
| skipping to change at page 7, line 27 ¶ | skipping to change at page 7, line 36 ¶ | |||
| RPL-aware-leaf to RPL-aware-leaf | RPL-aware-leaf to RPL-aware-leaf | |||
| RPL-aware-leaf to not-RPL-aware-leaf | RPL-aware-leaf to not-RPL-aware-leaf | |||
| not-RPL-aware-leaf to RPL-aware-leaf | not-RPL-aware-leaf to RPL-aware-leaf | |||
| not-RPL-aware-leaf to not-RPL-aware-leaf | not-RPL-aware-leaf to not-RPL-aware-leaf | |||
| This document assumes a rule that a Header cannot be inserted or | This document assumes a rule that a Header cannot be inserted or | |||
| removed on the fly inside an IPv6 packet that is being routed. This | removed on the fly inside an IPv6 packet that is being routed. A | |||
| is a fundamental precept of the IPv6 architecture as outlined in | fundamental precept of the IPv6 architecture as outlined in [RFC2460] | |||
| [RFC2460] is that Extensions may not be added or removed except by | is that Extensions may not be added or removed except by the sender | |||
| the sender or the receiver. | or the receiver. | |||
| Note: current discussions on [I-D.ietf-6man-rfc2460bis] related to | Note: current discussions on [I-D.ietf-6man-rfc2460bis] related to | |||
| extensions headers may affect some cases in this document (Ticket | extensions headers may affect some cases in this document (Ticket | |||
| nro. 9) in 6man. [TO DO]. | nro. 9) in 6man. [TO DO]. | |||
| A second important thing is that packets with a Hop-by-Hop option | A second important thing is that packets with a Hop-by-Hop option | |||
| which are marked with option type 01 ([RFC2460] section 4.2) must be | which are marked with option type 01 ([RFC2460] section 4.2) must be | |||
| discarded if received by a host or router which does not understand | discarded if received by a host or router which does not understand | |||
| that option. This means that in general, any packet that leaves the | that option. This means that in general, any packet that leaves the | |||
| RPL domain of an LLN (or leaves the LLN entirely) is likely to be | RPL domain of an LLN (or leaves the LLN entirely) is likely to be | |||
| skipping to change at page 8, line 13 ¶ | skipping to change at page 8, line 21 ¶ | |||
| can be placed. | can be placed. | |||
| This also means that a Header can only be removed by an intermediate | This also means that a Header can only be removed by an intermediate | |||
| router if it is placed in an encapsulating IPv6 Header, and in that | router if it is placed in an encapsulating IPv6 Header, and in that | |||
| case, the whole encapsulating header must be removed - a replacement | case, the whole encapsulating header must be removed - a replacement | |||
| may be added. Further, an intermediate router can only remove such | may be added. Further, an intermediate router can only remove such | |||
| an outer header if that outer header has the router as the | an outer header if that outer header has the router as the | |||
| destination! | destination! | |||
| Both RPI and RH3 headers may be modified by routers on the path of | Both RPI and RH3 headers may be modified by routers on the path of | |||
| the packet without the need to add to remove an encapsulating header. | the packet without the need to add or remove an encapsulating header. | |||
| Both headers were designed with this modification in mind, and both | Both headers were designed with this modification in mind, and both | |||
| the RPL RH and the RPL option are marked mutable but recoverable, so | the RPL RH and the RPL option are marked mutable but recoverable, so | |||
| an IPsec AH security header can be applied across these headers, but | an IPsec AH security header can be applied across these headers, but | |||
| it may not secure all the values in those headers. | it may not secure all the values in those headers. | |||
| RPI should be present in every single RPL data packet. There is one | RPI should be present in every single RPL data packet. There is one | |||
| exception in non-storing mode: when a packet is going down from the | exception in non-storing mode: when a packet is going down from the | |||
| root. In a downward non-storing mode, the entire route is written, | root. In a downward non-storing mode, the entire route is written, | |||
| so there can be no loops by construction, nor any confusion about | so there can be no loops by construction, nor any confusion about | |||
| which forwarding table to use. There may be cases (such as in | which forwarding table to use. There may be cases (such as in | |||
| 6tisch) where the instanceID may still be needed to pick an | 6tisch) where the instanceID may still be needed to pick an | |||
| appropriate priority or channel at each hop. | appropriate priority or channel at each hop. | |||
| The applicability for storing (RPL-SM) and non-Storing (RPL-NSM) | The applicability for storing (RPL-SM) and non-Storing (RPL-NSM) | |||
| modes for the previous cases is showed as follows: | modes for the previous cases is showed as follows: | |||
| In tables, the term "RPL aware leaf" is has been shortened to "Raf", | In the tables present in this document, the term "RPL aware leaf" is | |||
| and "not-RPL aware leaf" has been shortened to "~Raf" to make the | has been shortened to "Raf", and "not-RPL aware leaf" has been | |||
| table fit in available space. | shortened to "~Raf" to make the table fit in available space. | |||
| The earlier examples are more complete to make sure that the process | The earlier examples are more extensive to make sure that the process | |||
| is clear, while later examples are more consise. | is clear, while later examples are more consise. | |||
| 5. Storing mode | 5. Storing mode | |||
| In storing mode (fully stateful), determinate whether the destination | In storing mode (fully stateful), the sender cannot determine whether | |||
| is RPL capable is not currently discernible by the sender and thus | the destination is RPL-capable and thus would need an IP-in-IP | |||
| would need an IP-in-IP header. The IP-in-IP header needs to be | header. The IP-in-IP header needs to be addressed on a hop-by-hop | |||
| addressed on a hop-by-hop basis so that the last 6LR can remove the | basis so that the last 6LR can remove the RPI header. Additionally, | |||
| RPI header. Additionally, The sender can determine if the | The sender can determine if the destination is inside the LLN by | |||
| destination is inside the LLN by looking if the destination address | looking if the destination address is matched by the DIO's PIO | |||
| is matched by the DIO's PIO option. | option. | |||
| The following table summarizes what headers are needed in the | The following table summarizes what headers are needed in the | |||
| following scenarios, and indicates the IP-in-IP header must be | following scenarios, and indicates when the IP-in-IP header must be | |||
| inserted on a hop-by-hop basis, and when it can target the | inserted on a hop-by-hop basis, and when it can target the | |||
| destination node directly. There are three possible situations: hop- | destination node directly. There are three possible situations: hop- | |||
| by-hop necessary (indicated by "hop"), or destination address | by-hop necessary (indicated by "hop"), or destination address | |||
| possible (indicated by "dst"). In all cases hop by hop can be used. | possible (indicated by "dst"). In all cases hop by hop can be used. | |||
| In cases where no IP-in-IP header is needed, the column is left | In cases where no IP-in-IP header is needed, the column is left | |||
| blank. | blank. | |||
| The leaf can be a router 6LR or a host, both indicated as 6LN. | The leaf can be a router 6LR or a host, both indicated as 6LN. | |||
| +--------------+-------+-------+-----------+---------------+ | +--------------+-------+-------+-----------+---------------+ | |||
| | Use Case | RPI | RH3 | IP-in-IP | IP-in-IP dst | | | Use Case | RPI | RH3 | IP-in-IP | IP-in-IP dst | | |||
| +--------------+-------+-------+-----------+---------------+ | +--------------+-------+-------+-----------+---------------+ | |||
| | Raf to root | Yes | No | No | -- | | | Raf to root | Yes | No | No | -- | | |||
| | root to Raf | Yes | No | No | -- | | | root to Raf | Yes | No | No | -- | | |||
| skipping to change at page 9, line 50 ¶ | skipping to change at page 10, line 10 ¶ | |||
| messages. | messages. | |||
| In storing mode, RFC 6553 (RPI) is used to send RPL Information | In storing mode, RFC 6553 (RPI) is used to send RPL Information | |||
| instanceID and rank information. | instanceID and rank information. | |||
| In this case the flow comprises: | In this case the flow comprises: | |||
| RPL-aware-leaf (6LN) --> 6LR --> 6LR,... --> root (6LBR) | RPL-aware-leaf (6LN) --> 6LR --> 6LR,... --> root (6LBR) | |||
| As it was mentioned In this document 6LRs, 6LBR are always full- | As it was mentioned In this document 6LRs, 6LBR are always full- | |||
| fledge RPL routers, and are the RPL root node. | fledge RPL routers. | |||
| The 6LN inserts the RPI header, and sends the packet to 6LR which | The 6LN inserts the RPI header, and sends the packet to 6LR which | |||
| decrements the rank in RPI and sends the packet up. When the packet | decrements the rank in RPI and sends the packet up. When the packet | |||
| arrives at 6LBR, the RPI is removed and the packet is processed. | arrives at 6LBR, the RPI is removed and the packet is processed. | |||
| The RPI header can be removed by the 6LBR because the packet is | The RPI header can be removed by the 6LBR because the packet is | |||
| addressed to the 6LBR. The 6LN must know that it is communicating | addressed to the 6LBR. The 6LN must know that it is communicating | |||
| with the 6LBR in order to be able to make use of this scenario. The | with the 6LBR to make use of this scenario. The 6LN can know the | |||
| 6LN can know the address of the 6LBR because it knows the address of | address of the 6LBR because it knows the address of the root via the | |||
| the root via the DODAGID in the DIO messages. | DODAGID in the DIO messages. | |||
| +-------------------+-----+------+------+ | +-------------------+-----+------+------+ | |||
| | Header | 6LN | 6LR | 6LBR | | | Header | 6LN | 6LR | 6LBR | | |||
| +-------------------+-----+------+------+ | +-------------------+-----+------+------+ | |||
| | Inserted headers | RPI | -- | -- | | | Inserted headers | RPI | -- | -- | | |||
| | Removed headers | -- | -- | RPI | | | Removed headers | -- | -- | RPI | | |||
| | Re-added headers | -- | -- | -- | | | Re-added headers | -- | -- | -- | | |||
| | Modified headers | -- | RPI | -- | | | 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) | |||
| In this case the 6LBR insert RPI header and send the packet down, the | In this case the 6LBR inserts RPI header and sends the packet down, | |||
| 6LR is going to increment the rank in RPI (examines instanceID for | the 6LR is going to increment the rank in RPI (examines instanceID | |||
| multiple tables), the packet is processed in 6LN and RPI removed. | for multiple tables), the packet is processed in 6LN and RPI removed. | |||
| No IP-in-IP header is required. | No IP-in-IP header is required. | |||
| +-------------------+------+-------+------+ | +-------------------+------+-------+------+ | |||
| | Header | 6LBR | 6LR | 6LN | | | Header | 6LBR | 6LR | 6LN | | |||
| +-------------------+------+-------+------+ | +-------------------+------+-------+------+ | |||
| | Inserted headers | RPI | -- | -- | | | Inserted headers | RPI | -- | -- | | |||
| | Removed headers | -- | -- | RPI | | | Removed headers | -- | -- | RPI | | |||
| | Re-added headers | -- | -- | -- | | | Re-added headers | -- | -- | -- | | |||
| | Modified headers | -- | RPI | -- | | | Modified headers | -- | RPI | -- | | |||
| skipping to change at page 15, line 21 ¶ | skipping to change at page 15, line 38 ¶ | |||
| In this case the flow comprises: | In this case the flow comprises: | |||
| 6LN --> 6LR --> common parent (6LR) --> 6LR --> 6LN | 6LN --> 6LR --> common parent (6LR) --> 6LR --> 6LN | |||
| This case is assumed in the same RPL Domain. In the common parent, | This case is assumed in the same RPL Domain. In the common parent, | |||
| the direction of RPI is changed (from increasing to decreasing the | the direction of RPI is changed (from increasing to decreasing the | |||
| rank). | rank). | |||
| While the 6LR nodes will update the RPI, no node needs to add or | While the 6LR nodes will update the RPI, no node needs to add or | |||
| remove the RPI, so no IP-in-IP headers are necessary. The ability to | remove the RPI, so no IP-in-IP headers are necessary. The ability to | |||
| do this depends upon the sending know that the destination is: a) | do this depends upon the sending the 6LN to know that the destination | |||
| inside the LLN, and b) RPL capable. | is: a) inside the LLN, and b) RPL capable. | |||
| The sender can determine if the destination is inside the LLN by | The sender can determine if the destination is inside the LLN by | |||
| looking if the destination address is matched by the DIO's PIO | looking if the destination address is matched by the DIO's PIO | |||
| option. This check may be modified by the use of backbone routers, | option. This check may be modified by the use of backbone routers, | |||
| but in this case it is assumed that the backbone routers are RPL | but in this case it is assumed that the backbone routers are RPL | |||
| capable and so can process the RPI header correctly. | capable and so can process the RPI header correctly. | |||
| The other check, that the destination is RPL capable is not currently | The other check, that the destination is RPL capable is not currently | |||
| discernible by the sender. This information is necessary to | discernible by the sender. This information is necessary to | |||
| distinguish this test case from Section 5.10. | distinguish this test case from Section 5.10. | |||
| skipping to change at page 16, line 12 ¶ | skipping to change at page 16, line 32 ¶ | |||
| 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 non-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 --> common parent (6LR) --> 6LR --> not-RPL-aware 6LN | 6LN --> 6LR --> common parent (6LR) --> 6LR --> not-RPL-aware 6LN | |||
| The sender, being aware out of band, that the receiver is not RPL | The sender, being aware out of band, that the receiver is not RPL | |||
| aware, sends adds an RPI header inside an IP-in-IP header. The IP- | aware, adds an RPI header inside an IP-in-IP header. The IP-in-IP | |||
| in-IP header needs to be addressed on a hop-by-hop basis so that the | header needs to be addressed on a hop-by-hop basis so that the last | |||
| last 6LR can remove the RPI header. | 6LR can remove the RPI header. | |||
| ,---. | ,---. | |||
| / \ | / \ | |||
| ( 6LR2 ) IP3,RPI,IP,ULP | ( 6LR2 ) IP3,RPI,IP,ULP | |||
| ,-" . | ,-" . | |||
| ,-" `---' `. | ,-" `---' `. | |||
| ,' `. | ,' `. | |||
| ,---. ,-" `,---. | ,---. ,-" `,---. | |||
| / +" / \ | / +" / \ | |||
| ( 6LR1 ) Remove the IP3,RPI( 6LR3 ) | ( 6LR1 ) Remove the IP3,RPI( 6LR3 ) | |||
| skipping to change at page 16, line 37 ¶ | skipping to change at page 17, line 26 ¶ | |||
| / IP2,RPI,IP,ULP \ | / IP2,RPI,IP,ULP \ | |||
| / | | / | | |||
| / \ | / \ | |||
| ,---+-. | | ,---+-. | | |||
| / \ +--+----+ | / \ +--+----+ | |||
| ( 6LN ) | | | ( 6LN ) | | | |||
| \ / | IPv6 | IP,ULP | \ / | IPv6 | IP,ULP | |||
| `-----' | | | `-----' | | | |||
| IP1,RPI,IP,ULP +-------+ | IP1,RPI,IP,ULP +-------+ | |||
| Figure 4: Solution IPv6-in-IPv6 in each hop | Figure 3: Solution IPv6-in-IPv6 in each hop | |||
| Alternatively, if the definition of the Option Type field of RPL | As we mentioned previously, packets with a Hop-by-Hop option which | |||
| Option '01' were changed so that it isn't a "discard if not | are marked with option type 01 ([RFC2460] section 4.2) must be | |||
| recognized", then no IP-in-IP header would be necessary. This change | discarded if received by a host or router which does not understand | |||
| is an incompatible on-the-wire change and would require some kind of | that option. This means that in general, any packet that leaves the | |||
| flag day, possibly a change that is done simultaenously with an | RPL domain of an LLN (or leaves the LLN entirely) is likely to be | |||
| updated 6LoRH compress. | discarded if it still contains an [RFC6553] RPL Option Header known | |||
| as the RPI. For this case, if the definition of the Option Type | ||||
| field of RPL Option '01' were changed so that it isn't a "discard if | ||||
| not recognized", then no IP-in-IP header would be necessary. This | ||||
| change is an incompatible on-the-wire change and would require some | ||||
| kind of flag day, possibly a change that is done simultaenously with | ||||
| an updated 6LoRH compress. | ||||
| +--------+------------+------------+------------+------------+------+ | +--------+------------+------------+------------+------------+------+ | |||
| | Header | 6LN | 6LR | 6LR | 6LR | IPv6 | | | Header | 6LN | 6LR | 6LR | 6LR | IPv6 | | |||
| | | | | (common | | | | | | | | (common | | | | |||
| | | | | parent) | | | | | | | | parent) | | | | |||
| +--------+------------+------------+------------+------------+------+ | +--------+------------+------------+------------+------------+------+ | |||
| | Insert | IP-in- | -- | -- | -- | -- | | | Insert | IP-in- | -- | -- | -- | -- | | |||
| | ed hea | IP(RPI) | | | | | | | ed hea | IP(RPI) | | | | | | |||
| | ders | | | | | | | | ders | | | | | | | |||
| | Remove | -- | -- | -- | IP-in- | -- | | | Remove | -- | -- | -- | IP-in- | -- | | |||
| skipping to change at page 17, line 39 ¶ | skipping to change at page 18, line 39 ¶ | |||
| 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 --> common parent (6LR) --> 6LR --> 6LN | not-RPL-aware 6LN --> 6LR --> common parent (6LR) --> 6LR --> 6LN | |||
| The 6LR receives the packet from the the IPv6 node and inserts and | The 6LR receives the packet from the the IPv6 node and inserts and | |||
| the RPI header encapsulated in IPv6-in-IPv6 header. The IP-in-IP | the RPI header encapsulated in IPv6-in-IPv6 header. The IP-in-IP | |||
| header could be addresses to the 6LN if the destination is known to | header could be addressed to the 6LN if the destination is known to | |||
| the RPL aware, otherwise must send the packet using a hop-by-hop IP- | the RPL aware, otherwise it must send the packet using a hop-by-hop | |||
| in-IP header. Similar considerations apply from section | IP-in-IP header. Similar considerations apply from section | |||
| Section 5.10. | Section 5.10. | |||
| +--------+------+------------+------------+------------+------------+ | +--------+------+------------+------------+------------+------------+ | |||
| | Header | IPv6 | 6LR | common | 6LR | 6LN | | | Header | IPv6 | 6LR | common | 6LR | 6LN | | |||
| | | | | parent | | | | | | | | parent | | | | |||
| | | | | (6LR) | | | | | | | | (6LR) | | | | |||
| +--------+------+------------+------------+------------+------------+ | +--------+------+------------+------------+------------+------------+ | |||
| | Insert | -- | IP-in- | -- | -- | -- | | | Insert | -- | IP-in- | -- | -- | -- | | |||
| | ed hea | | IP(RPI) | | | | | | ed hea | | IP(RPI) | | | | | |||
| | ders | | | | | | | | ders | | | | | | | |||
| skipping to change at page 19, line 5 ¶ | skipping to change at page 20, line 5 ¶ | |||
| In this case the flow comprises: | In this case the flow comprises: | |||
| not-RPL-aware 6LN (IPv6 node)--> 6LR --> root (6LBR) --> 6LR --> not- | not-RPL-aware 6LN (IPv6 node)--> 6LR --> root (6LBR) --> 6LR --> not- | |||
| RPL-aware 6LN (IPv6 node) | RPL-aware 6LN (IPv6 node) | |||
| This flow combines the problems of the two previous sections. There | This flow combines the problems of the two previous sections. There | |||
| is no choice at the first 6LR: it must insert an RPI, and to do that | is no choice at the first 6LR: it must insert an RPI, and to do that | |||
| it must add an IP-in-IP header. That IP-in-IP header must be | it must add an IP-in-IP header. That IP-in-IP header must be | |||
| addressed on a hop-by-hop basis. | addressed on a hop-by-hop basis. | |||
| +-----------+------+---------------+---------+---------------+------+ | +----------+-----+-------------+--------------+--------------+------+ | |||
| | Header | IPv6 | 6LR | 6LR | 6LR | IPv6 | | | Header | IPv | 6LR | 6LR (common | 6LR | IPv6 | | |||
| | | src | | (common | | dst | | | | 6 | | parent) | | dst | | |||
| | | | | parent) | | | | | | src | | | | | | |||
| +-----------+------+---------------+---------+---------------+------+ | +----------+-----+-------------+--------------+--------------+------+ | |||
| | Inserted | -- | IP-in-IP(RPI) | -- | -- | -- | | | Inserted | -- | IP-in- | -- | -- | -- | | |||
| | headers | | | | | | | | headers | | IP(RPI) | | | | | |||
| | Removed | -- | -- | -- | IP-in-IP(RPI) | -- | | | Removed | -- | -- | -- | IP-in- | -- | | |||
| | headers | | | | | | | | headers | | | | IP(RPI) | | | |||
| | Re-added | -- | -- | -- | -- | -- | | | Re-added | -- | IP-in- | IP-in- | IP-in- | -- | | |||
| | headers | | | | | | | | headers | | IP(RPI) | IP(RPI) | IP(RPI) | | | |||
| | Modified | -- | -- | -- | -- | -- | | | Modified | -- | -- | -- | -- | -- | | |||
| | headers | | | | | | | | headers | | | | | | | |||
| | Untouched | -- | -- | -- | -- | -- | | | Untouche | -- | -- | -- | -- | -- | | |||
| | headers | | | | | | | | 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 | |||
| not-RPL-aware-leaf | not-RPL-aware-leaf | |||
| 6. Non Storing mode | 6. Non Storing mode | |||
| +--------------+------+------+-----------+---------------+ | +--------------+------+------+-----------+---------------+ | |||
| | Use Case | RPI | RH3 | IP-in-IP | IP-in-IP dst | | | Use Case | RPI | RH3 | IP-in-IP | IP-in-IP dst | | |||
| +--------------+------+------+-----------+---------------+ | +--------------+------+------+-----------+---------------+ | |||
| | Raf to root | Yes | No | No | -- | | | Raf to root | Yes | No | No | -- | | |||
| skipping to change at page 20, line 9 ¶ | skipping to change at page 21, line 9 ¶ | |||
| 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 default routing to send | In non-storing mode the leaf node uses default routing to send | |||
| traffic to the root. The RPI header must be included to avoid/detect | traffic to the root. The RPI header must be included to avoid/detect | |||
| loops. | loops. | |||
| RPL-aware-leaf (6LN) --> 6LR --> root (6LBR) | RPL-aware-leaf (6LN) --> 6LR --> root (6LBR) | |||
| This situation is the same case as storing mode. | This situation is the same case as storing mode. | |||
| +-------------------+-----+-----+------+ | +-------------------+-----+------+------+ | |||
| | Header | 6LN | 6LR | 6LBR | | | Header | 6LN | 6LR | 6LBR | | |||
| +-------------------+-----+-----+------+ | +-------------------+-----+------+------+ | |||
| | Inserted headers | RPI | -- | -- | | | Inserted headers | RPI | -- | -- | | |||
| | Removed headers | -- | -- | RPI | | | Removed headers | -- | -- | RPI | | |||
| | Re-added headers | -- | -- | RPI | | | Re-added headers | -- | RPI | -- | | |||
| | Modified headers | -- | -- | -- | | | Modified headers | -- | -- | -- | | |||
| | Untouched headers | -- | -- | -- | | | Untouched headers | -- | -- | -- | | |||
| +-------------------+-----+-----+------+ | +-------------------+-----+------+------+ | |||
| Non 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 | |||
| root | 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) | |||
| The 6LBR will insert an RH3, and may optionally insert an RPI header. | The 6LBR will insert an RH3, and may optionally insert an RPI header. | |||
| No IP-in-IP header is necessary as the traffic originates with an RPL | No IP-in-IP header is necessary as the traffic originates with an RPL | |||
| aware node. | aware node, the 6LBR. The destination is known to 6LBR because, the | |||
| root knows the whole topology in non-storing mode. | ||||
| +-------------------+-----------------+------+----------+ | +-------------------+-----------------+------+----------+ | |||
| | Header | 6LBR | 6LR | 6LN | | | Header | 6LBR | 6LR | 6LN | | |||
| +-------------------+-----------------+------+----------+ | +-------------------+-----------------+------+----------+ | |||
| | Inserted headers | (opt: RPI), RH3 | -- | -- | | | Inserted headers | (opt: RPI), RH3 | -- | -- | | |||
| | Removed headers | -- | -- | RH3,RPI | | | Removed headers | -- | -- | RH3,RPI | | |||
| | Re-added headers | -- | -- | -- | | | Re-added headers | -- | -- | -- | | |||
| | Modified headers | -- | RH3 | -- | | | Modified headers | -- | RH3 | -- | | |||
| | Untouched headers | -- | -- | -- | | | Untouched headers | -- | -- | -- | | |||
| +-------------------+-----------------+------+----------+ | +-------------------+-----------------+------+----------+ | |||
| Non Storing: Summary of the use of headers from root to RPL-aware- | Non Storing: Summary of the use of headers from root to RPL-aware- | |||
| leaf | 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 (IPv6 node) | root (6LBR)--> 6LR --> not-RPL-aware-leaf (IPv6 node) | |||
| In 6LBR the RH3 is added, modified in each intermediate 6LR and it is | ||||
| In 6LBR the RH3 is added, and modified in 6LR where it is fully | fully consumed in the last 6LR, but left there. If the RPI is left | |||
| consumed, but left there. If the RPI is left present, the IPv6 node | present, the IPv6 node which does not understand it will drop it, | |||
| which does not understand it will drop it, therefore the RPI should | therefore the RPI should be removed before reaching the IPv6-only | |||
| be removed before reaching the IPv6-only node. To permit removal, an | node. To permit removal, an IP-in-IP header (hop-by-hop) or | |||
| IP-in-IP header (hop-by-hop) or addressed to the last 6LR is | addressed to the last 6LR is necessary. Due the complete knowledge | |||
| necessary. Due the complete knowledge of the topology at the root, | of the topology at the root, the 6LBR is able to address the IP-in-IP | |||
| the 6LBR is able to address the IP-in-IP header to the last 6LR. | header to the last 6LR. | |||
| Omitting the RPI entirely is therefore a better solution, as no IP- | Omitting the RPI entirely is therefore a better solution, as no IP- | |||
| in-IP header is necessary. | in-IP header is necessary. | |||
| +-------------------+------+-----+------+ | +-------------------+------+-----+------+ | |||
| | Header | 6LBR | 6LR | IPv6 | | | Header | 6LBR | 6LR | IPv6 | | |||
| +-------------------+------+-----+------+ | +-------------------+------+-----+------+ | |||
| | Inserted headers | RH3 | -- | -- | | | Inserted headers | RH3 | -- | -- | | |||
| | Removed headers | -- | -- | -- | | | Removed headers | -- | -- | -- | | |||
| | Re-added headers | -- | -- | -- | | | Re-added headers | -- | -- | -- | | |||
| skipping to change at page 22, line 11 ¶ | skipping to change at page 23, line 11 ¶ | |||
| Non 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 | |||
| This case requires that the RPI be added, but remoted by the 6LBR. | This case requires that the RPI be added, but removed by the 6LBR. | |||
| The 6LN must therefore add the RPI inside an IP-in-IP header, | The 6LN must therefore add the RPI inside an IP-in-IP header, | |||
| addressed to the root. This case is identical to storing-mode case. | addressed to the root. This case is identical to storing-mode case. | |||
| The IPv6 flow label should be set to zero to aid in compression, and | The IPv6 flow label should be set to zero to aid in compression, and | |||
| the 6LBR will set it to a non-zero value when sending towards the | the 6LBR will set it to a non-zero value when sending towards the | |||
| Internet. | Internet. | |||
| +-----------------+---------------+------+---------------+----------+ | +-----------------+---------------+------+---------------+----------+ | |||
| | Header | 6LN | 6LR | 6LBR | Internet | | | Header | 6LN | 6LR | 6LBR | Internet | | |||
| +-----------------+---------------+------+---------------+----------+ | +-----------------+---------------+------+---------------+----------+ | |||
| skipping to change at page 23, line 34 ¶ | skipping to change at page 24, line 34 ¶ | |||
| 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 | |||
| In this case the flow label is recommended to be zero in the IPv6 | In this case the flow label is recommended to be zero in the IPv6 | |||
| node. As RPL headers are added in the IPv6 node, the first 6LN will | node. As RPL headers are added in the IPv6 node, the first 6LN will | |||
| add an RPI header inside a new IP-in-IP header. The IP-in-IP header | add an RPI header inside a new IP-in-IP header. The IP-in-IP header | |||
| will be addressed to the root. This case is identical to the | will be addressed to the root. This case is identical to the | |||
| storing-mode case. | storing-mode case (Section 5.7). | |||
| +-----------------+------+---------------+---------------+----------+ | +-----------------+------+---------------+---------------+----------+ | |||
| | Header | IPv6 | 6LR | 6LBR | Internet | | | Header | IPv6 | 6LR | 6LBR | Internet | | |||
| +-----------------+------+---------------+---------------+----------+ | +-----------------+------+---------------+---------------+----------+ | |||
| | Inserted | -- | IP-in-IP(RPI) | -- | -- | | | Inserted | -- | IP-in-IP(RPI) | -- | -- | | |||
| | headers | | | | | | | headers | | | | | | |||
| | Removed headers | -- | -- | IP-in-IP(RPI) | -- | | | Removed headers | -- | -- | IP-in-IP(RPI) | -- | | |||
| | Re-added | -- | -- | -- | -- | | | Re-added | -- | -- | -- | -- | | |||
| | headers | | | | | | | headers | | | | | | |||
| | Modified | -- | -- | -- | -- | | | Modified | -- | -- | -- | -- | | |||
| skipping to change at page 24, line 9 ¶ | skipping to change at page 25, line 9 ¶ | |||
| | headers | | | | | | | headers | | | | | | |||
| +-----------------+------+---------------+---------------+----------+ | +-----------------+------+---------------+---------------+----------+ | |||
| Non 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 non-RPL-aware-leaf | 6.8. Example of Flow from Internet to non-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 (IPv6 node) | |||
| The 6LBR must add an RH3 header inside an IP-in-IP header. The 6LBR | The 6LBR must add an RH3 header inside an IP-in-IP header. The 6LBR | |||
| will know the path, and will recognize that the final node is not an | will know the path, and will recognize that the final node is not an | |||
| RPL capable node as it will have received the connectivity DAO from | RPL capable node as it will have received the connectivity DAO from | |||
| the nearest 6LR. The 6LBR can therefore make the IP-in-IP header | the nearest 6LR. The 6LBR can therefore make the IP-in-IP header | |||
| destination be the last 6LR. The 6LBR will zero the flow label upon | destination be the last 6LR. The 6LBR will set to zero the flow | |||
| entry in order to aid compression. | label upon entry in order to aid compression. | |||
| +----------+---------+-----------------------+---------------+------+ | +----------+---------+-----------------------+---------------+------+ | |||
| | Header | Interne | 6LBR | 6LR | IPv6 | | | Header | Interne | 6LBR | 6LR | IPv6 | | |||
| | | t | | | | | | | t | | | | | |||
| +----------+---------+-----------------------+---------------+------+ | +----------+---------+-----------------------+---------------+------+ | |||
| | Inserted | -- | IP-in-IP(RH3,opt:RPI) | -- | -- | | | Inserted | -- | IP-in-IP(RH3,opt:RPI) | -- | -- | | |||
| | headers | | | | | | | headers | | | | | | |||
| | Removed | -- | -- | IP-in-IP(RH3, | -- | | | Removed | -- | -- | IP-in-IP(RH3, | -- | | |||
| | headers | | | RPI) | | | | headers | | | RPI) | | | |||
| | Re-added | -- | -- | -- | -- | | | Re-added | -- | -- | -- | -- | | |||
| skipping to change at page 25, line 34 ¶ | skipping to change at page 26, line 34 ¶ | |||
| | headers | | | | | | | headers | | | | | | |||
| +----------+---------------+--------------+-----+-------------------+ | +----------+---------------+--------------+-----+-------------------+ | |||
| Non 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 (IPv6 node) | |||
| As in the previous case, the 6LN will insert an RPI header which MUST | As in the previous case, the 6LN will insert an RPI header which MUST | |||
| be in an IP-in-IP header addressed to the root so that the 6LBR can | be in an IP-in-IP header addressed to the root so that the 6LBR can | |||
| remove this RPI. The 6LBR will then insert an RH3 inside a new IP- | remove this RPI. The 6LBR will then insert an RH3 inside a new IP- | |||
| in-IP header addressed to the 6LN above the destination node. | in-IP header addressed to the 6LN above the destination node. | |||
| +-----------+---------------+---------------+----------------+------+ | +-----------+---------------+---------------+----------------+------+ | |||
| | Header | 6LN | 6LBR | 6LR | IPv6 | | | Header | 6LN | 6LBR | 6LR | IPv6 | | |||
| +-----------+---------------+---------------+----------------+------+ | +-----------+---------------+---------------+----------------+------+ | |||
| | Inserted | IP-in-IP(RPI) | IP-in-IP(RH3, | -- | -- | | | Inserted | IP-in-IP(RPI) | IP-in-IP(RH3, | -- | -- | | |||
| skipping to change at page 27, line 10 ¶ | skipping to change at page 28, line 10 ¶ | |||
| +------------+------+---------------+---------------+---------------+ | +------------+------+---------------+---------------+---------------+ | |||
| Non 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 | (IPv6 node) | |||
| This scenario is the combination of the previous two cases. | This scenario is the combination of the previous two cases. | |||
| +----------+-----+-------------+--------------+--------------+------+ | +----------+-----+-------------+--------------+--------------+------+ | |||
| | Header | IPv | 6LR | 6LBR | 6LR | IPv6 | | | Header | IPv | 6LR | 6LBR | 6LR | IPv6 | | |||
| | | 6 | | | | | | | | 6 | | | | | | |||
| +----------+-----+-------------+--------------+--------------+------+ | +----------+-----+-------------+--------------+--------------+------+ | |||
| | Inserted | -- | IP-in- | IP-in- | -- | -- | | | Inserted | -- | IP-in- | IP-in- | -- | -- | | |||
| | headers | | IP(RPI) | IP(RH3) | | | | | headers | | IP(RPI) | IP(RH3) | | | | |||
| | Removed | -- | -- | IP-in- | IP-in- | -- | | | Removed | -- | -- | IP-in- | IP-in- | -- | | |||
| skipping to change at page 27, line 45 ¶ | skipping to change at page 28, line 45 ¶ | |||
| 7. Observations about the problem | 7. Observations about the problem | |||
| 7.1. Storing mode | 7.1. Storing mode | |||
| In the completely general storing case, which includes not-RPL aware | In the completely general storing case, which includes not-RPL aware | |||
| leaf nodes, it is not possible for a sending node to know if the | leaf nodes, it is not possible for a sending node to know if the | |||
| destination is RPL aware, and therefore it must always use hop-by-hop | destination is RPL aware, and therefore it must always use hop-by-hop | |||
| IP-in-IP encapsulation, and it can never omit the IP-in-IP | IP-in-IP encapsulation, and it can never omit the IP-in-IP | |||
| encapsulation. See table Table 1 | encapsulation. See table Table 1 | |||
| The simplest fully general stiaution for storing mode is to always | The simplest fully general approach for storing mode is to always put | |||
| put in hop-by-hop IP-in-IP headers. [I-D.ietf-roll-routing-dispatch] | in hop-by-hop IP-in-IP headers. [I-D.ietf-roll-routing-dispatch] | |||
| shows that this hop-by-hop IP-in-IP header can be compressed down to | shows that this hop-by-hop IP-in-IP header can be compressed down to | |||
| {TBD} bytes. | {TBD} bytes. | |||
| There are potential significant advantages to having a single code | There are potential significant advantages to having a single code | |||
| path that always processes IP-in-IP headers with no options. | path that always processes IP-in-IP headers with no options. | |||
| If all RPL aware nodes can be told/configured that there are no non- | If all RPL aware nodes can be told/configured that there are no non- | |||
| RPL aware leaf nodes, then the only case where an IP-in-IP header is | RPL aware leaf nodes, then the only case where an IP-in-IP header is | |||
| needed is when communicating outside the LLN. The 6LBR knows well | needed is when communicating outside the LLN. The 6LBR knows well | |||
| when the communication is from the outside, and the 6LN can tell by | when the communication is from the outside, and the 6LN can tell by | |||
| skipping to change at page 28, line 24 ¶ | skipping to change at page 29, line 24 ¶ | |||
| in relatively closed systems such as in building or industrial | in relatively closed systems such as in building or industrial | |||
| automation. Again, there are advantages to having a single code | automation. Again, there are advantages to having a single code | |||
| path. | path. | |||
| In order to support the above two cases with full generality, the | In order to support the above two cases with full generality, the | |||
| different situations (always do IP-in-IP vs never use IP-in-IP) | different situations (always do IP-in-IP vs never use IP-in-IP) | |||
| should be signaled in the RPL protocol itself. | should be signaled in the RPL protocol itself. | |||
| 7.2. Non-Storing mode | 7.2. Non-Storing mode | |||
| This the non-storing case, dealing with non-RPL aware leaf nodes is | In the non-storing case, dealing with non-RPL aware leaf nodes is | |||
| much easier as the 6LBR (DODAG root) has complete knowledge about the | much easier as the 6LBR (DODAG root) has complete knowledge about the | |||
| connectivity of all nodes, and all traffic flows through the root | connectivity of all DODAG nodes, and all traffic flows through the | |||
| node. | root node. | |||
| The 6LBR can recognize non-RPL aware leaf nodes because it will | The 6LBR can recognize non-RPL aware leaf nodes because it will | |||
| receive a DAO about that node from the 6LN immediately above that | receive a DAO about that node from the 6LN immediately above that | |||
| node. This means that the non-storing mode case can avoid ever using | node. This means that the non-storing mode case can avoid ever using | |||
| hop-by-hop IP-in-IP headers. | hop-by-hop IP-in-IP headers. | |||
| It is unclear what it would mean for an RH3 header to be present in a | It is unclear what it would mean for an RH3 header to be present in a | |||
| hop-by-hop IP-in-IP header. The receiving node ought to consume the | hop-by-hop IP-in-IP header. The receiving node ought to consume the | |||
| IP-in-IP header, and therefore consume the RH3 as well, and then | IP-in-IP header, and therefore consume the RH3 as well, and then | |||
| attempt to send the packet again. But intermediate 6LN nodes would | attempt to send the packet again. But intermediate 6LN nodes would | |||
| not know how to forward the packet, so the RH3 would need to be | not know how to forward the packet (because they do not save the | |||
| retained. This is a new kind of IPv6 packet processing. Therefore | sate), so the RH3 would need to be retained. This is a new kind of | |||
| it may be that on the outbound leg of non-storing RPL networks, that | IPv6 packet processing. Therefore it may be that on the outbound leg | |||
| hop-by-hop IP-in-IP header can NOT be used. | of non-storing RPL networks, that hop-by-hop IP-in-IP header can NOT | |||
| be used. | ||||
| [I-D.ietf-roll-routing-dispatch] shows how the destination=root, and | [I-D.ietf-roll-routing-dispatch] shows how the destination=root, and | |||
| destination=6LN IP-in-IP header can be compressed down to {TBD} | destination=6LN IP-in-IP header can be compressed down to {TBD} | |||
| bytes. | bytes. | |||
| Unlike in the storing mode case, there are no need for all nodes to | Unlike in the storing mode case, there is no need for all nodes to | |||
| know about the existence of non-RPL aware nodes. Only the 6LBR needs | know about the existence of non-RPL aware nodes. Only the 6LBR needs | |||
| to change when there are non-RPL aware nodes. Further, in the non- | to change when there are non-RPL aware nodes. Further, in the non- | |||
| storing case, the 6LBR is informed by the DAOs when there are non-RPL | storing case, the 6LBR is informed by the DAOs when there are non-RPL | |||
| aware nodes. | aware nodes. | |||
| 8. 6LoRH Compression cases | 8. 6LoRH Compression cases | |||
| The [I-D.ietf-roll-routing-dispatch] proposes a compression method | The [I-D.ietf-roll-routing-dispatch] proposes a compression method | |||
| for RPI, RH3 and IPv6-in-IPv6. | for RPI, RH3 and IPv6-in-IPv6. | |||
| In Storing Mode, for the examples of Flow from RPL-aware-leaf to non- | In Storing Mode, for the examples of Flow from RPL-aware-leaf to non- | |||
| RPL-aware-leaf and non-RPL-aware-leaf to non-RPL-aware-leaf comprise | RPL-aware-leaf and non-RPL-aware-leaf to non-RPL-aware-leaf comprise | |||
| an IP-in-IP and RPI compression headers. The type of this case is | an IP-in-IP and RPI compression headers. The type of this case is | |||
| critical since IP-in-IP is encapsulating a RPI header. | critical since IP-in-IP is encapsulating a RPI header. | |||
| +--+-----+---+--------------+-----------+-------------+-------------+ | +--+-----+---+--------------+-----------+-------------+-------------+ | |||
| |1 | 0|0 |TSE| 6LoRH Type 6 | Hop Limit | RPI - 6LoRH | LOWPAN IPHC | | |1 | 0|0 |TSE| 6LoRH Type 6 | Hop Limit | RPI - 6LoRH | LOWPAN IPHC | | |||
| +--+-----+---+--------------+-----------+-------------+-------------+ | +--+-----+---+--------------+-----------+-------------+-------------+ | |||
| Figure 5: Critical IP-in-IP (RPI). | Figure 4: Critical IP-in-IP (RPI). | |||
| 9. IANA Considerations | 9. IANA Considerations | |||
| There are no IANA considerations related to this document. | There are no IANA considerations related to this document. | |||
| 10. Security Considerations | 10. Security Considerations | |||
| The security considerations covering of [RFC6553] and [RFC6554] apply | The security considerations covering of [RFC6553] and [RFC6554] apply | |||
| when the packets get into RPL Domain. | when the packets get into RPL Domain. | |||
| 11. Acknowledgments | 11. 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, Simon | comments of Robert Cragie, Simon Duquennoy, Cenk Guendogan, Peter van | |||
| Duquennoy and Peter van der Stok. | der Stok, Xavier Vilajosana and Thomas Watteyne. | |||
| 12. References | 12. References | |||
| 12.1. Normative References | 12.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>. | |||
| [RFC2460] Deering, S. and R. Hinden, "Internet Protocol, Version 6 | [RFC2460] Deering, S. and R. Hinden, "Internet Protocol, Version 6 | |||
| (IPv6) Specification", RFC 2460, DOI 10.17487/RFC2460, | (IPv6) Specification", RFC 2460, December 1998. | |||
| December 1998, <http://www.rfc-editor.org/info/rfc2460>. | ||||
| [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, | |||
| DOI 10.17487/RFC6550, March 2012, | DOI 10.17487/RFC6550, March 2012, | |||
| <http://www.rfc-editor.org/info/rfc6550>. | <http://www.rfc-editor.org/info/rfc6550>. | |||
| [RFC6553] Hui, J. and JP. Vasseur, "The Routing Protocol for Low- | [RFC6553] Hui, J. and JP. Vasseur, "The Routing Protocol for Low- | |||
| Power and Lossy Networks (RPL) Option for Carrying RPL | Power and Lossy Networks (RPL) Option for Carrying RPL | |||
| skipping to change at page 30, line 27 ¶ | skipping to change at page 31, line 27 ¶ | |||
| [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>. | |||
| 12.2. Informative References | 12.2. Informative References | |||
| [I-D.ietf-6man-rfc2460bis] | [I-D.ietf-6man-rfc2460bis] | |||
| Deering, S. and R. Hinden, "Internet Protocol, Version 6 | Deering, D. and R. Hinden, "Internet Protocol, Version 6 | |||
| (IPv6) Specification", draft-ietf-6man-rfc2460bis-04 (work | (IPv6) Specification", draft-ietf-6man-rfc2460bis-05 (work | |||
| in progress), March 2016. | in progress), June 2016. | |||
| [I-D.ietf-6tisch-architecture] | [I-D.ietf-6tisch-architecture] | |||
| Thubert, P., "An Architecture for IPv6 over the TSCH mode | Thubert, P., "An Architecture for IPv6 over the TSCH mode | |||
| of IEEE 802.15.4", draft-ietf-6tisch-architecture-10 (work | of IEEE 802.15.4", draft-ietf-6tisch-architecture-10 (work | |||
| in progress), June 2016. | in progress), June 2016. | |||
| [I-D.ietf-roll-routing-dispatch] | [I-D.ietf-roll-routing-dispatch] | |||
| Thubert, P., Bormann, C., Toutain, L., and R. Cragie, | Thubert, P., Bormann, C., Toutain, L., and R. Cragie, | |||
| "6LoWPAN Routing Header", draft-ietf-roll-routing- | "6LoWPAN Routing Header", draft-ietf-roll-routing- | |||
| dispatch-00 (work in progress), March 2016. | dispatch-00 (work in progress), March 2016. | |||
| End of changes. 53 change blocks. | ||||
| 183 lines changed or deleted | 159 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/ | ||||