| < draft-ietf-roll-useofrplinfo-33.txt | draft-ietf-roll-useofrplinfo-34.txt > | |||
|---|---|---|---|---|
| ROLL Working Group M. Robles | ROLL Working Group M. Robles | |||
| Internet-Draft Aalto | Internet-Draft Aalto/UTN-FRM | |||
| Updates: 6553, 6550, 8138 (if approved) M. Richardson | Updates: 6553, 6550, 8138 (if approved) M. Richardson | |||
| Intended status: Standards Track SSW | Intended status: Standards Track SSW | |||
| Expires: June 15, 2020 P. Thubert | Expires: July 23, 2020 P. Thubert | |||
| Cisco | Cisco | |||
| December 13, 2019 | January 20, 2020 | |||
| Using RPI Option Type, Routing Header for Source Routes and IPv6-in-IPv6 | Using RPI Option Type, Routing Header for Source Routes and IPv6-in-IPv6 | |||
| encapsulation in the RPL Data Plane | encapsulation in the RPL Data Plane | |||
| draft-ietf-roll-useofrplinfo-33 | draft-ietf-roll-useofrplinfo-34 | |||
| 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 RFC6553 (RPI Option Type), RFC6554 | enumerates the cases where RFC6553 (RPI Option Type), RFC6554 | |||
| (Routing Header for Source Routes) and IPv6-in-IPv6 encapsulation is | (Routing Header for Source Routes) and IPv6-in-IPv6 encapsulation is | |||
| required in data plane. This analysis provides the basis on which to | required in data plane. This analysis provides the basis on which to | |||
| design efficient compression of these headers. This document updates | design efficient compression of these headers. This document updates | |||
| skipping to change at page 1, line 44 ¶ | skipping to change at page 1, line 44 ¶ | |||
| 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 https://datatracker.ietf.org/drafts/current/. | Drafts is at https://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 June 15, 2020. | This Internet-Draft will expire on July 23, 2020. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2019 IETF Trust and the persons identified as the | Copyright (c) 2020 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 | |||
| (https://trustee.ietf.org/license-info) in effect on the date of | (https://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 | |||
| skipping to change at page 2, line 33 ¶ | skipping to change at page 2, line 33 ¶ | |||
| 1.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . 4 | 1.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 2. Terminology and Requirements Language . . . . . . . . . . . . 5 | 2. Terminology and Requirements Language . . . . . . . . . . . . 5 | |||
| 3. RPL Overview . . . . . . . . . . . . . . . . . . . . . . . . 6 | 3. RPL Overview . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 4. Updates to RFC6553, RFC6550 and RFC8138 . . . . . . . . . . . 7 | 4. Updates to RFC6553, RFC6550 and RFC8138 . . . . . . . . . . . 7 | |||
| 4.1. Updates to RFC6550: Advertising External Routes with Non- | 4.1. Updates to RFC6550: Advertising External Routes with Non- | |||
| Storing Mode Signaling. . . . . . . . . . . . . . . . . . 7 | Storing Mode Signaling. . . . . . . . . . . . . . . . . . 7 | |||
| 4.2. Updates to RFC6553: Indicating the new RPI Option Type. . 8 | 4.2. Updates to RFC6553: Indicating the new RPI Option Type. . 8 | |||
| 4.3. Updates to RFC6550: Indicating the new RPI in the | 4.3. Updates to RFC6550: Indicating the new RPI in the | |||
| DODAG Configuration Option Flag. . . . . . . . . . . . . 11 | DODAG Configuration Option Flag. . . . . . . . . . . . . 11 | |||
| 4.4. Updates to RFC8138: Indicating the way to decompress with | 4.4. Updates to RFC8138: Indicating the way to decompress with | |||
| the new RPI Option Type. . . . . . . . . . . . . . . . . 12 | the new RPI Option Type. . . . . . . . . . . . . . . . . 13 | |||
| 5. Sample/reference topology . . . . . . . . . . . . . . . . . . 14 | 5. Sample/reference topology . . . . . . . . . . . . . . . . . . 14 | |||
| 6. Use cases . . . . . . . . . . . . . . . . . . . . . . . . . . 16 | 6. Use cases . . . . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
| 7. Storing mode . . . . . . . . . . . . . . . . . . . . . . . . 19 | 7. Storing mode . . . . . . . . . . . . . . . . . . . . . . . . 19 | |||
| 7.1. Storing Mode: Interaction between Leaf and Root . . . . . 20 | 7.1. Storing Mode: Interaction between Leaf and Root . . . . . 20 | |||
| 7.1.1. SM: Example of Flow from RAL to root . . . . . . . . 21 | 7.1.1. SM: Example of Flow from RAL to root . . . . . . . . 20 | |||
| 7.1.2. SM: Example of Flow from root to RAL . . . . . . . . 21 | 7.1.2. SM: Example of Flow from root to RAL . . . . . . . . 21 | |||
| 7.1.3. SM: Example of Flow from root to RUL . . . . . . . . 22 | 7.1.3. SM: Example of Flow from root to RUL . . . . . . . . 22 | |||
| 7.1.4. SM: Example of Flow from RUL to root . . . . . . . . 23 | 7.1.4. SM: Example of Flow from RUL to root . . . . . . . . 22 | |||
| 7.2. SM: Interaction between Leaf and Internet. . . . . . . . 23 | 7.2. SM: Interaction between Leaf and Internet. . . . . . . . 23 | |||
| 7.2.1. SM: Example of Flow from RAL to Internet . . . . . . 24 | 7.2.1. SM: Example of Flow from RAL to Internet . . . . . . 23 | |||
| 7.2.2. SM: Example of Flow from Internet to RAL . . . . . . 24 | 7.2.2. SM: Example of Flow from Internet to RAL . . . . . . 24 | |||
| 7.2.3. SM: Example of Flow from RUL to Internet . . . . . . 25 | 7.2.3. SM: Example of Flow from RUL to Internet . . . . . . 25 | |||
| 7.2.4. SM: Example of Flow from Internet to RUL. . . . . . . 26 | 7.2.4. SM: Example of Flow from Internet to RUL. . . . . . . 26 | |||
| 7.3. SM: Interaction between Leaf and Leaf . . . . . . . . . . 27 | 7.3. SM: Interaction between Leaf and Leaf . . . . . . . . . . 27 | |||
| 7.3.1. SM: Example of Flow from RAL to RAL . . . . . . . . . 28 | 7.3.1. SM: Example of Flow from RAL to RAL . . . . . . . . . 27 | |||
| 7.3.2. SM: Example of Flow from RAL to RUL . . . . . . . . . 29 | 7.3.2. SM: Example of Flow from RAL to RUL . . . . . . . . . 28 | |||
| 7.3.3. SM: Example of Flow from RUL to RAL . . . . . . . . . 30 | 7.3.3. SM: Example of Flow from RUL to RAL . . . . . . . . . 29 | |||
| 7.3.4. SM: Example of Flow from RUL to RUL . . . . . . . . . 31 | 7.3.4. SM: Example of Flow from RUL to RUL . . . . . . . . . 30 | |||
| 8. Non Storing mode . . . . . . . . . . . . . . . . . . . . . . 32 | 8. Non Storing mode . . . . . . . . . . . . . . . . . . . . . . 31 | |||
| 8.1. Non-Storing Mode: Interaction between Leaf and Root . . . 33 | 8.1. Non-Storing Mode: Interaction between Leaf and Root . . . 32 | |||
| 8.1.1. Non-SM: Example of Flow from RAL to root . . . . . . 34 | 8.1.1. Non-SM: Example of Flow from RAL to root . . . . . . 33 | |||
| 8.1.2. Non-SM: Example of Flow from root to RAL . . . . . . 34 | 8.1.2. Non-SM: Example of Flow from root to RAL . . . . . . 33 | |||
| 8.1.3. Non-SM: Example of Flow from root to RUL . . . . . . 35 | 8.1.3. Non-SM: Example of Flow from root to RUL . . . . . . 34 | |||
| 8.1.4. Non-SM: Example of Flow from RUL to root . . . . . . 36 | 8.1.4. Non-SM: Example of Flow from RUL to root . . . . . . 35 | |||
| 8.2. Non-Storing Mode: Interaction between Leaf and Internet . 37 | 8.2. Non-Storing Mode: Interaction between Leaf and Internet . 36 | |||
| 8.2.1. Non-SM: Example of Flow from RAL to Internet . . . . 37 | 8.2.1. Non-SM: Example of Flow from RAL to Internet . . . . 36 | |||
| 8.2.2. Non-SM: Example of Flow from Internet to RAL . . . . 38 | 8.2.2. Non-SM: Example of Flow from Internet to RAL . . . . 37 | |||
| 8.2.3. Non-SM: Example of Flow from RUL to Internet . . . . 39 | 8.2.3. Non-SM: Example of Flow from RUL to Internet . . . . 38 | |||
| 8.2.4. Non-SM: Example of Flow from Internet to RUL . . . . 40 | 8.2.4. Non-SM: Example of Flow from Internet to RUL . . . . 39 | |||
| 8.3. Non-SM: Interaction between Leafs . . . . . . . . . . . . 41 | 8.3. Non-SM: Interaction between Leafs . . . . . . . . . . . . 40 | |||
| 8.3.1. Non-SM: Example of Flow from RAL to RAL . . . . . . . 41 | 8.3.1. Non-SM: Example of Flow from RAL to RAL . . . . . . . 40 | |||
| 8.3.2. Non-SM: Example of Flow from RAL to RUL . . . . . . . 43 | 8.3.2. Non-SM: Example of Flow from RAL to RUL . . . . . . . 42 | |||
| 8.3.3. Non-SM: Example of Flow from RUL to RAL . . . . . . . 44 | 8.3.3. Non-SM: Example of Flow from RUL to RAL . . . . . . . 43 | |||
| 8.3.4. Non-SM: Example of Flow from RUL to RUL . . . . . . . 45 | 8.3.4. Non-SM: Example of Flow from RUL to RUL . . . . . . . 44 | |||
| 9. Operational Considerations of supporting | 9. Operational Considerations of supporting | |||
| RUL-leaves . . . . . . . . . . . . . . . . . . . . . . . . . 46 | RUL-leaves . . . . . . . . . . . . . . . . . . . . . . . . . 45 | |||
| 10. Operational considerations of introducing 0x23 . . . . . . . 47 | 10. Operational considerations of introducing 0x23 . . . . . . . 46 | |||
| 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 48 | 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 46 | |||
| 12. Security Considerations . . . . . . . . . . . . . . . . . . . 49 | 12. Security Considerations . . . . . . . . . . . . . . . . . . . 47 | |||
| 13. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 52 | 13. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 50 | |||
| 14. References . . . . . . . . . . . . . . . . . . . . . . . . . 52 | 14. References . . . . . . . . . . . . . . . . . . . . . . . . . 51 | |||
| 14.1. Normative References . . . . . . . . . . . . . . . . . . 52 | 14.1. Normative References . . . . . . . . . . . . . . . . . . 51 | |||
| 14.2. Informative References . . . . . . . . . . . . . . . . . 54 | 14.2. Informative References . . . . . . . . . . . . . . . . . 52 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 56 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 54 | |||
| 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. [RFC6553] | [RFC6550] is a routing protocol for constrained networks. [RFC6553] | |||
| defines the RPL Option carried within the IPv6 Hop-by-Hop Header to | defines the RPL Option carried within the IPv6 Hop-by-Hop Header to | |||
| carry the RPLInstanceID and quickly identify inconsistencies (loops) | carry the RPLInstanceID and quickly identify inconsistencies (loops) | |||
| in the routing topology. The RPL Option is commonly referred to as | in the routing topology. The RPL Option is commonly referred to as | |||
| the RPL Packet Information (RPI) though the RPI is really the | the RPL Packet Information (RPI) though the RPI is really the | |||
| abstract information that is defined in [RFC6550] and transported in | abstract information that is defined in [RFC6550] and transported in | |||
| skipping to change at page 8, line 13 ¶ | skipping to change at page 8, line 13 ¶ | |||
| outside the RPL domain. | outside the RPL domain. | |||
| This specification updates [RFC6550] to RECOMMEND that external | This specification updates [RFC6550] to RECOMMEND that external | |||
| targets are advertised using Non-Storing Mode DAO messaging even in a | targets are advertised using Non-Storing Mode DAO messaging even in a | |||
| Storing-Mode network. This way, external routes are not advertised | Storing-Mode network. This way, external routes are not advertised | |||
| within the DODAG and all packets to an external target reach the Root | within the DODAG and all packets to an external target reach the Root | |||
| like normal Non-Storing Mode traffic. The Non-Storing Mode DAO | like normal Non-Storing Mode traffic. The Non-Storing Mode DAO | |||
| informs the Root of the address of the 6LR that injects the external | informs the Root of the address of the 6LR that injects the external | |||
| route, and the root uses IP-in-IP encapsulation to that 6LR, which | route, and the root uses IP-in-IP encapsulation to that 6LR, which | |||
| terminates the IP-in-IP tunnel and forwards the original packet | terminates the IP-in-IP tunnel and forwards the original packet | |||
| outside the RPL domain free of RPL artifacts. This whole operation | outside the RPL domain free of RPL artifacts. In the other | |||
| is transparent to intermediate routers that only see traffic between | direction, for traffic coming from an external target into the LLN, | |||
| the 6LR and the Root, and only the Root and the 6LRs that inject | the parent (6LR) that injects the traffic always encapsulates to the | |||
| external routes in the network need to be upgraded to add this | root. This whole operation is transparent to intermediate routers | |||
| function to the network. | that only see traffic between the 6LR and the Root, and only the Root | |||
| and the 6LRs that inject external routes in the network need to be | ||||
| upgraded to add this function to the network. | ||||
| A RUL is a special case of external target when the target is | A RUL is a special case of external target when the target is | |||
| actually a host and it is known to support a consumed Routing Header | actually a host and it is known to support a consumed Routing Header | |||
| and to ignore a HbH header as prescribed by [RFC8200]. The target | and to ignore a HbH header as prescribed by [RFC8200]. The target | |||
| may have been learned through as a host route or may have been | may have been learned through as a host route or may have been | |||
| registered to the 6LR using [RFC8505]. IP-in-IP encapsulation MAY be | registered to the 6LR using [RFC8505]. IP-in-IP encapsulation MAY be | |||
| avoided for Root to RUL communication if the RUL is known to process | avoided for Root to RUL communication if the RUL is known to process | |||
| the packets as forwarded by the parent 6LR without decapsulation. | the packets as forwarded by the parent 6LR without decapsulation. | |||
| In order to enable IP-in-IP all the way to a 6LN, it is beneficial | In order to enable IP-in-IP all the way to a 6LN, it is beneficial | |||
| skipping to change at page 19, line 15 ¶ | skipping to change at page 19, line 15 ¶ | |||
| 7. Storing mode | 7. Storing mode | |||
| In storing mode (SM) (fully stateful), the sender can determine if | In storing mode (SM) (fully stateful), the sender can determine if | |||
| the destination is inside the LLN by looking if the destination | the destination is inside the LLN by looking if the destination | |||
| address is matched by the DIO's Prefix Information Option (PIO) | address is matched by the DIO's Prefix Information Option (PIO) | |||
| option. | option. | |||
| The following table (Figure 7) itemizes which headers are needed in | The following table (Figure 7) itemizes which headers are needed in | |||
| each of the following scenarios. It indicates if the IPv6-in-IPv6 | each of the following scenarios. It indicates if the IPv6-in-IPv6 | |||
| header that is added, must be addressed to the final destination (the | header that is added, must be addressed to the final destination (the | |||
| RAL node that is the target(tgt)), to the "root" or if a hop-by-hop | RAL node that is the target(tgt)), to the "root", or the 6LR parent | |||
| header must be added (indicated by "hop"). In the hop-by-hop basis, | of a leaf. | |||
| the destination address for the next hop is the link-layer address of | ||||
| the next hop. | ||||
| In cases where no IPv6-in-IPv6 header is needed, the column states as | In cases where no IPv6-in-IPv6 header is needed, the column states as | |||
| "No". If the IPv6-in-IPv6 header is needed is a "must". | "No". If the IPv6-in-IPv6 header is needed is a "must". | |||
| In all cases the RPI is needed, since it identifies inconsistencies | In all cases the RPI is needed, since it identifies inconsistencies | |||
| (loops) in the routing topology. In all cases the RH3 is not needed | (loops) in the routing topology. In all cases the RH3 is not needed | |||
| because it is not used in storing mode. | because it is not used in storing mode. | |||
| In each case, 6LR_i are the intermediate routers from source to | In each case, 6LR_i are the intermediate routers from source to | |||
| destination. "1 <= i <= n", n is the number of routers (6LR) that | destination. "1 <= i <= n", n is the number of routers (6LR) that | |||
| skipping to change at page 20, line 14 ¶ | skipping to change at page 20, line 14 ¶ | |||
| +---------------------+--------------+------------+------------------+ | +---------------------+--------------+------------+------------------+ | |||
| | Interaction between | Use Case |IPv6-in-IPv6| IPv6-in-IPv6 dst | | | Interaction between | Use Case |IPv6-in-IPv6| IPv6-in-IPv6 dst | | |||
| +---------------------+--------------+------------+------------------+ | +---------------------+--------------+------------+------------------+ | |||
| | | RAL to root | No | No | | | | RAL to root | No | No | | |||
| + +--------------+------------+------------------+ | + +--------------+------------+------------------+ | |||
| | Leaf - Root | root to RAL | No | No | | | Leaf - Root | root to RAL | No | No | | |||
| + +--------------+------------+------------------+ | + +--------------+------------+------------------+ | |||
| | | root to RUL | No | No | | | | root to RUL | No | No | | |||
| + +--------------+------------+------------------+ | + +--------------+------------+------------------+ | |||
| | | RUL to root | must | hop or root | | | | RUL to root | must | root | | |||
| +---------------------+--------------+------------+------------------+ | +---------------------+--------------+------------+------------------+ | |||
| | | RAL to Int | No | No | | | | RAL to Int | No | No | | |||
| + +--------------+------------+------------------+ | + +--------------+------------+------------------+ | |||
| | Leaf - Internet | Int to RAL | must | RAL (tgt) | | | Leaf - Internet | Int to RAL | must | RAL (tgt) | | |||
| + +--------------+------------+------------------+ | + +--------------+------------+------------------+ | |||
| | | RUL to Int | must | hop or root | | | | RUL to Int | must | root | | |||
| + +--------------+------------+------------------+ | + +--------------+------------+------------------+ | |||
| | | Int to RUL | must | 6LR | | | | Int to RUL | must | 6LR | | |||
| +---------------------+--------------+------------+------------------+ | +---------------------+--------------+------------+------------------+ | |||
| | | RAL to RAL | No | No | | | | RAL to RAL | No | No | | |||
| + +--------------+------------+------------------+ | + +--------------+------------+------------------+ | |||
| | | RAL to RUL | No | No | | | | RAL to RUL | No | No | | |||
| + Leaf - Leaf +--------------+------------+------------------+ | + Leaf - Leaf +--------------+------------+------------------+ | |||
| | | RUL to RAL | must | RAL (tgt) | | | | RUL to RAL | must | root/RAL(tgt) | | |||
| + +--------------+------------+------------------+ | + +--------------+------------+------------------+ | |||
| | | RUL to RUL | must | 6LR | | | | RUL to RUL | must | root/6LR | | |||
| +---------------------+--------------+------------+------------------+ | +---------------------+--------------+------------+------------------+ | |||
| Figure 7: Table of IPv6-in-IPv6 encapsulation in Storing mode. | Figure 7: Table of IPv6-in-IPv6 encapsulation in Storing mode. | |||
| 7.1. Storing Mode: Interaction between Leaf and Root | 7.1. Storing Mode: Interaction between Leaf and Root | |||
| In this section is described the communication flow in storing mode | In this section is described the communication flow in storing mode | |||
| (SM) between, | (SM) between, | |||
| RAL to root | RAL to root | |||
| skipping to change at page 21, line 14 ¶ | skipping to change at page 21, line 9 ¶ | |||
| 7.1.1. SM: Example of Flow from RAL to root | 7.1.1. SM: Example of Flow from RAL to root | |||
| 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: | |||
| RAL (6LN) --> 6LR_i --> root(6LBR) | RAL (6LN) --> 6LR_i --> root(6LBR) | |||
| For example, a communication flow could be: Node F --> Node D --> | For example, a communication flow could be: Node F (6LN) --> Node D | |||
| Node B --> Node A root(6LBR) | (6LR_i) --> Node B (6LR_i)--> Node A root(6LBR) | |||
| The RAL (Node F) inserts the RPI, and sends the packet to 6LR (Node | The RAL (Node F) inserts the RPI, and sends the packet to 6LR (Node | |||
| D) which decrements the rank in the RPI and sends the packet up. | D) which decrements the rank in the RPI and sends the packet up. | |||
| When the packet arrives at 6LBR (Node A), the RPI is removed and the | When the packet arrives at 6LBR (Node A), the RPI is removed and the | |||
| packet is processed. | packet is processed. | |||
| No IPv6-in-IPv6 header is required. | No IPv6-in-IPv6 header is required. | |||
| The RPI can be removed by the 6LBR because the packet is addressed to | The RPI can be removed by the 6LBR because the packet is addressed to | |||
| the 6LBR. The RAL must know that it is communicating with the 6LBR | the 6LBR. The RAL must know that it is communicating with the 6LBR | |||
| to make use of this scenario. The RAL can know the address of the | to make use of this scenario. The RAL can know the address of the | |||
| 6LBR because it knows the address of the root via the DODAGID in the | 6LBR because it knows the address of the root via the DODAGID in the | |||
| DIO messages. | DIO messages. | |||
| The Table 1 summarizes what headers are needed for this use case. | The Table 1 summarizes what headers are needed for this use case. | |||
| +-------------------+---------+-------+----------+ | +-------------------+---------+-------+----------+ | |||
| | Header | RAL src | 6LR_i | 6LBR dst | | | Header | RAL src | 6LR_i | 6LBR dst | | |||
| +-------------------+---------+-------+----------+ | +-------------------+---------+-------+----------+ | |||
| | Inserted headers | RPI | -- | -- | | | Added headers | RPI | -- | -- | | |||
| | Removed headers | -- | -- | RPI | | ||||
| | Re-added headers | -- | -- | -- | | ||||
| | Modified headers | -- | RPI | -- | | | Modified headers | -- | RPI | -- | | |||
| | Removed headers | -- | -- | RPI | | ||||
| | Untouched headers | -- | -- | -- | | | Untouched headers | -- | -- | -- | | |||
| +-------------------+---------+-------+----------+ | +-------------------+---------+-------+----------+ | |||
| Table 1: SM: Summary of the use of headers from RAL to root | Table 1: SM: Summary of the use of headers from RAL to root | |||
| 7.1.2. SM: Example of Flow from root to RAL | 7.1.2. SM: Example of Flow from root to RAL | |||
| In this case the flow comprises: | In this case the flow comprises: | |||
| root (6LBR) --> 6LR_i --> RAL (6LN) | root (6LBR) --> 6LR_i --> RAL (6LN) | |||
| For example, a communication flow could be: Node A root(6LBR) --> | For example, a communication flow could be: Node A root(6LBR) --> | |||
| Node B --> Node D --> Node F | Node B (6LR_i) --> Node D (6LR_i) --> Node F (6LN) | |||
| In this case the 6LBR inserts RPI and sends the packet down, the 6LR | In this case the 6LBR inserts RPI and sends the packet down, the 6LR | |||
| is going to increment the rank in RPI (it examines the instanceID to | is going to increment the rank in RPI (it examines the instanceID to | |||
| identify the right forwarding table), the packet is processed in the | identify the right forwarding table), the packet is processed in the | |||
| RAL and the RPI removed. | RAL and the RPI removed. | |||
| No IPv6-in-IPv6 header is required. | No IPv6-in-IPv6 header is required. | |||
| The Table 2 summarizes what headers are needed for this use case. | The Table 2 summarizes what headers are needed for this use case. | |||
| +-------------------+----------+-------+---------+ | +-------------------+----------+-------+---------+ | |||
| | Header | 6LBR src | 6LR_i | RAL dst | | | Header | 6LBR src | 6LR_i | RAL dst | | |||
| +-------------------+----------+-------+---------+ | +-------------------+----------+-------+---------+ | |||
| | Inserted headers | RPI | -- | -- | | | Added headers | RPI | -- | -- | | |||
| | Removed headers | -- | -- | RPI | | ||||
| | Re-added headers | -- | -- | -- | | ||||
| | Modified headers | -- | RPI | -- | | | Modified headers | -- | RPI | -- | | |||
| | Removed headers | -- | -- | RPI | | ||||
| | Untouched headers | -- | -- | -- | | | Untouched headers | -- | -- | -- | | |||
| +-------------------+----------+-------+---------+ | +-------------------+----------+-------+---------+ | |||
| Table 2: SM: Summary of the use of headers from root to RAL | Table 2: SM: Summary of the use of headers from root to RAL | |||
| 7.1.3. SM: Example of Flow from root to RUL | 7.1.3. SM: Example of Flow from root to RUL | |||
| In this case the flow comprises: | In this case the flow comprises: | |||
| root (6LBR) --> 6LR_i --> RUL (IPv6 dst node) | root (6LBR) --> 6LR_i --> RUL (IPv6 dst node) | |||
| For example, a communication flow could be: Node A root(6LBR) --> | For example, a communication flow could be: Node A (6LBR) --> Node B | |||
| Node B --> Node E --> Node G | (6LR_i) --> Node E (6LR_i) --> Node G (RUL) | |||
| As the RPI extension can be ignored by the RUL, this situation is | As the RPI extension can be ignored by the RUL, this situation is | |||
| identical to the previous scenario. | identical to the previous scenario. | |||
| The Table 3 summarizes what headers are needed for this use case. | The Table 3 summarizes what headers are needed for this use case. | |||
| +-------------------+----------+-------+----------------------+ | +-------------------+----------+-------+----------------------+ | |||
| | Header | 6LBR src | 6LR_i | RUL (IPv6 dst node) | | | Header | 6LBR src | 6LR_i | RUL (IPv6 dst node) | | |||
| +-------------------+----------+-------+----------------------+ | +-------------------+----------+-------+----------------------+ | |||
| | Inserted headers | RPI | -- | -- | | | Added headers | RPI | -- | -- | | |||
| | Removed headers | -- | -- | -- | | ||||
| | Re-added headers | -- | -- | -- | | ||||
| | Modified headers | -- | RPI | -- | | | Modified headers | -- | RPI | -- | | |||
| | Removed headers | -- | -- | -- | | ||||
| | Untouched headers | -- | -- | RPI (Ignored) | | | Untouched headers | -- | -- | RPI (Ignored) | | |||
| +-------------------+----------+-------+----------------------+ | +-------------------+----------+-------+----------------------+ | |||
| Table 3: SM: Summary of the use of headers from root to RUL | Table 3: SM: Summary of the use of headers from root to RUL | |||
| 7.1.4. SM: Example of Flow from RUL to root | 7.1.4. SM: Example of Flow from RUL to root | |||
| In this case the flow comprises: | In this case the flow comprises: | |||
| RUL (IPv6 src node) --> 6LR_1 --> 6LR_i --> root (6LBR) | RUL (IPv6 src node) --> 6LR_1 --> 6LR_i --> root (6LBR) | |||
| For example, a communication flow could be: Node G --> Node E --> | For example, a communication flow could be: Node G (RUL) --> Node E | |||
| Node B --> Node A root(6LBR) | (6LR_1)--> Node B (6LR_i)--> Node A root(6LBR) | |||
| When the packet arrives from IPv6 node (Node G) to 6LR_1 (Node E), | When the packet arrives from IPv6 node (Node G) to 6LR_1 (Node E), | |||
| the 6LR_1 will insert a RPI, encapsulated in a IPv6-in-IPv6 header. | the 6LR_1 will insert a RPI, encapsulated in a IPv6-in-IPv6 header. | |||
| The IPv6-in-IPv6 header can be addressed to the next hop (Node B), or | The IPv6-in-IPv6 header is addressed to the root (Node A). The root | |||
| to the root (Node A). The root removes the header and processes the | removes the header and processes the packet. | |||
| packet. | ||||
| The Figure 8 shows the table that summarizes what headers are needed | The Figure 8 shows the table that summarizes what headers are needed | |||
| for this use case. [1] refers the case where the IPv6-in-IPv6 header | for this use case where the IPv6-in-IPv6 header is addressed to the | |||
| is addressed to the next hop (Node B). [2] refers the case where the | root (Node A). | |||
| IPv6-in-IPv6 header is addressed to the root (Node A). | ||||
| +-----------+------+--------------+-----------------+------------------+ | +-----------+------+--------------+-----------------+------------------+ | |||
| | Header | RUL | 6LR_1 | 6LR_i | 6LBR dst | | | Header | RUL | 6LR_1 | 6LR_i | 6LBR dst | | |||
| | | src | | | | | | | src | | | | | |||
| | | node | | | | | | | node | | | | | |||
| +-----------+------+--------------+-----------------+------------------+ | +-----------+------+--------------+-----------------+------------------+ | |||
| | Inserted | -- | IP6-IP6(RPI) | IP6-IP6(RPI)[1] | -- | | | Added | -- | IP6-IP6(RPI) | | -- | | |||
| | headers | | | | | | ||||
| +-----------+------+--------------+-----------------+------------------+ | ||||
| | Removed | -- | -- | IP6-IP6(RPI)[1] |IP6-IP6(RPI)[1][2]| | ||||
| | headers | | | | | | | headers | | | | | | |||
| +-----------+------+--------------+-----------------+------------------+ | +-----------+------+--------------+-----------------+------------------+ | |||
| | Re-added | -- | -- | -- | -- | | | Modified | -- | -- | IP6-IP6(RPI) | -- | | |||
| | headers | | | | | | | headers | | | | | | |||
| +-----------+------+--------------+-----------------+------------------+ | +-----------+------+--------------+-----------------+------------------+ | |||
| | Modified | -- | -- | IP6-IP6(RPI)[2] | -- | | | Removed | -- | -- | | IP6-IP6(RPI) | | |||
| | headers | | | | | | | headers | | | | | | |||
| +-----------+------+--------------+-----------------+------------------+ | +-----------+------+--------------+-----------------+------------------+ | |||
| | Untouched | -- | -- | -- | -- | | | Untouched | -- | -- | -- | -- | | |||
| | headers | | | | | | | headers | | | | | | |||
| +-----------+------+--------------+-----------------+------------------+ | +-----------+------+--------------+-----------------+------------------+ | |||
| Figure 8: SM: Summary of the use of headers from RUL to root. | Figure 8: SM: Summary of the use of headers from RUL to root. | |||
| 7.2. SM: Interaction between Leaf and Internet. | 7.2. SM: Interaction between Leaf and Internet. | |||
| skipping to change at page 24, line 4 ¶ | skipping to change at page 23, line 37 ¶ | |||
| | Untouched | -- | -- | -- | -- | | | Untouched | -- | -- | -- | -- | | |||
| | headers | | | | | | | headers | | | | | | |||
| +-----------+------+--------------+-----------------+------------------+ | +-----------+------+--------------+-----------------+------------------+ | |||
| Figure 8: SM: Summary of the use of headers from RUL to root. | Figure 8: SM: Summary of the use of headers from RUL to root. | |||
| 7.2. SM: Interaction between Leaf and Internet. | 7.2. SM: Interaction between Leaf and Internet. | |||
| In this section is described the communication flow in storing mode | In this section is described the communication flow in storing mode | |||
| (SM) between, | (SM) between, | |||
| RAL to Internet | RAL to Internet | |||
| Internet to RAL | Internet to RAL | |||
| RUL to Internet | RUL to Internet | |||
| Internet to RUL | Internet to RUL | |||
| 7.2.1. SM: Example of Flow from RAL to Internet | 7.2.1. SM: Example of Flow from RAL to Internet | |||
| RPL information from RFC 6553 may go out to Internet as it will be | RPL information from RFC 6553 may go out to Internet as it will be | |||
| ignored by nodes which have not been configured to be RPI aware. | ignored by nodes which have not been configured to be RPI aware. | |||
| In this case the flow comprises: | In this case the flow comprises: | |||
| RAL (6LN) --> 6LR_i --> root (6LBR) --> Internet | RAL (6LN) --> 6LR_i --> root (6LBR) --> Internet | |||
| For example, the communication flow could be: Node F --> Node D --> | For example, the communication flow could be: Node F (RAL) --> Node D | |||
| Node B --> Node A root(6LBR) --> Internet | (6LR_i)--> Node B (6LR_i)--> Node A root(6LBR) --> Internet | |||
| No IPv6-in-IPv6 header is required. | No IPv6-in-IPv6 header is required. | |||
| Note: In this use case it is used a node as leaf, but this use case | Note: In this use case, it is used a node as leaf, but this use case | |||
| can be also applicable to any RPL-aware-node type (e.g. 6LR) | can be also applicable to any RPL-aware-node type (e.g. 6LR) | |||
| The Table 4 summarizes what headers are needed for this use case. | The Table 4 summarizes what headers are needed for this use case. | |||
| +-------------------+---------+-------+------+----------------+ | +-------------------+---------+-------+------+----------------+ | |||
| | Header | RAL src | 6LR_i | 6LBR | Internet dst | | | Header | RAL src | 6LR_i | 6LBR | Internet dst | | |||
| +-------------------+---------+-------+------+----------------+ | +-------------------+---------+-------+------+----------------+ | |||
| | Inserted headers | RPI | -- | -- | -- | | | Added headers | RPI | -- | -- | -- | | |||
| | Removed headers | -- | -- | -- | -- | | ||||
| | Re-added headers | -- | -- | -- | -- | | ||||
| | Modified headers | -- | RPI | -- | -- | | | Modified headers | -- | RPI | -- | -- | | |||
| | Removed headers | -- | -- | -- | -- | | ||||
| | Untouched headers | -- | -- | RPI | RPI (Ignored) | | | Untouched headers | -- | -- | RPI | RPI (Ignored) | | |||
| +-------------------+---------+-------+------+----------------+ | +-------------------+---------+-------+------+----------------+ | |||
| Table 4: SM: Summary of the use of headers from RAL to Internet | Table 4: SM: Summary of the use of headers from RAL to Internet | |||
| 7.2.2. SM: Example of Flow from Internet to RAL | 7.2.2. SM: Example of Flow from Internet to RAL | |||
| In this case the flow comprises: | In this case the flow comprises: | |||
| Internet --> root (6LBR) --> 6LR_i --> RAL (6LN) | Internet --> root (6LBR) --> 6LR_i --> RAL (6LN) | |||
| For example, a communication flow could be: Internet --> Node A | For example, a communication flow could be: Internet --> Node A | |||
| root(6LBR) --> Node B --> Node D --> Node F | root(6LBR) --> Node B (6LR_1) --> Node D (6LR_n) --> Node F (RAL) | |||
| When the packet arrives from Internet to 6LBR the RPI is added in a | When the packet arrives from Internet to 6LBR the RPI is added in a | |||
| outer IPv6-in-IPv6 header (with the IPv6-in-IPv6 destination address | outer IPv6-in-IPv6 header (with the IPv6-in-IPv6 destination address | |||
| set to the RAL) and sent to 6LR, which modifies the rank in the RPI. | set to the RAL) and sent to 6LR, which modifies the rank in the RPI. | |||
| When the packet arrives at the RAL the RPI is removed and the packet | When the packet arrives at the RAL the RPI is removed and the packet | |||
| processed. | processed. | |||
| The Figure 9 shows the table that summarizes what headers are needed | The Figure 9 shows the table that summarizes what headers are needed | |||
| for this use case. | for this use case. | |||
| +-----------+----------+--------------+--------------+--------------+ | +-----------+----------+--------------+--------------+--------------+ | |||
| | Header | Internet | 6LBR | 6LR_i | RAL dst | | | Header | Internet | 6LBR | 6LR_i | RAL dst | | |||
| | | src | | | | | | | src | | | | | |||
| +-----------+----------+--------------+--------------+--------------+ | +-----------+----------+--------------+--------------+--------------+ | |||
| | Inserted | -- | IP6-IP6(RPI) | -- | -- | | | Added | -- | IP6-IP6(RPI) | -- | -- | | |||
| | headers | | | | | | ||||
| +-----------+----------+--------------+--------------+--------------+ | ||||
| | Removed | -- | -- | -- | IP6-IP6(RPI) | | ||||
| | headers | | | | | | | headers | | | | | | |||
| +-----------+----------+--------------+--------------+--------------+ | +-----------+----------+--------------+--------------+--------------+ | |||
| | Re-added | -- | -- | -- | -- | | | Modified | -- | -- | IP6-IP6(RPI) | -- | | |||
| | headers | | | | | | | headers | | | | | | |||
| +-----------+----------+--------------+--------------+--------------+ | +-----------+----------+--------------+--------------+--------------+ | |||
| | Modified | -- | -- | IP6-IP6(RPI) | -- | | | Removed | -- | -- | -- | IP6-IP6(RPI) | | |||
| | headers | | | | | | | headers | | | | | | |||
| +-----------+----------+--------------+--------------+--------------+ | +-----------+----------+--------------+--------------+--------------+ | |||
| | Untouched | -- | -- | -- | -- | | | Untouched | -- | -- | -- | -- | | |||
| | headers | | | | | | | headers | | | | | | |||
| +-----------+----------+--------------+--------------+--------------+ | +-----------+----------+--------------+--------------+--------------+ | |||
| Figure 9: SM: Summary of the use of headers from Internet to RAL. | Figure 9: SM: Summary of the use of headers from Internet to RAL. | |||
| 7.2.3. SM: Example of Flow from RUL to Internet | 7.2.3. SM: Example of Flow from RUL to Internet | |||
| In this case the flow comprises: | In this case the flow comprises: | |||
| RUL (IPv6 src node) --> 6LR_1 --> 6LR_i -->root (6LBR) --> Internet | RUL (IPv6 src node) --> 6LR_1 --> 6LR_i -->root (6LBR) --> Internet | |||
| For example, a communication flow could be: Node G --> Node E --> | For example, a communication flow could be: Node G (RUL)--> Node E | |||
| Node B --> Node A root(6LBR) --> Internet | (6LR_1)--> Node B (6lR_i) --> Node A root(6LBR) --> Internet | |||
| The 6LR_1 (i=1) node will add an IPv6-in-IPv6(RPI) header addressed | The 6LR_1 (i=1) node will add an IPv6-in-IPv6(RPI) header addressed | |||
| either to the root, or hop-by-hop such that the root can remove the | to the root such that the root can remove the RPI before passing | |||
| RPI before passing upwards. The IPv6-in-IPv6 addressed to the root | upwards. The IPv6-in-IPv6 addressed to the root cause less | |||
| cause less processing overhead. On the other hand, with hop-by-hop | processing overhead. In the intermindiate 6LR the rank in the RPI is | |||
| the intermediate routers can check the routing tables for a better | modified. | |||
| routing path, thus it could be more efficient and faster. | ||||
| Implementation should decide which approach to take. | ||||
| The originating node will ideally leave the IPv6 flow label as zero | The originating node will ideally leave the IPv6 flow label as zero | |||
| so that the packet can be better compressed through the LLN. The | so that the packet can be better compressed through the LLN. The | |||
| 6LBR will set the flow label of the packet to a non-zero value when | 6LBR will set the flow label of the packet to a non-zero value when | |||
| sending to the Internet, for details check [RFC6437]. | sending to the Internet, for details check [RFC6437]. | |||
| The Figure 10 shows the table that summarizes what headers are needed | The Figure 10 shows the table that summarizes what headers are needed | |||
| for this use case. In the table, [1] shows the case when packet is | for this use case. | |||
| addressed to the root. [2] shows the case when the packet is | ||||
| addressed hop-by-hop. | ||||
| +---------+-------+------------+--------------+-------------+--------+ | +---------+-------+------------+--------------+-------------+--------+ | |||
| | Header | IPv6 | 6LR_1 | 6LR_i | 6LBR |Internet| | | Header | IPv6 | 6LR_1 | 6LR_i | 6LBR |Internet| | |||
| | | src | | [i=2,...,n] | | dst | | | | src | | [i=2,...,n] | | dst | | |||
| | | node | | | | | | | | node | | | | | | |||
| | | (RUL) | | | | | | | | (RUL) | | | | | | |||
| +---------+-------+------------+--------------+-------------+--------+ | +---------+-------+------------+--------------+-------------+--------+ | |||
| | Inserted| -- |IP6-IP6(RPI)| IP6-IP6(RPI) | -- | -- | | | Added | -- |IP6-IP6(RPI)| -- | -- | -- | | |||
| | headers | | | [2] | | | | ||||
| +---------+-------+------------+--------------+-------------+--------+ | ||||
| | Removed | -- | -- | IP6-IP6(RPI) | IP6-IP6(RPI)| -- | | ||||
| | headers | | | [2] | [1][2] | | | ||||
| +---------+-------+------------+--------------+-------------+--------+ | ||||
| | Re-added| -- | -- | -- | -- | -- | | ||||
| | headers | | | | | | | | headers | | | | | | | |||
| +---------+-------+------------+--------------+-------------+--------+ | +---------+-------+------------+--------------+-------------+--------+ | |||
| | Modified| -- | -- | IP6-IP6(RPI) | -- | -- | | | Modified| -- | -- | IP6-IP6(RPI) | -- | -- | | |||
| | headers | | | [1] | | | | | headers | | | | | | | |||
| +---------+-------+------------+--------------+-------------+--------+ | ||||
| | Removed | -- | -- | -- | IP6-IP6(RPI)| -- | | ||||
| | headers | | | | | | | ||||
| +---------+-------+------------+--------------+-------------+--------+ | +---------+-------+------------+--------------+-------------+--------+ | |||
| |Untouched| -- | -- | -- | -- | -- | | |Untouched| -- | -- | -- | -- | -- | | |||
| | headers | | | | | | | | headers | | | | | | | |||
| +---------+-------+------------+--------------+-------------+--------+ | +---------+-------+------------+--------------+-------------+--------+ | |||
| Figure 10: SM: Summary of the use of headers from RUL to Internet. | Figure 10: SM: Summary of the use of headers from RUL to Internet. | |||
| 7.2.4. SM: Example of Flow from Internet to RUL. | 7.2.4. SM: Example of Flow from Internet to RUL. | |||
| In this case the flow comprises: | In this case the flow comprises: | |||
| Internet --> root (6LBR) --> 6LR_i --> RUL (IPv6 dst node) | Internet --> root (6LBR) --> 6LR_i --> RUL (IPv6 dst node) | |||
| For example, a communication flow could be: Internet --> Node A | For example, a communication flow could be: Internet --> Node A | |||
| root(6LBR) --> Node B --> Node E --> Node G | root(6LBR) --> Node B (6LR_i)--> Node E (6LR_n) --> Node G (RUL) | |||
| The 6LBR will have to add an RPI within an IPv6-in-IPv6 header. The | The 6LBR will have to add an RPI within an IPv6-in-IPv6 header. The | |||
| IPv6-in-IPv6 is addressed to the 6LR parent of the 6lR_i. | IPv6-in-IPv6 is addressed to the 6LR parent of the RUL. | |||
| Further details about this are mentioned in | Further details about this are mentioned in | |||
| [I-D.ietf-roll-unaware-leaves], which specifies RPL routing for a 6LN | [I-D.ietf-roll-unaware-leaves], which specifies RPL routing for a 6LN | |||
| acting as a plain host and not being aware of RPL. | acting as a plain host and not being aware of RPL. | |||
| The 6LBR may set the flow label on the inner IPv6-in-IPv6 header to | The 6LBR may set the flow label on the inner IPv6-in-IPv6 header to | |||
| zero in order to aid in compression [RFC8138][RFC6437]. | zero in order to aid in compression [RFC8138][RFC6437]. | |||
| The Figure 11 shows the table that summarizes what headers are needed | The Figure 11 shows the table that summarizes what headers are needed | |||
| for this use case. | for this use case. | |||
| +-----------+----------+--------------+--------------+--------------+ | +---------+-------+------------+--------------+-------------+--------+ | |||
| | Header | Internet | 6LBR | 6LR_i |IPv6 dst node | | | Header |Inter- | 6LBR | 6LR_i | 6LR_n | RUL | | |||
| | | src | | | | | | | net | |[i=1,..,n-1] | | dst | | |||
| +-----------+----------+--------------+--------------+--------------+ | | | src | | | | | | |||
| | Inserted | -- | IP6-IP6(RPI) | IP6-IP6(RPI) | -- | | | | | | | | | | |||
| | headers | | | | | | +---------+-------+------------+--------------+-------------+--------+ | |||
| +-----------+----------+--------------+--------------+--------------+ | | Inserted| -- |IP6-IP6(RPI)| | -- | -- | | |||
| | Removed | -- | -- | IP6-IP6(RPI) | -- | | | headers | | | | | | | |||
| | headers | | | | | | +---------+-------+------------+--------------+-------------+--------+ | |||
| +-----------+----------+--------------+--------------+--------------+ | | Modified| -- | -- | IP6-IP6(RPI) | -- | -- | | |||
| | Re-added | -- | -- | -- | -- | | | headers | | | | | | | |||
| | headers | | | | | | +---------+-------+------------+--------------+-------------+--------+ | |||
| +-----------+----------+--------------+--------------+--------------+ | | Removed | -- | -- | | IP6-IP6(RPI)| -- | | |||
| | Modified | -- | -- | -- | -- | | | headers | | | | | | | |||
| | headers | | | | | | +---------+-------+------------+--------------+-------------+--------+ | |||
| +-----------+----------+--------------+--------------+--------------+ | |Untouched| -- | -- | -- | -- | -- | | |||
| | Untouched | -- | -- | -- | -- | | | headers | | | | | | | |||
| | headers | | | | | | +---------+-------+------------+--------------+-------------+--------+ | |||
| +-----------+----------+--------------+--------------+--------------+ | ||||
| Figure 11: SM: Summary of the use of headers from Internet to RUL. | Figure 11: SM: Summary of the use of headers from Internet to RUL. | |||
| 7.3. SM: Interaction between Leaf and Leaf | 7.3. SM: Interaction between Leaf and Leaf | |||
| In this section is described the communication flow in storing mode | In this section is described the communication flow in storing mode | |||
| (SM) between, | (SM) between, | |||
| RAL to RAL | RAL to RAL | |||
| skipping to change at page 28, line 17 ¶ | skipping to change at page 28, line 4 ¶ | |||
| In [RFC6550] RPL allows a simple one-hop optimization for both | In [RFC6550] RPL allows a simple one-hop optimization for both | |||
| storing and non-storing networks. A node may send a packet destined | storing and non-storing networks. A node may send a packet destined | |||
| to a one-hop neighbor directly to that node. See section 9 in | to a one-hop neighbor directly to that node. See section 9 in | |||
| [RFC6550]. | [RFC6550]. | |||
| When the nodes are not directly connected, then in storing mode, the | When the nodes are not directly connected, then in storing mode, the | |||
| flow comprises: | flow comprises: | |||
| RAL src (6LN) --> 6LR_ia --> common parent (6LR_x) --> 6LR_id --> RAL | RAL src (6LN) --> 6LR_ia --> common parent (6LR_x) --> 6LR_id --> RAL | |||
| dst (6LN) | dst (6LN) | |||
| For example, a communication flow could be: Node F (RAL src)--> Node | ||||
| For example, a communication flow could be: Node F --> Node D --> | D (6LR_ia)--> Node B (6LR_x) --> Node E (6LR_id) --> Node H (RAL dst) | |||
| Node B --> Node E --> Node H | ||||
| 6LR_ia (Node D) are the intermediate routers from source to the | 6LR_ia (Node D) are the intermediate routers from source to the | |||
| common parent (6LR_x) (Node B). In this case, 1 <= ia <= n, n is the | common parent (6LR_x) (Node B). In this case, 1 <= ia <= n, n is the | |||
| number of routers (6LR) that the packet goes through from RAL (Node | number of routers (6LR) that the packet goes through from RAL (Node | |||
| F) to the common parent 6LR_x (Node B). | F) to the common parent 6LR_x (Node B). | |||
| 6LR_id (Node E) are the intermediate routers from the common parent | 6LR_id (Node E) are the intermediate routers from the common parent | |||
| (6LR_x) (Node B) to destination RAL (Node H). In this case, 1 <= id | (6LR_x) (Node B) to destination RAL (Node H). In this case, 1 <= id | |||
| <= m, m is the number of routers (6LR) that the packet goes through | <= m, m is the number of routers (6LR) that the packet goes through | |||
| from the common parent (6LR_x) to destination RAL (Node H). | from the common parent (6LR_x) to destination RAL (Node H). | |||
| skipping to change at page 29, line 9 ¶ | skipping to change at page 28, line 30 ¶ | |||
| 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 IPv6-in-IPv6 headers are necessary. | remove the RPI, so no IPv6-in-IPv6 headers are necessary. | |||
| The Table 5 summarizes what headers are needed for this use case. | The Table 5 summarizes what headers are needed for this use case. | |||
| +---------------+--------+--------+---------------+--------+--------+ | +---------------+--------+--------+---------------+--------+--------+ | |||
| | Header | RAL | 6LR_ia | 6LR_x (common | 6LR_id | RAL | | | Header | RAL | 6LR_ia | 6LR_x (common | 6LR_id | RAL | | |||
| | | src | | parent) | | dst | | | | src | | parent) | | dst | | |||
| +---------------+--------+--------+---------------+--------+--------+ | +---------------+--------+--------+---------------+--------+--------+ | |||
| | Inserted | RPI | -- | -- | -- | -- | | | Added headers | RPI | -- | -- | -- | -- | | |||
| | Modified | -- | RPI | RPI | RPI | -- | | ||||
| | headers | | | | | | | | headers | | | | | | | |||
| | Removed | -- | -- | -- | -- | RPI | | | Removed | -- | -- | -- | -- | RPI | | |||
| | headers | | | | | | | | headers | | | | | | | |||
| | Re-added | -- | -- | -- | -- | -- | | ||||
| | headers | | | | | | | ||||
| | Modified | -- | RPI | RPI | RPI | -- | | ||||
| | headers | | | | | | | ||||
| | Untouched | -- | -- | -- | -- | -- | | | Untouched | -- | -- | -- | -- | -- | | |||
| | headers | | | | | | | | headers | | | | | | | |||
| +---------------+--------+--------+---------------+--------+--------+ | +---------------+--------+--------+---------------+--------+--------+ | |||
| Table 5: SM: Summary of the use of headers for RAL to RAL | Table 5: SM: Summary of the use of headers for RAL to RAL | |||
| 7.3.2. SM: Example of Flow from RAL to RUL | 7.3.2. SM: Example of Flow from RAL to RUL | |||
| In this case the flow comprises: | In this case the flow comprises: | |||
| RAL src (6LN) --> 6LR_ia --> common parent (6LR_x) --> 6LR_id --> RUL | RAL src (6LN) --> 6LR_ia --> common parent (6LR_x) --> 6LR_id --> RUL | |||
| (IPv6 dst node) | (IPv6 dst node) | |||
| For example, a communication flow could be: Node F --> Node D --> | For example, a communication flow could be: Node F (RAL)--> Node D | |||
| Node B --> Node E --> Node G | --> Node B --> Node E --> Node G (RUL) | |||
| 6LR_ia are the intermediate routers from source (RAL) to the common | 6LR_ia are the intermediate routers from source (RAL) to the common | |||
| parent (6LR_x) In this case, 1 <= ia <= n, n is the number of routers | parent (6LR_x) In this case, 1 <= ia <= n, n is the number of routers | |||
| (6LR) that the packet goes through from RAL to the common parent | (6LR) that the packet goes through from RAL to the common parent | |||
| (6LR_x). | (6LR_x). | |||
| 6LR_id (Node E) are the intermediate routers from the common parent | 6LR_id (Node E) are the intermediate routers from the common parent | |||
| (6LR_x) (Node B) to destination RUL (Node G). In this case, 1 <= id | (6LR_x) (Node B) to destination RUL (Node G). In this case, 1 <= id | |||
| <= m, m is the number of routers (6LR) that the packet goes through | <= m, m is the number of routers (6LR) that the packet goes through | |||
| from the common parent (6LR_x) to destination RUL. | from the common parent (6LR_x) to destination RUL. The packet from | |||
| the RAL goes to 6LBR because the route to the RUL is not injected | ||||
| This situation is identical to the previous situation Section 7.3.1 | into the RPL-SM. | |||
| The Table 6 summarizes what headers are needed for this use case. | The Table 6 summarizes what headers are needed for this use case. | |||
| +-----------+------+--------+---------------+--------+--------------+ | +-----------------+---------+--------+------+--------+--------------+ | |||
| | Header | RAL | 6LR_ia | 6LR_x(common | 6LR_id | RUL dst | | | Header | RAL src | 6LR_ia | 6LBR | 6LR_id | RUL dst | | |||
| | | src | | parent) | | | | +-----------------+---------+--------+------+--------+--------------+ | |||
| +-----------+------+--------+---------------+--------+--------------+ | | Added headers | RPI | -- | -- | -- | -- | | |||
| | Inserted | RPI | -- | -- | -- | -- | | | Modified | -- | RPI | RPI | RPI | -- | | |||
| | headers | | | | | | | | headers | | | | | | | |||
| | Removed | -- | -- | -- | -- | -- | | | Removed headers | -- | -- | -- | -- | -- | | |||
| | headers | | | | | | | | Untouched | -- | -- | -- | -- | RPI(Ignored) | | |||
| | Re-added | -- | -- | -- | -- | -- | | | headers | | | | | | | |||
| | headers | | | | | | | +-----------------+---------+--------+------+--------+--------------+ | |||
| | Modified | -- | RPI | RPI | RPI | -- | | ||||
| | headers | | | | | | | ||||
| | Untouched | -- | -- | -- | -- | RPI(Ignored) | | ||||
| | headers | | | | | | | ||||
| +-----------+------+--------+---------------+--------+--------------+ | ||||
| Table 6: SM: Summary of the use of headers for RAL to RUL | Table 6: SM: Summary of the use of headers for RAL to RUL | |||
| 7.3.3. SM: Example of Flow from RUL to RAL | 7.3.3. SM: Example of Flow from RUL to RAL | |||
| In this case the flow comprises: | In this case the flow comprises: | |||
| RUL (IPv6 src node) --> 6LR_ia --> common parent (6LR_x) --> 6LR_id | RUL (IPv6 src node) --> 6LR_ia --> 6LBR --> 6LR_id --> RAL dst (6LN) | |||
| --> RAL dst (6LN) | ||||
| For example, a communication flow could be: Node G --> Node E --> | For example, a communication flow could be: Node G (RUL)--> Node E | |||
| Node B --> Node D --> Node F | --> Node B --> Node A --> Node B --> Node D --> Node F (RAL) | |||
| 6LR_ia (Node E) are the intermediate routers from source (RUL) (Node | 6LR_ia (Node E) are the intermediate routers from source (RUL) (Node | |||
| G) to the common parent (6LR_x) (Node B). In this case, 1 <= ia <= | G) to the root (Node A). In this case, 1 <= ia <= n, n is the number | |||
| n, n is the number of routers (6LR) that the packet goes through from | of routers (6LR) that the packet goes through from source to the | |||
| source to the common parent. | root. | |||
| 6LR_id (Node D) are the intermediate routers from the common parent | 6LR_id are the intermediate routers from the root (Node A) to | |||
| (6LR_x) (Node B) to destination RAL (Node F). In this case, 1 <= id | destination RAL (Node F). In this case, 1 <= id <= m, m is the | |||
| <= m, m is the number of routers (6LR) that the packet goes through | number of routers (6LR) that the packet goes through from the root to | |||
| from the common parent (6LR_x) to the destination RAL. | the destination RAL. | |||
| The 6LR_ia (ia=1) (Node E) receives the packet from the RUL (Node G) | The 6LR_ia (ia=1) (Node E) receives the packet from the RUL (Node G) | |||
| and inserts the RPI encapsulated in a IPv6-in-IPv6 header. The IPv6- | and inserts the RPI (RPI1) encapsulated in a IPv6-in-IPv6 header to | |||
| in-IPv6 header is addressed to the destination RAL (Node F). | the root. The root removes the outer header including the RPI (RPI1) | |||
| and inserts a new RPI (RPI2) addressed to the destination RAL (Node | ||||
| F). | ||||
| The Figure 12 shows the table that summarizes what headers are needed | The Figure 12 shows the table that summarizes what headers are needed | |||
| for this use case. | for this use case. | |||
| +---------+-----+------------+-------------+-------------+------------+ | +-----------+------+---------+---------+---------+---------+---------+ | |||
| | Header |RUL | 6LR_ia | Common | 6LR_id | RAL | | | Header | RUL | 6LR_1 | 6LR_ia | 6LBR | 6LR_id | RAL | | |||
| | |src | | Parent | | dst | | | | src | | | | | dst | | |||
| | |node | | (6LRx) | | | | | | node | | | | | node | | |||
| +---------+-----+------------+-------------+-------------+------------+ | +-----------+------+---------+---------+---------+---------+---------+ | |||
| | Inserted| -- |IP6-IP6(RPI)| -- | -- | -- | | | Added | -- | IP6-IP6 | -- | IP6-IP6 | -- | -- | | |||
| | headers | | | | | | | | headers | | (RPI1) | | (RPI2) | | | | |||
| +---------+-----+------------+-------------+-------------+------------+ | | | | | | | | | | |||
| | Removed | -- | -- | -- | -- |IP6-IP6(RPI)| | +-----------+------+---------+---------+---------+---------+---------+ | |||
| | headers | | | | | | | | Modified | -- | | IP6-IP6 | -- | IP6-IP6 | -- | | |||
| +---------+-----+------------+-------------+-------------+------------+ | | headers | | | (RPI1) | | (RPI2) | | | |||
| | Re-added| -- | -- | -- | -- | -- | | | | | | | | | | | |||
| | headers | | | | | | | +-----------+------+---------+---------+---------+---------+---------+ | |||
| +---------+-----+------------+-------------+-------------+------------+ | | Removed | -- | | -- | IP6-IP6 | -- | IP6-IP6 | | |||
| | Modified| -- | -- |IP6-IP6(RPI) |IP6-IP6(RPI) | -- | | | headers | | | | (RPI1) | | (RPI2) | | |||
| | headers | | | | | | | | | | | | | | | | |||
| +---------+-----+------------+-------------+-------------+------------+ | +-----------+------+---------+---------+---------+---------+---------+ | |||
| |Untouched| -- | -- | -- | -- | -- | | | Untouched | -- | | -- | -- | -- | -- | | |||
| | headers | | | | | | | | headers | | | | | | | | |||
| +---------+-----+------------+-------------+-------------+------------+ | +-----------+------+---------+---------+---------+---------+---------+ | |||
| Figure 12: SM: Summary of the use of headers from RUL to RAL. | Figure 12: SM: Summary of the use of headers from RUL to RAL. | |||
| 7.3.4. SM: Example of Flow from RUL to RUL | 7.3.4. SM: Example of Flow from RUL to RUL | |||
| In this case the flow comprises: | In this case the flow comprises: | |||
| RUL (IPv6 src node)--> 6LR_1--> 6LR_ia --> 6LBR --> 6LR_id --> RUL | RUL (IPv6 src node)--> 6LR_1--> 6LR_ia --> 6LBR --> 6LR_id --> RUL | |||
| (IPv6 dst node) | (IPv6 dst node) | |||
| For example, a communication flow could be: Node G --> Node E --> | For example, a communication flow could be: Node G (RUL src)--> Node | |||
| Node B --> Node A (root) --> Node C --> Node J | E --> Node B --> Node A (root) --> Node C --> Node J (RUL dst) | |||
| Internal nodes 6LR_ia (e.g: Node E or Node B) is the intermediate | Internal nodes 6LR_ia (e.g: Node E or Node B) is the intermediate | |||
| router from the RUL source (Node G) to the root (6LBR) (Node A). In | router from the RUL source (Node G) to the root (6LBR) (Node A). In | |||
| this case, "1 < ia <= n", n is the number of routers (6LR) that the | this case, "1 < ia <= n", n is the number of routers (6LR) that the | |||
| packet goes through from the RUL to the root. | packet goes through from the RUL to the root. | |||
| 6LR_id (Node C) are the intermediate routers from the root (Node A) | 6LR_id (Node C) are the intermediate routers from the root (Node A) | |||
| to the destination RUL dst node (Node J). In this case, 1 <= id <= | to the destination RUL dst node (Node J). In this case, 1 <= id <= | |||
| m, m is the number of routers (6LR) that the packet goes through from | m, m is the number of routers (6LR) that the packet goes through from | |||
| the root to destination RUL. | the root to destination RUL. | |||
| The RPI is ignored at the RUL dst node. | The RPI is ignored at the RUL dst node. | |||
| The 6LR_1 (Node E) receives the packet from the RUL (Node G) and | The 6LR_1 (Node E) receives the packet from the RUL (Node G) and | |||
| inserts the RPI (RPI), encapsulated in an IPv6-in-IPv6 header | inserts the RPI (RPI), encapsulated in an IPv6-in-IPv6 header | |||
| directed to the root. The root removes the RPI and inserts a new RPI | directed to the root. The root removes the outer header including | |||
| addressed to the 6LR father of the RUL. | the RPI (RPI1) and inserts a new RPI (RPI2) addressed to the 6LR | |||
| father of the RUL. | ||||
| The Figure 13 shows the table that summarizes what headers are needed | The Figure 13 shows the table that summarizes what headers are needed | |||
| for this use case. | for this use case. | |||
| +---------+------+-------+-------+---------+-------+-------+ | +---------+----+-------------+--------+---------+--------+-------+---+ | |||
| | Header | RUL | 6LR_1 | 6LR_ia| 6LBR |6LR_id | RUL | | | Header |RUL | 6LR_1 | 6LR_ia | 6LBR | 6LR_id |6LR_n |RUL| | |||
| | | src | | | | | dst | | | |src | | | | | |dst| | |||
| | | node | | | | | node | | | | | | | | | | | | |||
| +---------+------+-------+-------+---------+-------+-------+ | +---------+----+-------------+--------+---------+--------+-------+---+ | |||
| | Inserted| -- |IP6-IP6|IP6-IP6| IP6-IP6 |IP6-IP6| -- | | | Added | -- |IP6-IP6(RPI1)| -- | IP6-IP6 | -- | -- | --| | |||
| | headers | | (RPI )| (RPI) | (RPI2) | (RPI2)| | | | Headers | | | | (RPI2) | | | | | |||
| | | | | | | | | | +---------+----+-------------+--------+---------+--------+-------+---+ | |||
| +---------+------+-------+-------+---------+-------+-------+ | |Modified | -- | -- |IP6-IP6 | -- |IP6-IP6 | -- | --| | |||
| | Removed | -- | -- |IP6-IP6| IP6-IP6 |IP6-IP6| | | |headers | | | (RPI1) | | (RPI2) | | | | |||
| | headers | | | (RPI) | (RPI1) | (RPI2)| | | +---------+----+-------------+--------+---------+--------+-------+---+ | |||
| | | | | | | | | | | Removed | -- | -- | -- | IP6-IP6 | -- |IP6-IP6| --| | |||
| | | | | | | | | | | headers | | | | (RPI1) | | (RPI2)| | | |||
| +---------+------+-------+-------+---------+-------+-------+ | +---------+----+-------------+--------+---------+--------+-------+---+ | |||
| | Re-added| -- | -- | -- | -- | -- | -- | | |Untouched| -- | -- | -- | -- | -- | -- | --| | |||
| | headers | | | | | | | | | headers | | | | | | | | | |||
| +---------+------+-------+-------+---------+-------+-------+ | +---------+----+-------------+--------+---------+--------+-------+---+ | |||
| | Modified| -- | -- | | | | -- | | ||||
| | headers | | | | | | | | ||||
| | | | | | | | | | ||||
| +---------+------+-------+-------+---------+-------+-------+ | ||||
| |Untouched| -- | -- | -- | -- | -- | -- | | ||||
| | headers | | | | | | | | ||||
| +---------+------+-------+-------+---------+-------+-------+ | ||||
| Figure 13: SM: Summary of the use of headers from RUL to RUL | Figure 13: SM: Summary of the use of headers from RUL to RUL | |||
| 8. Non Storing mode | 8. Non Storing mode | |||
| In Non Storing Mode (Non-SM) (fully source routed), the 6LBR (DODAG | In Non Storing Mode (Non-SM) (fully source routed), the 6LBR (DODAG | |||
| root) has complete knowledge about the connectivity of all DODAG | root) has complete knowledge about the connectivity of all DODAG | |||
| nodes, and all traffic flows through the root node. Thus, there is | nodes, and all traffic flows through the root node. Thus, there is | |||
| no need for all nodes to know about the existence of RPL-unaware | no need for all nodes to know about the existence of RPL-unaware | |||
| nodes. Only the 6LBR needs to act if compensation is necessary for | nodes. Only the 6LBR needs to act if compensation is necessary for | |||
| skipping to change at page 34, line 32 ¶ | skipping to change at page 33, line 34 ¶ | |||
| this case, "1 <= i <= n", n is the number of routers (6LR) that the | this case, "1 <= i <= n", n is the number of routers (6LR) that the | |||
| packet goes through from source (RAL) to destination (6LBR). | packet goes through from source (RAL) to destination (6LBR). | |||
| This situation is the same case as storing mode. | This situation is the same case as storing mode. | |||
| The Table 7 summarizes what headers are needed for this use case. | The Table 7 summarizes what headers are needed for this use case. | |||
| +-------------------+---------+-------+----------+ | +-------------------+---------+-------+----------+ | |||
| | Header | RAL src | 6LR_i | 6LBR dst | | | Header | RAL src | 6LR_i | 6LBR dst | | |||
| +-------------------+---------+-------+----------+ | +-------------------+---------+-------+----------+ | |||
| | Inserted headers | RPI | -- | -- | | | Added headers | RPI | -- | -- | | |||
| | Removed headers | -- | -- | RPI | | | Removed headers | -- | -- | RPI | | |||
| | Re-added headers | -- | -- | -- | | ||||
| | Modified headers | -- | RPI | -- | | | Modified headers | -- | RPI | -- | | |||
| | Untouched headers | -- | -- | -- | | | Untouched headers | -- | -- | -- | | |||
| +-------------------+---------+-------+----------+ | +-------------------+---------+-------+----------+ | |||
| Table 7: Non-SM: Summary of the use of headers from RAL to root | Table 7: Non-SM: Summary of the use of headers from RAL to root | |||
| 8.1.2. Non-SM: Example of Flow from root to RAL | 8.1.2. Non-SM: Example of Flow from root to RAL | |||
| In this case the flow comprises: | In this case the flow comprises: | |||
| skipping to change at page 35, line 18 ¶ | skipping to change at page 34, line 18 ¶ | |||
| The 6LBR inserts an RH3, and a RPI. No IPv6-in-IPv6 header is | The 6LBR inserts an RH3, and a RPI. No IPv6-in-IPv6 header is | |||
| necessary as the traffic originates with an RPL aware node, the 6LBR. | necessary as the traffic originates with an RPL aware node, the 6LBR. | |||
| The destination is known to be RPL-aware because the root knows the | The destination is known to be RPL-aware because the root knows the | |||
| whole topology in non-storing mode. | whole topology in non-storing mode. | |||
| The Table 8 summarizes what headers are needed for this use case. | The Table 8 summarizes what headers are needed for this use case. | |||
| +-------------------+----------+-----------+-----------+ | +-------------------+----------+-----------+-----------+ | |||
| | Header | 6LBR src | 6LR_i | RAL dst | | | Header | 6LBR src | 6LR_i | RAL dst | | |||
| +-------------------+----------+-----------+-----------+ | +-------------------+----------+-----------+-----------+ | |||
| | Inserted headers | RPI, RH3 | -- | -- | | | Added headers | RPI, RH3 | -- | -- | | |||
| | Removed headers | -- | -- | RH3, RPI | | ||||
| | Re-added headers | -- | -- | -- | | ||||
| | Modified headers | -- | RPI, RH3 | -- | | | Modified headers | -- | RPI, RH3 | -- | | |||
| | Removed headers | -- | -- | RH3, RPI | | ||||
| | Untouched headers | -- | -- | -- | | | Untouched headers | -- | -- | -- | | |||
| +-------------------+----------+-----------+-----------+ | +-------------------+----------+-----------+-----------+ | |||
| Table 8: Non-SM: Summary of the use of headers from root to RAL | Table 8: Non-SM: Summary of the use of headers from root to RAL | |||
| 8.1.3. Non-SM: Example of Flow from root to RUL | 8.1.3. Non-SM: Example of Flow from root to RUL | |||
| In this case the flow comprises: | In this case the flow comprises: | |||
| root (6LBR) --> 6LR_i --> RUL (IPv6 dst node) | root (6LBR) --> 6LR_i --> RUL (IPv6 dst node) | |||
| skipping to change at page 36, line 6 ¶ | skipping to change at page 35, line 6 ¶ | |||
| In 6LBR the RH3 is added, it is modified at each intermediate 6LR | In 6LBR the RH3 is added, it is modified at each intermediate 6LR | |||
| (6LR_1 and so on) and it is fully consumed in the last 6LR (6LR_n), | (6LR_1 and so on) and it is fully consumed in the last 6LR (6LR_n), | |||
| but left there. As the RPI is added, then the IPv6 node which does | but left there. As the RPI is added, then the IPv6 node which does | |||
| not understand the RPI, will ignore it (following RFC8200), thus | not understand the RPI, will ignore it (following RFC8200), thus | |||
| encapsulation is not necessary. | encapsulation is not necessary. | |||
| The Figure 15 depicts the table that summarizes what headers are | The Figure 15 depicts the table that summarizes what headers are | |||
| needed for this use case. | needed for this use case. | |||
| +-----------+----------+--------------+----------------+----------+ | +-----------+----------+--------------+----------------+----------+ | |||
| | Header | 6LBR | 6LR_i | 6LR_n | IPv6 | | | Header | 6LBR | 6LR_i | 6LR_n | RUL | | |||
| | | | i=(1,..,n-1) | |dst node | | | | src | i=(1,..,n-1) | | dst | | |||
| | | | | | (RUL) | | | | | | | | | |||
| +-----------+----------+--------------+----------------+----------+ | ||||
| | Inserted | RPI, RH3 | -- | -- | -- | | ||||
| | headers | | | | | | ||||
| +-----------+----------+--------------+----------------+----------+ | ||||
| | Removed | -- | -- | | -- | | ||||
| | headers | | | | | | ||||
| +-----------+----------+--------------+----------------+----------+ | +-----------+----------+--------------+----------------+----------+ | |||
| | Re-added | -- | -- | -- | -- | | | Added | RPI, RH3 | -- | -- | -- | | |||
| | headers | | | | | | | headers | | | | | | |||
| +-----------+----------+--------------+----------------+----------+ | +-----------+----------+--------------+----------------+----------+ | |||
| | Modified | -- | RPI, RH3 | RPI, | -- | | | Modified | -- | RPI, RH3 | RPI, | -- | | |||
| | headers | | | RH3(consumed) | | | | headers | | | RH3(consumed) | | | |||
| +-----------+----------+--------------+----------------+----------+ | +-----------+----------+--------------+----------------+----------+ | |||
| | Removed | -- | -- | | -- | | ||||
| | headers | | | | | | ||||
| +-----------+----------+--------------+----------------+----------+ | ||||
| | Untouched | -- | -- | -- | RPI, RH3 | | | Untouched | -- | -- | -- | RPI, RH3 | | |||
| | headers | | | | (both | | | headers | | | | (both | | |||
| | | | | | ignored) | | | | | | | ignored) | | |||
| +-----------+----------+--------------+----------------+----------+ | +-----------+----------+--------------+----------------+----------+ | |||
| Figure 15: Non-SM: Summary of the use of headers from root to RUL | Figure 15: Non-SM: Summary of the use of headers from root to RUL | |||
| 8.1.4. Non-SM: Example of Flow from RUL to root | 8.1.4. Non-SM: Example of Flow from RUL to root | |||
| In this case the flow comprises: | In this case the flow comprises: | |||
| skipping to change at page 37, line 10 ¶ | skipping to change at page 36, line 10 ¶ | |||
| root. | root. | |||
| The Figure 16 shows the table that summarizes what headers are needed | The Figure 16 shows the table that summarizes what headers are needed | |||
| for this use case. | for this use case. | |||
| +---------+----+-----------------+-----------------+-----------------+ | +---------+----+-----------------+-----------------+-----------------+ | |||
| | |RUL | | | | | | |RUL | | | | | |||
| | Header |src | 6LR_1 | 6LR_i | 6LBR dst | | | Header |src | 6LR_1 | 6LR_i | 6LBR dst | | |||
| | |node| | | | | | |node| | | | | |||
| +---------+----+-----------------+-----------------+-----------------+ | +---------+----+-----------------+-----------------+-----------------+ | |||
| | Inserted| -- |IPv6-in-IPv6(RPI)| -- | -- | | | Added | -- |IPv6-in-IPv6(RPI)| -- | -- | | |||
| | headers | | | | | | ||||
| +---------+----+-----------------+-----------------+-----------------+ | ||||
| | Removed | -- | -- | -- |IPv6-in-IPv6(RPI)| | ||||
| | headers | | | | | | | headers | | | | | | |||
| +---------+----+-----------------+-----------------+-----------------+ | +---------+----+-----------------+-----------------+-----------------+ | |||
| | Re-added| -- | -- | -- | -- | | | Modified| -- | -- |IPv6-in-IPv6(RPI)| -- | | |||
| | headers | | | | | | | headers | | | | | | |||
| +---------+----+-----------------+-----------------+-----------------+ | +---------+----+-----------------+-----------------+-----------------+ | |||
| | Modified| -- | -- |IPv6-in-IPv6(RPI)| -- | | | Removed | -- | -- | -- |IPv6-in-IPv6(RPI)| | |||
| | headers | | | | | | | headers | | | | | | |||
| +---------+----+-----------------+-----------------+-----------------+ | +---------+----+-----------------+-----------------+-----------------+ | |||
| |Untouched| -- | -- | -- | -- | | |Untouched| -- | -- | -- | -- | | |||
| | headers | | | | | | | headers | | | | | | |||
| +---------+----+-----------------+-----------------+-----------------+ | +---------+----+-----------------+-----------------+-----------------+ | |||
| Figure 16: Non-SM: Summary of the use of headers from RUL to root | Figure 16: Non-SM: Summary of the use of headers from RUL to root | |||
| 8.2. Non-Storing Mode: Interaction between Leaf and Internet | 8.2. Non-Storing Mode: Interaction between Leaf and Internet | |||
| skipping to change at page 37, line 47 ¶ | skipping to change at page 36, line 44 ¶ | |||
| RUL to Internet | RUL to Internet | |||
| Internet to RUL | Internet to RUL | |||
| 8.2.1. Non-SM: Example of Flow from RAL to Internet | 8.2.1. Non-SM: Example of Flow from RAL to Internet | |||
| In this case the flow comprises: | In this case the flow comprises: | |||
| RAL (6LN) src --> 6LR_i --> root (6LBR) --> Internet dst | RAL (6LN) src --> 6LR_i --> root (6LBR) --> Internet dst | |||
| For example, a communication flow could be: Node F --> Node D --> | For example, a communication flow could be: Node F (RAL) --> Node D | |||
| Node B --> Node A --> Internet | --> Node B --> Node A --> Internet | |||
| 6LR_i are the intermediate routers from source to destination. In | 6LR_i are the intermediate routers from source to destination. In | |||
| this case, "1 <= i <= n", n is the number of routers (6LR) that the | this case, "1 <= i <= n", n is the number of routers (6LR) that the | |||
| packet goes through from source (RAL) to 6LBR. | packet goes through from source (RAL) to 6LBR. | |||
| This case is identical to storing-mode case. | This case is identical to storing-mode case. | |||
| The IPv6 flow label should be set to zero to aid in compression | The IPv6 flow label should be set to zero to aid in compression | |||
| [RFC8138], and the 6LBR will set it to a non-zero value when sending | [RFC8138], and the 6LBR will set it to a non-zero value when sending | |||
| towards the Internet [RFC6437]. | towards the Internet [RFC6437]. | |||
| The Table 9 summarizes what headers are needed for this use case. | The Table 9 summarizes what headers are needed for this use case. | |||
| +-------------------+---------+-------+------+----------------+ | +-------------------+---------+-------+------+----------------+ | |||
| | Header | RAL src | 6LR_i | 6LBR | Internet dst | | | Header | RAL src | 6LR_i | 6LBR | Internet dst | | |||
| +-------------------+---------+-------+------+----------------+ | +-------------------+---------+-------+------+----------------+ | |||
| | Inserted headers | RPI | -- | -- | -- | | | Added headers | RPI | -- | -- | -- | | |||
| | Removed headers | -- | -- | -- | -- | | ||||
| | Re-added headers | -- | -- | -- | -- | | ||||
| | Modified headers | -- | RPI | -- | -- | | | Modified headers | -- | RPI | -- | -- | | |||
| | Removed headers | -- | -- | -- | -- | | ||||
| | Untouched headers | -- | -- | RPI | RPI (Ignored) | | | Untouched headers | -- | -- | RPI | RPI (Ignored) | | |||
| +-------------------+---------+-------+------+----------------+ | +-------------------+---------+-------+------+----------------+ | |||
| Table 9: Non-SM: Summary of the use of headers from RAL to Internet | Table 9: Non-SM: Summary of the use of headers from RAL to Internet | |||
| 8.2.2. Non-SM: Example of Flow from Internet to RAL | 8.2.2. Non-SM: Example of Flow from Internet to RAL | |||
| In this case the flow comprises: | In this case the flow comprises: | |||
| Internet --> root (6LBR) --> 6LR_i --> RAL dst (6LN) | Internet --> root (6LBR) --> 6LR_i --> RAL dst (6LN) | |||
| For example, a communication flow could be: Internet --> Node A | For example, a communication flow could be: Internet --> Node A | |||
| (root) --> Node B --> Node D --> Node F | (root) --> Node B --> Node D --> Node F (RAL) | |||
| 6LR_i are the intermediate routers from source to destination. In | 6LR_i are the intermediate routers from source to destination. In | |||
| this case, "1 <= i <= n", n is the number of routers (6LR) that the | this case, "1 <= i <= n", n is the number of routers (6LR) that the | |||
| packet goes through from 6LBR to destination (RAL). | packet goes through from 6LBR to destination (RAL). | |||
| The 6LBR must add an RH3 header. As the 6LBR will know the path and | The 6LBR must add an RH3 header. As the 6LBR will know the path and | |||
| address of the target node, it can address the IPv6-in-IPv6 header to | address of the target node, it can address the IPv6-in-IPv6 header to | |||
| that node. The 6LBR will zero the flow label upon entry in order to | that node. The 6LBR will zero the flow label upon entry in order to | |||
| aid compression [RFC8138]. | aid compression [RFC8138]. | |||
| The Table 10 summarizes what headers are needed for this use case. | The Table 10 summarizes what headers are needed for this use case. | |||
| +-----------+----------+--------------+--------------+--------------+ | +-----------+----------+--------------+--------------+--------------+ | |||
| | Header | Internet | 6LBR | 6LR_i | RAL dst | | | Header | Internet | 6LBR | 6LR_i | RAL dst | | |||
| | | src | | | | | | | src | | | | | |||
| +-----------+----------+--------------+--------------+--------------+ | +-----------+----------+--------------+--------------+--------------+ | |||
| | Inserted | -- | IPv6-in-IPv6 | -- | -- | | | Added | -- | IPv6-in-IPv6 | -- | -- | | |||
| | headers | | (RH3,RPI) | | | | | headers | | (RH3,RPI) | | | | |||
| | Removed | -- | -- | -- | IPv6-in-IPv6 | | ||||
| | headers | | | | (RH3,RPI) | | ||||
| | Re-added | -- | -- | -- | -- | | ||||
| | headers | | | | | | ||||
| | Modified | -- | -- | IPv6-in-IPv6 | -- | | | Modified | -- | -- | IPv6-in-IPv6 | -- | | |||
| | headers | | | (RH3,RPI) | | | | headers | | | (RH3,RPI) | | | |||
| | Removed | -- | -- | -- | IPv6-in-IPv6 | | ||||
| | headers | | | | (RH3,RPI) | | ||||
| | Untouched | -- | -- | -- | -- | | | Untouched | -- | -- | -- | -- | | |||
| | headers | | | | | | | headers | | | | | | |||
| +-----------+----------+--------------+--------------+--------------+ | +-----------+----------+--------------+--------------+--------------+ | |||
| Table 10: Non-SM: Summary of the use of headers from Internet to RAL | Table 10: Non-SM: Summary of the use of headers from Internet to RAL | |||
| 8.2.3. Non-SM: Example of Flow from RUL to Internet | 8.2.3. Non-SM: Example of Flow from RUL to Internet | |||
| In this case the flow comprises: | In this case the flow comprises: | |||
| skipping to change at page 40, line 10 ¶ | skipping to change at page 39, line 10 ¶ | |||
| identical to the storing-mode case (see Section 7.2.3). | identical to the storing-mode case (see Section 7.2.3). | |||
| The Figure 17 shows the table that summarizes what headers are needed | The Figure 17 shows the table that summarizes what headers are needed | |||
| for this use case. | for this use case. | |||
| +---------+----+-------------+--------------+--------------+--------+ | +---------+----+-------------+--------------+--------------+--------+ | |||
| | Header |RUL | 6LR_1 | 6LR_i | 6LBR |Internet| | | Header |RUL | 6LR_1 | 6LR_i | 6LBR |Internet| | |||
| | |src | | [i=2,..,n] | | dst | | | |src | | [i=2,..,n] | | dst | | |||
| | |node| | | | | | | |node| | | | | | |||
| +---------+----+-------------+--------------+--------------+--------+ | +---------+----+-------------+--------------+--------------+--------+ | |||
| | Inserted| -- |IP6-IP6(RPI) | -- | -- | -- | | | Added | -- |IP6-IP6(RPI) | -- | -- | -- | | |||
| | headers | | | | | | | ||||
| +---------+----+-------------+--------------+--------------+--------+ | ||||
| | Removed | -- | -- | -- | IP6-IP6(RPI) | -- | | ||||
| | headers | | | | | | | | headers | | | | | | | |||
| +---------+----+-------------+--------------+--------------+--------+ | +---------+----+-------------+--------------+--------------+--------+ | |||
| | Re-added| -- | -- | -- | -- | -- | | | Modified| -- | -- | IP6-IP6(RPI) | -- | -- | | |||
| | headers | | | | | | | | headers | | | | | | | |||
| +---------+----+-------------+--------------+--------------+--------+ | +---------+----+-------------+--------------+--------------+--------+ | |||
| | Modified| -- | -- | IP6-IP6(RPI) | -- | -- | | | Removed | -- | -- | -- | IP6-IP6(RPI) | -- | | |||
| | headers | | | | | | | | headers | | | | | | | |||
| +---------+----+-------------+--------------+--------------+--------+ | +---------+----+-------------+--------------+--------------+--------+ | |||
| |Untouched| -- | -- | -- | -- | -- | | |Untouched| -- | -- | -- | -- | -- | | |||
| | headers | | | | | | | | headers | | | | | | | |||
| +---------+----+-------------+--------------+--------------+--------+ | +---------+----+-------------+--------------+--------------+--------+ | |||
| Figure 17: Non-SM: Summary of the use of headers from RUL to Internet | Figure 17: Non-SM: Summary of the use of headers from RUL to Internet | |||
| 8.2.4. Non-SM: Example of Flow from Internet to RUL | 8.2.4. Non-SM: Example of Flow from Internet to RUL | |||
| skipping to change at page 41, line 5 ¶ | skipping to change at page 40, line 5 ¶ | |||
| The 6LBR must add an RH3 header inside an IPv6-in-IPv6 header. The | The 6LBR must add an RH3 header inside an IPv6-in-IPv6 header. The | |||
| 6LBR will know the path, and will recognize that the final node is | 6LBR 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 | not an RPL capable node as it will have received the connectivity DAO | |||
| from the nearest 6LR. The 6LBR can therefore make the IPv6-in-IPv6 | from the nearest 6LR. The 6LBR can therefore make the IPv6-in-IPv6 | |||
| header destination be the last 6LR. The 6LBR will set to zero the | header destination be the last 6LR. The 6LBR will set to zero the | |||
| flow label upon entry in order to aid compression [RFC8138]. | flow label upon entry in order to aid compression [RFC8138]. | |||
| The Figure 18 shows the table that summarizes what headers are needed | The Figure 18 shows the table that summarizes what headers are needed | |||
| for this use case. | for this use case. | |||
| +---------+--------+-------------+--------------+--------------+-----+ | +----------+--------+------------------+-----------+-----------+-----+ | |||
| | Header |Internet| 6LBR | 6LR_1 | 6lR_i |RUL | | | Header |Internet| 6LBR | 6LR_i | 6LR_n | RUL | | |||
| | | src | | | (i=2,...,n) |dst | | | | src | | | | dst | | |||
| | | | | | |node | | +----------+--------+------------------+-----------+-----------+-----+ | |||
| +---------+--------+-------------+--------------+--------------+-----+ | | Added | -- | IP6-IP6(RH3,RPI) | -- | -- | -- | | |||
| | Inserted| -- | IPv6-in-IPv6| -- | -- | -- | | | headers | | | | | | | |||
| | headers | | (RH3,RPI) | | | | | +----------+--------+------------------+-----------+-----------+-----+ | |||
| +---------+--------+-------------+--------------+--------------+-----+ | | Modified | -- | -- | IP6-IP6 | -- | -- | | |||
| | Removed | -- | -- | -- | IPv6-in-IPv6 | -- | | | headers | | | (RH3,RPI) | | | | |||
| | headers | | | | (RH3,RPI)[1] | | | +----------+--------+------------------+-----------+-----------+-----+ | |||
| +---------+--------+-------------+--------------+--------------+-----+ | | Removed | -- | -- | -- | IP6-IP6 | -- | | |||
| | Re-added| -- | -- | -- | -- | -- | | | headers | | | | (RH3,RPI) | | | |||
| | headers | | | | | | | +----------+--------+------------------+-----------+-----------+-----+ | |||
| +---------+--------+-------------+--------------+--------------+-----+ | |Untouched | -- | -- | -- | -- | -- | | |||
| | Modified| -- | -- | IPv6-in-IPv6 | IPv6-in-IPv6 | -- | | | headers | | | | | | | |||
| | headers | | | (RH3,RPI) | (RH3,RPI) | | | +----------+--------+------------------+-----------+-----------+-----+ | |||
| +---------+--------+-------------+--------------+--------------+-----+ | ||||
| |Untouched| -- | -- | -- | -- | -- | | ||||
| | headers | | | | | | | ||||
| +---------+--------+-------------+--------------+--------------+-----+ | ||||
| Figure 18: Non-SM: Summary of the use of headers from Internet to RUL | Figure 18: Non-SM: Summary of the use of headers from Internet to RUL | |||
| [1] The last 6LR before the IPv6 node. | [1] The last 6LR before the IPv6 node. | |||
| 8.3. Non-SM: Interaction between Leafs | 8.3. Non-SM: Interaction between Leafs | |||
| In this section is described the communication flow in Non Storing | In this section is described the communication flow in Non Storing | |||
| Mode (Non-SM) between, | Mode (Non-SM) between, | |||
| RAL to RAL | RAL to RAL | |||
| skipping to change at page 43, line 5 ¶ | skipping to change at page 41, line 32 ¶ | |||
| which should get ignored. The root inserts a RPI (RPI2) alongside | which should get ignored. The root inserts a RPI (RPI2) alongside | |||
| the RH3. | the RH3. | |||
| Networks that use the RPL P2P extension [RFC6997] are essentially | Networks that use the RPL P2P extension [RFC6997] are essentially | |||
| non-storing DODAGs and fall into this scenario or scenario | non-storing DODAGs and fall into this scenario or scenario | |||
| Section 8.1.2, with the originating node acting as 6LBR. | Section 8.1.2, with the originating node acting as 6LBR. | |||
| The Figure 19 shows the table that summarizes what headers are needed | The Figure 19 shows the table that summarizes what headers are needed | |||
| for this use case. | for this use case. | |||
| +---------+------------+----------+------------+----------+------------+ | +---------+-------+----------+------------+----------+------------+ | |||
| | Header | RAL | 6LR_ia | 6LBR | 6LR_id | RAL | | | Header | RAL | 6LR_ia | 6LBR | 6LR_id | RAL | | |||
| | | src | | | | dst | | | | src | | | | dst | | |||
| +---------+------------+----------+------------+----------+------------+ | +---------+-------+----------+------------+----------+------------+ | |||
| | Inserted|IPv6-in-IPv6| |IPv6-in-IPv6| -- | -- | | | Added |IP6-IP6| | IP6-IP6 | -- | -- | | |||
| | headers | (RPI1) | |(RH3-> RAL, | | | | | headers |(RPI1) | |(RH3-> RAL, | | | | |||
| | | | | RPI2) | | | | | | | | RPI2) | | | | |||
| +---------+------------+----------+------------+----------+------------+ | +---------+-------+----------+------------+----------+------------+ | |||
| | Removed | -- | -- |IPv6-in-IPv6| -- |IPv6-in-IPv6| | | Modified| -- | IP6-IP6 | -- | IP6-IP6 | -- | | |||
| | headers | | | (RPI1) | | (RH3, | | | headers | | (RPI1) | |(RH3,RPI) | | | |||
| | | | | | | RPI2) | | +---------+-------+----------+------------+----------+------------+ | |||
| +---------+------------+----------+------------+----------+------------+ | | Removed | -- | -- | IP6-IP6 | -- | IP6-IP6 | | |||
| | Re-added| -- | -- | -- | -- | -- | | | headers | | | (RPI1) | | (RH3, | | |||
| | headers | | | | | | | | | | | | | RPI2) | | |||
| +---------+------------+----------+------------+----------+------------+ | +---------+-------+----------+------------+----------+------------+ | |||
| | Modified| -- |IP6-in-IP6| -- |IP6-in-IP6| -- | | |Untouched| -- | -- | -- | -- | -- | | |||
| | headers | | (RPI1) | | (RPI2) | | | | headers | | | | | | | |||
| +---------+------------+----------+------------+----------+------------+ | +---------+-------+----------+------------+----------+------------+ | |||
| |Untouched| -- | -- | -- | -- | -- | | ||||
| | headers | | | | | | | ||||
| +---------+------------+----------+------------+----------+------------+ | ||||
| Figure 19: Non-SM: Summary of the use of headers for RAL to RAL. | Figure 19: Non-SM: Summary of the use of headers for RAL to RAL. | |||
| IP6-in-IP6 refers to IPv6-in-IPv6. | ||||
| 8.3.2. Non-SM: Example of Flow from RAL to RUL | 8.3.2. Non-SM: Example of Flow from RAL to RUL | |||
| In this case the flow comprises: | In this case the flow comprises: | |||
| RAL --> 6LR_ia --> root (6LBR) --> 6LR_id --> RUL (IPv6 dst node) | RAL --> 6LR_ia --> root (6LBR) --> 6LR_id --> RUL (IPv6 dst node) | |||
| For example, a communication flow could be: Node F --> Node D --> | For example, a communication flow could be: Node F --> Node D --> | |||
| Node B --> Node A (root) --> Node B --> Node E --> Node G | Node B --> Node A (root) --> Node B --> Node E --> Node G | |||
| skipping to change at page 44, line 13 ¶ | skipping to change at page 42, line 35 ¶ | |||
| (6LR_id = m). | (6LR_id = m). | |||
| The Figure 20 shows the table that summarizes what headers are needed | The Figure 20 shows the table that summarizes what headers are needed | |||
| for this use case. | for this use case. | |||
| +-----------+---------+---------+---------+---------+---------+------+ | +-----------+---------+---------+---------+---------+---------+------+ | |||
| | Header | RAL | 6LR_ia | 6LBR | 6LR_id | 6LR_m | RUL | | | Header | RAL | 6LR_ia | 6LBR | 6LR_id | 6LR_m | RUL | | |||
| | | src | | | | | dst | | | | src | | | | | dst | | |||
| | | node | | | | | node | | | | node | | | | | node | | |||
| +-----------+---------+---------+---------+---------+---------+------+ | +-----------+---------+---------+---------+---------+---------+------+ | |||
| | Inserted | IP6-IP6 | | IP6-IP6 | -- | -- | -- | | | Added | IP6-IP6 | | IP6-IP6 | -- | -- | -- | | |||
| | headers | (RPI1) | | (RH3, | | | | | | headers | (RPI1) | | (RH3, | | | | | |||
| | | | | RPI2) | | | | | | | | | RPI2) | | | | | |||
| +-----------+---------+---------+---------+---------+---------+------+ | +-----------+---------+---------+---------+---------+---------+------+ | |||
| | Removed | -- | -- | IP6-IP6 | -- | IP6-IP6 | -- | | ||||
| | headers | | | (RPI1) | | (RH3, | | | ||||
| | | | | | | RPI2) | | | ||||
| +-----------+---------+---------+---------+---------+---------+------+ | ||||
| | Re-added | -- | -- | -- | -- | -- | -- | | ||||
| | headers | | | | | | | | ||||
| +-----------+---------+---------+---------+---------+---------+------+ | ||||
| | Modified | -- | IP6-IP6 | -- | IP6-IP6 | | -- | | | Modified | -- | IP6-IP6 | -- | IP6-IP6 | | -- | | |||
| | headers | | (RPI1) | | (RH3, | | | | | headers | | (RPI1) | | (RH3, | | | | |||
| | | | | | RPI2) | | | | | | | | | RPI2) | | | | |||
| +-----------+---------+---------+---------+---------+---------+------+ | +-----------+---------+---------+---------+---------+---------+------+ | |||
| | Removed | -- | -- | IP6-IP6 | -- | IP6-IP6 | -- | | ||||
| | headers | | | (RPI1) | | (RH3, | | | ||||
| | | | | | | RPI2) | | | ||||
| +-----------+---------+---------+---------+---------+---------+------+ | ||||
| | Untouched | -- | -- | -- | -- | -- | -- | | | Untouched | -- | -- | -- | -- | -- | -- | | |||
| | headers | | | | | | | | | headers | | | | | | | | |||
| +-----------+---------+---------+---------+---------+---------+------+ | +-----------+---------+---------+---------+---------+---------+------+ | |||
| Figure 20: Non-SM: Summary of the use of headers from RAL to RUL. | Figure 20: Non-SM: Summary of the use of headers from RAL to RUL. | |||
| 8.3.3. Non-SM: Example of Flow from RUL to RAL | 8.3.3. Non-SM: Example of Flow from RUL to RAL | |||
| In this case the flow comprises: | In this case the flow comprises: | |||
| skipping to change at page 45, line 16 ¶ | skipping to change at page 43, line 36 ¶ | |||
| (RPI2). | (RPI2). | |||
| The Figure 21 shows the table that summarizes what headers are needed | The Figure 21 shows the table that summarizes what headers are needed | |||
| for this use case. | for this use case. | |||
| +-----------+------+---------+---------+---------+---------+---------+ | +-----------+------+---------+---------+---------+---------+---------+ | |||
| | Header | RUL | 6LR_1 | 6LR_ia | 6LBR | 6LR_id | RAL | | | Header | RUL | 6LR_1 | 6LR_ia | 6LBR | 6LR_id | RAL | | |||
| | | src | | | | | dst | | | | src | | | | | dst | | |||
| | | node | | | | | node | | | | node | | | | | node | | |||
| +-----------+------+---------+---------+---------+---------+---------+ | +-----------+------+---------+---------+---------+---------+---------+ | |||
| | Inserted | -- | IP6-IP6 | -- | IP6-IP6 | -- | -- | | | Added | -- | IP6-IP6 | -- | IP6-IP6 | -- | -- | | |||
| | headers | | (RPI1) | | (RH3, | | | | | headers | | (RPI1) | | (RH3, | | | | |||
| | | | | | RPI2) | | | | | | | | | RPI2) | | | | |||
| +-----------+------+---------+---------+---------+---------+---------+ | +-----------+------+---------+---------+---------+---------+---------+ | |||
| | Removed | -- | | -- | IP6-IP6 | -- | IP6-IP6 | | ||||
| | headers | | | | (RPI1) | | (RH3, | | ||||
| | | | | | | | RPI2) | | ||||
| +-----------+------+---------+---------+---------+---------+---------+ | ||||
| | Re-added | -- | | -- | -- | -- | -- | | ||||
| | headers | | | | | | | | ||||
| +-----------+------+---------+---------+---------+---------+---------+ | ||||
| | Modified | -- | | IP6-IP6 | -- | IP6-IP6 | -- | | | Modified | -- | | IP6-IP6 | -- | IP6-IP6 | -- | | |||
| | headers | | | (RPI1) | | (RH3, | | | | headers | | | (RPI1) | | (RH3, | | | |||
| | | | | | | RPI2) | | | | | | | | | RPI2) | | | |||
| +-----------+------+---------+---------+---------+---------+---------+ | +-----------+------+---------+---------+---------+---------+---------+ | |||
| | Removed | -- | | -- | IP6-IP6 | -- | IP6-IP6 | | ||||
| | headers | | | | (RPI1) | | (RH3, | | ||||
| | | | | | | | RPI2) | | ||||
| +-----------+------+---------+---------+---------+---------+---------+ | ||||
| | Untouched | -- | | -- | -- | -- | -- | | | Untouched | -- | | -- | -- | -- | -- | | |||
| | headers | | | | | | | | | headers | | | | | | | | |||
| +-----------+------+---------+---------+---------+---------+---------+ | +-----------+------+---------+---------+---------+---------+---------+ | |||
| Figure 21: Non-SM: Summary of the use of headers from RUL to RAL. | Figure 21: Non-SM: Summary of the use of headers from RUL to RAL. | |||
| 8.3.4. Non-SM: Example of Flow from RUL to RUL | 8.3.4. Non-SM: Example of Flow from RUL to RUL | |||
| In this case the flow comprises: | In this case the flow comprises: | |||
| skipping to change at page 46, line 4 ¶ | skipping to change at page 44, line 17 ¶ | |||
| In this case the flow comprises: | In this case the flow comprises: | |||
| RUL (IPv6 src node) --> 6LR_1 --> 6LR_ia --> root (6LBR) --> 6LR_id | RUL (IPv6 src node) --> 6LR_1 --> 6LR_ia --> root (6LBR) --> 6LR_id | |||
| --> RUL (IPv6 dst node) | --> RUL (IPv6 dst node) | |||
| For example, a communication flow could be: Node G --> Node E --> | For example, a communication flow could be: Node G --> Node E --> | |||
| Node B --> Node A (root) --> Node C --> Node J | Node B --> Node A (root) --> Node C --> Node J | |||
| 6LR_ia are the intermediate routers from source to the root. In this | 6LR_ia are the intermediate routers from source to the root. In this | |||
| case, 1 <= ia <= n, n is the number of intermediate routers (6LR) | case, 1 <= ia <= n, n is the number of intermediate routers (6LR) | |||
| 6LR_id are the intermediate routers from the root to the destination. | 6LR_id are the intermediate routers from the root to the destination. | |||
| In this case, "1 <= ia <= m", m is the number of the intermediate | In this case, "1 <= ia <= m", m is the number of the intermediate | |||
| routers (6LR). | routers (6LR). | |||
| This scenario is the combination of the previous two cases. | This scenario is the combination of the previous two cases. | |||
| The Figure 22 shows the table that summarizes what headers are needed | The Figure 22 shows the table that summarizes what headers are needed | |||
| for this use case. | for this use case. | |||
| +---------+------+-------+-------+---------+-------+---------+------+ | +---------+------+-------+-------+---------+-------+---------+------+ | |||
| | Header | RUL | 6LR_1 | 6LR_ia| 6LBR |6LR_id | 6LR_m | RUL | | | Header | RUL | 6LR_1 | 6LR_ia| 6LBR |6LR_id | 6LR_m | RUL | | |||
| | | src | | | | | | dst | | | | src | | | | | | dst | | |||
| | | node | | | | | | node | | | | node | | | | | | node | | |||
| +---------+------+-------+-------+---------+-------+---------+------+ | +---------+------+-------+-------+---------+-------+---------+------+ | |||
| | Inserted| -- |IP6-IP6| -- | IP6-IP6 | -- | -- | -- | | | Added | -- |IP6-IP6| -- | IP6-IP6 | -- | -- | -- | | |||
| | headers | | (RPI1)| | (RH3, | | | | | | headers | | (RPI1)| | (RH3, | | | | | |||
| | | | | | RPI2) | | | | | | | | | | RPI2) | | | | | |||
| +---------+------+-------+-------+---------+-------+---------+------+ | +---------+------+-------+-------+---------+-------+---------+------+ | |||
| | Removed | -- | -- | -- | IP6-IP6 | -- | IP6-IP6 | -- | | ||||
| | headers | | | | (RPI1) | | (RH3, | | | ||||
| | | | | | | | RPI2) | | | ||||
| +---------+------+-------+-------+---------+-------+---------+------+ | ||||
| | Re-added| -- | -- | -- | -- | -- | -- | -- | | ||||
| | headers | | | | | | | | | ||||
| +---------+------+-------+-------+---------+-------+---------+------+ | ||||
| | Modified| -- | -- |IP6-IP6| -- |IP6-IP6| -- | -- | | | Modified| -- | -- |IP6-IP6| -- |IP6-IP6| -- | -- | | |||
| | headers | | | (RPI1)| | (RH3, | | | | | headers | | | (RPI1)| | (RH3, | | | | |||
| | | | | | | RPI2)| | | | | | | | | | RPI2)| | | | |||
| +---------+------+-------+-------+---------+-------+---------+------+ | +---------+------+-------+-------+---------+-------+---------+------+ | |||
| | Removed | -- | -- | -- | IP6-IP6 | -- | IP6-IP6 | -- | | ||||
| | headers | | | | (RPI1) | | (RH3, | | | ||||
| | | | | | | | RPI2) | | | ||||
| +---------+------+-------+-------+---------+-------+---------+------+ | ||||
| |Untouched| -- | -- | -- | -- | -- | -- | -- | | |Untouched| -- | -- | -- | -- | -- | -- | -- | | |||
| | headers | | | | | | | | | | headers | | | | | | | | | |||
| +---------+------+-------+-------+---------+-------+---------+------+ | +---------+------+-------+-------+---------+-------+---------+------+ | |||
| Figure 22: Non-SM: Summary of the use of headers from RUL to RUL | Figure 22: Non-SM: Summary of the use of headers from RUL to RUL | |||
| 9. Operational Considerations of supporting RUL-leaves | 9. Operational Considerations of supporting RUL-leaves | |||
| Roughly half of the situations described in this document involve | Roughly half of the situations described in this document involve | |||
| leaf ("host") nodes that do not speak RPL. These nodes fall into two | leaf ("host") nodes that do not speak RPL. These nodes fall into two | |||
| skipping to change at page 54, line 25 ¶ | skipping to change at page 52, line 39 ¶ | |||
| [DDOS-KREBS] | [DDOS-KREBS] | |||
| Goodin, D., "Record-breaking DDoS reportedly delivered by | Goodin, D., "Record-breaking DDoS reportedly delivered by | |||
| >145k hacked cameras", September 2016, | >145k hacked cameras", September 2016, | |||
| <http://arstechnica.com/security/2016/09/botnet-of-145k- | <http://arstechnica.com/security/2016/09/botnet-of-145k- | |||
| cameras-reportedly-deliver-internets-biggest-ddos-ever/>. | cameras-reportedly-deliver-internets-biggest-ddos-ever/>. | |||
| [I-D.ietf-6lo-ap-nd] | [I-D.ietf-6lo-ap-nd] | |||
| Thubert, P., Sarikaya, B., Sethi, M., and R. Struik, | Thubert, P., Sarikaya, B., Sethi, M., and R. Struik, | |||
| "Address Protected Neighbor Discovery for Low-power and | "Address Protected Neighbor Discovery for Low-power and | |||
| Lossy Networks", draft-ietf-6lo-ap-nd-12 (work in | Lossy Networks", draft-ietf-6lo-ap-nd-13 (work in | |||
| progress), April 2019. | progress), January 2020. | |||
| [I-D.ietf-6lo-backbone-router] | [I-D.ietf-6lo-backbone-router] | |||
| Thubert, P., Perkins, C., and E. Levy-Abegnoli, "IPv6 | Thubert, P., Perkins, C., and E. Levy-Abegnoli, "IPv6 | |||
| Backbone Router", draft-ietf-6lo-backbone-router-13 (work | Backbone Router", draft-ietf-6lo-backbone-router-13 (work | |||
| in progress), September 2019. | in progress), September 2019. | |||
| [I-D.ietf-6tisch-dtsecurity-secure-join] | [I-D.ietf-6tisch-dtsecurity-secure-join] | |||
| Richardson, M., "6tisch Secure Join protocol", draft-ietf- | Richardson, M., "6tisch Secure Join protocol", draft-ietf- | |||
| 6tisch-dtsecurity-secure-join-01 (work in progress), | 6tisch-dtsecurity-secure-join-01 (work in progress), | |||
| February 2017. | February 2017. | |||
| [I-D.ietf-anima-autonomic-control-plane] | [I-D.ietf-anima-autonomic-control-plane] | |||
| Eckert, T., Behringer, M., and S. Bjarnason, "An Autonomic | Eckert, T., Behringer, M., and S. Bjarnason, "An Autonomic | |||
| Control Plane (ACP)", draft-ietf-anima-autonomic-control- | Control Plane (ACP)", draft-ietf-anima-autonomic-control- | |||
| plane-21 (work in progress), November 2019. | plane-21 (work in progress), November 2019. | |||
| [I-D.ietf-anima-bootstrapping-keyinfra] | [I-D.ietf-anima-bootstrapping-keyinfra] | |||
| Pritikin, M., Richardson, M., Eckert, T., Behringer, M., | Pritikin, M., Richardson, M., Eckert, T., Behringer, M., | |||
| and K. Watsen, "Bootstrapping Remote Secure Key | and K. Watsen, "Bootstrapping Remote Secure Key | |||
| Infrastructures (BRSKI)", draft-ietf-anima-bootstrapping- | Infrastructures (BRSKI)", draft-ietf-anima-bootstrapping- | |||
| keyinfra-30 (work in progress), November 2019. | keyinfra-34 (work in progress), January 2020. | |||
| [I-D.ietf-intarea-tunnels] | [I-D.ietf-intarea-tunnels] | |||
| Touch, J. and M. Townsley, "IP Tunnels in the Internet | Touch, J. and M. Townsley, "IP Tunnels in the Internet | |||
| Architecture", draft-ietf-intarea-tunnels-10 (work in | Architecture", draft-ietf-intarea-tunnels-10 (work in | |||
| progress), September 2019. | progress), September 2019. | |||
| [I-D.ietf-roll-unaware-leaves] | [I-D.ietf-roll-unaware-leaves] | |||
| Thubert, P. and M. Richardson, "Routing for RPL Leaves", | Thubert, P. and M. Richardson, "Routing for RPL Leaves", | |||
| draft-ietf-roll-unaware-leaves-07 (work in progress), | draft-ietf-roll-unaware-leaves-08 (work in progress), | |||
| November 2019. | December 2019. | |||
| [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, DOI 10.17487/RFC2460, | |||
| December 1998, <https://www.rfc-editor.org/info/rfc2460>. | December 1998, <https://www.rfc-editor.org/info/rfc2460>. | |||
| [RFC2473] Conta, A. and S. Deering, "Generic Packet Tunneling in | [RFC2473] Conta, A. and S. Deering, "Generic Packet Tunneling in | |||
| IPv6 Specification", RFC 2473, DOI 10.17487/RFC2473, | IPv6 Specification", RFC 2473, DOI 10.17487/RFC2473, | |||
| December 1998, <https://www.rfc-editor.org/info/rfc2473>. | December 1998, <https://www.rfc-editor.org/info/rfc2473>. | |||
| [RFC4443] Conta, A., Deering, S., and M. Gupta, Ed., "Internet | [RFC4443] Conta, A., Deering, S., and M. Gupta, Ed., "Internet | |||
| skipping to change at page 56, line 25 ¶ | skipping to change at page 54, line 41 ¶ | |||
| [RFC8505] Thubert, P., Ed., Nordmark, E., Chakrabarti, S., and C. | [RFC8505] Thubert, P., Ed., Nordmark, E., Chakrabarti, S., and C. | |||
| Perkins, "Registration Extensions for IPv6 over Low-Power | Perkins, "Registration Extensions for IPv6 over Low-Power | |||
| Wireless Personal Area Network (6LoWPAN) Neighbor | Wireless Personal Area Network (6LoWPAN) Neighbor | |||
| Discovery", RFC 8505, DOI 10.17487/RFC8505, November 2018, | Discovery", RFC 8505, DOI 10.17487/RFC8505, November 2018, | |||
| <https://www.rfc-editor.org/info/rfc8505>. | <https://www.rfc-editor.org/info/rfc8505>. | |||
| Authors' Addresses | Authors' Addresses | |||
| Maria Ines Robles | Maria Ines Robles | |||
| Aalto University, Finland | Aalto University, Finland/Uni. Tec. Nac.(UTN) - FRM, Argentina | |||
| Email: mariainesrobles@gmail.com | Email: mariainesrobles@gmail.com | |||
| Michael 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/mcr/ | URI: http://www.sandelman.ca/mcr/ | |||
| Pascal Thubert | Pascal Thubert | |||
| End of changes. 103 change blocks. | ||||
| 335 lines changed or deleted | 271 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/ | ||||