| < draft-ietf-roll-dao-projection-22.txt | draft-ietf-roll-dao-projection-23.txt > | |||
|---|---|---|---|---|
| ROLL P. Thubert, Ed. | ROLL P. Thubert, Ed. | |||
| Internet-Draft Cisco Systems | Internet-Draft Cisco Systems | |||
| Intended status: Standards Track R.A. Jadhav | Intended status: Standards Track R.A. Jadhav | |||
| Expires: 29 May 2022 Huawei Tech | Expires: 17 July 2022 Huawei Tech | |||
| M. Gillmore | 13 January 2022 | |||
| Itron | ||||
| 25 November 2021 | ||||
| Root initiated routing state in RPL | Root initiated routing state in RPL | |||
| draft-ietf-roll-dao-projection-22 | draft-ietf-roll-dao-projection-23 | |||
| Abstract | Abstract | |||
| This document extends RFC 6550, RFC 6553, and RFC 8138 to enable a | This document extends RFC 6550, RFC 6553, and RFC 8138 to enable a | |||
| RPL Root to install and maintain Projected Routes within its DODAG, | RPL Root to install and maintain Projected Routes within its DODAG, | |||
| along a selected set of nodes that may or may not include self, for a | along a selected set of nodes that may or may not include self, for a | |||
| chosen duration. This potentially enables routes that are more | chosen duration. This potentially enables routes that are more | |||
| optimized or resilient than those obtained with the classical | optimized or resilient than those obtained with the classical | |||
| distributed operation of RPL, either in terms of the size of a | distributed operation of RPL, either in terms of the size of a | |||
| Routing Header or in terms of path length, which impacts both the | Routing Header or in terms of path length, which impacts both the | |||
| skipping to change at page 1, line 40 ¶ | skipping to change at page 1, line 38 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at 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 29 May 2022. | This Internet-Draft will expire on 17 July 2022. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2021 IETF Trust and the persons identified as the | Copyright (c) 2022 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 (https://trustee.ietf.org/ | Provisions Relating to IETF Documents (https://trustee.ietf.org/ | |||
| license-info) in effect on the date of publication of this document. | license-info) in effect on the date of publication of this document. | |||
| Please review these documents carefully, as they describe your rights | Please review these documents carefully, as they describe your rights | |||
| and restrictions with respect to this document. Code Components | and restrictions with respect to this document. Code Components | |||
| extracted from this document must include Revised BSD License text as | extracted from this document must include Revised BSD License text as | |||
| described in Section 4.e of the Trust Legal Provisions and are | described in Section 4.e of the Trust Legal Provisions and are | |||
| provided without warranty as described in the Revised BSD License. | provided without warranty as described in the Revised BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 4 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| skipping to change at page 2, line 43 ¶ | skipping to change at page 2, line 40 ¶ | |||
| 3.5. Serial Track Signaling . . . . . . . . . . . . . . . . . 16 | 3.5. Serial Track Signaling . . . . . . . . . . . . . . . . . 16 | |||
| 3.5.1. Using Storing Mode Segments . . . . . . . . . . . . . 17 | 3.5.1. Using Storing Mode Segments . . . . . . . . . . . . . 17 | |||
| 3.5.2. Using Non-Storing Mode joining Tracks . . . . . . . . 24 | 3.5.2. Using Non-Storing Mode joining Tracks . . . . . . . . 24 | |||
| 3.6. Complex Tracks . . . . . . . . . . . . . . . . . . . . . 31 | 3.6. Complex Tracks . . . . . . . . . . . . . . . . . . . . . 31 | |||
| 3.7. Scope and Expectations . . . . . . . . . . . . . . . . . 33 | 3.7. Scope and Expectations . . . . . . . . . . . . . . . . . 33 | |||
| 3.7.1. External Dependencies . . . . . . . . . . . . . . . . 33 | 3.7.1. External Dependencies . . . . . . . . . . . . . . . . 33 | |||
| 3.7.2. Positioning vs. Related IETF Standards . . . . . . . 33 | 3.7.2. Positioning vs. Related IETF Standards . . . . . . . 33 | |||
| 4. Extending existing RFCs . . . . . . . . . . . . . . . . . . . 35 | 4. Extending existing RFCs . . . . . . . . . . . . . . . . . . . 35 | |||
| 4.1. Extending RFC 6550 . . . . . . . . . . . . . . . . . . . 35 | 4.1. Extending RFC 6550 . . . . . . . . . . . . . . . . . . . 35 | |||
| 4.1.1. Projected DAO . . . . . . . . . . . . . . . . . . . . 36 | 4.1.1. Projected DAO . . . . . . . . . . . . . . . . . . . . 36 | |||
| 4.1.2. Via Information Option . . . . . . . . . . . . . . . 37 | 4.1.2. Projected DAO-ACK . . . . . . . . . . . . . . . . . . 37 | |||
| 4.1.3. Sibling Information Option . . . . . . . . . . . . . 37 | 4.1.3. Via Information Option . . . . . . . . . . . . . . . 38 | |||
| 4.1.4. P-DAO Request . . . . . . . . . . . . . . . . . . . . 38 | 4.1.4. Sibling Information Option . . . . . . . . . . . . . 39 | |||
| 4.1.5. Extending the RPI . . . . . . . . . . . . . . . . . . 38 | 4.1.5. P-DAO Request . . . . . . . . . . . . . . . . . . . . 39 | |||
| 4.1.6. Additional Flag in the RPL DODAG Configuration | 4.1.6. Extending the RPI . . . . . . . . . . . . . . . . . . 39 | |||
| Option . . . . . . . . . . . . . . . . . . . . . . . 38 | 4.1.7. Additional Flag in the RPL DODAG Configuration | |||
| 4.2. Extending RFC 6553 . . . . . . . . . . . . . . . . . . . 39 | Option . . . . . . . . . . . . . . . . . . . . . . . 40 | |||
| 4.3. Extending RFC 8138 . . . . . . . . . . . . . . . . . . . 40 | 4.2. Extending RFC 6553 . . . . . . . . . . . . . . . . . . . 41 | |||
| 5. New RPL Control Messages and Options . . . . . . . . . . . . 41 | 4.3. Extending RFC 8138 . . . . . . . . . . . . . . . . . . . 41 | |||
| 5.1. New P-DAO Request Control Message . . . . . . . . . . . . 42 | 5. New RPL Control Messages and Options . . . . . . . . . . . . 43 | |||
| 5.2. New PDR-ACK Control Message . . . . . . . . . . . . . . . 43 | 5.1. New P-DAO Request Control Message . . . . . . . . . . . . 43 | |||
| 5.3. Via Information Options . . . . . . . . . . . . . . . . . 44 | 5.2. New PDR-ACK Control Message . . . . . . . . . . . . . . . 44 | |||
| 5.4. Sibling Information Option . . . . . . . . . . . . . . . 47 | 5.3. Via Information Options . . . . . . . . . . . . . . . . . 45 | |||
| 6. Root Initiated Routing State . . . . . . . . . . . . . . . . 49 | 5.4. Sibling Information Option . . . . . . . . . . . . . . . 48 | |||
| 6.1. RPL Network Setup . . . . . . . . . . . . . . . . . . . . 49 | 6. Root Initiated Routing State . . . . . . . . . . . . . . . . 50 | |||
| 6.2. Requesting a Track . . . . . . . . . . . . . . . . . . . 49 | 6.1. RPL Network Setup . . . . . . . . . . . . . . . . . . . . 50 | |||
| 6.3. Identifying a Track . . . . . . . . . . . . . . . . . . . 50 | 6.2. Requesting a Track . . . . . . . . . . . . . . . . . . . 51 | |||
| 6.4. Installing a Track . . . . . . . . . . . . . . . . . . . 51 | 6.3. Identifying a Track . . . . . . . . . . . . . . . . . . . 52 | |||
| 6.4.1. Signaling a Projected Route . . . . . . . . . . . . . 52 | 6.4. Installing a Track . . . . . . . . . . . . . . . . . . . 53 | |||
| 6.4.1. Signaling a Projected Route . . . . . . . . . . . . . 54 | ||||
| 6.4.2. Installing a Track Segment with a Storing Mode | 6.4.2. Installing a Track Segment with a Storing Mode | |||
| P-Route . . . . . . . . . . . . . . . . . . . . . . . 53 | ||||
| 6.4.3. Installing a Track Leg with a Non-Storing Mode | ||||
| P-Route . . . . . . . . . . . . . . . . . . . . . . . 55 | P-Route . . . . . . . . . . . . . . . . . . . . . . . 55 | |||
| 6.5. Tearing Down a P-Route . . . . . . . . . . . . . . . . . 57 | 6.4.3. Installing a Track Leg with a Non-Storing Mode | |||
| 6.6. Maintaining a Track . . . . . . . . . . . . . . . . . . . 57 | P-Route . . . . . . . . . . . . . . . . . . . . . . . 57 | |||
| 6.6.1. Maintaining a Track Segment . . . . . . . . . . . . . 58 | 6.5. Tearing Down a P-Route . . . . . . . . . . . . . . . . . 59 | |||
| 6.6.2. Maintaining a Track Leg . . . . . . . . . . . . . . . 58 | 6.6. Maintaining a Track . . . . . . . . . . . . . . . . . . . 59 | |||
| 6.7. Encapsulating and Forwarding Along a Track . . . . . . . 59 | 6.6.1. Maintaining a Track Segment . . . . . . . . . . . . . 60 | |||
| 6.8. Compression of the RPL Artifacts . . . . . . . . . . . . 61 | 6.6.2. Maintaining a Track Leg . . . . . . . . . . . . . . . 60 | |||
| 7. Lesser Constrained Variations . . . . . . . . . . . . . . . . 63 | 6.7. Encapsulating and Forwarding Along a Track . . . . . . . 61 | |||
| 7.1. Storing Mode Main DODAG . . . . . . . . . . . . . . . . . 63 | 6.8. Compression of the RPL Artifacts . . . . . . . . . . . . 63 | |||
| 7.2. A Track as a Full DODAG . . . . . . . . . . . . . . . . . 65 | 7. Lesser Constrained Variations . . . . . . . . . . . . . . . . 65 | |||
| 8. Profiles . . . . . . . . . . . . . . . . . . . . . . . . . . 66 | 7.1. Storing Mode Main DODAG . . . . . . . . . . . . . . . . . 65 | |||
| 9. Backwards Compatibility . . . . . . . . . . . . . . . . . . . 68 | 7.2. A Track as a Full DODAG . . . . . . . . . . . . . . . . . 67 | |||
| 10. Security Considerations . . . . . . . . . . . . . . . . . . . 69 | 8. Profiles . . . . . . . . . . . . . . . . . . . . . . . . . . 68 | |||
| 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 69 | 9. Backwards Compatibility . . . . . . . . . . . . . . . . . . . 70 | |||
| 11.1. RPL DODAG Configuration Option Flag . . . . . . . . . . 69 | 10. Security Considerations . . . . . . . . . . . . . . . . . . . 71 | |||
| 11.2. Elective 6LoWPAN Routing Header Type . . . . . . . . . . 70 | 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 71 | |||
| 11.3. Critical 6LoWPAN Routing Header Type . . . . . . . . . . 70 | 11.1. RPL DODAG Configuration Option Flag . . . . . . . . . . 71 | |||
| 11.4. Subregistry For The RPL Option Flags . . . . . . . . . . 70 | 11.2. Elective 6LoWPAN Routing Header Type . . . . . . . . . . 72 | |||
| 11.5. RPL Control Codes . . . . . . . . . . . . . . . . . . . 71 | 11.3. Critical 6LoWPAN Routing Header Type . . . . . . . . . . 72 | |||
| 11.6. RPL Control Message Options . . . . . . . . . . . . . . 71 | 11.4. Subregistry For The RPL Option Flags . . . . . . . . . . 72 | |||
| 11.7. SubRegistry for the Projected DAO Request Flags . . . . 72 | 11.5. RPL Control Codes . . . . . . . . . . . . . . . . . . . 73 | |||
| 11.8. SubRegistry for the PDR-ACK Flags . . . . . . . . . . . 72 | 11.6. RPL Control Message Options . . . . . . . . . . . . . . 73 | |||
| 11.9. Subregistry for the PDR-ACK Acceptance Status Values . . 73 | 11.7. SubRegistry for the Projected DAO Request Flags . . . . 74 | |||
| 11.10. Subregistry for the PDR-ACK Rejection Status Values . . 73 | 11.8. SubRegistry for the PDR-ACK Flags . . . . . . . . . . . 74 | |||
| 11.11. SubRegistry for the Via Information Options Flags . . . 73 | 11.9. Subregistry for the PDR-ACK Acceptance Status Values . . 75 | |||
| 11.12. SubRegistry for the Sibling Information Option Flags . . 74 | 11.10. Subregistry for the PDR-ACK Rejection Status Values . . 75 | |||
| 11.13. destination Advertisement Object Flag . . . . . . . . . 74 | 11.11. SubRegistry for the Via Information Options Flags . . . 75 | |||
| 11.14. New ICMPv6 Error Code . . . . . . . . . . . . . . . . . 75 | 11.12. SubRegistry for the Sibling Information Option Flags . . 76 | |||
| 11.15. RPL Rejection Status values . . . . . . . . . . . . . . 75 | 11.13. Destination Advertisement Object Flag . . . . . . . . . 76 | |||
| 12. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 76 | 11.14. Destination Advertisement Object Acknowledgment Flag . . 77 | |||
| 13. Normative References . . . . . . . . . . . . . . . . . . . . 76 | 11.15. New ICMPv6 Error Code . . . . . . . . . . . . . . . . . 77 | |||
| 14. Informative References . . . . . . . . . . . . . . . . . . . 77 | 11.16. RPL Rejection Status values . . . . . . . . . . . . . . 77 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 80 | 12. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 78 | |||
| 13. Normative References . . . . . . . . . . . . . . . . . . . . 78 | ||||
| 14. Informative References . . . . . . . . . . . . . . . . . . . 80 | ||||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 82 | ||||
| 1. Introduction | 1. Introduction | |||
| RPL, the "Routing Protocol for Low Power and Lossy Networks" [RPL] | RPL, the "Routing Protocol for Low Power and Lossy Networks" [RPL] | |||
| (LLNs), is an anisotropic Distance Vector protocol that is well- | (LLNs), is an anisotropic Distance Vector protocol that is well- | |||
| suited for application in a variety of low energy Internet of Things | suited for application in a variety of low energy Internet of Things | |||
| (IoT) networks where stretched P2P paths are acceptable vs. the | (IoT) networks where stretched P2P paths are acceptable vs. the | |||
| signaling and state overhead involved in maintaining shortest paths | signaling and state overhead involved in maintaining shortest paths | |||
| across. | across. | |||
| skipping to change at page 8, line 5 ¶ | skipping to change at page 8, line 5 ¶ | |||
| connected using Segments that are associated to the same Track. | connected using Segments that are associated to the same Track. | |||
| 2.4.5.1. TrackID | 2.4.5.1. TrackID | |||
| A RPL Local InstanceID that identifies a Track using the namespace | A RPL Local InstanceID that identifies a Track using the namespace | |||
| owned by the Track Ingress. The TrackID is associated with the IPv6 | owned by the Track Ingress. The TrackID is associated with the IPv6 | |||
| Address of the Track Ingress that is used as DODAGID, and together | Address of the Track Ingress that is used as DODAGID, and together | |||
| they form a unique identification of the Track (see the definition of | they form a unique identification of the Track (see the definition of | |||
| DODAGID in section 2 of [RPL]. | DODAGID in section 2 of [RPL]. | |||
| 2.4.5.2. namespace | 2.4.5.2. Namespace | |||
| The term namespace is used to refer to the scope of the TrackID. The | The term namespace is used to refer to the scope of the TrackID. The | |||
| TrackID is locally significant within its namespace. The namespace | TrackID is locally significant within its namespace. The namespace | |||
| is identified by the DODAGID for the Track. The tuple (DODAGID, | is identified by the DODAGID for the Track. The tuple (DODAGID, | |||
| TrackID) is globally unique. | TrackID) is globally unique. | |||
| 2.4.5.3. Serial Track | 2.4.5.3. Serial Track | |||
| A Track that has only one path. | A Track that has only one path. | |||
| skipping to change at page 24, line 16 ¶ | skipping to change at page 24, line 16 ¶ | |||
| the packet. | the packet. | |||
| * From the Neighbor Cache Entry: E delivers packets to F or G. | * From the Neighbor Cache Entry: E delivers packets to F or G. | |||
| 3.5.2. Using Non-Storing Mode joining Tracks | 3.5.2. Using Non-Storing Mode joining Tracks | |||
| In this formulation: | In this formulation: | |||
| * P-DAO 1 signals C==>D==>E-to-F,G | * P-DAO 1 signals C==>D==>E-to-F,G | |||
| * P-DAO 2 signals A==>B==>C-to-C,F,G | * P-DAO 2 signals A==>B==>C-to-E,F,G | |||
| A==>B==>C and C==>D==>E are Tracks expressed as Non-Storing P-DAOs. | A==>B==>C and C==>D==>E are Tracks expressed as Non-Storing P-DAOs. | |||
| 3.5.2.1. Stitched Tracks | 3.5.2.1. Stitched Tracks | |||
| Non-Storing Mode P-DAO 1 and 2 are sent to C and A respectively, as | Non-Storing Mode P-DAO 1 and 2 are sent to C and A respectively, as | |||
| follows: | follows: | |||
| +====================+==============+==============+ | +====================+==============+==============+ | |||
| | | P-DAO 1 to C | P-DAO 2 to A | | | | P-DAO 1 to C | P-DAO 2 to A | | |||
| skipping to change at page 35, line 29 ¶ | skipping to change at page 35, line 29 ¶ | |||
| through which Track. In a Non-Storing Mode RPL Instance, the Main | through which Track. In a Non-Storing Mode RPL Instance, the Main | |||
| DODAG provides a default route via the Root, and the Tracks provide | DODAG provides a default route via the Root, and the Tracks provide | |||
| more specific routes to the Track Targets. | more specific routes to the Track Targets. | |||
| 4. Extending existing RFCs | 4. Extending existing RFCs | |||
| 4.1. Extending RFC 6550 | 4.1. Extending RFC 6550 | |||
| This specification extends RPL [RPL] to enable the Root to install | This specification extends RPL [RPL] to enable the Root to install | |||
| East-West routes inside a Main DODAG that is operated as Non-Storing | East-West routes inside a Main DODAG that is operated as Non-Storing | |||
| Mode. A Projected DAO (P-DAO) message (see Section 4.1.1) contains a | Mode. The Root issues a Projected DAO (P-DAO) message (see | |||
| new Via Information Option that installs a strict or a loose sequence | Section 4.1.1) to the Track Ingress; the P-DAO message contains a new | |||
| of hops to form respectively a Track Segment or a Track Leg. A new | Via Information Option (VIO) that installs a strict or a loose | |||
| P-DAO Request (PDR) message (see Section 5.1) enables a Track Ingress | sequence of hops to form respectively a Track Segment or a Track Leg. | |||
| to request the Track from the Root. The resulting Track is also a | ||||
| DODAG for which the Track Ingress is the Root, the owner the address | A new P-DAO Request (PDR) message (see Section 5.1) enables a Track | |||
| that serves as DODAGID and authoritative for the associated namespace | Ingress to request the Track from the Root. The resulting Track is | |||
| from which the TrackID is selected. In the context of this | also a DODAG for which the Track Ingress is the Root, the owner the | |||
| address that serves as DODAGID and authoritative for the associated | ||||
| namespace from which the TrackID is selected. In the context of this | ||||
| specification, the installed route appears as a more specific route | specification, the installed route appears as a more specific route | |||
| to the Track Targets, and the Track Ingress routes the packets | to the Track Targets, and the Track Ingress routes the packets | |||
| towards the Targets via the Track using the longest match as usual. | towards the Targets via the Track using the longest match as usual. | |||
| To ensure that the PDR and P-DAO messages can flow at most times, it | To ensure that the PDR and P-DAO messages can flow at most times, it | |||
| is RECOMMENDED that the nodes involved in a Track mantain multiple | is RECOMMENDED that the nodes involved in a Track maintain multiple | |||
| parents in the Main DODAG, advertise them all to the Root, and use | parents in the Main DODAG, advertise them all to the Root, and use | |||
| them in turn to retry similar packets. It is also RECOMMENDED that | them in turn to retry similar packets. It is also RECOMMENDED that | |||
| the Root uses diverse source route paths to retry similar messages ot | the Root uses diverse source route paths to retry similar messages to | |||
| the nodes in the Track. | the nodes in the Track. | |||
| 4.1.1. Projected DAO | 4.1.1. Projected DAO | |||
| Section 6 of [RPL] introduces the RPL Control Message Options (CMO), | Section 6 of [RPL] introduces the RPL Control Message Options (CMO), | |||
| including the RPL Target Option (RTO) and Transit Information Option | including the RPL Target Option (RTO) and Transit Information Option | |||
| (TIO), which can be placed in RPL messages such as the destination | (TIO), which can be placed in RPL messages such as the destination | |||
| Advertisement Object (DAO). A DAO message signals routing | Advertisement Object (DAO). A DAO message signals routing | |||
| information to one or more Targets indicated in RTOs, providing one | information to one or more Targets indicated in RTOs, providing one | |||
| hop information at a time in the TIO. A Projected DAO (P-DAO) is a | hop information at a time in the TIO. A Projected DAO (P-DAO) is a | |||
| special DAO message generated by the Root to install a P-Route formed | special DAO message generated by the Root to install a P-Route formed | |||
| of multiple hops in its DODAG. This provides a RPL-based method to | of multiple hops in its DODAG. This provides a RPL-based method to | |||
| install the Tracks as expected by the 6TiSCH Architecture | install the Tracks as expected by the 6TiSCH Architecture | |||
| [6TiSCH-ARCHI] as a collection of multiple P-Routes. | [6TiSCH-ARCHI] as a collection of multiple P-Routes. | |||
| The Root MUST source the P-DAO message with its address that serves | ||||
| as DODAGID for the main DODAG. The receiver MUST NOT accept a P-DAO | ||||
| message that is not sent by the Root of its DODAG and MUST ignore | ||||
| such message silently. | ||||
| The P-DAO is signaled with a new "Projected DAO" (P) flag, see | The P-DAO is signaled with a new "Projected DAO" (P) flag, see | |||
| Figure 8. The 'P' flag is encoded in bit position 2 (to be confirmed | Figure 8. The 'P' flag is encoded in bit position 2 (to be confirmed | |||
| by IANA) of the Flags field in the DAO Base Object. The Root MUST | by IANA) of the Flags field in the DAO Base Object. The Root MUST | |||
| set it to 1 in a Projected DAO message. Otherwise it MUST be set to | set it to 1 in a Projected DAO message. Otherwise it MUST be set to | |||
| 0. It is set to 0 in Legacy implementations as specified | 0. It is set to 0 in Legacy implementations as specified | |||
| respectively in Sections 20.11 and 6.4 of [RPL] | respectively in Sections 20.11 and 6.4 of [RPL]. | |||
| The P-DAO is control plane signaling and should not be stuck behind | The P-DAO is control plane signaling and should not be stuck behind | |||
| high traffic levels. The expectation is that the P-DAO message is | high traffic levels. The expectation is that the P-DAO message is | |||
| sent as high QoS level, above that of data traffic, typically with | sent as high QoS level, above that of data traffic, typically with | |||
| the Network Control precedence. | the Network Control precedence. | |||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | TrackID |K|D|P| Flags | Reserved | DAOSequence | | | TrackID |K|D|P| Flags | Reserved | DAOSequence | | |||
| skipping to change at page 37, line 10 ¶ | skipping to change at page 37, line 15 ¶ | |||
| New fields: | New fields: | |||
| TrackID: The local or global RPLInstanceID of the DODAG that serves | TrackID: The local or global RPLInstanceID of the DODAG that serves | |||
| as Track, more in Section 6.3 | as Track, more in Section 6.3 | |||
| P: 1-bit flag (position to be confirmed by IANA). | P: 1-bit flag (position to be confirmed by IANA). | |||
| The 'P' flag is set to 1 by the Root to signal a Projected DAO, | The 'P' flag is set to 1 by the Root to signal a Projected DAO, | |||
| and it is set to 0 otherwise. | and it is set to 0 otherwise. | |||
| The D flag is set to one to signal that the DODAGID field is present. | ||||
| It may be set to zero if and only if the destination address of the | ||||
| P-DAO-ACK message is set to the IPv6 address that serves as DODAGID | ||||
| and it MUST be set to one otherwise, meaning that the DODAGID field | ||||
| MUST then be present. | ||||
| In RPL Non-Storing Mode, the TIO and RTO are combined in a DAO | In RPL Non-Storing Mode, the TIO and RTO are combined in a DAO | |||
| message to inform the DODAG Root of all the edges in the DODAG, which | message to inform the DODAG Root of all the edges in the DODAG, which | |||
| are formed by the directed parent-child relationships. The DAO | are formed by the directed parent-child relationships. The DAO | |||
| message signals to the Root that a given parent can be used to reach | message signals to the Root that a given parent can be used to reach | |||
| a given child. The P-DAO message generalizes the DAO to signal to | a given child. The P-DAO message generalizes the DAO to signal to | |||
| the Track Ingress that a Track for which it is Root can be used to | the Track Ingress that a Track for which it is Root can be used to | |||
| reach children and siblings of the Track Egress. In both cases, | reach children and siblings of the Track Egress. In both cases, | |||
| options may be factorized and multiple RTOs may be present to signal | options may be factorized and multiple RTOs may be present to signal | |||
| a collection of children that can be reached through the parent or | a collection of children that can be reached through the parent or | |||
| the Track, respectively. | the Track, respectively. | |||
| 4.1.2. Via Information Option | 4.1.2. Projected DAO-ACK | |||
| The changes in the P-DAO messages are reflected on the P-DAO-ACK | ||||
| message that is used to acknowledge a P-DAO, with the new P flag that | ||||
| signal the projected form. | ||||
| The format of the P-DAO-ACK message is thus as illustrated in | ||||
| Figure 9: | ||||
| 0 1 2 3 | ||||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | TrackID |D|P| Reserved | DAOSequence | Status | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | | | ||||
| + + | ||||
| | DODAGID field set to the | | ||||
| + IPv6 Address of the Track Ingress + | ||||
| | used to source encapsulated packets | | ||||
| + + | ||||
| | | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Option(s)... | ||||
| +-+-+-+-+-+-+-+-+ | ||||
| Figure 9: Projected DAO-ACK Base Object | ||||
| New fields: | ||||
| TrackID: The local or global RPLInstanceID of the DODAG that serves | ||||
| as Track, more in Section 6.3 | ||||
| P: 1-bit flag (position to be confirmed by IANA). | ||||
| The 'P' flag is set to 1 by the Root to signal a Projected DAO, | ||||
| and it is set to 0 otherwise. | ||||
| The D flag is set to one to signal that the DODAGID field is present. | ||||
| It may be set to zero if and only if the source address of the P-DAO- | ||||
| ACK message is set to the IPv6 address that serves as DODAGID and it | ||||
| MUST be set to one otherwise, meaning that the DODAGID field MUST | ||||
| then be present. | ||||
| 4.1.3. Via Information Option | ||||
| New CMOs called the Via Information Options (VIO) are introduced for | New CMOs called the Via Information Options (VIO) are introduced for | |||
| use in P-DAO messages as a multihop alternative to the TIO, more in | use in P-DAO messages as a multihop alternative to the TIO, more in | |||
| Section 5.3. One VIO is the stateful Storing Mode VIO (SM-VIO); an | Section 5.3. One VIO is the stateful Storing Mode VIO (SM-VIO); an | |||
| SM-VIO installs a strict hop-by-hop P-Route called a Track Segment. | SM-VIO installs a strict hop-by-hop P-Route called a Track Segment. | |||
| The other is the Non-Storing Mode VIO (NSM-VIO); the NSM-VIO installs | The other is the Non-Storing Mode VIO (NSM-VIO); the NSM-VIO installs | |||
| a loose source-routed P-Route called a Track Leg at the Track | a loose source-routed P-Route called a Track Leg at the Track | |||
| Ingress, which uses that state to encapsulate a packet IPv6_in_IPv6 | Ingress, which uses that state to encapsulate a packet IPv6_in_IPv6 | |||
| with a new Routing Header (RH) to the Track Egress, more in | with a new Routing Header (RH) to the Track Egress, more in | |||
| Section 6.7. | Section 6.7. | |||
| A P-DAO contains one or more RTOs to indicate the Target | A P-DAO contains one or more RTOs to indicate the Target | |||
| (destinations) that can be reached via the P-Route, followed by | (destinations) that can be reached via the P-Route, followed by | |||
| exactly one VIO that signals the sequence of nodes to be followed, | exactly one VIO that signals the sequence of nodes to be followed, | |||
| more in Section 6. There are two modes of operation for the | more in Section 6. There are two modes of operation for the | |||
| P-Routes, the Storing Mode and the Non-Storing Mode, see | P-Routes, the Storing Mode and the Non-Storing Mode, see | |||
| Section 6.4.2 and Section 6.4.3 respectively for more. | Section 6.4.2 and Section 6.4.3 respectively for more. | |||
| 4.1.3. Sibling Information Option | 4.1.4. Sibling Information Option | |||
| This specification adds another CMO called the Sibling Information | This specification adds another CMO called the Sibling Information | |||
| Option (SIO) that is used by a RPL Aware Node (RAN) to advertise a | Option (SIO) that is used by a RPL Aware Node (RAN) to advertise a | |||
| selection of its candidate neighbors as siblings to the Root, more in | selection of its candidate neighbors as siblings to the Root, more in | |||
| Section 5.4. The SIO is placed in DAO messages that are sent | Section 5.4. The SIO is placed in DAO messages that are sent | |||
| directly to the Root of the main DODAG. | directly to the Root of the main DODAG. | |||
| 4.1.4. P-DAO Request | 4.1.5. P-DAO Request | |||
| Two new RPL Control Messages are also introduced, to enable a RPL- | Two new RPL Control Messages are also introduced, to enable a RPL- | |||
| Aware Node to request the establishment of a Track between self as | Aware Node to request the establishment of a Track between self as | |||
| the Track Ingress Node and a Track Egress. The node makes its | the Track Ingress Node and a Track Egress. The node makes its | |||
| request by sending a new P-DAO Request (PDR) Message to the Root. | request by sending a new P-DAO Request (PDR) Message to the Root. | |||
| The Root confirms with a new PDR-ACK message back to the requester | The Root confirms with a new PDR-ACK message back to the requester | |||
| RAN, see Section 5.1 for more. | RAN, see Section 5.1 for more. | |||
| 4.1.5. Extending the RPI | 4.1.6. Extending the RPI | |||
| Sending a Packet within a RPL Local Instance requires the presence of | Sending a Packet within a RPL Local Instance requires the presence of | |||
| the abstract RPL Packet Information (RPI) described in section 11.2. | the abstract RPL Packet Information (RPI) described in section 11.2. | |||
| of [RPL] in the outer IPv6 Header chain (see [RFC9008]). The RPI | of [RPL] in the outer IPv6 Header chain (see [RFC9008]). The RPI | |||
| carries a local RPLInstanceID which, in association with either the | carries a local RPLInstanceID which, in association with either the | |||
| source or the destination address in the IPv6 Header, indicates the | source or the destination address in the IPv6 Header, indicates the | |||
| RPL Instance that the packet follows. | RPL Instance that the packet follows. | |||
| This specification extends [RPL] to create a new flag that signals | This specification extends [RPL] to create a new flag that signals | |||
| that a packet is forwarded along a P-Route. | that a packet is forwarded along a P-Route. | |||
| Projected-Route 'P': 1-bit flag. It is set to 1 in the RPI that is | Projected-Route 'P': 1-bit flag. It is set to 1 in the RPI that is | |||
| added in the encapsulation when a packet is sent over a Track. It | added in the encapsulation when a packet is sent over a Track. It | |||
| is set to 0 when a packet is forwarded along the main Track, | is set to 0 when a packet is forwarded along the main Track, | |||
| including when the packet follows a Segment that joins loose hops | including when the packet follows a Segment that joins loose hops | |||
| of the Main DODAG. The flag is not mutable en-route. | of the Main DODAG. The flag is not mutable en-route. | |||
| The encoding of the 'P' flag in native format is shown in Section 4.2 | The encoding of the 'P' flag in native format is shown in Section 4.2 | |||
| while the compressed format is indicated in Section 4.3. | while the compressed format is indicated in Section 4.3. | |||
| 4.1.6. Additional Flag in the RPL DODAG Configuration Option | 4.1.7. Additional Flag in the RPL DODAG Configuration Option | |||
| The DODAG Configuration Option is defined in Section 6.7.6 of [RPL]. | The DODAG Configuration Option is defined in Section 6.7.6 of [RPL]. | |||
| Its purpose is extended to distribute configuration information | Its purpose is extended to distribute configuration information | |||
| affecting the construction and maintenance of the DODAG, as well as | affecting the construction and maintenance of the DODAG, as well as | |||
| operational parameters for RPL on the DODAG, through the DODAG. This | operational parameters for RPL on the DODAG, through the DODAG. This | |||
| Option was originally designed with 4 bit positions reserved for | Option was originally designed with 4 bit positions reserved for | |||
| future use as Flags. | future use as Flags. | |||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Type = 0x04 |Opt Length = 14|D| | | |A| ... | | | Type = 0x04 |Opt Length = 14|D| | | |A| ... | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | |||
| |4 bits | | |4 bits | | |||
| Figure 9: DODAG Configuration Option (Partial View) | Figure 10: DODAG Configuration Option (Partial View) | |||
| This specification defines a new flag "Projected Routes Support" (D). | This specification defines a new flag "Projected Routes Support" (D). | |||
| The 'D' flag is encoded in bit position 0 of the reserved Flags in | The 'D' flag is encoded in bit position 0 of the reserved Flags in | |||
| the DODAG Configuration Option (this is the most significant bit)(to | the DODAG Configuration Option (this is the most significant bit)(to | |||
| be confirmed by IANA but there's little choice). It is set to 0 in | be confirmed by IANA but there's little choice). It is set to 0 in | |||
| legacy implementations as specified respectively in Sections 20.14 | legacy implementations as specified respectively in Sections 20.14 | |||
| and 6.7.6 of [RPL]. | and 6.7.6 of [RPL]. | |||
| The 'D' flag is set to 1 to indicate that this specification is | The 'D' flag is set to 1 to indicate that this specification is | |||
| enabled in the network and that the Root will install the requested | enabled in the network and that the Root will install the requested | |||
| skipping to change at page 39, line 26 ¶ | skipping to change at page 40, line 44 ¶ | |||
| Section 4.1.2. of [RFC9008] updates [RPL] to indicate that the | Section 4.1.2. of [RFC9008] updates [RPL] to indicate that the | |||
| definition of the Flags applies to Mode of Operation values from zero | definition of the Flags applies to Mode of Operation values from zero | |||
| (0) to six (6) only. For a MOP value of 7, the implementation MUST | (0) to six (6) only. For a MOP value of 7, the implementation MUST | |||
| consider that the Root accepts PDR messages and will install | consider that the Root accepts PDR messages and will install | |||
| Projected Routes. | Projected Routes. | |||
| The RPL DODAG Configuration option is typically placed in a DODAG | The RPL DODAG Configuration option is typically placed in a DODAG | |||
| Information Object (DIO) message. The DIO message propagates down | Information Object (DIO) message. The DIO message propagates down | |||
| the DODAG to form and then maintain its structure. The DODAG | the DODAG to form and then maintain its structure. The DODAG | |||
| Configuration option is copied unmodified from parents to children. | Configuration option is copied unmodified from parents to children. | |||
| xref target='RFC6550'/> states that: | ||||
| [RPL] states that: | ||||
| | Nodes other than the DODAG root MUST NOT modify this information | | Nodes other than the DODAG root MUST NOT modify this information | |||
| | when propagating the DODAG Configuration option. | | when propagating the DODAG Configuration option. | |||
| Therefore, a legacy parent propagates the 'D' flag as set by the | Therefore, a legacy parent propagates the 'D' flag as set by the | |||
| root, and when the 'D' flag is set to 1, it is transparently flooded | root, and when the 'D' flag is set to 1, it is transparently flooded | |||
| to all the nodes in the DODAG. | to all the nodes in the DODAG. | |||
| 4.2. Extending RFC 6553 | 4.2. Extending RFC 6553 | |||
| skipping to change at page 40, line 15 ¶ | skipping to change at page 41, line 29 ¶ | |||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Option Type | Opt Data Len | | | Option Type | Opt Data Len | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| |O|R|F|P|0|0|0|0| RPLInstanceID | SenderRank | | |O|R|F|P|0|0|0|0| RPLInstanceID | SenderRank | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | (sub-TLVs) | | | (sub-TLVs) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 10: Extended RPL Option Format | Figure 11: Extended RPL Option Format | |||
| Option Type: 0x23 or 0x63, see [RFC9008] | Option Type: 0x23 or 0x63, see [RFC9008] | |||
| Opt Data Len: See [RFC6553] | Opt Data Len: See [RFC6553] | |||
| 'O', 'R' and 'F' flags: See [RFC6553]. Those flags MUST be set to 0 | 'O', 'R' and 'F' flags: See [RFC6553]. Those flags MUST be set to 0 | |||
| by the sender and ignored by the receiver if the 'P' flag is set. | by the sender and ignored by the receiver if the 'P' flag is set. | |||
| Projected-Route 'P': 1-bit flag as defined in Section 4.1.5. | Projected-Route 'P': 1-bit flag as defined in Section 4.1.6. | |||
| RPLInstanceID: See [RFC6553]. Indicates the TrackId if the 'P' flag | RPLInstanceID: See [RFC6553]. Indicates the TrackId if the 'P' flag | |||
| is set, as discussed in Section 4.1.1. | is set, as discussed in Section 4.1.1. | |||
| SenderRank: See [RFC6553]. This field MUST be set to 0 by the | SenderRank: See [RFC6553]. This field MUST be set to 0 by the | |||
| sender and ignored by the receiver if the 'P'flag is set. | sender and ignored by the receiver if the 'P'flag is set. | |||
| 4.3. Extending RFC 8138 | 4.3. Extending RFC 8138 | |||
| The 6LoWPAN Routing Header [RFC8138] specification introduces a new | The 6LoWPAN Routing Header [RFC8138] specification introduces a new | |||
| skipping to change at page 41, line 34 ¶ | skipping to change at page 42, line 43 ¶ | |||
| The P-RPI-6LoRH is designed to compress the RPI along RPL P-Routes. | The P-RPI-6LoRH is designed to compress the RPI along RPL P-Routes. | |||
| Its format is as follows: | Its format is as follows: | |||
| 0 1 2 | 0 1 2 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| |1|0|E| Length | 6LoRH Type | RPLInstanceID | | |1|0|E| Length | 6LoRH Type | RPLInstanceID | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 11: P-RPI-6LoRH Format | Figure 12: P-RPI-6LoRH Format | |||
| Type: IANA is requested to define the same value of the type for | Type: IANA is requested to define the same value of the type for | |||
| both Elective and Critical forms. A type of 8 is suggested. | both Elective and Critical forms. A type of 8 is suggested. | |||
| Elective 'E': See [RFC8138]. The 'E' flag is set to 1 to indicate | Elective 'E': See [RFC8138]. The 'E' flag is set to 1 to indicate | |||
| an Elective 6LoRH, meaning that it can be ignored when forwarding. | an Elective 6LoRH, meaning that it can be ignored when forwarding. | |||
| RPLInstanceID : In the context of this specification, the | RPLInstanceID : In the context of this specification, the | |||
| RPLInstanceID field signals the TrackID, see Section 3.4 and | RPLInstanceID field signals the TrackID, see Section 3.4 and | |||
| Section 6.3 . | Section 6.3 . | |||
| skipping to change at page 42, line 4 ¶ | skipping to change at page 43, line 12 ¶ | |||
| RPLInstanceID : In the context of this specification, the | RPLInstanceID : In the context of this specification, the | |||
| RPLInstanceID field signals the TrackID, see Section 3.4 and | RPLInstanceID field signals the TrackID, see Section 3.4 and | |||
| Section 6.3 . | Section 6.3 . | |||
| Section 6.8 details how a a Track Ingress leverages the P-RPI-6LoRH | Section 6.8 details how a a Track Ingress leverages the P-RPI-6LoRH | |||
| Header as part of the encapsulation of a packet to place it into a | Header as part of the encapsulation of a packet to place it into a | |||
| Track. | Track. | |||
| 5. New RPL Control Messages and Options | 5. New RPL Control Messages and Options | |||
| 5.1. New P-DAO Request Control Message | 5.1. New P-DAO Request Control Message | |||
| The P-DAO Request (PDR) message is sent by a Node in the Main DODAG | The P-DAO Request (PDR) message is sent by a Node in the Main DODAG | |||
| to the Root. It is a request to establish or refresh a Track where | to the Root. It is a request to establish or refresh a Track where | |||
| this node is Track Ingress, and signals whether an acknowledgment | this node is Track Ingress, and signals whether an acknowledgment | |||
| called PDR-ACK is requested or not. A positive PDR-ACK indicates | called PDR-ACK is requested or not. A positive PDR-ACK indicates | |||
| that the Track was built and that the Roots commits to maintain the | that the Track was built and that the Roots commits to maintain the | |||
| Track for the negotiated lifetime. | Track for the negotiated lifetime. | |||
| The Root may use an asynchronous PDR-ACK with an negative status to | The main Root MAY indicate to the Track Ingress that the Track was | |||
| indicate that the Track was terminated before its time. A status of | terminated before its time and to do so, it MUST uses an asynchronous | |||
| "Transient Failure" (see Section 11.10) is an indication that the PDR | PDR-ACK with an negative status. A status of "Transient Failure" | |||
| may be retried after a reasonable time that depends on the | (see Section 11.10) is an indication that the PDR may be retried | |||
| deployment. Other negative status values indicate a permanent error; | after a reasonable time that depends on the deployment. Other | |||
| the tentative must be abandoned until a corrective action is taken at | negative status values indicate a permanent error; the tentative must | |||
| the application layer or through network management. | be abandoned until a corrective action is taken at the application | |||
| layer or through network management. | ||||
| The source IPv6 address of the PDR signals the Track Ingress to-be of | The source IPv6 address of the PDR signals the Track Ingress to-be of | |||
| the requested Track, and the TrackID is indicated in the message | the requested Track, and the TrackID is indicated in the message | |||
| itself. One and only one RPL Target Option MUST be present in the | itself. One and only one RPL Target Option MUST be present in the | |||
| message. The RTO signals the Track Egress, more in Section 6.2. | message. The RTO signals the Track Egress, more in Section 6.2. | |||
| The RPL Control Code for the PDR is 0x09, to be confirmed by IANA. | The RPL Control Code for the PDR is 0x09, to be confirmed by IANA. | |||
| The format of PDR Base Object is as follows: | The format of PDR Base Object is as follows: | |||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | TrackID |K|R| Flags | ReqLifetime | PDRSequence | | | TrackID |K|R| Flags | ReqLifetime | PDRSequence | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Option(s)... | | Option(s)... | |||
| +-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
| Figure 12: New P-DAO Request Format | Figure 13: New P-DAO Request Format | |||
| TrackID: 8-bit field. In the context of this specification, the | TrackID: 8-bit field. In the context of this specification, the | |||
| TrackID field signals the RPLInstanceID of the DODAG formed by the | TrackID field signals the RPLInstanceID of the DODAG formed by the | |||
| Track, see Section 3.4 and Section 6.3. To allocate a new Track, | Track, see Section 3.4 and Section 6.3. To allocate a new Track, | |||
| the Ingress Node must provide a value that is not in use at this | the Ingress Node must provide a value that is not in use at this | |||
| time. | time. | |||
| K: The 'K' flag is set to indicate that the recipient is expected to | K: The 'K' flag is set to indicate that the recipient is expected to | |||
| send a PDR-ACK back. | send a PDR-ACK back. | |||
| skipping to change at page 43, line 35 ¶ | skipping to change at page 44, line 47 ¶ | |||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | TrackID | Flags | Track Lifetime| PDRSequence | | | TrackID | Flags | Track Lifetime| PDRSequence | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | PDR-ACK Status| Reserved | | | PDR-ACK Status| Reserved | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Option(s)... | | Option(s)... | |||
| +-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+ | |||
| Figure 13: New PDR-ACK Control Message Format | Figure 14: New PDR-ACK Control Message Format | |||
| TrackID: Set to the TrackID indicated in the TrackID field of the | TrackID: Set to the TrackID indicated in the TrackID field of the | |||
| PDR messages that this replies to. | PDR messages that this replies to. | |||
| Flags: Reserved. The Flags field MUST initialized to zero by the | Flags: Reserved. The Flags field MUST initialized to zero by the | |||
| sender and MUST be ignored by the receiver | sender and MUST be ignored by the receiver | |||
| Track Lifetime: Indicates that remaining Lifetime for the Track, | Track Lifetime: Indicates that remaining Lifetime for the Track, | |||
| expressed in Lifetime Units; the value of zero (0x00) indicates | expressed in Lifetime Units; the value of zero (0x00) indicates | |||
| that the Track was destroyed or not created. | that the Track was destroyed or not created. | |||
| PDRSequence: 8-bit wrapping sequence number. It is incremented at | PDRSequence: 8-bit wrapping sequence number. It is incremented at | |||
| each PDR message and echoed in the PDR-ACK. | each PDR message and echoed in the PDR-ACK. | |||
| PDR-ACK Status: 8-bit field indicating the completion. The PDR-ACK | PDR-ACK Status: 8-bit field indicating the completion. The PDR-ACK | |||
| Status is substructured as indicated in Figure 14: | Status is substructured as indicated in Figure 15: | |||
| 0 1 2 3 4 5 6 7 | 0 1 2 3 4 5 6 7 | |||
| +-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
| |E|R| Value | | |E|R| Value | | |||
| +-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
| Figure 14: PDR-ACK status Format | Figure 15: PDR-ACK status Format | |||
| E: 1-bit flag. Set to indicate a rejection. When not set, the | E: 1-bit flag. Set to indicate a rejection. When not set, the | |||
| value of 0 indicates Success/Unqualified Acceptance and other | value of 0 indicates Success/Unqualified Acceptance and other | |||
| values indicate "not an outright rejection". | values indicate "not an outright rejection". | |||
| R: 1-bit flag. Reserved, MUST be set to 0 by the sender and | R: 1-bit flag. Reserved, MUST be set to 0 by the sender and | |||
| ignored by the receiver. | ignored by the receiver. | |||
| Status Value: 6-bit unsigned integer. Values depending on the | Status Value: 6-bit unsigned integer. Values depending on the | |||
| setting of the 'E' flag, see Table 28 and Table 29. | setting of the 'E' flag, see Table 28 and Table 29. | |||
| Reserved: The Reserved field MUST initialized to zero by the sender | Reserved: The Reserved field MUST initialized to zero by the sender | |||
| skipping to change at page 44, line 43 ¶ | skipping to change at page 46, line 8 ¶ | |||
| Lifetime of zero is referred as a No-Path P-DAO. | Lifetime of zero is referred as a No-Path P-DAO. | |||
| The VIO contains one or more SRH-6LoRH header(s), each formed of a | The VIO contains one or more SRH-6LoRH header(s), each formed of a | |||
| SRH-6LoRH head and a collection of compressed Via Addresses, except | SRH-6LoRH head and a collection of compressed Via Addresses, except | |||
| in the case of a Non-Storing Mode No-Path P-DAO where the SRH-6LoRH | in the case of a Non-Storing Mode No-Path P-DAO where the SRH-6LoRH | |||
| header is not present. | header is not present. | |||
| In the case of a SM-VIO, or if [RFC8138] is not used in the data | In the case of a SM-VIO, or if [RFC8138] is not used in the data | |||
| packets, then the Root MUST use only one SRH-6LoRH per Via | packets, then the Root MUST use only one SRH-6LoRH per Via | |||
| Information Option, and the compression is the same forall the | Information Option, and the compression is the same forall the | |||
| addresses, as shown in Figure 15, for simplicity. | addresses, as shown in Figure 16, for simplicity. | |||
| In case of an NSM-VIO and if [RFC8138] is in use in the Main DODAG, | In case of an NSM-VIO and if [RFC8138] is in use in the Main DODAG, | |||
| the Root SHOULD optimize the size of the NSM-VIO if using different | the Root SHOULD optimize the size of the NSM-VIO if using different | |||
| SRH-6LoRH Types make the VIO globally shorter; this means that more | SRH-6LoRH Types make the VIO globally shorter; this means that more | |||
| than one SRH-6LoRH may be present. | than one SRH-6LoRH may be present. | |||
| The format of the Via Information Options is as follows: | The format of the Via Information Options is as follows: | |||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| skipping to change at page 45, line 29 ¶ | skipping to change at page 46, line 41 ¶ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | | |||
| . Via Address n (compressed by RFC 8138) . | . Via Address n (compressed by RFC 8138) . | |||
| | | | | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | | |||
| . Additional SRH-6LoRH Header(s) . | . Additional SRH-6LoRH Header(s) . | |||
| | | | | | | |||
| . .... . | . .... . | |||
| Figure 15: VIO format (uncompressed form) | Figure 16: VIO format (uncompressed form) | |||
| Option Type: 0x0E for SM-VIO, 0x0F for NSM-VIO (to be confirmed by | Option Type: 0x0E for SM-VIO, 0x0F for NSM-VIO (to be confirmed by | |||
| IANA), see =Table 26 | IANA), see =Table 26 | |||
| Option Length: 8-bit unsigned integer, representing the length in | Option Length: 8-bit unsigned integer, representing the length in | |||
| octets of the option, not including the Option Type and Length | octets of the option, not including the Option Type and Length | |||
| fields, see section 6.7.1. of [RPL]; the Option Length is | fields, see section 6.7.1. of [RPL]; the Option Length is | |||
| variable, depending on the number of Via Addresses and the | variable, depending on the number of Via Addresses and the | |||
| compression applied. | compression applied. | |||
| skipping to change at page 47, line 23 ¶ | skipping to change at page 48, line 35 ¶ | |||
| The Sibling Information Option (SIO) provides indication on siblings | The Sibling Information Option (SIO) provides indication on siblings | |||
| that could be used by the Root to form P-Routes. One or more SIO(s) | that could be used by the Root to form P-Routes. One or more SIO(s) | |||
| may be placed in the DAO messages that are sent to the Root in Non- | may be placed in the DAO messages that are sent to the Root in Non- | |||
| Storing Mode. | Storing Mode. | |||
| To advertise a neighbor node, the router MUST have an active Address | To advertise a neighbor node, the router MUST have an active Address | |||
| Registration from that sibling using [RFC8505], for an address (ULA | Registration from that sibling using [RFC8505], for an address (ULA | |||
| or GUA) that serves as identifier for the node. If this router also | or GUA) that serves as identifier for the node. If this router also | |||
| registers an address to that sibling, and the link has similar | registers an address to that sibling, and the link has similar | |||
| properties in both directions, only the router with the lowest | properties in both directions, only the router with the lowest | |||
| Interface ID in its registered address needs report the SIO, and the | Interface ID in its registered address needs report the SIO, with the | |||
| Root will assume symmetry. | B flag set, and the Root will assume symmetry. | |||
| The format of the SIO is as follows: | The format of the SIO is as follows: | |||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Type | Option Length |S| Flags |Comp.| Opaque | | | Type | Option Length |S|B|Flags|Comp.| Opaque | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Step in Rank | Reserved | | | Step in Rank | Reserved | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | | |||
| + + | + + | |||
| . . | . . | |||
| . Sibling DODAGID (if the D flag not set) . | . Sibling DODAGID (if the D flag not set) . | |||
| . . | . . | |||
| + + | + + | |||
| | | | | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | | |||
| + + | + + | |||
| . . | . . | |||
| . Sibling Address . | . Sibling Address . | |||
| . . | . . | |||
| + + | + + | |||
| | | | | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 16: Sibling Information Option Format | Figure 17: Sibling Information Option Format | |||
| Option Type: 0x10 for SIO (to be confirmed by IANA), see =Table 26 | Option Type: 0x10 for SIO (to be confirmed by IANA), see =Table 26 | |||
| Option Length: 8-bit unsigned integer, representing the length in | Option Length: 8-bit unsigned integer, representing the length in | |||
| octets of the option, not including the Option Type and Length | octets of the option, not including the Option Type and Length | |||
| fields, see section 6.7.1. of [RPL]. | fields, see section 6.7.1. of [RPL]. | |||
| Reserved for Flags: MUST be set to zero by the sender and MUST be | Reserved for Flags: MUST be set to zero by the sender and MUST be | |||
| ignored by the receiver. | ignored by the receiver. | |||
| B: 1-bit flag that is set to indicate that the connectivity to the | ||||
| sibling is bidirectional and roughly symmetrical. In that case, | ||||
| only one of the siblings may report the SIO for the hop. If 'B' | ||||
| is not set then the SIO only indicates connectivity from the | ||||
| sibling to this node, and does not provide information on the hop | ||||
| from this node to the sibling. | ||||
| S: 1-bit flag that is set to indicate that sibling belongs to the | S: 1-bit flag that is set to indicate that sibling belongs to the | |||
| same DODAG. When not set, the Sibling DODAGID is indicated. | same DODAG. When not set, the Sibling DODAGID is indicated. | |||
| Flags: Reserved. The Flags field MUST initialized to zero by the | Flags: Reserved. The Flags field MUST initialized to zero by the | |||
| sender and MUST be ignored by the receiver | sender and MUST be ignored by the receiver | |||
| Opaque: MAY be used to carry information that the node and the Root | Opaque: MAY be used to carry information that the node and the Root | |||
| understand, e.g., a particular representation of the Link | understand, e.g., a particular representation of the Link | |||
| properties such as a proprietary Link Quality Information for | properties such as a proprietary Link Quality Information for | |||
| packets received from the sibling. An industrial Alliance that | packets received from the sibling. An industrial Alliance that | |||
| skipping to change at page 49, line 43 ¶ | skipping to change at page 51, line 28 ¶ | |||
| The PDR signals the desired TrackID and the duration for which the | The PDR signals the desired TrackID and the duration for which the | |||
| Track should be established. Upon a PDR, the Root MAY install the | Track should be established. Upon a PDR, the Root MAY install the | |||
| Track as requested, in which case it answers with a PDR-ACK | Track as requested, in which case it answers with a PDR-ACK | |||
| indicating the granted Track Lifetime. All the Segments MUST be of a | indicating the granted Track Lifetime. All the Segments MUST be of a | |||
| same mode, either Storing or Non-Storing. All the Segments MUST be | same mode, either Storing or Non-Storing. All the Segments MUST be | |||
| created with the same TrackID and the same DODAGID signaled in the | created with the same TrackID and the same DODAGID signaled in the | |||
| P-DAO. | P-DAO. | |||
| The Root designs the Track as it sees best, and updates / changes the | The Root designs the Track as it sees best, and updates / changes the | |||
| Segments overtime to serve the Track as needed. There is no | Segments overtime to serve the Track as needed. Note that there is | |||
| notification to the requesting node when those changes happen. The | no protocol element to notify to the requesting Track Ingress when | |||
| Segment Lifetime in the P-DAO messages does not need to be aligned to | changes happen deeper down the Track, so they are transparent to the | |||
| the Requested Lifetime in the PDR, or between P-DAO messages for | Track Ingress. If the main Root cannot maintain an expected service | |||
| level, then it needs to tear down the Track completely. The Segment | ||||
| Lifetime in the P-DAO messages does not need to be aligned to the | ||||
| Requested Lifetime in the PDR, or between P-DAO messages for | ||||
| different Segments. The Root may use shorter lifetimes for the | different Segments. The Root may use shorter lifetimes for the | |||
| Segments and renew them faster than the Track is, or longer lifetimes | Segments and renew them faster than the Track is, or longer lifetimes | |||
| in which case it will need to tear down the Segments if the Track is | in which case it will need to tear down the Segments if the Track is | |||
| not renewed. | not renewed. | |||
| When the Track Lifetime that was returned in the PDR-ACK is close to | When the Track Lifetime that was returned in the PDR-ACK is close to | |||
| elapse - vs. the trip time from the node to the Root, the requesting | elapse - vs. the trip time from the node to the Root, the requesting | |||
| node SHOULD resend a PDR using the TrackID in the PDR-ACK to extend | node SHOULD resend a PDR using the TrackID in the PDR-ACK to extend | |||
| the lifetime of the Track, else the Track will time out and the Root | the lifetime of the Track, else the Track will time out and the Root | |||
| will tear down the whole structure. | will tear down the whole structure. | |||
| skipping to change at page 51, line 14 ¶ | skipping to change at page 52, line 48 ¶ | |||
| This way, a Track is uniquely identified by the tuple (DODAGID, | This way, a Track is uniquely identified by the tuple (DODAGID, | |||
| TrackID) where the TrackID is always represented with the D flag | TrackID) where the TrackID is always represented with the D flag | |||
| set to 0 (see also section 5.1. of [RPL]), indicating when used in | set to 0 (see also section 5.1. of [RPL]), indicating when used in | |||
| an RPI that the source address of the IPv6 packet signals the | an RPI that the source address of the IPv6 packet signals the | |||
| DODAGID. | DODAGID. | |||
| The P-DAO Base Object MUST indicate the tuple (DODAGID, TrackID) | The P-DAO Base Object MUST indicate the tuple (DODAGID, TrackID) | |||
| that identifies the Track as shown in Figure 8, and the P-RouteID | that identifies the Track as shown in Figure 8, and the P-RouteID | |||
| that identifies the P-Route MUST be signaled in the VIO as shown | that identifies the P-Route MUST be signaled in the VIO as shown | |||
| in Figure 15. | in Figure 16. | |||
| The Track Ingress is the Root of the DODAG ID formed by the local | The Track Ingress is the Root of the DODAG ID formed by the local | |||
| RPL Instance. It owns the namespace of its TrackIDs, so it can | RPL Instance. It owns the namespace of its TrackIDs, so it can | |||
| pick any unused value to request a new Track with a PDR. In a | pick any unused value to request a new Track with a PDR. In a | |||
| particular deployment where PDR are not used, the namespace can be | particular deployment where PDR are not used, a portion of the | |||
| delegated to the main Root, which can assign the TrackIDs for the | namespace can be administratively delegated to the main Root, | |||
| Tracks it creates without collision. | meaning that the main Root is authoritative for assigning the | |||
| TrackIDs for the Tracks it creates. | ||||
| With this specification, the Root is aware of all the active | With this specification, the Root is aware of all the active | |||
| Tracks, so it can also pick any unused value to form Tracks | Tracks, so it can also pick any unused value to form Tracks | |||
| without a PDR. To avoid a collision of the Root and the Track | without a PDR. To avoid a collision of the Root and the Track | |||
| Ingress picking the same value at the same time, it is RECOMMENDED | Ingress picking the same value at the same time, it is RECOMMENDED | |||
| that the Track Ingress starts allocating the ID value of the Local | that the Track Ingress starts allocating the ID value of the Local | |||
| RPLInstanceID (see section 5.1. of [RPL]) used as TrackIDs with | RPLInstanceID (see section 5.1. of [RPL]) used as TrackIDs with | |||
| the value 0 incrementing, while the Root starts with 63 | the value 0 incrementing, while the Root starts with 63 | |||
| decrementing. | decrementing. | |||
| skipping to change at page 53, line 36 ¶ | skipping to change at page 55, line 31 ¶ | |||
| In a No-Path Non-Storing Mode P-DAO, the SRH-6LoRH MUST NOT be | In a No-Path Non-Storing Mode P-DAO, the SRH-6LoRH MUST NOT be | |||
| present in the NSM-VIO; the state in the Ingress is erased | present in the NSM-VIO; the state in the Ingress is erased | |||
| regardless. In all other cases, a VIO MUST contain at least one Via | regardless. In all other cases, a VIO MUST contain at least one Via | |||
| Address, and a Via Address MUST NOT be present more than once, which | Address, and a Via Address MUST NOT be present more than once, which | |||
| would create a loop. | would create a loop. | |||
| A node that processes a VIO MAY verify whether one of these | A node that processes a VIO MAY verify whether one of these | |||
| conditions happen, and when so, it MUST ignore the P-DAO and reject | conditions happen, and when so, it MUST ignore the P-DAO and reject | |||
| it with a RPL Rejection Status of "Error in VIO" in the DAO-ACK, see | it with a RPL Rejection Status of "Error in VIO" in the DAO-ACK, see | |||
| Section 11.15. | Section 11.16. | |||
| Other errors than those discussed explicitely that prevent the | Other errors than those discussed explicitely that prevent the | |||
| installing the route are acknowledged with a RPL Rejection Status of | installing the route are acknowledged with a RPL Rejection Status of | |||
| "Unqualified Rejection" in the DAO-ACK. | "Unqualified Rejection" in the DAO-ACK. | |||
| 6.4.2. Installing a Track Segment with a Storing Mode P-Route | 6.4.2. Installing a Track Segment with a Storing Mode P-Route | |||
| As illustrated in Figure 17, a Storing Mode P-DAO installs a route | As illustrated in Figure 18, a Storing Mode P-DAO installs a route | |||
| along the Segment signaled by the SM-VIO towards the Targets | along the Segment signaled by the SM-VIO towards the Targets | |||
| indicated in the Target Options. The Segment is to be included in a | indicated in the Target Options. The Segment is to be included in a | |||
| DODAG indicated by the P-DAO Base Object, that may be the one formed | DODAG indicated by the P-DAO Base Object, that may be the one formed | |||
| by the RPL Main DODAG, or a Track associated with a local RPL | by the RPL Main DODAG, or a Track associated with a local RPL | |||
| Instance. | Instance. | |||
| ------+--------- | ------+--------- | |||
| | Internet | | Internet | |||
| | | | | |||
| +-----+ | +-----+ | |||
| skipping to change at page 54, line 22 ¶ | skipping to change at page 56, line 22 ¶ | |||
| | | DAO | ACK | | | | DAO | ACK | | |||
| o o o o | | | | o o o o | | | | |||
| o o o o o o o o o | ^ | Projected . | o o o o o o o o o | ^ | Projected . | |||
| o o o o o o o o o o | | DAO | Route . | o o o o o o o o o o | | DAO | Route . | |||
| o o o o o o o o o | ^ | . | o o o o o o o o o | ^ | . | |||
| o o o o o o o o v | DAO v . | o o o o o o o o v | DAO v . | |||
| o o LLN o o o | | o o LLN o o o | | |||
| o o o o o Loose Source Route Path | | o o o o o Loose Source Route Path | | |||
| o o o o v | o o o o v | |||
| Figure 17: Projecting a route | Figure 18: Projecting a route | |||
| In order to install the relevant routing state along the Segment , | In order to install the relevant routing state along the Segment , | |||
| the Root sends a unicast P-DAO message to the Track Egress router of | the Root sends a unicast P-DAO message to the Track Egress router of | |||
| the routing Segment that is being installed. The P-DAO message | the routing Segment that is being installed. The P-DAO message | |||
| contains a SM-VIO with the strict sequence of Via Addresses. The SM- | contains a SM-VIO with the strict sequence of Via Addresses. The SM- | |||
| VIO follows one or more RTOs indicating the Targets to which the | VIO follows one or more RTOs indicating the Targets to which the | |||
| Track leads. The SM-VIO contains a Segment Lifetime for which the | Track leads. The SM-VIO contains a Segment Lifetime for which the | |||
| state is to be maintained. | state is to be maintained. | |||
| The Root sends the P-DAO directly to the Egress node of the Segment. | The Root sends the P-DAO directly to the Egress node of the Segment. | |||
| skipping to change at page 55, line 34 ¶ | skipping to change at page 57, line 34 ¶ | |||
| The process continues till the P-DAO is propagated to Ingress router | The process continues till the P-DAO is propagated to Ingress router | |||
| of the Segment, which answers with a DAO-ACK to the Root. The Root | of the Segment, which answers with a DAO-ACK to the Root. The Root | |||
| always expects a DAO-ACK, either from the Track Ingress with a | always expects a DAO-ACK, either from the Track Ingress with a | |||
| positive status or from any node along the segment with a negative | positive status or from any node along the segment with a negative | |||
| status. If the DAO-ACK is not received, the Root may retry the DAO | status. If the DAO-ACK is not received, the Root may retry the DAO | |||
| with the same TID, or tear down the route. | with the same TID, or tear down the route. | |||
| 6.4.3. Installing a Track Leg with a Non-Storing Mode P-Route | 6.4.3. Installing a Track Leg with a Non-Storing Mode P-Route | |||
| As illustrated in Figure 18, a Non-Storing Mode P-DAO installs a | As illustrated in Figure 19, a Non-Storing Mode P-DAO installs a | |||
| source-routed path within the Track indicated by the P-DAO Base | source-routed path within the Track indicated by the P-DAO Base | |||
| Object, towards the Targets indicated in the Target Options. The | Object, towards the Targets indicated in the Target Options. The | |||
| source-routed path requires a Source-Routing header which implies an | source-routed path requires a Source-Routing header which implies an | |||
| IP-in-IP encapsulation to add the SRH to an existing packet. It is | IP-in-IP encapsulation to add the SRH to an existing packet. It is | |||
| sent to the Track Ingress which creates a tunnel associated with the | sent to the Track Ingress which creates a tunnel associated with the | |||
| Track, and connected routes over the tunnel to the Targets in the | Track, and connected routes over the tunnel to the Targets in the | |||
| RTO. The tunnel encapsulation MUST incorporate a routing header via | RTO. The tunnel encapsulation MUST incorporate a routing header via | |||
| the list addresses listed in the VIO in the same order. The content | the list addresses listed in the VIO in the same order. The content | |||
| of the NSM-VIO starting at the first SRH-6LoRH header MUST be used | of the NSM-VIO starting at the first SRH-6LoRH header MUST be used | |||
| verbatim by the Track Ingress when it encapsulates a packet to | verbatim by the Track Ingress when it encapsulates a packet to | |||
| skipping to change at page 56, line 23 ¶ | skipping to change at page 58, line 23 ¶ | |||
| o o o o Ingress X V | X | o o o o Ingress X V | X | |||
| o o o o o o o X o X Source | o o o o o o o X o X Source | |||
| o o o o o o o o X o o X Routed | o o o o o o o o X o o X Routed | |||
| o o ° o o o o X o X Segment | o o ° o o o o X o X Segment | |||
| o o o o o o o o X Egress X | o o o o o o o o X Egress X | |||
| o o o o o | | o o o o o | | |||
| Target | Target | |||
| o o LLN o o | o o LLN o o | |||
| o o o o | o o o o | |||
| Figure 18: Projecting a Non-Storing Route | Figure 19: Projecting a Non-Storing Route | |||
| The next entry in the source-routed path must be either a neighbor of | The next entry in the source-routed path must be either a neighbor of | |||
| the previous entry, or reachable as a Target via another P-Route, | the previous entry, or reachable as a Target via another P-Route, | |||
| either Storing or Non-Storing, which implies that the nested P-Route | either Storing or Non-Storing, which implies that the nested P-Route | |||
| has to be installed before the loose sequence is, and that P-Routes | has to be installed before the loose sequence is, and that P-Routes | |||
| must be installed from the last to the first along the datapath. For | must be installed from the last to the first along the datapath. For | |||
| instance, a Segment of a Track must be installed before the Leg(s) of | instance, a Segment of a Track must be installed before the Leg(s) of | |||
| the same Track that use it, and stitched Segments must be installed | the same Track that use it, and stitched Segments must be installed | |||
| in order from the last that reaches to the Targets to the first. | in order from the last that reaches to the Targets to the first. | |||
| skipping to change at page 61, line 14 ¶ | skipping to change at page 63, line 14 ¶ | |||
| * When a Track Egress extracts a packet from a Track (decapsulates | * When a Track Egress extracts a packet from a Track (decapsulates | |||
| the packet), the destination of the inner packet must be either | the packet), the destination of the inner packet must be either | |||
| this node or a direct neighbor, or a Target of another Segment of | this node or a direct neighbor, or a Target of another Segment of | |||
| the same Track for which this node is Ingress, otherwise the | the same Track for which this node is Ingress, otherwise the | |||
| packet MUST be dropped. | packet MUST be dropped. | |||
| In case of a failure forwarding a packet along a Segment, e.g., the | In case of a failure forwarding a packet along a Segment, e.g., the | |||
| next hop is unreachable, the node that discovers the fault MUST send | next hop is unreachable, the node that discovers the fault MUST send | |||
| an ICMPv6 Error message [RFC4443] to the Root, with a new Code "Error | an ICMPv6 Error message [RFC4443] to the Root, with a new Code "Error | |||
| in P-Route" (See Section 11.14). The Root can then repair by | in P-Route" (See Section 11.15). The Root can then repair by | |||
| updating the broken Segment and/or Tracks, and in the case of a | updating the broken Segment and/or Tracks, and in the case of a | |||
| broken Segment, remove the leftover sections of the segment using SM- | broken Segment, remove the leftover sections of the segment using SM- | |||
| VIOs with a lifetime of 0 indicating the section ot one or more nodes | VIOs with a lifetime of 0 indicating the section ot one or more nodes | |||
| being removed (See Section 6.6). | being removed (See Section 6.6). | |||
| In case of a permanent forwarding error along a Source Route path, | In case of a permanent forwarding error along a Source Route path, | |||
| the node that fails to forward SHOULD send an ICMP error with a code | the node that fails to forward SHOULD send an ICMP error with a code | |||
| "Error in Source Routing Header" back to the source of the packet, as | "Error in Source Routing Header" back to the source of the packet, as | |||
| described in section 11.2.2.3. of [RPL]. Upon this message, the | described in section 11.2.2.3. of [RPL]. Upon this message, the | |||
| encapsulating node SHOULD stop using the source route path for a | encapsulating node SHOULD stop using the source route path for a | |||
| skipping to change at page 61, line 47 ¶ | skipping to change at page 63, line 47 ¶ | |||
| this hop of the RH SHOULD be consumed by this node so that the | this hop of the RH SHOULD be consumed by this node so that the | |||
| destination in the IPv6 header is the next hop that this node could | destination in the IPv6 header is the next hop that this node could | |||
| not reach. if a 6LoWPAN Routing Header (6LoRH) [RFC8138] is used to | not reach. if a 6LoWPAN Routing Header (6LoRH) [RFC8138] is used to | |||
| carry the IPv6 routing information in the outer header then that | carry the IPv6 routing information in the outer header then that | |||
| whole 6LoRH information SHOULD be present in the ICMP message. | whole 6LoRH information SHOULD be present in the ICMP message. | |||
| 6.8. Compression of the RPL Artifacts | 6.8. Compression of the RPL Artifacts | |||
| When using [RFC8138] in the Main DODAG operated in Non-Storing Mode | When using [RFC8138] in the Main DODAG operated in Non-Storing Mode | |||
| in a 6LoWPAN LLN, a typical packet that circulates in the Main DODAG | in a 6LoWPAN LLN, a typical packet that circulates in the Main DODAG | |||
| is formatted as shown in Figure 19, representing the case where : | is formatted as shown in Figure 20, representing the case where : | |||
| +-+ ... -+- ... -+- ... -+-+- ... +-+-+-+ ... +-+-+ ... -+ ... +-... | +-+ ... -+- ... -+- ... -+-+- ... +-+-+-+ ... +-+-+ ... -+ ... +-... | |||
| |11110001| SRH- | RPI- | IP-in-IP | NH=1 |11110CPP| UDP | UDP | |11110001| SRH- | RPI- | IP-in-IP | NH=1 |11110CPP| UDP | UDP | |||
| | Page 1 | 6LoRH | 6LoRH | 6LoRH |LOWPAN_IPHC| UDP | hdr |Payld | | Page 1 | 6LoRH | 6LoRH | 6LoRH |LOWPAN_IPHC| UDP | hdr |Payld | |||
| +-+ ... -+- ... -+- ... -+-+- ... +-+-+-+ ... +-+-+ ... -+ ... +-... | +-+ ... -+- ... -+- ... -+-+- ... +-+-+-+ ... +-+-+ ... -+ ... +-... | |||
| <= RFC 6282 => | <= RFC 6282 => | |||
| <================ Inner packet ==================== = = | <================ Inner packet ==================== = = | |||
| Figure 19: A Packet as Forwarded along the Main DODAG | Figure 20: A Packet as Forwarded along the Main DODAG | |||
| Since there is no page switch between the encapsulated packet and the | Since there is no page switch between the encapsulated packet and the | |||
| encapsulation, the first octet of the compressed packet that acts as | encapsulation, the first octet of the compressed packet that acts as | |||
| page selector is actually removed at encapsulation, so the inner | page selector is actually removed at encapsulation, so the inner | |||
| packet used in the descriptions below start with the SRH-6LoRH, and | packet used in the descriptions below start with the SRH-6LoRH, and | |||
| is verbatim the packet represented in Figure 19 from the second octet | is verbatim the packet represented in Figure 20 from the second octet | |||
| on. | on. | |||
| When encapsulating that inner packet to place it in the Track, the | When encapsulating that inner packet to place it in the Track, the | |||
| first header that the Ingress appends at the head of the inner packet | first header that the Ingress appends at the head of the inner packet | |||
| is an IP-in-IP 6LoRH Header; in that header, the encapsulator | is an IP-in-IP 6LoRH Header; in that header, the encapsulator | |||
| address, which maps to the IPv6 source address in the uncompressed | address, which maps to the IPv6 source address in the uncompressed | |||
| form, contains a GUA or ULA IPv6 address of the Ingress node that | form, contains a GUA or ULA IPv6 address of the Ingress node that | |||
| serves as DODAG ID for the Track, expressed in the compressed form | serves as DODAG ID for the Track, expressed in the compressed form | |||
| and using the DODAGID of the Main DODAG as compression reference. If | and using the DODAGID of the Main DODAG as compression reference. If | |||
| the address is compressed to 2 bytes, the resulting value for the | the address is compressed to 2 bytes, the resulting value for the | |||
| Length field shown in Figure 20 is 3, meaning that the SRH-6LoRH as a | Length field shown in Figure 21 is 3, meaning that the SRH-6LoRH as a | |||
| whole is 5-octets long. | whole is 5-octets long. | |||
| 0 1 2 | 0 1 2 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- ... -+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- ... -+ | |||
| |1|0|1| Length | 6LoRH Type 6 | Hop Limit | Track DODAGID | | |1|0|1| Length | 6LoRH Type 6 | Hop Limit | Track DODAGID | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- ... -+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- ... -+ | |||
| Figure 20: The IP-in-IP 6LoRH Header | Figure 21: The IP-in-IP 6LoRH Header | |||
| At the head of the resulting sequence of bytes, the track Ingress | At the head of the resulting sequence of bytes, the track Ingress | |||
| then adds the RPI that carries the TrackID as RPLinstanceID as a P- | then adds the RPI that carries the TrackID as RPLinstanceID as a P- | |||
| RPI-6LoRH Header, as illustrated in Figure 11, using the TrackID as | RPI-6LoRH Header, as illustrated in Figure 12, using the TrackID as | |||
| RPLInstanceID. Combined with the IP-in-IP 6LoRH Header, this allows | RPLInstanceID. Combined with the IP-in-IP 6LoRH Header, this allows | |||
| to identify the Track without ambiguity. | to identify the Track without ambiguity. | |||
| The SRH-6LoRH is then added at the head of the resulting sequence of | The SRH-6LoRH is then added at the head of the resulting sequence of | |||
| bytes as a verbatim copy of the content of the SR-VIO that signaled | bytes as a verbatim copy of the content of the SR-VIO that signaled | |||
| the selected Track Leg. | the selected Track Leg. | |||
| 0 1 | 0 1 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 .. .. .. | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 .. .. .. | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -+- -+ ... +- -+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -+- -+ ... +- -+ | |||
| |1|0|0| Size |6LoRH Type 0..4| Hop1 | Hop2 | | HopN | | |1|0|0| Size |6LoRH Type 0..4| Hop1 | Hop2 | | HopN | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -+- -+ ... +- -+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -+- -+ ... +- -+ | |||
| Where N = Size + 1 | Where N = Size + 1 | |||
| Figure 21: The SRH 6LoRH Header | Figure 22: The SRH 6LoRH Header | |||
| The format of the resulting encapsulated packet in [RFC8138] | The format of the resulting encapsulated packet in [RFC8138] | |||
| compressed form is illustrated in Figure 22: | compressed form is illustrated in Figure 23: | |||
| +-+ ... -+-+-+- ... -+-+-+- ... -+-+-+-+-+- ... +-+-+-+-+-+-+- ... | +-+ ... -+-+-+- ... -+-+-+- ... -+-+-+-+-+- ... +-+-+-+-+-+-+- ... | |||
| | Page 1 | SRH-6LoRH | P-RPI-6LoRH | IP-in-IP 6LoRH | Inner Packet | | Page 1 | SRH-6LoRH | P-RPI-6LoRH | IP-in-IP 6LoRH | Inner Packet | |||
| +-+ ... -+-+-+- ... -+-+-+- ... -+-+-+-+-+- ... +-+-+-+-+-+-+- ... | +-+ ... -+-+-+- ... -+-+-+- ... -+-+-+-+-+- ... +-+-+-+-+-+-+- ... | |||
| Signals : Loose Hops : TrackID : Track DODAGID : | Signals : Loose Hops : TrackID : Track DODAGID : | |||
| Figure 22: A Packet as Forwarded along a Track | Figure 23: A Packet as Forwarded along a Track | |||
| 7. Lesser Constrained Variations | 7. Lesser Constrained Variations | |||
| 7.1. Storing Mode Main DODAG | 7.1. Storing Mode Main DODAG | |||
| This specification expects that the Main DODAG is operated in Non- | This specification expects that the Main DODAG is operated in Non- | |||
| Storing Mode. The reasons for that limitation are mostly related to | Storing Mode. The reasons for that limitation are mostly related to | |||
| LLN operations, power and spectrum conservation: | LLN operations, power and spectrum conservation: | |||
| * In Non-Storing Mode The Root already possesses the DODAG topology, | * In Non-Storing Mode The Root already possesses the DODAG topology, | |||
| skipping to change at page 66, line 51 ¶ | skipping to change at page 68, line 51 ¶ | |||
| do. This section describes profiles that enable to implement only a | do. This section describes profiles that enable to implement only a | |||
| portion of this specification to meet a particular use case. | portion of this specification to meet a particular use case. | |||
| Profiles 0 to 2 operate in the Main RPL Instance and do not require | Profiles 0 to 2 operate in the Main RPL Instance and do not require | |||
| the support of local RPL Instances or the indication of the RPL | the support of local RPL Instances or the indication of the RPL | |||
| Instance in the data plane. Profile 3 and above leverage Local RPL | Instance in the data plane. Profile 3 and above leverage Local RPL | |||
| Instances to build arbitrary Tracks Rooted at the Track Ingress and | Instances to build arbitrary Tracks Rooted at the Track Ingress and | |||
| using its namespace for TrackID. | using its namespace for TrackID. | |||
| Profiles 0 and 1 are REQUIRED by all implementations that may be used | Profiles 0 and 1 are REQUIRED by all implementations that may be used | |||
| in LLNs; this enables to use Storing Mode to reduce the size of the | in LLNs; Profiles 1 leverages Storing Mode to reduce the size of the | |||
| Source Route Header in the most common LLN deployments. Profile 2 is | Source Route Header in the most common LLN deployments. Profile 2 is | |||
| RECOMMENDED in high speed / wired environment to enable traffic | RECOMMENDED in high speed / wired environment to enable traffic | |||
| Engineering and network automation. All the other profile / | Engineering and network automation. All the other profile / | |||
| environment combinations are OPTIONAL. | environment combinations are OPTIONAL. | |||
| Profile 0 Profile 0 is the Legacy support of [RPL] Non-Storing Mode, | Profile 0 Profile 0 is the Legacy support of [RPL] Non-Storing Mode, | |||
| with default routing Northwards (up) and strict source routing | with default routing Northwards (up) and strict source routing | |||
| Southwards (down the main DOAG). It provides the minimal common | Southwards (down the main DOAG). It provides the minimal common | |||
| functionality that must be implemented as a prerequisite to all | functionality that must be implemented as a prerequisite to all | |||
| the Track-supporting profiles. The other Profiles extend Profile | the Track-supporting profiles. The other Profiles extend Profile | |||
| skipping to change at page 68, line 33 ¶ | skipping to change at page 70, line 33 ¶ | |||
| DODAG. | DODAG. | |||
| Profile 9 Profile 9 combines profiles 7 and 8, operating the Track | Profile 9 Profile 9 combines profiles 7 and 8, operating the Track | |||
| as a full DODAG within a Storing Mode Main DODAG, using only the | as a full DODAG within a Storing Mode Main DODAG, using only the | |||
| Main DODAG RPLInstanceID as TrackID. | Main DODAG RPLInstanceID as TrackID. | |||
| 9. Backwards Compatibility | 9. Backwards Compatibility | |||
| This specification can operate in a mixed network where some nodes | This specification can operate in a mixed network where some nodes | |||
| support it and some do not. There are restructions, though. All | support it and some do not. There are restructions, though. All | |||
| nodes that need to process a P-DAO must support this specification. | nodes that need to process a P-DAO MUST support this specification. | |||
| As discussed in Section 3.7.1, how the root knows whether the nodes | As discussed in Section 3.7.1, how the root knows whether the nodes | |||
| capabilities and whether it support this specification is out of | capabilities and whether it support this specification is out of | |||
| scope. | scope. | |||
| This specification defines the 'D' flag in the RPL DODAG | This specification defines the 'D' flag in the RPL DODAG | |||
| Configuration Option (see Section 4.1.6) to signal that the RPL nodes | Configuration Option (see Section 4.1.7) to signal that the RPL nodes | |||
| can request the creation of Tracks. The requester may not know | can request the creation of Tracks. The requester may not know | |||
| whether the Track can effectively be constructed, and whether enough | whether the Track can effectively be constructed, and whether enough | |||
| nodes along the preferred paths support this specification. | nodes along the preferred paths support this specification. | |||
| Therefore it makes sense to only set the 'D' flags in DIO when the | Therefore it makes sense to only set the 'D' flags in DIO when the | |||
| conditions of success are in place, in particular when all the nodes | conditions of success are in place, in particular when all the nodes | |||
| that could be on path of tracks are upgraded. | that could be on path of tracks are upgraded. | |||
| 10. Security Considerations | 10. Security Considerations | |||
| It is worth noting that with [RPL], every node in the LLN is RPL- | It is worth noting that with [RPL], every node in the LLN is RPL- | |||
| aware and can inject any RPL-based attack in the network. This draft | aware and can inject any RPL-based attack in the network. This draft | |||
| uses messages that are already present in RPL [RPL] with optional | uses messages that are already present in RPL [RPL] with optional | |||
| secured versions. The same secured versions may be used with this | secured versions. The same secured versions may be used with this | |||
| draft, and whatever security is deployed for a given network also | draft, and whatever security is deployed for a given network also | |||
| applies to the flows in this draft. | applies to the flows in this draft. | |||
| The LLN nodes depend on the 6LBR and the RPL participants for their | The LLN nodes depend on the 6LBR and the RPL participants for their | |||
| operation. A trust model must be put in place to ensure that the | operation. A trust model is necessary to ensure that the right | |||
| right devices are acting in these roles, so as to avoid threats such | devices are acting in these roles, so as to avoid threats such as | |||
| as black-holing, (see [RFC7416] section 7). This trust model could | black-holing, (see [RFC7416] section 7). This trust model could be | |||
| be at a minimum based on a Layer-2 Secure joining and the Link-Layer | at a minimum based on a Layer-2 Secure joining and the Link-Layer | |||
| security. This is a generic 6LoWPAN requirement, see Req5.1 in | security. This is a generic 6LoWPAN requirement, see Req5.1 in | |||
| Appendix B.5 of [RFC8505]. | Appendix B.5 of [RFC8505]. | |||
| In a general manner, the Security Considerations in [RPL], and | In a general manner, the Security Considerations in [RPL], and | |||
| [RFC7416] apply to this specification as well. The Link-Layer | [RFC7416] apply to this specification as well. The Link-Layer | |||
| security is needed in particular to prevent Denial-Of-Service attacks | security is needed in particular to prevent Denial-Of-Service attacks | |||
| whereby a rogue router creates a high churn in the RPL network by | whereby a rogue router creates a high churn in the RPL network by | |||
| constantly injected forged P-DAO messages and using up all the | constantly injected forged P-DAO messages and using up all the | |||
| available storage in the attacked routers. | available storage in the attacked routers. | |||
| skipping to change at page 70, line 49 ¶ | skipping to change at page 72, line 49 ¶ | |||
| +===============+=============+===============+ | +===============+=============+===============+ | |||
| | 8 (Suggested) | P-RPI-6LoRH | This document | | | 8 (Suggested) | P-RPI-6LoRH | This document | | |||
| +---------------+-------------+---------------+ | +---------------+-------------+---------------+ | |||
| Table 23: New Critical 6LoWPAN Routing | Table 23: New Critical 6LoWPAN Routing | |||
| Header Type | Header Type | |||
| 11.4. Subregistry For The RPL Option Flags | 11.4. Subregistry For The RPL Option Flags | |||
| IANA is required to create a subregistry for the 8-bit RPL Option | IANA is required to create a subregistry for the 8-bit RPL Option | |||
| Flags field, as detailed in Figure 10, under the "Routing Protocol | Flags field, as detailed in Figure 11, under the "Routing Protocol | |||
| for Low Power and Lossy Networks (RPL)" registry. The bits are | for Low Power and Lossy Networks (RPL)" registry. The bits are | |||
| indexed from 0 (leftmost) to 7. Each bit is Tracked with the | indexed from 0 (leftmost) to 7. Each bit is Tracked with the | |||
| following qualities: | following qualities: | |||
| * Bit number (counting from bit 0 as the most significant bit) | * Bit number (counting from bit 0 as the most significant bit) | |||
| * Indication When Set | * Indication When Set | |||
| * Reference | * Reference | |||
| skipping to change at page 74, line 39 ¶ | skipping to change at page 76, line 39 ¶ | |||
| +===============+========================+===========+ | +===============+========================+===========+ | |||
| | Bit number | Capability description | Reference | | | Bit number | Capability description | Reference | | |||
| +===============+========================+===========+ | +===============+========================+===========+ | |||
| | 0 (Suggested) | "S" flag: Sibling in | This | | | 0 (Suggested) | "S" flag: Sibling in | This | | |||
| | | same DODAG as Self | document | | | | same DODAG as Self | document | | |||
| +---------------+------------------------+-----------+ | +---------------+------------------------+-----------+ | |||
| Table 30: Initial SIO Flags | Table 30: Initial SIO Flags | |||
| 11.13. destination Advertisement Object Flag | 11.13. Destination Advertisement Object Flag | |||
| This document modifies the "destination Advertisement Object (DAO) | This document modifies the "Destination Advertisement Object (DAO) | |||
| Flags" registry initially created in Section 20.11 of [RPL] . | Flags" registry initially created in Section 20.11 of [RPL] . | |||
| Section 4.1.1 also defines one new entry in the Registry as follows: | Section 4.1.1 also defines one new entry in the Registry as follows: | |||
| +---------------+------------------------+-----------+ | +---------------+------------------------+-----------+ | |||
| | Bit Number | Capability Description | Reference | | | Bit Number | Capability Description | Reference | | |||
| +---------------+------------------------+-----------+ | +---------------+------------------------+-----------+ | |||
| | 2 (Suggested) | Projected DAO (P) | THIS RFC | | | 2 (Suggested) | Projected DAO (P) | THIS RFC | | |||
| +---------------+------------------------+-----------+ | +---------------+------------------------+-----------+ | |||
| Table 31: New destination Advertisement Object | Table 31: New Destination Advertisement Object | |||
| (DAO) Flag | (DAO) Flag | |||
| 11.14. New ICMPv6 Error Code | 11.14. Destination Advertisement Object Acknowledgment Flag | |||
| This document modifies the "Destination Advertisement Object (DAO) | ||||
| Acknowledgment Flags" registry initially created in Section 20.12 of | ||||
| [RPL] . | ||||
| Section 4.1.2 also defines one new entry in the Registry as follows: | ||||
| +---------------+------------------------+-----------+ | ||||
| | Bit Number | Capability Description | Reference | | ||||
| +---------------+------------------------+-----------+ | ||||
| | 1 (Suggested) | Projected DAO-ACK (P) | THIS RFC | | ||||
| +---------------+------------------------+-----------+ | ||||
| Table 32: New Destination Advertisement Object | ||||
| Acknowledgment Flag | ||||
| 11.15. New ICMPv6 Error Code | ||||
| In some cases RPL will return an ICMPv6 error message when a message | In some cases RPL will return an ICMPv6 error message when a message | |||
| cannot be forwarded along a P-Route. | cannot be forwarded along a P-Route. | |||
| IANA has defined an ICMPv6 "Code" Fields Registry for ICMPv6 Message | IANA has defined an ICMPv6 "Code" Fields Registry for ICMPv6 Message | |||
| Types. ICMPv6 Message Type 1 describes "destination Unreachable" | Types. ICMPv6 Message Type 1 describes "destination Unreachable" | |||
| codes. This specification requires that a new code is allocated from | codes. This specification requires that a new code is allocated from | |||
| the ICMPv6 Code Fields Registry for ICMPv6 Message Type 1, for "Error | the ICMPv6 Code Fields Registry for ICMPv6 Message Type 1, for "Error | |||
| in P-Route", with a suggested code value of 8, to be confirmed by | in P-Route", with a suggested code value of 8, to be confirmed by | |||
| IANA. | IANA. | |||
| 11.15. RPL Rejection Status values | 11.16. RPL Rejection Status values | |||
| This specification updates the Subregistry for the "RPL Rejection | This specification updates the Subregistry for the "RPL Rejection | |||
| Status" values under the RPL registry, as follows: | Status" values under the RPL registry, as follows: | |||
| +---------------+-------------------------+-----------+ | +---------------+-------------------------+-----------+ | |||
| | Value | Meaning | Reference | | | Value | Meaning | Reference | | |||
| +---------------+-------------------------+-----------+ | +---------------+-------------------------+-----------+ | |||
| | 2 (Suggested) | Out of Resources | THIS RFC | | | 2 (Suggested) | Out of Resources | THIS RFC | | |||
| +---------------+-------------------------+-----------+ | +---------------+-------------------------+-----------+ | |||
| | 3 (Suggested) | Error in VIO | THIS RFC | | | 3 (Suggested) | Error in VIO | THIS RFC | | |||
| +---------------+-------------------------+-----------+ | +---------------+-------------------------+-----------+ | |||
| | 4 (Suggested) | Predecessor Unreachable | THIS RFC | | | 4 (Suggested) | Predecessor Unreachable | THIS RFC | | |||
| +---------------+-------------------------+-----------+ | +---------------+-------------------------+-----------+ | |||
| | 5 (Suggested) | Unreachable Target | THIS RFC | | | 5 (Suggested) | Unreachable Target | THIS RFC | | |||
| +---------------+-------------------------+-----------+ | +---------------+-------------------------+-----------+ | |||
| | 6..63 | Unassigned | | | | 6..63 | Unassigned | | | |||
| +---------------+-------------------------+-----------+ | +---------------+-------------------------+-----------+ | |||
| Table 32: Rejection values of the RPL Status | Table 33: Rejection values of the RPL Status | |||
| 12. Acknowledgments | 12. Acknowledgments | |||
| The authors wish to acknowledge JP Vasseur, Remy Liubing, James | The authors wish to acknowledge JP Vasseur, Remy Liubing, James | |||
| Pylakutty, and Patrick Wetterwald for their contributions to the | Pylakutty, and Patrick Wetterwald for their contributions to the | |||
| ideas developed here. Many thanks to Dominique Barthel and SVR Anand | ideas developed here. Many thanks to Dominique Barthel and SVR Anand | |||
| for their global contribution to 6TiSCH, RAW and this document, as | for their global contribution to 6TiSCH, RAW and this document, as | |||
| well as text suggestions that were incorporated, and to Michael | well as text suggestions that were incorporated, and to Michael | |||
| Richardson for his useful recommendations based on his global view of | Richardson for his useful recommendations based on his global view of | |||
| the system. Also special thanks Toerless Eckert for his deep review, | the system all along the developement of this specification. Also | |||
| with many excellent suggestions that improved the readability and | special thanks Toerless Eckert for his deep review, with many | |||
| well as the content of the specification. | excellent suggestions that improved the readability and well as the | |||
| content of the specification. Many thanks to Remous-Aris | ||||
| Koutsiamanis for his review during WGLC. | ||||
| 13. Normative References | 13. Normative References | |||
| [INT-ARCHI] | [INT-ARCHI] | |||
| Braden, R., Ed., "Requirements for Internet Hosts - | Braden, R., Ed., "Requirements for Internet Hosts - | |||
| Communication Layers", STD 3, RFC 1122, | Communication Layers", STD 3, RFC 1122, | |||
| DOI 10.17487/RFC1122, October 1989, | DOI 10.17487/RFC1122, October 1989, | |||
| <https://www.rfc-editor.org/info/rfc1122>. | <https://www.rfc-editor.org/info/rfc1122>. | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| skipping to change at page 78, line 24 ¶ | skipping to change at page 80, line 40 ¶ | |||
| (RPLs)", RFC 7416, DOI 10.17487/RFC7416, January 2015, | (RPLs)", RFC 7416, DOI 10.17487/RFC7416, January 2015, | |||
| <https://www.rfc-editor.org/info/rfc7416>. | <https://www.rfc-editor.org/info/rfc7416>. | |||
| [6TiSCH-ARCHI] | [6TiSCH-ARCHI] | |||
| Thubert, P., Ed., "An Architecture for IPv6 over the Time- | Thubert, P., Ed., "An Architecture for IPv6 over the Time- | |||
| Slotted Channel Hopping Mode of IEEE 802.15.4 (6TiSCH)", | Slotted Channel Hopping Mode of IEEE 802.15.4 (6TiSCH)", | |||
| RFC 9030, DOI 10.17487/RFC9030, May 2021, | RFC 9030, DOI 10.17487/RFC9030, May 2021, | |||
| <https://www.rfc-editor.org/info/rfc9030>. | <https://www.rfc-editor.org/info/rfc9030>. | |||
| [RAW-ARCHI] | [RAW-ARCHI] | |||
| Thubert, P., Papadopoulos, G. Z., and L. Berger, "Reliable | Thubert, P. and G. Z. Papadopoulos, "Reliable and | |||
| and Available Wireless Architecture/Framework", Work in | Available Wireless Architecture", Work in Progress, | |||
| Progress, Internet-Draft, draft-ietf-raw-architecture-01, | Internet-Draft, draft-ietf-raw-architecture-02, 29 | |||
| 28 July 2021, <https://datatracker.ietf.org/doc/html/ | November 2021, <https://datatracker.ietf.org/doc/html/ | |||
| draft-ietf-raw-architecture-01>. | draft-ietf-raw-architecture-02>. | |||
| [USE-CASES] | [USE-CASES] | |||
| Papadopoulos, G. Z., Thubert, P., Theoleyre, F., and C. J. | Papadopoulos, G. Z., Thubert, P., Theoleyre, F., and C. J. | |||
| Bernardos, "RAW use cases", Work in Progress, Internet- | Bernardos, "RAW use cases", Work in Progress, Internet- | |||
| Draft, draft-ietf-raw-use-cases-03, 20 October 2021, | Draft, draft-ietf-raw-use-cases-03, 20 October 2021, | |||
| <https://datatracker.ietf.org/doc/html/draft-ietf-raw-use- | <https://datatracker.ietf.org/doc/html/draft-ietf-raw-use- | |||
| cases-03>. | cases-03>. | |||
| [TURN-ON_RFC8138] | [TURN-ON_RFC8138] | |||
| Thubert, P., Ed. and L. Zhao, "A Routing Protocol for Low- | Thubert, P., Ed. and L. Zhao, "A Routing Protocol for Low- | |||
| skipping to change at page 80, line 29 ¶ | skipping to change at line 3701 ¶ | |||
| Rahul Arvind Jadhav | Rahul Arvind Jadhav | |||
| Huawei Tech | Huawei Tech | |||
| Kundalahalli Village, Whitefield, | Kundalahalli Village, Whitefield, | |||
| Bangalore 560037 | Bangalore 560037 | |||
| Karnataka | Karnataka | |||
| India | India | |||
| Phone: +91-080-49160700 | Phone: +91-080-49160700 | |||
| Email: rahul.ietf@gmail.com | Email: rahul.ietf@gmail.com | |||
| Matthew Gillmore | ||||
| Itron, Inc | ||||
| Building D | ||||
| 2111 N Molter Road | ||||
| Liberty Lake, 99019 | ||||
| United States | ||||
| Phone: +1.800.635.5461 | ||||
| Email: matthew.gillmore@itron.com | ||||
| End of changes. 70 change blocks. | ||||
| 146 lines changed or deleted | 234 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/ | ||||