| < draft-ietf-roll-capabilities-00.txt | draft-ietf-roll-capabilities-01.txt > | |||
|---|---|---|---|---|
| ROLL R. Jadhav, Ed. | ROLL R. Jadhav, Ed. | |||
| Internet-Draft Huawei Tech | Internet-Draft Huawei Tech | |||
| Intended status: Standards Track P. Thubert | Intended status: Standards Track P. Thubert | |||
| Expires: August 13, 2020 Cisco | Expires: September 10, 2020 Cisco | |||
| M. Richardson | M. Richardson | |||
| Sandelman Software Works | Sandelman Software Works | |||
| R. Sahoo, Ed. | R. Sahoo, Ed. | |||
| February 10, 2020 | March 9, 2020 | |||
| RPL Capabilities | RPL Capabilities | |||
| draft-ietf-roll-capabilities-00 | draft-ietf-roll-capabilities-01 | |||
| Abstract | Abstract | |||
| This draft enables the discovery, advertisement and query of | This draft enables the discovery, advertisement and query of | |||
| capabilities for RPL nodes. | capabilities for RPL nodes. | |||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| skipping to change at page 1, line 35 ¶ | skipping to change at page 1, line 35 ¶ | |||
| 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 August 13, 2020. | This Internet-Draft will expire on September 10, 2020. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2020 IETF Trust and the persons identified as the | Copyright (c) 2020 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| skipping to change at page 2, line 15 ¶ | skipping to change at page 2, line 15 ¶ | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 1.1. Requirements Language and Terminology . . . . . . . . . . 3 | 1.1. Requirements Language and Terminology . . . . . . . . . . 3 | |||
| 1.2. What are Capabilities? . . . . . . . . . . . . . . . . . 3 | 1.2. What are Capabilities? . . . . . . . . . . . . . . . . . 3 | |||
| 2. Requirements for this document . . . . . . . . . . . . . . . 4 | 2. Requirements for this document . . . . . . . . . . . . . . . 4 | |||
| 2.1. How are Capabilities different from MOP or DIO | 2.1. How are Capabilities different from MOP or DIO | |||
| Configuration Option? . . . . . . . . . . . . . . . . . . 4 | Configuration Option? . . . . . . . . . . . . . . . . . . 4 | |||
| 3. Capabilities . . . . . . . . . . . . . . . . . . . . . . . . 4 | 3. Capabilities . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 3.1. Capability Catagories . . . . . . . . . . . . . . . . . . 5 | 3.1. Capability Catagories . . . . . . . . . . . . . . . . . . 5 | |||
| 3.2. Capability Control Message Option . . . . . . . . . . . . 5 | 3.2. Capability Control Message Option . . . . . . . . . . . . 5 | |||
| 3.3. Capabilities Handshake . . . . . . . . . . . . . . . . . 6 | 3.3. Capabilities Handshake . . . . . . . . . . . . . . . . . 6 | |||
| 3.4. ROLL Capabilities . . . . . . . . . . . . . . . . . . . . 6 | 4. Guidelines for defining new capabilities . . . . . . . . . . 7 | |||
| 3.4.1. Projected Route Capability . . . . . . . . . . . . . 6 | 4.1. Handling Capability flags . . . . . . . . . . . . . . . . 7 | |||
| 3.4.1.1. Format of Projected Route Capability . . . . . . 7 | 4.1.1. Rules to handle capabilities flag . . . . . . . . . . 7 | |||
| 3.4.2. 6LoRH Capability . . . . . . . . . . . . . . . . . . 8 | 5. ROLL Capabilities . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 3.4.2.1. Format of 6LoRH Capability . . . . . . . . . . . 9 | 5.1. Projected Route Capability (PRC) . . . . . . . . . . . . 8 | |||
| 3.4.3. Routing Resource Capability . . . . . . . . . . . . . 9 | 5.1.1. Format of Projected Route Capability . . . . . . . . 8 | |||
| 3.4.3.1. Format of Routing Resource Capability . . . . . . 10 | 5.2. 6LoRH Capability . . . . . . . . . . . . . . . . . . . . 9 | |||
| 3.4.4. Neighbor Cache Capability . . . . . . . . . . . . . . 11 | 5.2.1. Format of 6LoRH Capability . . . . . . . . . . . . . 10 | |||
| 3.4.4.1. Format of Neighbor Cache Capability . . . . . . . 12 | 5.3. Routing Resource Capability . . . . . . . . . . . . . . . 11 | |||
| 4. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 12 | 5.3.1. Format of Routing Resource Capability . . . . . . . . 11 | |||
| 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 | 5.4. Neighbor Cache Capability . . . . . . . . . . . . . . . . 12 | |||
| 5.1. New option: Capabilities . . . . . . . . . . . . . . . . 12 | 5.4.1. Format of Neighbor Cache Capability . . . . . . . . . 13 | |||
| 5.2. New Registry for Capabilities Flags . . . . . . . . . . . 12 | 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 6. Security Considerations . . . . . . . . . . . . . . . . . . . 12 | 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 13 | 7.1. New option: Capabilities . . . . . . . . . . . . . . . . 13 | |||
| 7.1. Normative References . . . . . . . . . . . . . . . . . . 13 | 7.2. New Registry for Capabilities Flags . . . . . . . . . . . 13 | |||
| 7.2. Informative References . . . . . . . . . . . . . . . . . 13 | 8. Security Considerations . . . . . . . . . . . . . . . . . . . 14 | |||
| Appendix A. Capability Handshake Example . . . . . . . . . . . . 14 | 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 14 | 9.1. Normative References . . . . . . . . . . . . . . . . . . 14 | |||
| 9.2. Informative References . . . . . . . . . . . . . . . . . 15 | ||||
| Appendix A. Capability Handshake Example . . . . . . . . . . . . 15 | ||||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 15 | ||||
| 1. Introduction | 1. Introduction | |||
| RPL [RFC6550] specifies a proactive distance-vector based routing | RPL [RFC6550] specifies a proactive distance-vector based routing | |||
| scheme. The protocol creates a DAG-like structure which operates | scheme. The protocol creates a DAG-like structure which operates | |||
| with a given "Mode of Operation" (MOP) determining the minimal and | with a given "Mode of Operation" (MOP) determining the minimal and | |||
| mandatory set of primitives to be supported by all the participating | mandatory set of primitives to be supported by all the participating | |||
| nodes. | nodes. | |||
| This document adds a notion of capabilities using which the nodes in | This document adds a notion of capabilities using which the nodes in | |||
| skipping to change at page 5, line 40 ¶ | skipping to change at page 6, line 8 ¶ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 1: Capabilities Option | Figure 1: Capabilities Option | |||
| Multiple capabilities could be sent in the same message. The length | Multiple capabilities could be sent in the same message. The length | |||
| field allows the message parser to skip the capability TLV parsing. | field allows the message parser to skip the capability TLV parsing. | |||
| 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 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | CAPType |G|I|. . . . . .| CAPInfo(Opt) | | CAPType |J|I|G|.|.|.|.|.| CAPInfo(Opt) | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 2: Capabilities TLV | Figure 2: Capabilities TLV | |||
| Every capability is identified by its type and it may have an | Every capability is identified by its type and it may have an | |||
| optional Capability Info. Note that a given capability may or may | optional Capability Info. Note that a given capability may or may | |||
| not be diseminated with additional information depending on the scope | not be diseminated with additional information depending on the scope | |||
| of the capability indicated by the G bit. The first Bit of the | of the capability indicated by the I bit. | |||
| CAPType indicates if the capability is mandatory or optional Value of | ||||
| 1 indicates its a mandatory capability and 0 indicates its an | J = Join only as leaf if capability not understood | |||
| optional capability | ||||
| I = Capability Info present | ||||
| G = If set indicates a Global Capability else its a local. For a | G = If set indicates a Global Capability else its a local. For a | |||
| capability if it's mandatory and global bit is set then node those | capability if it's mandatory and global bit is set then node those | |||
| either doesn't understand the capability or doesn't have this | either doesn't understand the capability or doesn't have this | |||
| capability should not join the DODAG as a router. All the global | capability should not join the DODAG as a router. All the global | |||
| capablities MUST be diseminated across the network. | capablities MUST be diseminated across the network. 6LRs in the | |||
| network MUST copy the global capabilities in their DIOs. | ||||
| I = Cap Info present | ||||
| 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 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | CAPLen | Cap Info(format decided by individual cap spec) | | CAPLen | Cap Info(format decided by individual cap spec) | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 3: Capabilities Info | Figure 3: Capabilities Info | |||
| Capability Information provides additional information for the given | Capability Information provides additional information for the given | |||
| skipping to change at page 6, line 43 ¶ | skipping to change at page 7, line 12 ¶ | |||
| advertised by non-root nodes are strictly a subset of the | advertised by non-root nodes are strictly a subset of the | |||
| capabilities advertised by the root. | capabilities advertised by the root. | |||
| In storing MOP, the DAO message from the 6LR could contain multiple | In storing MOP, the DAO message from the 6LR could contain multiple | |||
| target options because of the DAO-Aggregation. The targets of the | target options because of the DAO-Aggregation. The targets of the | |||
| capabilities option are indicated by one or more Target options that | capabilities option are indicated by one or more Target options that | |||
| precede the Capabilties Option. This handling is similar to the | precede the Capabilties Option. This handling is similar to the | |||
| Transit Information Option as supported in Section 6.7.8. of | Transit Information Option as supported in Section 6.7.8. of | |||
| [RFC6550]. | [RFC6550]. | |||
| 3.4. ROLL Capabilities | 4. Guidelines for defining new capabilities | |||
| 3.4.1. Projected Route Capability | This section provides guidelines/recommendations towards defining new | |||
| capabilities. Note that the capabilities might be carried as part of | ||||
| the multicast messaging such as DIO and hence the set should be used | ||||
| in restrictive manner as far as possible. | ||||
| 4.1. Handling Capability flags | ||||
| The 'G' (global) flag indicating global capability should be set only | ||||
| by the root. However, it is not mandatory for the root to set this | ||||
| flag for all capabilities it indicates. It should set this flag only | ||||
| for those capabilities which the 6LRs downstream must propagate | ||||
| further downstream. | ||||
| The 'I' (information) flag is set only when there is additional | ||||
| information to be set in context to the capability. | ||||
| The 'J' (join) flag can be set in context to a capability either by a | ||||
| 6LR or the root. The 'J' flag indicates that if the capability is | ||||
| not supported by a node then it can join the instance only as a 6LN | ||||
| (or do not join as 6LR). | ||||
| The 'C' (copy) flag is set by the node indicating that the | ||||
| capabilities MUST be copied downstream by the node. | ||||
| 4.1.1. Rules to handle capabilities flag | ||||
| On receiving a capability it does not support, the node MUST check | ||||
| the 'J' flag of the capability before joining the Instance. If the | ||||
| 'J' flag is set then it can only join as a 6LN. | ||||
| If the node is operating as 6LR and subsequently it receives a | ||||
| capability which it doesn't understand with 'J' flag set, then the | ||||
| node has to switch itself to 6LN mode. During switching the node | ||||
| needs to inform its downstream peers of its changed status by sending | ||||
| a DIO with infinite rank as mentioned in [RFC6550]. | ||||
| 5. ROLL Capabilities | ||||
| 5.1. Projected Route Capability (PRC) | ||||
| [I-D.ietf-roll-dao-projection] proposes mechanisms to compute and | [I-D.ietf-roll-dao-projection] proposes mechanisms to compute and | |||
| install traffic engineered paths in the RPL network. It enables an | install traffic engineered paths in the RPL network. It enables an | |||
| RPL Root to install and maintain Projected Routes based on requested | RPL Root to install and maintain Projected Routes based on requested | |||
| path metric, within its DODAG, along with a selected set of nodes | path metric, within its DODAG, along with a selected set of nodes | |||
| that may or may not include self, for a chosen duration. Projected | that may or may not include self, for a chosen duration. Projected | |||
| Route Capability will be used to enable this TE path calculation. | Route Capability will be used to enable this TE path calculation. | |||
| PRC will be an optional global capability. Any node that does not | PRC will be an optional global capability. Any node that does not | |||
| understand or support the projected route functions can still act as | understand or support the projected route functions can still act as | |||
| an LR. | an LR. | |||
| skipping to change at page 7, line 34 ¶ | skipping to change at page 8, line 41 ¶ | |||
| can be part of a storing or non-storing or both mode of projected | can be part of a storing or non-storing or both mode of projected | |||
| routes. Here the PRC will be part of the DAO message. | routes. Here the PRC will be part of the DAO message. | |||
| The capability will convey the below information. The PRC MUST have | The capability will convey the below information. The PRC MUST have | |||
| either of the information or both depending upon the node type.If | either of the information or both depending upon the node type.If | |||
| originator is BR, then both the information MUST be there. | originator is BR, then both the information MUST be there. | |||
| I: Supports projected route for both storing and non-storing | I: Supports projected route for both storing and non-storing | |||
| mode. | mode. | |||
| II: List of supported path metrics that supported that can be used | II: List of supported path metrics that can be used to compute | |||
| to compute projected routes | projected routes. | |||
| III: [To Decide] Can we add the PCE address information to this? | III: [To Decide] Can we add the PCE address information to this? | |||
| 3.4.1.1. Format of Projected Route Capability | 5.1.1. Format of Projected Route Capability | |||
| 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=0x01 |J|I|G|. . . . .| CAPLen | MOP | Resvd | | |||
| | Type=0x01 |G|I|. . . . . .| CAPLen | MOP | Resvd | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | Routing Metric 1 | Routing Metric 1 | | |||
| | Routing Metric 1 | Routing Metric 1 | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | Routing Metric n-1 | Routing Metric n | | |||
| | Routing Metric n-1 | Routing Metric n | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Figure 4: Projected Route Capability TLV | Figure 4: Projected Route Capability TLV | |||
| Type: 0x01. | Type: 0x01. | |||
| Flags: DODAG root MUST set G bit to 1 plus LRs MUST set it to 0. I | Flags: DODAG root MUST set G bit to 1 plus LRs MUST set it to 0. I | |||
| bit will always be set to 1. | bit will always be set to 1. | |||
| CAPLen: 8-bit unsigned integer, representing the length in octets of | CAPLen: 8-bit unsigned integer, representing the length in octets of | |||
| the option, not including the Option Type and Length fields. | the option, not including the Option Type and Length fields. | |||
| MOP: 3-bit field indicating the mode of operation of projected route | MOP: 3-bit field indicating the mode of operation of projected route | |||
| capability. | capability. | |||
| Resvd: 5-bit unused fields.They MUST be initialized to zero by the | Resvd: 5-bit unused fields.They MUST be initialized to zero by the | |||
| sender and MUST be ignored by the receiver. | sender and MUST be ignored by the receiver. | |||
| Routing Merric: 16 bit unsigned integer represetning the the routing | Routing Metric: 16 bit unsigned integer represetning the routing | |||
| metric to be used for TE path calculation. There can be n number of | metric to be used for TE path calculation. There can be n number of | |||
| such routing metric fields. These fileds are alowed with the PRC | such routing metric fields. These fileds are alowed with the PRC | |||
| sent by the DODAG ROOT. LRs MUST not send routing metric information | sent by the DODAG ROOT. LRs MUST not send routing metric information | |||
| with PRC. | with PRC. | |||
| 0 1 | 0 1 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Type=0x01 | Resvd | | | Type=0x01 | Resvd | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 5: Routing Metric Information | Figure 5: Routing Metric Information | |||
| 3.4.2. 6LoRH Capability | 5.2. 6LoRH Capability | |||
| [RFC8138] introduces a new 6LoWPAN Routing Header (6LoRH) to carry | [RFC8138] introduces a new 6LoWPAN Routing Header (6LoRH) to carry | |||
| IPv6 routing information. The 6LoRH may contain source routing | IPv6 routing information. The 6LoRH may contain source routing | |||
| information such as a compressed form of SRH, and other sorts of | information such as a compressed form of SRH, and other sorts of | |||
| routing information such as the RPI and IP-in-IP encapsulation | routing information such as the RPI and IP-in-IP encapsulation | |||
| The transition to [RFC8138] in a network can only be done when all | The transition to [RFC8138] in a network can only be done when all | |||
| nodes support the specification. In a mixed case with both | nodes support the specification. In a mixed case with both | |||
| RFC8138-capable and non-capable nodes it would not be posssible to | RFC8138-capable and non-capable nodes it would not be posssible to | |||
| take advantage of 6LoRH.[I-D.thubert-roll-turnon-rfc8138] defines a | take advantage of 6LoRH.[I-D.thubert-roll-turnon-rfc8138] defines a | |||
| mechanism to control the use of 6LoRH in a DODAG by using "T" flag | mechanism to control the use of 6LoRH in a DODAG by using "T" flag | |||
| bit in RPL configuration option. To assist DODAG root to decide if | bit in RPL configuration option. To assist DODAG root to decide if | |||
| it has to set "T" flag bit in RPL Configuration Option to enable | it has to set "T" flag bit in RPL Configuration Option to enable | |||
| 6LoRH within its DODAG, all LRs in DODAG MUST inform their support of | 6LoRH within its DODAG, all LRs in DODAG MUST inform their support of | |||
| [RFC8138] by adding 6LoRH capability TLV to their advertised | [RFC8138] by adding 6LoRH capability TLV to their advertised | |||
| capability control message option. | capability control message option. | |||
| skipping to change at page 9, line 23 ¶ | skipping to change at page 10, line 33 ¶ | |||
| support RFC 8138.So if DODAG is still not using 6LoRH, it MUST | support RFC 8138.So if DODAG is still not using 6LoRH, it MUST | |||
| refrain from using the compression and if it is already using it, it | refrain from using the compression and if it is already using it, it | |||
| MUST deny the LR from joining the DODAG with proper error code. | MUST deny the LR from joining the DODAG with proper error code. | |||
| [TODO- Need to add new Error code]. | [TODO- Need to add new Error code]. | |||
| 6LoRH capability is an optional capability any node that doesn't | 6LoRH capability is an optional capability any node that doesn't | |||
| understand or support the 6LoRH can join the DODAG if the "T" flag in | understand or support the 6LoRH can join the DODAG if the "T" flag in | |||
| the RPL Configuration option is not set otherwise it MUST join the | the RPL Configuration option is not set otherwise it MUST join the | |||
| network as a leaf node. | network as a leaf node. | |||
| 3.4.2.1. Format of 6LoRH Capability | 5.2.1. Format of 6LoRH Capability | |||
| 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=0x02 |G|I|. . . . . .| Reserved | | | Type=0x02 |J|I|G|. . . . .| Reserved | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 6: 6LoRH Capability TLV | Figure 6: 6LoRH Capability TLV | |||
| Type: 0x02. | Type: 0x02. | |||
| Flags: LRs MUST set it to 0. I bit will always be set to 0. | Flags: LRs MUST set it to 0. I bit will always be set to 0. | |||
| Reserved: 16-bit unsigned integer, they MUST be initialized to zero | Reserved: 16-bit unsigned integer, they MUST be initialized to zero | |||
| by the sender and MUST be ignored by the receiver.. | by the sender and MUST be ignored by the receiver.. | |||
| 3.4.3. Routing Resource Capability | 5.3. Routing Resource Capability | |||
| Storing mode of operation requires each intermediate router in the | Storing mode of operation requires each intermediate router in the | |||
| LLN to maintain routing states' information in the routing table. | LLN to maintain routing states' information in the routing table. | |||
| LLN routers typically operate with constraints on processing power, | LLN routers typically operate with constraints on processing power, | |||
| memory, and energy (battery power). Memory limits the number of | memory, and energy (battery power). Memory limits the number of | |||
| routing states an LR and BR can maintain. When the routing table of | routing states an LR and BR can maintain. When the routing table of | |||
| an LR or BR is full, it will either reject the new DAO messages | an LR or BR is full, it will either reject the new DAO messages | |||
| received or will use some replacement policy to remove a routing | received or will use some replacement policy to remove a routing | |||
| entry and add the new one. Rejection of DAO messages will lead to an | entry and add the new one. Rejection of DAO messages will lead to an | |||
| increase in DAO message transmission that impacts the energy and | increase in DAO message transmission that impacts the energy and | |||
| skipping to change at page 10, line 27 ¶ | skipping to change at page 11, line 41 ¶ | |||
| I: Master Routing Table Storing | I: Master Routing Table Storing | |||
| II: Storing mode P-DAO Table | II: Storing mode P-DAO Table | |||
| III: Non-Storing mode P-DAO | III: Non-Storing mode P-DAO | |||
| Routing resource capabablity sent in DIO message has link local scope | Routing resource capabablity sent in DIO message has link local scope | |||
| and it MUST not be forwarded. | and it MUST not be forwarded. | |||
| 3.4.3.1. Format of Routing Resource Capability | 5.3.1. Format of Routing Resource Capability | |||
| 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=0x03 |G|I|. . . . . .| CAPLen | RT | Resvd | | | Type=0x03 |J|I|G|. . . . .| CAPLen | RT | Resvd | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Total Capacity | Used Per | Threshold | | | Total Capacity | Used Per | Threshold | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 7: Routing Resource Capability TLV | Figure 7: Routing Resource Capability TLV | |||
| Type: 0x03. | Type: 0x03. | |||
| Flags: G bit MUST be set to 0. I bit will always be set to 1. | Flags: G bit MUST be set to 0. I bit will always be set to 1. | |||
| CAPLen: 8-bit unsigned integer, representing the length in octets of | CAPLen: 8-bit unsigned integer, representing the length in octets of | |||
| the option, not including the Option Type and Length fields. | the option, not including the Option Type and Length fields. | |||
| skipping to change at page 11, line 4 ¶ | skipping to change at page 12, line 18 ¶ | |||
| CAPLen: 8-bit unsigned integer, representing the length in octets of | CAPLen: 8-bit unsigned integer, representing the length in octets of | |||
| the option, not including the Option Type and Length fields. | the option, not including the Option Type and Length fields. | |||
| RT: 3-bit field indicating the routing resource type. This document | RT: 3-bit field indicating the routing resource type. This document | |||
| defines 3 routing resource type. | defines 3 routing resource type. | |||
| I: Master Routing Table Storing(RT = 1) | I: Master Routing Table Storing(RT = 1) | |||
| II: Storing mode P-DAO Table(RT = 2) | II: Storing mode P-DAO Table(RT = 2) | |||
| III: Non-Storing mode P-DAO(RT = 3) | III: Non-Storing mode P-DAO(RT = 3) | |||
| Resvd: 5-bit unused field. It MUST be initialized to zero by the | Resvd: 5-bit unused field. It MUST be initialized to zero by the | |||
| sender and MUST be ignored by the receiver. | sender and MUST be ignored by the receiver. | |||
| Total Capacity: 16 bit unsigned integer representing the the routing | Total Capacity: 16 bit unsigned integer representing the the routing | |||
| table size. | table size. | |||
| Percentage used: 8 bit unsigned integer representing the the | Percentage used: 8 bit unsigned integer representing the the | |||
| percentage of routing table space currently in use. | percentage of routing table space currently in use. | |||
| Threshold: 8 bit unsigned integer representing the maximum routing | Threshold: 8 bit unsigned integer representing the maximum routing | |||
| table space that can be used. If the routing resource type is RT1 | table space that can be used. If the routing resource type is RT1 | |||
| and used Percentage is greater than or equal to a threshold, its | and used Percentage is greater than or equal to a threshold, its | |||
| siblings MUST stop using it as the preferred parent or remove it from | siblings MUST stop using it as the preferred parent or remove it from | |||
| the parent list. If the routing resource type is RT2 or RT3 and used | the parent list. If the routing resource type is RT2 or RT3 and used | |||
| Percentage is greater than or equal to a threshold, PCE MUST | Percentage is greater than or equal to a threshold, PCE MUST | |||
| recompute some projected routes by excluding this node. | recompute some projected routes by excluding this node. | |||
| 3.4.4. Neighbor Cache Capability | 5.4. Neighbor Cache Capability | |||
| A neighbor cache maintains neighboring one-hop connected nodes | A neighbor cache maintains neighboring one-hop connected nodes | |||
| information such as MAC address, link-local IP address and other | information such as MAC address, link-local IP address and other | |||
| reachability state information needed for layer two | reachability state information needed for layer two | |||
| communication.Node density has direct implications on the neighbor | communication.Node density has direct implications on the neighbor | |||
| cache. In the constrained network scenario the size of the neighbor | cache. In the constrained network scenario the size of the neighbor | |||
| cache will be limited. Thus there are chances that a node may not be | cache will be limited. Thus there are chances that a node may not be | |||
| able to store all the neighboring nodes in its cache and use | able to store all the neighboring nodes in its cache and use | |||
| replacement algorithms to evict some of the entries to accommodate | replacement algorithms to evict some of the entries to accommodate | |||
| the new one. If the replaced neighbor has installed a DAO route on | the new one. If the replaced neighbor has installed a DAO route on | |||
| skipping to change at page 12, line 5 ¶ | skipping to change at page 13, line 16 ¶ | |||
| the availability of neighbor cache is not taken into consideration | the availability of neighbor cache is not taken into consideration | |||
| while selecting the DAO parent set. | while selecting the DAO parent set. | |||
| Neighbor Cache capability can be used by LR and BR to advertise their | Neighbor Cache capability can be used by LR and BR to advertise their | |||
| neighbor cache size information. This capablity information has only | neighbor cache size information. This capablity information has only | |||
| link scope and should not be advertised in the entire network. | link scope and should not be advertised in the entire network. | |||
| [TODO-- As neighbor cache entries category is not yet standardized i | [TODO-- As neighbor cache entries category is not yet standardized i | |||
| think we can't use it in capability. With categories format of the | think we can't use it in capability. With categories format of the | |||
| TLV is going to chnage.] | TLV is going to chnage.] | |||
| 3.4.4.1. Format of Neighbor Cache Capability | 5.4.1. Format of Neighbor Cache Capability | |||
| 4. Acknowledgements | 6. Acknowledgements | |||
| Thanks to Georgios Papadopoulos, Li Zhao for the review and feedback. | Thanks to Georgios Papadopoulos, Li Zhao for the review and feedback. | |||
| 5. IANA Considerations | 7. IANA Considerations | |||
| 5.1. New option: Capabilities | 7.1. New option: Capabilities | |||
| New entry is required for supporting new Capabilities option in the | New entry is required for supporting new Capabilities option in the | |||
| "RPL Control Message Options" space [RFC6550]. | "RPL Control Message Options" space [RFC6550]. | |||
| +-------+--------------+---------------+ | +-------+--------------+---------------+ | |||
| | Value | Meaning | Reference | | | Value | Meaning | Reference | | |||
| +-------+--------------+---------------+ | +-------+--------------+---------------+ | |||
| | TBD1 | Capabilities | This document | | | TBD1 | Capabilities | This document | | |||
| +-------+--------------+---------------+ | +-------+--------------+---------------+ | |||
| New options | New options | |||
| 5.2. New Registry for Capabilities Flags | 7.2. New Registry for Capabilities Flags | |||
| IANA is requested to create a registry for the Capabilities flags as | IANA is requested to create a registry for the Capabilities flags as | |||
| described in Section 2.1 of this document. This registry should be | described in Section 2.1 of this document. This registry should be | |||
| located in TODO. New Capabilities flags may be allocated only by an | located in TODO. New Capabilities flags may be allocated only by an | |||
| IETF review. Currently no flags are defined by this document. Each | IETF review. Currently no flags are defined by this document. Each | |||
| value is tracked with the following qualities: | value is tracked with the following qualities: | |||
| o Flag | o Flag | |||
| o Description | o Description | |||
| o Defining RFC | o Defining RFC | |||
| 6. Security Considerations | 8. Security Considerations | |||
| The options defined in this document are carried in the base message | The options defined in this document are carried in the base message | |||
| objects as defined in [RFC6550]. The RPL control message options are | objects as defined in [RFC6550]. The RPL control message options are | |||
| protected by the same security mechanisms that protect the base | protected by the same security mechanisms that protect the base | |||
| messages. | messages. | |||
| Capabilities flag can reveal that the node has been upgraded or is | Capabilities flag can reveal that the node has been upgraded or is | |||
| running a old feature set. This document assumes that the base | running a old feature set. This document assumes that the base | |||
| messages that carry these options are protected by RPL security | messages that carry these options are protected by RPL security | |||
| mechanisms and thus are not visible to a malicious node. | mechanisms and thus are not visible to a malicious node. | |||
| 7. References | [TODO] implications of malicious attack involving setting the | |||
| capability flags. | ||||
| 7.1. Normative References | 9. References | |||
| 9.1. Normative References | ||||
| [I-D.ietf-lwig-nbr-mgmt-policy] | [I-D.ietf-lwig-nbr-mgmt-policy] | |||
| Jadhav, R., Sahoo, R., Duquennoy, S., and J. Eriksson, | Jadhav, R., Sahoo, R., Duquennoy, S., and J. Eriksson, | |||
| "Neighbor Management Policy for 6LoWPAN", draft-ietf-lwig- | "Neighbor Management Policy for 6LoWPAN", draft-ietf-lwig- | |||
| nbr-mgmt-policy-03 (work in progress), February 2019. | nbr-mgmt-policy-03 (work in progress), February 2019. | |||
| [I-D.ietf-roll-dao-projection] | [I-D.ietf-roll-dao-projection] | |||
| Thubert, P., Jadhav, R., and M. Gillmore, "Root initiated | Thubert, P., Jadhav, R., and M. Gillmore, "Root initiated | |||
| routing state in RPL", draft-ietf-roll-dao-projection-09 | routing state in RPL", draft-ietf-roll-dao-projection-09 | |||
| (work in progress), November 2019. | (work in progress), November 2019. | |||
| skipping to change at page 13, line 41 ¶ | skipping to change at page 15, line 10 ¶ | |||
| JP., and R. Alexander, "RPL: IPv6 Routing Protocol for | JP., and R. Alexander, "RPL: IPv6 Routing Protocol for | |||
| Low-Power and Lossy Networks", RFC 6550, | Low-Power and Lossy Networks", RFC 6550, | |||
| DOI 10.17487/RFC6550, March 2012, | DOI 10.17487/RFC6550, March 2012, | |||
| <https://www.rfc-editor.org/info/rfc6550>. | <https://www.rfc-editor.org/info/rfc6550>. | |||
| [RFC8138] Thubert, P., Ed., Bormann, C., Toutain, L., and R. Cragie, | [RFC8138] Thubert, P., Ed., Bormann, C., Toutain, L., and R. Cragie, | |||
| "IPv6 over Low-Power Wireless Personal Area Network | "IPv6 over Low-Power Wireless Personal Area Network | |||
| (6LoWPAN) Routing Header", RFC 8138, DOI 10.17487/RFC8138, | (6LoWPAN) Routing Header", RFC 8138, DOI 10.17487/RFC8138, | |||
| April 2017, <https://www.rfc-editor.org/info/rfc8138>. | April 2017, <https://www.rfc-editor.org/info/rfc8138>. | |||
| 7.2. Informative References | 9.2. Informative References | |||
| [RFC6551] Vasseur, JP., Ed., Kim, M., Ed., Pister, K., Dejean, N., | [RFC6551] Vasseur, JP., Ed., Kim, M., Ed., Pister, K., Dejean, N., | |||
| and D. Barthel, "Routing Metrics Used for Path Calculation | and D. Barthel, "Routing Metrics Used for Path Calculation | |||
| in Low-Power and Lossy Networks", RFC 6551, | in Low-Power and Lossy Networks", RFC 6551, | |||
| DOI 10.17487/RFC6551, March 2012, | DOI 10.17487/RFC6551, March 2012, | |||
| <https://www.rfc-editor.org/info/rfc6551>. | <https://www.rfc-editor.org/info/rfc6551>. | |||
| Appendix A. Capability Handshake Example | Appendix A. Capability Handshake Example | |||
| Root 6LR 6LN | Root 6LR 6LN | |||
| End of changes. 33 change blocks. | ||||
| 80 lines changed or deleted | 121 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/ | ||||