draft-ietf-roll-nsa-extension-06.txt | draft-ietf-roll-nsa-extension-07.txt | |||
---|---|---|---|---|
ROLL R. Koutsiamanis, Ed. | ROLL R. Koutsiamanis, Ed. | |||
Internet-Draft G. Papadopoulos | Internet-Draft G. Papadopoulos | |||
Intended status: Standards Track N. Montavont | Intended status: Standards Track N. Montavont | |||
Expires: August 13, 2020 IMT Atlantique | Expires: September 10, 2020 IMT Atlantique | |||
P. Thubert | P. Thubert | |||
Cisco | Cisco | |||
February 10, 2020 | March 9, 2020 | |||
Common Ancestor Objective Function and Parent Set DAG Metric Container | Common Ancestor Objective Function and Parent Set DAG Metric Container | |||
Extension | Extension | |||
draft-ietf-roll-nsa-extension-06 | draft-ietf-roll-nsa-extension-07 | |||
Abstract | Abstract | |||
Implementing Packet Replication and Elimination from/to the RPL root | Packet Replication and Elimination is a method in which several | |||
requires the ability to forward copies of packets over different | copies of a data packet are sent in the network in order to achieve | |||
paths via different RPL parents. Selecting the appropriate parents | high reliability and low jitter. This document details how to apply | |||
to achieve ultra-low latency and jitter requires information about a | Packet Replication and Elimination in RPL, especially how to exchange | |||
node's parents. This document details what information needs to be | information within RPL control packets to let a node better select | |||
transmitted and how it is encoded within RPL control packets to | the different parents that will be used to forward the multiple | |||
enable this functionality. This document also describes Objective | copies of a packet. This document also describes the Objective | |||
Function which take advantage of this information to implement multi- | Function which takes advantage of this information to implement | |||
path routing. | multi-path routing. | |||
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. | |||
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 | |||
carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
described in the Simplified BSD License. | described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
3. Common Ancestor Objective Function . . . . . . . . . . . . . 4 | 3. Common Ancestor AP Selection Policies . . . . . . . . . . . . 4 | |||
3.1. Common Ancestor Strict . . . . . . . . . . . . . . . . . 6 | 3.1. Common Ancestor Strict . . . . . . . . . . . . . . . . . 5 | |||
3.2. Common Ancestor Medium . . . . . . . . . . . . . . . . . 7 | 3.2. Common Ancestor Medium . . . . . . . . . . . . . . . . . 6 | |||
3.3. Common Ancestor Relaxed . . . . . . . . . . . . . . . . . 8 | 3.3. Common Ancestor Relaxed . . . . . . . . . . . . . . . . . 6 | |||
3.4. Usage . . . . . . . . . . . . . . . . . . . . . . . . . . 8 | 4. Common Ancestor Objective Function . . . . . . . . . . . . . 6 | |||
4. Node State and Attribute (NSA) object type extension . . . . 8 | 4.1. Usage . . . . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
4.1. Usage . . . . . . . . . . . . . . . . . . . . . . . . . . 10 | 5. Node State and Attribute (NSA) object type extension . . . . 9 | |||
5. Controlling PRE . . . . . . . . . . . . . . . . . . . . . . . 11 | 5.1. Usage . . . . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
6. Security Considerations . . . . . . . . . . . . . . . . . . . 11 | 6. Controlling PRE . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 11 | |||
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 11 | 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 | |||
8.1. Informative references . . . . . . . . . . . . . . . . . 11 | 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
8.2. Other Informative References . . . . . . . . . . . . . . 12 | 9.1. Informative references . . . . . . . . . . . . . . . . . 12 | |||
9.2. Other Informative References . . . . . . . . . . . . . . 13 | ||||
Appendix A. Implementation Status . . . . . . . . . . . . . . . 13 | Appendix A. Implementation Status . . . . . . . . . . . . . . . 13 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 15 | Appendix B. Choosing an AP selection policy . . . . . . . . . . 15 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 16 | ||||
1. Introduction | 1. Introduction | |||
Network-enabled applications in the industrial context must provide | Networks in the industrial context must provide stringent guarantees | |||
stringent guarantees in terms of reliability and predictability. | in terms of reliability and predictability, with this domain being | |||
one of main ones addressed by Deterministic Networking [RFC8557]. | ||||
Packet Replication and Elimination (PRE) | Packet Replication and Elimination (PRE) | |||
[I-D.papadopoulos-6tisch-pre-reqs] is a technique which allows | [I-D.papadopoulos-6tisch-pre-reqs] is a technique which allows | |||
redundant paths in the network to be utilized for traffic requiring | redundant paths in the network to be utilized for traffic requiring | |||
higher reliability. Allowing these kinds of applications to function | higher reliability. Allowing industrial applications to function | |||
over wireless networks requires the application of the principles of | over wireless networks requires the application of the principles and | |||
Deterministic Networking [I-D.ietf-detnet-architecture]. This | architecture of Deterministic Networking [RFC8655]. This results in | |||
results in designs which aim at optimizing packet delivery rate and | designs which aim at optimizing packet delivery rate and bounding | |||
bounding latency. Additionally, given that the network nodes often | latency. Additionally, nodes operating on battery need to minimize | |||
do not have an unlimited power supply, energy consumption needs to be | their energy consumption. | |||
minimized as well. | ||||
As an example, to meet this goal, IEEE Std. 802.15.4 [IEEE802154] | As an example, to meet this goal, IEEE Std. 802.15.4 [IEEE802154] | |||
provides Time-Slotted Channel Hopping (TSCH), a mode of operation | provides Time-Slotted Channel Hopping (TSCH), a mode of operation | |||
which uses a common communication schedule based on timeslots to | which uses a common communication schedule based on timeslots to | |||
allow deterministic medium access as well as channel hopping to work | allow deterministic medium access as well as channel hopping to work | |||
around radio interference. However, since TSCH uses retransmissions | around radio interference. However, since TSCH uses retransmissions | |||
in the event of a failed transmission, end-to-end delay and jitter | in the event of a failed transmission, end-to-end latency and jitter | |||
performance can deteriorate. | performance can deteriorate. | |||
Furthermore, the 6TiSCH working group, focusing on IPv6 over IEEE | Furthermore, the 6TiSCH working group, focusing on IPv6 over IEEE | |||
Std. 802.15.4-TSCH, has worked on the issues previously highlighted | Std. 802.15.4-TSCH, has worked on these issues and produced the | |||
and produced the "6TiSCH Architecture" [I-D.ietf-6tisch-architecture] | "6TiSCH Architecture" [I-D.ietf-6tisch-architecture] to address that | |||
to address that case. Building on this architecture, "Exploiting | case. Building on this architecture, "Exploiting Packet Replication | |||
Packet Replication and Elimination in Complex Tracks in 6TiSCH LLNs" | and Elimination in Complex Tracks in 6TiSCH LLNs" | |||
[I-D.papadopoulos-6tisch-pre-reqs] leverages PRE to improve the | [I-D.papadopoulos-6tisch-pre-reqs] leverages PRE to improve the | |||
Packet Delivery Ratio (PDR), to provide a hard bound to the end-to- | Packet Delivery Ratio (PDR), to provide a hard bound to the end-to- | |||
end latency, and to limit jitter. | end latency, and thus to limit jitter. | |||
PRE is a general method of maximizing packet delivery rate and | PRE is a general method of maximizing packet delivery rate and | |||
potentially minimizing latency and jitter, not limited to 6TiSCH. | potentially minimizing latency and jitter, not limited to 6TiSCH. | |||
More specifically, PRE achieves controlled redundancy by laying | More specifically, PRE achieves controlled redundancy by laying | |||
multiple forwarding paths through the network and using them in | multiple forwarding paths through the network and using them in | |||
parallel for different copies of a same packet. PRE can follow the | parallel for different copies of a same packet. PRE can follow the | |||
Destination-Oriented Directed Acyclic Graph (DODAG) formed by RPL | Destination-Oriented Directed Acyclic Graph (DODAG) formed by RPL | |||
from a node to the root. Building a multi-path DODAG can be achieved | from a node to the root. Building a multi-path DODAG can be achieved | |||
based on the RPL capability of having multiple parents for each node | based on the RPL capability of having multiple parents for each node | |||
in a network, a subset of which is used to forward packets. In order | in a network, a subset of which is used to forward packets. In order | |||
for this subset to be defined, a RPL parent subset selection | to select parents to be part of this subset, the RPL Objective | |||
mechanism, which is among the responsibilities of the RPL Objective | Function (OF) needs additional information regarding the multi-path | |||
Function (OF), needs to have specific path information. This | nature of PRE. This document describes an OF which implements multi- | |||
document describes OFs which implement multi-path routing for PRE and | path routing for PRE and specifies the transmission of this specific | |||
specifies the transmission of this specific path information. | path information. | |||
This document describes a new objective function (OF) called the | This document describes a new Objective Function (OF) called the | |||
Common Ancestor (CA) OF. A detailed description is given of how the | Common Ancestor (CA) OF. A detailed description is given of how the | |||
path information is used within the CA OF and how the subset of | path information is used within the CA OF and how the subset of | |||
parents for forwarding packets is selected. This specification | parents for forwarding packets is selected. This specification | |||
defines a new Objective Code Point (OCP) for the CA OF. | defines a new Objective Code Point (OCP) for the CA OF. | |||
For the path information, this specification focuses on the | For the path information, this specification focuses on the | |||
extensions to the DAG Metric Container [RFC6551] required for | extensions to the DAG Metric Container [RFC6551] required for | |||
providing the PRE mechanism a part of the information it needs to | providing the PRE mechanism a part of the information it needs to | |||
operate. This information is the RPL [RFC6550] parent address set of | operate. This information is the RPL [RFC6550] parent address set of | |||
a node and it must be sent to potential children of the node. The | a node and it must be sent to potential children of the node. The | |||
skipping to change at page 4, line 13 ¶ | skipping to change at page 4, line 15 ¶ | |||
the parent address set TLV. | the parent address set TLV. | |||
2. Terminology | 2. Terminology | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
document are to be interpreted as described in [RFC2119]. | document are to be interpreted as described in [RFC2119]. | |||
The draft uses the following Terminology: | The draft uses the following Terminology: | |||
Packet Replication and Elimination (PRE): A method which transmits | Packet Replication and Elimination (PRE): A method which consists of | |||
multiple copies of a packet using multi-path forwarding over a | transmitting multiple copies of a packet using multi-path | |||
multi-hop network and which consolidates multiple received packet | forwarding over a multi-hop network and which consolidates | |||
copies to control flooding. See "Exploiting Packet Replication | multiple received packet copies to control flooding. See | |||
and Elimination in Complex Tracks in 6TiSCH LLNs" | "Exploiting Packet Replication and Elimination in Complex Tracks | |||
[I-D.papadopoulos-6tisch-pre-reqs] for more details. | in 6TiSCH LLNs" [I-D.papadopoulos-6tisch-pre-reqs] for more | |||
details. | ||||
Parent Set (PS): Given a RPL node, the set of its neighbor nodes | Parent Set (PS): Given a RPL node, the set of its neighbor nodes | |||
which participate in the same RPL DODAG and which can potentially | which participate in the same RPL DODAG and which can potentially | |||
take the role of the node's preferred parent. | take the role of the node's preferred parent. | |||
Alternative Parent (AP): A RPL parent in the parent set of a node | Alternative Parent (AP): A RPL parent in the parent set of a node | |||
which is used to forward a packet copy when replicating packets. | which is used to forward a packet copy when replicating packets. | |||
Alternative Parent (AP) Selection: The mechanism for choosing the | Alternative Parent (AP) Selection: The mechanism for choosing the | |||
next hop node to forward a packet copy when replicating packets. | next hop node to forward a packet copy when replicating packets. | |||
Preferred Grand Parent (PGP): The preferred parent of the preferred | Preferred Grand Parent (PGP): The preferred parent of the preferred | |||
parent of a node. | parent of a node. | |||
3. Common Ancestor Objective Function | 3. Common Ancestor AP Selection Policies | |||
In the RPL protocol, each node maintains a list of potential parents. | In the RPL protocol, each node maintains a list of potential parents. | |||
For PRE, the Preferred Parent (PP) node is defined to be the same as | For PRE, the Preferred Parent (PP) node is defined to be the same as | |||
the RPL DODAG Preferred Parent node. Furthermore, to construct an | the RPL DODAG Preferred Parent node. Furthermore, to construct an | |||
alternative path toward the root, in addition to the PP node, each | alternative path toward the root, in addition to the PP node, each | |||
node in the network registers an AP node as well from its Parent Set | node in the network selects additional parent(s), called alternative | |||
(PS). | parent(s), from its Parent Set (PS). | |||
There are multiple alternative methods of selecting the AP node. | ||||
This functionality is included in the operation of the RPL Objective | ||||
Function (OF). An OF which allows the two paths to remain correlated | ||||
is detailed here. More specifically, when using this OF a node will | ||||
select an AP node close to its PP node to allow the operation of | ||||
overhearing between parents. For more details about overhearing and | ||||
its use in this context see Section 4.3. "Promiscuous Overhearing" | ||||
in "Exploiting Packet Replication and Elimination in Complex Tracks | ||||
in 6TiSCH LLNs" [I-D.papadopoulos-6tisch-pre-reqs]. If multiple | ||||
potential APs match this condition, the AP with the lowest rank will | ||||
be registered. | ||||
The OF described here is an extension of the The Minimum Rank with | ||||
Hysteresis Objective Function [RFC6719] (MRHOF). In general, this OF | ||||
extends MRHOF by specifying how an AP is selected. Importantly, the | ||||
calculation of the rank of the node through each candidate neighbor | ||||
and the selection of the PP is kept the same as in MRHOF. | ||||
The ways in which the CA OF modifies MRHOF in a section-by-section | ||||
manner follows in detail: | ||||
3. The Minimum Rank with Hysteresis Objective Function: | ||||
Same as MRHOF extended to AP selection. Minimum Rank path | ||||
selection and switching applies correspondingly to the AP with the | ||||
extra CA requirement of having some match between ancestors. | ||||
3.1. Computing the Path Cost: Same as MRHOF extended to AP | ||||
selection. If a candidate neighbor does not fulfill the CA | ||||
requirement then the path through that neighbor SHOULD be set to | ||||
MAX_PATH_COST, the same value used by MRHOF. As a result, the | ||||
node MUST NOT select the candidate neighbor as its AP. | ||||
3.2. Parent Selection: Same as MRHOF extended to AP selection. To | ||||
allow hysteresis, AP selection maintains a variable, | ||||
cur_ap_min_path_cost, which is the path cost of the current AP. | ||||
3.2.1. When Parent Selection Runs: Same as MRHOF. | ||||
3.2.2. Parent Selection Algorithm: Same as MRHOF extended to AP | ||||
selection. If the smallest path cost for paths through the | ||||
candidate neighbors is smaller than cur_ap_min_path_cost by less | ||||
than PARENT_SWITCH_THRESHOLD (the same variable as MRHOF uses), | ||||
the node MAY continue to use the current AP. Additionally, if | ||||
there is no PP selected, there MUST NOT be any AP selected as | ||||
well. Finally, as with MRHOF, a node MAY include up to | ||||
PARENT_SET_SIZE-1 additional candidate neighbors in its | ||||
alternative parent set. The value of PARENT_SET_SIZE is the same | ||||
as in MRHOF. | ||||
3.3. Computing Rank: Same as MRHOF. | ||||
3.4. Advertising the Path Cost: Same as MRHOF. | ||||
3.5. Working without Metric Containers: It is not possible to work | ||||
without metric containers, since CA AP selection requires | ||||
information from parents regarding their parent sets, which is | ||||
transmitted via the NSA object in the DIO Mectric Container. | ||||
4. Using MRHOF for Metric Maximization: Same as MRHOF. | ||||
5. MRHOF Variables and Parameters: Same as MRHOF extended to AP | ||||
selection. The CA OFs operate like MRHOF for AP selection by | ||||
maintaining separate: | ||||
AP: Corresponding to the MRHOF PP. Hysteresis is configured for | ||||
AP with the same PARENT_SWITCH_THRESHOLD parameter as in MRHOF. | ||||
The AP MUST NOT be the same as the PP. | ||||
Alternative parent set: Corresponding to the MRHOF parent set. | ||||
The size is defined by the same PARENT_SET_SIZE parameter as in | ||||
MRHOF. The Alternative parent set MUST be a non-strict subset | ||||
of the parent set. | ||||
cur_ap_min_path_cost: Corresponding to the MRHOF | ||||
cur_min_path_cost variable. To support the operation of the | ||||
hysteresis function for AP selection. | ||||
6. Manageability: Same as MRHOF. | ||||
6.1. Device Configuration: Same as MRHOF. | ||||
6.2. Device Monitoring: Same as MRHOF. | There are multiple possible policies of selecting the AP node. This | |||
section details three such possible policies. | ||||
Three OFs are defined which perform AP selection based on common | All three policies defined perform AP selection based on common | |||
ancestors, named Common Ancestor Strict, Common Ancestor Medium, and | ancestors, named Common Ancestor Strict, Common Ancestor Medium, and | |||
Common Ancestor Relaxed, depending on how restrictive the selection | Common Ancestor Relaxed, depending on how restrictive the selection | |||
process is. A more restrictive method will limit flooding but might | process is. A more restrictive policy will limit flooding but might | |||
fail to select an appropriate AP, while a less restrictive one will | fail to select an appropriate AP, while a less restrictive one will | |||
more often find an appropriate AP but might increase flooding. The | more often find an appropriate AP but might increase flooding. | |||
OFs are all represented with the same Objective Code Point (OCP): | ||||
TBD1. | ||||
All three OFs apply their corresponding common ancestor criterion to | All three policies apply their corresponding common ancestor | |||
filter the list of candidate neighbours in the alternative parent | criterion to filter the list of candidate neighbours in the | |||
set. The AP is then selected from the alternative parent set based | alternative parent set. | |||
on Rank and using hysteresis as is done for the PP in MRHOF. | ||||
3.1. Common Ancestor Strict | 3.1. Common Ancestor Strict | |||
In the CA Strict OF the node will check if its Preferred Grand Parent | In the CA Strict OF the node will check if its Preferred Grand Parent | |||
(PGP), the PP of its PP, is the same as the PP of the potential AP. | (PGP), the PP of its PP, is the same as the PP of the potential AP. | |||
( R ) root | ( R ) root | |||
. PS(S) = {A, B, C, D} | . PS(S) = {A, B, C, D} | |||
. PP(S) = C | . PP(S) = C | |||
. PP(PP(S)) = Y | . PP(PP(S)) = Y | |||
skipping to change at page 7, line 26 ¶ | skipping to change at page 5, line 37 ¶ | |||
| // \ | // \ || / \ || PS(C) = {X, Y, Z} | | // \ | // \ || / \ || PS(C) = {X, Y, Z} | |||
( A ) ( B ) ( C ) ( D ) PP(C) = Y | ( A ) ( B ) ( C ) ( D ) PP(C) = Y | |||
^ ^ ^^ ^ | ^ ^ ^^ ^ | |||
\ \ || / PS(D) = {Y, Z} | \ \ || / PS(D) = {Y, Z} | |||
\ \ || / PP(D) = Z | \ \ || / PP(D) = Z | |||
\ \ || / | \ \ || / | |||
\----\\ || / || Preferred Parent | \----\\ || / || Preferred Parent | |||
( S ) source | Potential Alternative Parent | ( S ) source | Potential Alternative Parent | |||
Figure 1: Example Common Ancestor Strict Alternative Parent Selection | Figure 1: Example Common Ancestor Strict Alternative Parent Selection | |||
method | policy | |||
For example, in Figure 1, the source node S must know its grandparent | For example, in Figure 1, the source node S must know its grandparent | |||
sets through nodes A, B, C, and D. The Parent Sets (PS) and the | sets through nodes A, B, C, and D. The Parent Sets (PS) and the | |||
Preferred Parents (PS) of nodes A, B, C, and D are shown on the side | Preferred Parents (PS) of nodes A, B, C, and D are shown on the side | |||
of the figure. The CA Strict parent selection method will select an | of the figure. The CA Strict parent selection policy will select an | |||
AP for node S for which PP(PP(S)) = PP(AP). Given that PP(PP(S)) = | AP for node S for which PP(PP(S)) = PP(AP). Given that PP(PP(S)) = | |||
Y: | Y: | |||
o Node A: PP(A) = X and therefore it is different than PP(PP(S)) | o Node A: PP(A) = X and therefore it is different than PP(PP(S)) | |||
o Node B: PS(B) = Y and therefore it is equal to PP(PP(S)) | o Node B: PS(B) = Y and therefore it is equal to PP(PP(S)) | |||
o Node D: PS(D) = Z and therefore it is different than PP(PP(S)) | o Node D: PS(D) = Z and therefore it is different than PP(PP(S)) | |||
node S can decide to use node B as its AP node, since PP(PP(S)) = Y = | node S can decide to use node B as its AP node, since PP(PP(S)) = Y = | |||
PP(B). | PP(B). | |||
3.2. Common Ancestor Medium | 3.2. Common Ancestor Medium | |||
In the CA Medium OF the node will check if its Preferred Grand Parent | In the CA Medium OF the node will check if its Preferred Grand Parent | |||
(PGP), the PP of its PP, is contained in the PS of the potential AP. | (PGP), the PP of its PP, is contained in the PS of the potential AP. | |||
Using the same example, in Figure 1, the CA Medium parent selection | Using the same example, in Figure 1, the CA Medium parent selection | |||
method will select an AP for node S for which PP(PP(S)) is in PS(AP). | policy will select an AP for node S for which PP(PP(S)) is in PS(AP). | |||
Given that PP(PP(S)) = Y: | Given that PP(PP(S)) = Y: | |||
o Node A: PS(A) = {W, X} and therefore PP(PP(S)) is not in the set | o Node A: PS(A) = {W, X} and therefore PP(PP(S)) is not in the set | |||
o Node B: PS(B) = {W, X, Y} and therefore PP(PP(S)) is in the set | o Node B: PS(B) = {W, X, Y} and therefore PP(PP(S)) is in the set | |||
o Node D: PS(D) = {Y, Z} and therefore PP(PP(S)) is in the set | o Node D: PS(D) = {Y, Z} and therefore PP(PP(S)) is in the set | |||
node S can decide to use node B or D as its AP node. | node S can decide to use node B or D as its AP node. | |||
3.3. Common Ancestor Relaxed | 3.3. Common Ancestor Relaxed | |||
In the CA Relaxed OF the node will check if the Parent Set (PS) of | In the CA Relaxed OF the node will check if the Parent Set (PS) of | |||
its Preferred Parent (PP) has a node in common with the PS of the | its Preferred Parent (PP) has a node in common with the PS of the | |||
potential AP. | potential AP. | |||
Using the same example, in Figure 1, the CA Relaxed parent selection | Using the same example, in Figure 1, the CA Relaxed parent selection | |||
method will select an AP for node S for which PS(PP(S)) has at least | policy will select an AP for node S for which PS(PP(S)) has at least | |||
one node in common with PS(AP). Given that PS(PP(S)) = {X, Y, Z}: | one node in common with PS(AP). Given that PS(PP(S)) = {X, Y, Z}: | |||
o Node A: PS(A) = {W, X} and the common nodes are {X} | o Node A: PS(A) = {W, X} and the common nodes are {X} | |||
o Node B: PS(B) = {W, X, Y} and the common nodes are {X, Y} | o Node B: PS(B) = {W, X, Y} and the common nodes are {X, Y} | |||
o Node D: PS(D) = {Y, Z} and the common nodes are {Y, Z} | o Node D: PS(D) = {Y, Z} and the common nodes are {Y, Z} | |||
node S can decide to use node A, B or D as its AP node. | node S can decide to use node A, B or D as its AP node. | |||
3.4. Usage | 4. Common Ancestor Objective Function | |||
An OF which allows the multiple paths to remain correlated is | ||||
detailed here. More specifically, when using this OF a node will | ||||
select an AP node close to its PP node to allow the operation of | ||||
overhearing between parents. For more details about overhearing and | ||||
its use in this context see Section 4.3. "Promiscuous Overhearing" | ||||
in "Exploiting Packet Replication and Elimination in Complex Tracks | ||||
in 6TiSCH LLNs" [I-D.papadopoulos-6tisch-pre-reqs]. If multiple | ||||
potential APs match this condition, the AP with the lowest rank will | ||||
be registered. | ||||
The OF described here is an extension of the The Minimum Rank with | ||||
Hysteresis Objective Function [RFC6719] (MRHOF). In general, this OF | ||||
extends MRHOF by specifying how an AP is selected. Importantly, the | ||||
calculation of the rank of the node through each candidate neighbor | ||||
and the selection of the PP is kept the same as in MRHOF. | ||||
The ways in which the CA OF modifies MRHOF in a section-by-section | ||||
manner follows in detail: | ||||
MRHOF Section 3. "The Minimum Rank with Hysteresis Objective | ||||
Function": | ||||
Same as MRHOF extended to AP selection. Minimum Rank path | ||||
selection and switching applies correspondingly to the AP with the | ||||
extra CA requirement of having some match between ancestors. | ||||
MRHOF Section 3.1. "Computing the Path Cost": Same as MRHOF | ||||
extended to AP selection. If a candidate neighbor does not | ||||
fulfill the CA requirement then the path through that neighbor | ||||
SHOULD be set to MAX_PATH_COST, the same value used by MRHOF. As | ||||
a result, the node MUST NOT select the candidate neighbor as its | ||||
AP. | ||||
MRHOF Section 3.2. "Parent Selection": Same as MRHOF extended to AP | ||||
selection. To allow hysteresis, AP selection maintains a | ||||
variable, cur_ap_min_path_cost, which is the path cost of the | ||||
current AP. | ||||
MRHOF Section 3.2.1. "When Parent Selection Runs": Same as MRHOF. | ||||
MRHOF Section 3.2.2. "Parent Selection Algorithm": Same as MRHOF | ||||
extended to AP selection. If the smallest path cost for paths | ||||
through the candidate neighbors is smaller than | ||||
cur_ap_min_path_cost by less than PARENT_SWITCH_THRESHOLD (the | ||||
same variable as MRHOF uses), the node MAY continue to use the | ||||
current AP. Additionally, if there is no PP selected, there MUST | ||||
NOT be any AP selected as well. Finally, as with MRHOF, a node | ||||
MAY include up to PARENT_SET_SIZE-1 additional candidate neighbors | ||||
in its alternative parent set. The value of PARENT_SET_SIZE is | ||||
the same as in MRHOF. | ||||
MRHOF Section 3.3. "Computing Rank": Same as MRHOF. | ||||
MRHOF Section 3.4. "Advertising the Path Cost": Same as MRHOF. | ||||
MRHOF Section 3.5. "Working without Metric Containers": | ||||
It is not possible to work without metric containers, since CA AP | ||||
selection requires information from parents regarding their parent | ||||
sets, which is transmitted via the NSA object in the DIO Mectric | ||||
Container. | ||||
MRHOF Section 4. "Using MRHOF for Metric Maximization": | ||||
Same as MRHOF. | ||||
MRHOF Section 5. "MRHOF Variables and Parameters": Same as MRHOF | ||||
extended to AP selection. The CA OF operates like MRHOF for AP | ||||
selection by maintaining separate: | ||||
AP: Corresponding to the MRHOF PP. Hysteresis is configured for | ||||
AP with the same PARENT_SWITCH_THRESHOLD parameter as in MRHOF. | ||||
The AP MUST NOT be the same as the PP. | ||||
Alternative parent set: Corresponding to the MRHOF parent set. | ||||
The size is defined by the same PARENT_SET_SIZE parameter as in | ||||
MRHOF. The Alternative parent set MUST be a non-strict subset | ||||
of the parent set. | ||||
cur_ap_min_path_cost: Corresponding to the MRHOF | ||||
cur_min_path_cost variable. To support the operation of the | ||||
hysteresis function for AP selection. | ||||
MRHOF Section 6. "Manageability": Same as MRHOF. | ||||
MRHOF Section 6.1. "Device Configuration": Same as MRHOF. | ||||
MRHOF Section 6.2. "Device Monitoring": Same as MRHOF. | ||||
4.1. Usage | ||||
All OF policies apply their corresponding criterion to filter the | ||||
list of candidate neighbours in the alternative parent set. The AP | ||||
is then selected from the alternative parent set based on Rank and | ||||
using hysteresis as is done for the PP in MRHOF. It is noteworthy | ||||
that the OF uses the same Objective Code Point (OCP): TBD1 for all | ||||
policies used. | ||||
The PS information can be used by any of the described AP selection | The PS information can be used by any of the described AP selection | |||
methods or other ones not described here, depending on requirements. | policies or other ones not described here, depending on requirements. | |||
It is optional for all nodes to use the same AP selection method. | It is optional for all nodes to use the same AP selection policies. | |||
Different nodes may use different AP selection methods, since the | Different nodes may use different AP selection policies, since the | |||
selection method is local to each node. For example, using different | selection policy is local to each node. For example, using different | |||
methods can be used to vary the transmission reliability in each hop. | policies can be used to vary the transmission reliability in each | |||
hop. | ||||
4. Node State and Attribute (NSA) object type extension | 5. Node State and Attribute (NSA) object type extension | |||
In order to select their AP node, nodes need to be aware of their | In order to select their AP node, nodes need to be aware of their | |||
grandparent node sets. Within RPL [RFC6550], the nodes use the DODAG | grandparent node sets. Within RPL [RFC6550], the nodes use the DODAG | |||
Information Object (DIO) Control Message to broadcast information | Information Object (DIO) Control Message to broadcast information | |||
about themselves to potential children. However, RPL [RFC6550], does | about themselves to potential children. However, RPL [RFC6550], does | |||
not define how to propagate parent set related information, which is | not define how to propagate parent set related information, which is | |||
what this document addresses. | what this document addresses. | |||
DIO messages can carry multiple options, out of which the DAG Metric | DIO messages can carry multiple options, out of which the DAG Metric | |||
Container option [RFC6551] is the most suitable structurally and | Container option [RFC6551] is the most suitable structurally and | |||
skipping to change at page 10, line 44 ¶ | skipping to change at page 11, line 5 ¶ | |||
separator between them. The field consists of one IPv6 address | separator between them. The field consists of one IPv6 address | |||
per parent in the parent set. The parent addresses are listed | per parent in the parent set. The parent addresses are listed | |||
in decreasing order of preference and not all parents in the | in decreasing order of preference and not all parents in the | |||
parent set need to be included. The selection of how many | parent set need to be included. The selection of how many | |||
parents from the parent set are to be included is left to the | parents from the parent set are to be included is left to the | |||
implementation. The number of parent addresses in the PS IPv6 | implementation. The number of parent addresses in the PS IPv6 | |||
address(es) field can be deduced by dividing the length of the | address(es) field can be deduced by dividing the length of the | |||
PS IPv6 address(es) field in bytes by 16, the number of bytes | PS IPv6 address(es) field in bytes by 16, the number of bytes | |||
in an IPv6 address. | in an IPv6 address. | |||
4.1. Usage | 5.1. Usage | |||
The PS SHOULD be used in the process of parent selection, and | The PS SHOULD be used in the process of parent selection, and | |||
especially in AP selection, since it can help the alternative path to | especially in AP selection, since it can help the alternative path to | |||
not significantly deviate from the preferred path. The Parent Set is | not significantly deviate from the preferred path. The Parent Set is | |||
information local to the node that broadcasts it. | information local to the node that broadcasts it. | |||
The PS is used only within NSA objects configured as constraints and | The PS is used only within NSA objects configured as a metric, | |||
is used as per [RFC6551]. As a result, the PS does not affect the | therefore the DAG Metric Container field "C" MUST be 0. | |||
calculation of the rank through candidate neighbors. It is only used | Additionally, since the information in the PS needs to be propagated | |||
with the CA OF to remove nodes which do not fulfill the CA OF | downstream but it cannot be aggregated, the DAG Metric Container | |||
criteria from the candidate neighbor list. | field "R" MUST be 1. Finally, since the information contained is by | |||
definition partial, more specifically just the parent set of the DIO- | ||||
sending node, the DAG Metric Container field "P" MUST be 1. | ||||
5. Controlling PRE | It is important that the PS does not affect the calculation of the | |||
rank through candidate neighbors. It is only used with the CA OF to | ||||
remove nodes which do not fulfill the CA OF criteria from the | ||||
candidate neighbor list. | ||||
6. Controlling PRE | ||||
PRE is very helpful when the aim is to increase reliability for a | PRE is very helpful when the aim is to increase reliability for a | |||
certain path, however its use creates additional traffic as part of | certain path, however its use creates additional traffic as part of | |||
the replication process. It is conceivable that not all paths have | the replication process. It is conceivable that not all paths have | |||
stringent reliability requirements. Therefore, a way to control | stringent reliability requirements. Therefore, a way to control | |||
whether PRE is applied to a path's packets SHOULD be implemented. | whether PRE is applied to a path's packets SHOULD be implemented. | |||
For example, a traffic class label can be used to determine this | For example, a traffic class label can be used to determine this | |||
behavior per flow type as described in Deterministic Networking | behavior per flow type as described in Deterministic Networking | |||
Architecture [I-D.ietf-detnet-architecture]. | Architecture [RFC8655]. | |||
6. Security Considerations | 7. Security Considerations | |||
The structure of the DIO control message is extended, within the pre- | The structure of the DIO control message is extended, within the pre- | |||
defined DIO options. Therefore, the security mechanisms defined in | defined DIO options. The additional information are the IPv6 | |||
RPL [RFC6550] apply to this proposed extension. | addresses of the parent set of the node transmitting the DIO. This | |||
use of this additional information can have the following potential | ||||
consequences: | ||||
7. IANA Considerations | o A malicious node that can receive and read the DIO can "see" | |||
further than it's own neighbourhood by one hop, learning the | ||||
addresses of it's two hop neighbors. This is a privacy / network | ||||
discovery issue. | ||||
o A malicious node that can send DIOs can use the parent set | ||||
extension to convince neighbours to route through itself, instead | ||||
of the normal preferred parent they would use. However, this is | ||||
already possible with other OFs (like OF0 [RFC6552] and MRHOF | ||||
[RFC6719]) by reporting a fake rank value in the DIO, thus | ||||
masquerading as the DODAG root. | ||||
8. IANA Considerations | ||||
This proposal requests the allocation of a new value TBD1 from the | This proposal requests the allocation of a new value TBD1 from the | |||
"Objective Code Point (OCP)" sub-registry of the "Routing Protocol | "Objective Code Point (OCP)" sub-registry of the "Routing Protocol | |||
for Low Power and Lossy Networks (RPL)" registry. | for Low Power and Lossy Networks (RPL)" registry. | |||
This proposal also requests the allocation of a new value TBD2 for | This proposal also requests the allocation of a new value TBD2 for | |||
the "Parent Set" TLV from the Routing Metric/Constraint TLVs sub- | the "Parent Set" TLV from the Routing Metric/Constraint TLVs sub- | |||
registry from IANA. | registry from IANA. | |||
8. References | 9. References | |||
8.1. Informative references | 9.1. Informative references | |||
[I-D.ietf-6tisch-architecture] | [I-D.ietf-6tisch-architecture] | |||
Thubert, P., "An Architecture for IPv6 over the TSCH mode | Thubert, P., "An Architecture for IPv6 over the TSCH mode | |||
of IEEE 802.15.4", draft-ietf-6tisch-architecture-28 (work | of IEEE 802.15.4", draft-ietf-6tisch-architecture-28 (work | |||
in progress), October 2019. | in progress), October 2019. | |||
[I-D.ietf-detnet-architecture] | ||||
Finn, N., Thubert, P., Varga, B., and J. Farkas, | ||||
"Deterministic Networking Architecture", draft-ietf- | ||||
detnet-architecture-13 (work in progress), May 2019. | ||||
[I-D.papadopoulos-6tisch-pre-reqs] | [I-D.papadopoulos-6tisch-pre-reqs] | |||
Papadopoulos, G., Montavont, N., and P. Thubert, | Papadopoulos, G., Montavont, N., and P. Thubert, | |||
"Exploiting Packet Replication and Elimination in Complex | "Exploiting Packet Replication and Elimination in Complex | |||
Tracks in 6TiSCH LLNs", draft-papadopoulos-6tisch-pre- | Tracks in 6TiSCH LLNs", draft-papadopoulos-6tisch-pre- | |||
reqs-02 (work in progress), July 2018. | reqs-02 (work in progress), July 2018. | |||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
<https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
skipping to change at page 12, line 29 ¶ | skipping to change at page 13, line 5 ¶ | |||
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>. | |||
[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>. | |||
[RFC6552] Thubert, P., Ed., "Objective Function Zero for the Routing | ||||
Protocol for Low-Power and Lossy Networks (RPL)", | ||||
RFC 6552, DOI 10.17487/RFC6552, March 2012, | ||||
<https://www.rfc-editor.org/info/rfc6552>. | ||||
[RFC6719] Gnawali, O. and P. Levis, "The Minimum Rank with | [RFC6719] Gnawali, O. and P. Levis, "The Minimum Rank with | |||
Hysteresis Objective Function", RFC 6719, | Hysteresis Objective Function", RFC 6719, | |||
DOI 10.17487/RFC6719, September 2012, | DOI 10.17487/RFC6719, September 2012, | |||
<https://www.rfc-editor.org/info/rfc6719>. | <https://www.rfc-editor.org/info/rfc6719>. | |||
8.2. Other Informative References | [RFC8557] Finn, N. and P. Thubert, "Deterministic Networking Problem | |||
Statement", RFC 8557, DOI 10.17487/RFC8557, May 2019, | ||||
<https://www.rfc-editor.org/info/rfc8557>. | ||||
[RFC8655] Finn, N., Thubert, P., Varga, B., and J. Farkas, | ||||
"Deterministic Networking Architecture", RFC 8655, | ||||
DOI 10.17487/RFC8655, October 2019, | ||||
<https://www.rfc-editor.org/info/rfc8655>. | ||||
9.2. Other Informative References | ||||
[IEEE802154] | [IEEE802154] | |||
IEEE standard for Information Technology, "IEEE Std | IEEE standard for Information Technology, "IEEE Std | |||
802.15.4 Standard for Low-Rate Wireless Personal Area | 802.15.4 Standard for Low-Rate Wireless Personal Area | |||
Networks (WPANs)", December 2015. | Networks (WPANs)", December 2015. | |||
8.3. URIs | 9.3. URIs | |||
[1] https://github.com/ariskou/contiki/tree/draft-koutsiamanis-roll- | [1] https://github.com/ariskou/contiki/tree/draft-koutsiamanis-roll- | |||
nsa-extension | nsa-extension | |||
[2] https://code.wireshark.org/review/gitweb?p=wireshark.git;a=commit | [2] https://code.wireshark.org/review/gitweb?p=wireshark.git;a=commit | |||
;h=e2f6ba229f45d8ccae2a6405e0ef41f1e61da138 | ;h=e2f6ba229f45d8ccae2a6405e0ef41f1e61da138 | |||
Appendix A. Implementation Status | Appendix A. Implementation Status | |||
A research-stage implementation of the PRE mechanism using the | A research-stage implementation of the PRE mechanism using the | |||
skipping to change at page 15, line 8 ¶ | skipping to change at page 15, line 43 ¶ | |||
+-----------+---------------+-----------------+---------------------+ | +-----------+---------------+-----------------+---------------------+ | |||
Links: | Links: | |||
o Contiki OS DIO DAGMC NSA extension (draft-koutsiamanis-roll-nsa- | o Contiki OS DIO DAGMC NSA extension (draft-koutsiamanis-roll-nsa- | |||
extension branch) [1] | extension branch) [1] | |||
o Wireshark dissectors (for the optional PS TLV) - currently merged | o Wireshark dissectors (for the optional PS TLV) - currently merged | |||
/ in master [2] | / in master [2] | |||
Appendix B. Choosing an AP selection policy | ||||
The manner of choosing an AP selection policy is left to the | ||||
implementation, for maximum flexibility. | ||||
For example, a different policy can be used per traffic type. The | ||||
network configurator can choose the CA Relaxed policy to increase | ||||
reliability (thus producing some flooding) for specific, extremely | ||||
important, alert packets. On the other hand, all normal data traffic | ||||
uses the CA Strict policy. Therefore, an exception is made just for | ||||
the alert packets. | ||||
Another option would be to devise a new disjoint policy, where the | ||||
paths are on purpose non-correlated, to increase path diversity and | ||||
resilience against whole groups of nodes failing. The disadvantage | ||||
may be increased jitter. | ||||
Finally, a network configurator may provide the CA policies with a | ||||
preference order of Strict > Medium > Relaxed as a means of falling | ||||
back to more flood-prone policies to maintain reliability. | ||||
Authors' Addresses | Authors' Addresses | |||
Remous-Aris Koutsiamanis (editor) | Remous-Aris Koutsiamanis (editor) | |||
IMT Atlantique | IMT Atlantique | |||
Office B00 - 126A | Office B00 - 126A | |||
2 Rue de la Chataigneraie | 2 Rue de la Chataigneraie | |||
Cesson-Sevigne - Rennes 35510 | Cesson-Sevigne - Rennes 35510 | |||
FRANCE | FRANCE | |||
Phone: +33 299 12 70 49 | Phone: +33 299 12 70 49 | |||
End of changes. 44 change blocks. | ||||
181 lines changed or deleted | 249 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/ |