| < draft-ietf-roll-useofrplinfo-30.txt | draft-ietf-roll-useofrplinfo-31.txt > | |||
|---|---|---|---|---|
| ROLL Working Group M. Robles | ROLL Working Group M. Robles | |||
| Internet-Draft Aalto | Internet-Draft Aalto | |||
| 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: December 27, 2019 P. Thubert | Expires: January 5, 2020 P. Thubert | |||
| Cisco | Cisco | |||
| June 25, 2019 | July 4, 2019 | |||
| Using RPL Option Type, Routing Header for Source Routes and IPv6-in-IPv6 | Using RPL 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-30 | draft-ietf-roll-useofrplinfo-31 | |||
| 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 (RPL Option Type), RFC6554 | enumerates the cases where RFC6553 (RPL 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 December 27, 2019. | This Internet-Draft will expire on January 5, 2020. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2019 IETF Trust and the persons identified as the | Copyright (c) 2019 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 | |||
| skipping to change at page 3, line 26 ¶ | skipping to change at page 3, line 26 ¶ | |||
| 8.3.4. Non-SM: Example of Flow from RUL to RUL . . . . . . . 43 | 8.3.4. Non-SM: Example of Flow from RUL to RUL . . . . . . . 43 | |||
| 9. Operational Considerations of supporting | 9. Operational Considerations of supporting | |||
| not-RPL-aware-leaves . . . . . . . . . . . . . . . . . . . . 44 | not-RPL-aware-leaves . . . . . . . . . . . . . . . . . . . . 44 | |||
| 10. Operational considerations of introducing 0x23 . . . . . . . 45 | 10. Operational considerations of introducing 0x23 . . . . . . . 45 | |||
| 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 46 | 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 46 | |||
| 12. Security Considerations . . . . . . . . . . . . . . . . . . . 47 | 12. Security Considerations . . . . . . . . . . . . . . . . . . . 47 | |||
| 13. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 50 | 13. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 50 | |||
| 14. References . . . . . . . . . . . . . . . . . . . . . . . . . 50 | 14. References . . . . . . . . . . . . . . . . . . . . . . . . . 50 | |||
| 14.1. Normative References . . . . . . . . . . . . . . . . . . 50 | 14.1. Normative References . . . . . . . . . . . . . . . . . . 50 | |||
| 14.2. Informative References . . . . . . . . . . . . . . . . . 51 | 14.2. Informative References . . . . . . . . . . . . . . . . . 51 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 53 | 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 | |||
| [RFC6553] defines the "RPL option" (RPL Packet Information or RPI), | [RFC6553] defines the "RPL option" (RPL Packet Information or RPI), | |||
| carried within the IPv6 Hop-by-Hop header to quickly identify | carried within the IPv6 Hop-by-Hop header to quickly identify | |||
| inconsistencies (loops) in the routing topology. RFC6554 [RFC6554] | inconsistencies (loops) in the routing topology. RFC6554 [RFC6554] | |||
| defines the "RPL Source Route Header" (RH3), an IPv6 Extension Header | defines the "RPL Source Route Header" (RH3), an IPv6 Extension Header | |||
| to deliver datagrams within a RPL routing domain, particularly in | to deliver datagrams within a RPL routing domain, particularly in | |||
| skipping to change at page 11, line 44 ¶ | skipping to change at page 11, line 44 ¶ | |||
| [RFC8138] section 7 documents how to compress the IPv6-in-IPv6 | [RFC8138] section 7 documents how to compress the IPv6-in-IPv6 | |||
| header. | header. | |||
| There are potential significant advantages to having a single code | There are potential significant advantages to having a single code | |||
| path that always processes IPv6-in-IPv6 headers with no conditional | path that always processes IPv6-in-IPv6 headers with no conditional | |||
| branches. | branches. | |||
| In Storing Mode, for the examples of Flow from RAL to RUL and RUL to | In Storing Mode, for the examples of Flow from RAL to RUL and RUL to | |||
| RUL comprise an IPv6-in-IPv6 and RPI compression headers. The use of | RUL comprise an IPv6-in-IPv6 and RPI compression headers. The use of | |||
| the IPv6-in-IPv6 header is MANDATORY in this case, and it SHOULD be | the IPv6-in-IPv6 header is MANDATORY in this case, and it SHOULD be | |||
| compressed with [RFC8138] section 7. As exemplification of | compressed with [RFC8138] section 7. Figure 5 illustrates the case | |||
| compressing the RPI, section A.1 of [RFC8138] illustrates the case in | in Storing mode where the packet is received from the Internet, then | |||
| Storing mode where the packet is received from the Internet, then the | the root encapsulates the packet to insert the RPI. In that example, | |||
| root encapsulates the packet to insert the RPI. The result is shown | the leaf is not known to support RFC 8138, and the packet is | |||
| in Figure 5. | encapsulated to the 6LR that is the parent and last hop to the final | |||
| destination. | ||||
| +-+ ... -+-+-...-+-+-- ... -+-+-+-+- ... -+-+ ... -+-+-+ ... -+-+-+... | +-+ ... -+-+ ... +-+- ... -+-+- .... +-+-+-+ ... +-+-+ ... -+ ... +-... | |||
| |11110001| RPI- | IP-in-IP | NH=1 |11110CPP| Compressed | UDP | |11110001|SRH-6LoRH| RPI- |IPv6-in-IPv6| NH=1 |11110CPP| UDP | UDP | |||
| |Page 1 | 6LoRH | 6LoRH | LOWPAN_IPHC | UDP | UDP header | Payld | |Page 1 |Type1 S=0| 6LoRH | 6LoRH |LOWPAN_IPHC| UDP | hdr |Payld | |||
| +-+ ... -+-+-...-+-+-- ... -+-+-+-+- ... -+-+ ... -+-+-+ ... -+-+-+... | +-+ ... -+-+ ... +-+- ... -+-+-- ...+-+-+-+-+ ... +-+-+ ... -+ ... +-... | |||
| <-4bytes-> <- RFC 6282 -> | ||||
| No RPL artifact | ||||
| Figure 5: RPI Inserted by the Root in Storing Mode | Figure 5: RPI Inserted by the Root in Storing Mode | |||
| In Figure 5, the source of the IPv6-in-IPv6 encapsulation is the | ||||
| Root, so it is elided in the IPv6-in-IPv6 6LoRH. The destination is | ||||
| the parent 6LR of the destination of the inner packet so it cannot be | ||||
| elided. It is placed as the single entry in an SRH-6LoRH as the | ||||
| first 6LoRH. There is a single entry so the SRH-6LoRH Size is 0. In | ||||
| that example, the type is 1 so the 6LR address is compressed to 2 | ||||
| bytes. It results that the total length of the SRH-6LoRH is 4 bytes. | ||||
| Follows the RPI-6LoRH and then the IPv6-in-IPv6 6LoRH. When the | ||||
| IPv6-in-IPv6 6LoRH is removed, all the router headers that precede it | ||||
| are also removed. The Paging Dispatch [RFC8025] may also be removed | ||||
| if there was no previous Page change to a Page other than 0 or 1, | ||||
| since the LOWPAN_IPHC is encoded in the same fashion in the default | ||||
| Page 0 and in Page 1. The resulting packet to the destination is the | ||||
| inner packet compressed with [RFC6282]. | ||||
| 5. Sample/reference topology | 5. Sample/reference topology | |||
| A RPL network in general is composed of a 6LBR, Backbone Router | A RPL network in general is composed of a 6LBR, Backbone Router | |||
| (6BBR), 6LR and 6LN as leaf logically organized in a DODAG structure. | (6BBR), 6LR and 6LN as leaf logically organized in a DODAG structure. | |||
| Figure 6 shows the reference RPL Topology for this document. The | Figure 6 shows the reference RPL Topology for this document. The | |||
| letters above the nodes are there so that they may be referenced in | letters above the nodes are there so that they may be referenced in | |||
| subsequent sections. In the figure, 6LR represents a full router | subsequent sections. In the figure, 6LR represents a full router | |||
| node. The 6LN is a RPL aware router, or host (as a leaf). | node. The 6LN is a RPL aware router, or host (as a leaf). | |||
| Additionally, for simplification purposes, it is supposed that the | Additionally, for simplification purposes, it is supposed that the | |||
| skipping to change at page 50, line 46 ¶ | skipping to change at page 50, line 46 ¶ | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
| [RFC6040] Briscoe, B., "Tunnelling of Explicit Congestion | [RFC6040] Briscoe, B., "Tunnelling of Explicit Congestion | |||
| Notification", RFC 6040, DOI 10.17487/RFC6040, November | Notification", RFC 6040, DOI 10.17487/RFC6040, November | |||
| 2010, <https://www.rfc-editor.org/info/rfc6040>. | 2010, <https://www.rfc-editor.org/info/rfc6040>. | |||
| [RFC6282] Hui, J., Ed. and P. Thubert, "Compression Format for IPv6 | ||||
| Datagrams over IEEE 802.15.4-Based Networks", RFC 6282, | ||||
| DOI 10.17487/RFC6282, September 2011, | ||||
| <https://www.rfc-editor.org/info/rfc6282>. | ||||
| [RFC6550] Winter, T., Ed., Thubert, P., Ed., Brandt, A., Hui, J., | [RFC6550] Winter, T., Ed., Thubert, P., Ed., Brandt, A., Hui, J., | |||
| Kelsey, R., Levis, P., Pister, K., Struik, R., Vasseur, | Kelsey, R., Levis, P., Pister, K., Struik, R., Vasseur, | |||
| JP., and R. Alexander, "RPL: IPv6 Routing Protocol for | JP., and R. Alexander, "RPL: IPv6 Routing Protocol for | |||
| Low-Power and Lossy Networks", RFC 6550, | Low-Power and Lossy Networks", RFC 6550, | |||
| DOI 10.17487/RFC6550, March 2012, | DOI 10.17487/RFC6550, March 2012, | |||
| <https://www.rfc-editor.org/info/rfc6550>. | <https://www.rfc-editor.org/info/rfc6550>. | |||
| [RFC6553] Hui, J. and JP. Vasseur, "The Routing Protocol for Low- | [RFC6553] Hui, J. and JP. Vasseur, "The Routing Protocol for Low- | |||
| Power and Lossy Networks (RPL) Option for Carrying RPL | Power and Lossy Networks (RPL) Option for Carrying RPL | |||
| Information in Data-Plane Datagrams", RFC 6553, | Information in Data-Plane Datagrams", RFC 6553, | |||
| skipping to change at page 51, line 22 ¶ | skipping to change at page 51, line 29 ¶ | |||
| Routing Header for Source Routes with the Routing Protocol | Routing Header for Source Routes with the Routing Protocol | |||
| for Low-Power and Lossy Networks (RPL)", RFC 6554, | for Low-Power and Lossy Networks (RPL)", RFC 6554, | |||
| DOI 10.17487/RFC6554, March 2012, | DOI 10.17487/RFC6554, March 2012, | |||
| <https://www.rfc-editor.org/info/rfc6554>. | <https://www.rfc-editor.org/info/rfc6554>. | |||
| [RFC7045] Carpenter, B. and S. Jiang, "Transmission and Processing | [RFC7045] Carpenter, B. and S. Jiang, "Transmission and Processing | |||
| of IPv6 Extension Headers", RFC 7045, | of IPv6 Extension Headers", RFC 7045, | |||
| DOI 10.17487/RFC7045, December 2013, | DOI 10.17487/RFC7045, December 2013, | |||
| <https://www.rfc-editor.org/info/rfc7045>. | <https://www.rfc-editor.org/info/rfc7045>. | |||
| [RFC8025] Thubert, P., Ed. and R. Cragie, "IPv6 over Low-Power | ||||
| Wireless Personal Area Network (6LoWPAN) Paging Dispatch", | ||||
| RFC 8025, DOI 10.17487/RFC8025, November 2016, | ||||
| <https://www.rfc-editor.org/info/rfc8025>. | ||||
| [RFC8138] Thubert, P., Ed., Bormann, C., Toutain, L., and R. Cragie, | [RFC8138] Thubert, P., Ed., Bormann, C., Toutain, L., and R. Cragie, | |||
| "IPv6 over Low-Power Wireless Personal Area Network | "IPv6 over Low-Power Wireless Personal Area Network | |||
| (6LoWPAN) Routing Header", RFC 8138, DOI 10.17487/RFC8138, | (6LoWPAN) Routing Header", RFC 8138, DOI 10.17487/RFC8138, | |||
| April 2017, <https://www.rfc-editor.org/info/rfc8138>. | April 2017, <https://www.rfc-editor.org/info/rfc8138>. | |||
| [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
| 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
| May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
| [RFC8200] Deering, S. and R. Hinden, "Internet Protocol, Version 6 | [RFC8200] Deering, S. and R. Hinden, "Internet Protocol, Version 6 | |||
| End of changes. 10 change blocks. | ||||
| 14 lines changed or deleted | 42 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/ | ||||