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 23 skipping to change at page 12, line 38
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. 32 change blocks. 
80 lines changed or deleted 120 lines changed or added

This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/