draft-ietf-roll-nsa-extension-07.txt | draft-ietf-roll-nsa-extension-08.txt | |||
---|---|---|---|---|
ROLL R. Koutsiamanis, Ed. | ROLL R.-A. Koutsiamanis, Ed. | |||
Internet-Draft G. Papadopoulos | Internet-Draft G.Z. Papadopoulos | |||
Intended status: Standards Track N. Montavont | Intended status: Standards Track N. Montavont | |||
Expires: September 10, 2020 IMT Atlantique | Expires: 28 September 2020 IMT Atlantique | |||
P. Thubert | P. Thubert | |||
Cisco | Cisco | |||
March 9, 2020 | 27 March 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-07 | draft-ietf-roll-nsa-extension-08 | |||
Abstract | Abstract | |||
Packet Replication and Elimination is a method in which several | Packet Replication and Elimination is a method in which several | |||
copies of a data packet are sent in the network in order to achieve | copies of a data packet are sent in the network in order to achieve | |||
high reliability and low jitter. This document details how to apply | high reliability and low jitter. This document details how to apply | |||
Packet Replication and Elimination in RPL, especially how to exchange | Packet Replication and Elimination in RPL, especially how to exchange | |||
information within RPL control packets to let a node better select | information within RPL control packets to let a node better select | |||
the different parents that will be used to forward the multiple | the different parents that will be used to forward the multiple | |||
copies of a packet. This document also describes the Objective | copies of a packet. This document also describes the Objective | |||
skipping to change at page 1, line 42 ¶ | skipping to change at page 1, line 42 ¶ | |||
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 September 10, 2020. | This Internet-Draft will expire on 28 September 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/ | |||
(https://trustee.ietf.org/license-info) in effect on the date of | license-info) in effect on the date of publication of this document. | |||
publication of this document. Please review these documents | Please review these documents carefully, as they describe your rights | |||
carefully, as they describe your rights and restrictions with respect | and restrictions with respect to this document. Code Components | |||
to this document. Code Components extracted from this document must | extracted from this document must include Simplified BSD License text | |||
include Simplified BSD License text as described in Section 4.e of | as described in Section 4.e of the Trust Legal Provisions and are | |||
the Trust Legal Provisions and are provided without warranty as | 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 AP Selection Policies . . . . . . . . . . . . 4 | 3. Common Ancestor AP Selection Policies . . . . . . . . . . . . 4 | |||
3.1. Common Ancestor Strict . . . . . . . . . . . . . . . . . 5 | 3.1. Common Ancestor Strict . . . . . . . . . . . . . . . . . 5 | |||
3.2. Common Ancestor Medium . . . . . . . . . . . . . . . . . 6 | 3.2. Common Ancestor Medium . . . . . . . . . . . . . . . . . 6 | |||
3.3. Common Ancestor Relaxed . . . . . . . . . . . . . . . . . 6 | 3.3. Common Ancestor Relaxed . . . . . . . . . . . . . . . . . 6 | |||
4. Common Ancestor Objective Function . . . . . . . . . . . . . 6 | 4. Common Ancestor Objective Function . . . . . . . . . . . . . 6 | |||
4.1. Usage . . . . . . . . . . . . . . . . . . . . . . . . . . 8 | 4.1. Usage . . . . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
5. Node State and Attribute (NSA) object type extension . . . . 9 | 5. Node State and Attribute (NSA) object type extension . . . . 9 | |||
5.1. Usage . . . . . . . . . . . . . . . . . . . . . . . . . . 11 | 5.1. Usage . . . . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
6. Controlling PRE . . . . . . . . . . . . . . . . . . . . . . . 11 | 6. Controlling PRE . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
7. Security Considerations . . . . . . . . . . . . . . . . . . . 11 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 12 | |||
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 | 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 | |||
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 12 | 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
9.1. Informative references . . . . . . . . . . . . . . . . . 12 | 9.1. Informative references . . . . . . . . . . . . . . . . . 12 | |||
9.2. Other Informative References . . . . . . . . . . . . . . 13 | 9.2. Other Informative References . . . . . . . . . . . . . . 14 | |||
Appendix A. Implementation Status . . . . . . . . . . . . . . . 13 | Appendix A. Implementation Status . . . . . . . . . . . . . . . 14 | |||
Appendix B. Choosing an AP selection policy . . . . . . . . . . 15 | Appendix B. Choosing an AP selection policy . . . . . . . . . . 16 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 16 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
1. Introduction | 1. Introduction | |||
Networks in the industrial context must provide stringent guarantees | Networks in the industrial context must provide stringent guarantees | |||
in terms of reliability and predictability, with this domain being | in terms of reliability and predictability, with this domain being | |||
one of main ones addressed by Deterministic Networking [RFC8557]. | 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-raw-pareo-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 industrial applications to function | higher reliability. Allowing industrial applications to function | |||
over wireless networks requires the application of the principles and | over wireless networks requires the application of the principles and | |||
architecture of Deterministic Networking [RFC8655]. This results in | architecture of Deterministic Networking [RFC8655]. This results in | |||
designs which aim at optimizing packet delivery rate and bounding | designs which aim at optimizing packet delivery rate and bounding | |||
latency. Additionally, nodes operating on battery need to minimize | latency. Additionally, nodes operating on battery need to minimize | |||
their energy consumption. | their energy consumption. | |||
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 latency 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 these issues and produced the | Std. 802.15.4-TSCH, has worked on these issues and produced the | |||
"6TiSCH Architecture" [I-D.ietf-6tisch-architecture] to address that | "6TiSCH Architecture" [I-D.ietf-6tisch-architecture] to address that | |||
case. Building on this architecture, "Exploiting Packet Replication | case. Building on this architecture, "Exploiting Packet Replication | |||
and Elimination in Complex Tracks in 6TiSCH LLNs" | and Elimination in Complex Tracks in LLNs" | |||
[I-D.papadopoulos-6tisch-pre-reqs] leverages PRE to improve the | [I-D.papadopoulos-raw-pareo-reqs] leverages PRE to improve the Packet | |||
Packet Delivery Ratio (PDR), to provide a hard bound to the end-to- | Delivery Ratio (PDR), to provide a hard bound to the end-to-end | |||
end latency, and thus to limit jitter. | 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 | |||
to select parents to be part of this subset, the RPL Objective | to select parents to be part of this subset, the RPL Objective | |||
Function (OF) needs additional information regarding the multi-path | Function (OF) needs additional information regarding the multi-path | |||
nature of PRE. This document describes an OF which implements multi- | nature of PRE. This document describes an OF which implements multi- | |||
path routing for PRE and specifies the transmission of this specific | path routing for PRE and 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 (see Section 4). A detailed description is | |||
path information is used within the CA OF and how the subset of | given of how the path information is used within the CA OF and how | |||
parents for forwarding packets is selected. This specification | the subset of parents for forwarding packets is selected. This | |||
defines a new Objective Code Point (OCP) for the CA OF. | specification 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] parent address set of a node | |||
a node and it must be sent to potential children of the node. The | and it must be sent to potential children of the node. The RPL DIO | |||
RPL DIO Control Message is the canonical way of broadcasting this | Control Message is the canonical way of broadcasting this kind of | |||
kind of information and therefore its DAG Metric Container [RFC6551] | information and therefore its DAG Metric Container [RFC6551] field is | |||
field is used to append a Node State and Attribute (NSA) object. The | used to append a Node State and Attribute (NSA) object. The node's | |||
node's parent address set is stored as an optional TLV within the NSA | parent address set is stored as an optional TLV within the NSA | |||
object. This specification defines the type value and structure for | object. This specification defines the type value and structure for | |||
the parent address set TLV. | the parent address set TLV (see Section 5). | |||
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 consists of | Packet Replication and Elimination (PRE): A method which consists of | |||
transmitting multiple copies of a packet using multi-path | transmitting multiple copies of a packet using multi-path | |||
forwarding over a multi-hop network and which consolidates | forwarding over a multi-hop network and which consolidates | |||
multiple received packet copies to control flooding. See | multiple received packet copies to control flooding. See | |||
"Exploiting Packet Replication and Elimination in Complex Tracks | "Exploiting Packet Replication and Elimination in Complex Tracks | |||
in 6TiSCH LLNs" [I-D.papadopoulos-6tisch-pre-reqs] for more | in LLNs" [I-D.papadopoulos-raw-pareo-reqs] for more details. | |||
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. | |||
skipping to change at page 5, line 16 ¶ | skipping to change at page 5, line 14 ¶ | |||
All three policies apply their corresponding common ancestor | All three policies apply their corresponding common ancestor | |||
criterion to filter the list of candidate neighbours in the | criterion to filter the list of candidate neighbours in the | |||
alternative parent set. | alternative parent set. | |||
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 | |||
. | . | |||
PS(A) = {W, X} | PS(A) = {W, X} | |||
( W ) ( X ) ( Y ) ( Z ) PP(A) = X | ( W ) ( X ) ( Y ) ( Z ) PP(A) = X | |||
^ ^ ^^ ^ ^ ^^^^ ^ ^ ^^ | ^ ^ ^^ ^ ^ ^^^^ ^ ^ ^^ | |||
| \ // | \ // || \ / || PS(B) = {W, X, Y} | | \ // | \ // || \ / || PS(B) = {W, X, Y} | |||
| // | // || / || PP(B) = Y | | // | // || / || PP(B) = Y | |||
| // \ | // \ || / \ || | | // \ | // \ || / \ || | |||
| // \ | // \ || / \ || 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 | |||
policy | Selection 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 policy 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)) | * 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)) | * Node B: PS(B) = Y and therefore it is equal to PP(PP(S)) | |||
* 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 | |||
policy 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 | * 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 | * 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 | * 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 | |||
policy 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} | * 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} | * 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} | * 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. | |||
4. Common Ancestor Objective Function | 4. Common Ancestor Objective Function | |||
An OF which allows the multiple paths to remain correlated is | An OF which allows the multiple paths to remain correlated is | |||
detailed here. More specifically, when using this OF a node will | 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 | select an AP node close to its PP node to allow the operation of | |||
overhearing between parents. For more details about overhearing and | overhearing between parents. For more details about overhearing and | |||
its use in this context see Section 4.3. "Promiscuous Overhearing" | its use in this context see the "Promiscuous Overhearing" Section 4.3 | |||
in "Exploiting Packet Replication and Elimination in Complex Tracks | of [I-D.papadopoulos-raw-pareo-reqs]. If multiple potential APs | |||
in 6TiSCH LLNs" [I-D.papadopoulos-6tisch-pre-reqs]. If multiple | match this condition, the AP with the lowest rank will be registered. | |||
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 | The OF described here is an extension of The Minimum Rank with | |||
Hysteresis Objective Function [RFC6719] (MRHOF). In general, this OF | Hysteresis Objective Function [MRHOF]. In general, this OF extends | |||
extends MRHOF by specifying how an AP is selected. Importantly, the | MRHOF by specifying how an AP is selected. Importantly, the | |||
calculation of the rank of the node through each candidate neighbor | calculation of the rank of the node through each candidate neighbor | |||
and the selection of the PP is kept the same as in MRHOF. | 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 | The ways in which the CA OF modifies MRHOF in a section-by-section | |||
manner follows in detail: | manner follows in detail: | |||
MRHOF Section 3. "The Minimum Rank with Hysteresis Objective | [MRHOF], Section 2: "Terminology". Term "Selected Metric": | |||
The CA OF uses only one metric, like MRHOF, for rank calculation, | ||||
with the same MRHOF semantics. For selecting the AP, the PS TLV | ||||
(stored in the DIO Metric Container Node State and Attribute (NSA) | ||||
object body, see Section 5) is used. This additional NSA metric | ||||
is disregarded for the purposes of rank calculation. | ||||
[MRHOF], Section 3 "The Minimum Rank with Hysteresis Objective | ||||
Function": | Function": | |||
Same as MRHOF extended to AP selection. Minimum Rank path | Same as MRHOF extended to AP selection. Minimum Rank path | |||
selection and switching applies correspondingly to the AP with the | selection and switching applies correspondingly to the AP with the | |||
extra CA requirement of having some match between ancestors. | extra CA requirement of having some match between ancestors. | |||
MRHOF Section 3.1. "Computing the Path Cost": Same as MRHOF | [MRHOF], Section 3.1 "Computing the Path Cost": | |||
extended to AP selection. If a candidate neighbor does not | Same as MRHOF extended to AP selection. If a candidate neighbor | |||
fulfill the CA requirement then the path through that neighbor | does not fulfill the CA requirement then the path through that | |||
SHOULD be set to MAX_PATH_COST, the same value used by MRHOF. As | neighbor SHOULD be set to MAX_PATH_COST, the same value used by | |||
a result, the node MUST NOT select the candidate neighbor as its | MRHOF. As a result, the node MUST NOT select the candidate | |||
AP. | neighbor as its AP. | |||
MRHOF Section 3.2. "Parent Selection": Same as MRHOF extended to AP | [MRHOF], Section 3.2 "Parent Selection": | |||
selection. To allow hysteresis, AP selection maintains a | Same as MRHOF extended to AP selection. To allow hysteresis, AP | |||
variable, cur_ap_min_path_cost, which is the path cost of the | selection maintains a variable, cur_ap_min_path_cost, which is the | |||
current AP. | path cost of the current AP. | |||
MRHOF Section 3.2.1. "When Parent Selection Runs": Same as MRHOF. | [MRHOF], Section 3.2.1 "When Parent Selection Runs": | |||
Same as MRHOF. | ||||
MRHOF Section 3.2.2. "Parent Selection Algorithm": Same as MRHOF | [MRHOF], Section 3.2.2 "Parent Selection Algorithm": | |||
extended to AP selection. If the smallest path cost for paths | Same as MRHOF extended to AP selection. If the smallest path cost | |||
through the candidate neighbors is smaller than | for paths through the candidate neighbors is smaller than | |||
cur_ap_min_path_cost by less than PARENT_SWITCH_THRESHOLD (the | cur_ap_min_path_cost by less than PARENT_SWITCH_THRESHOLD (the | |||
same variable as MRHOF uses), the node MAY continue to use the | same variable as MRHOF uses), the node MAY continue to use the | |||
current AP. Additionally, if there is no PP selected, there MUST | current AP. Additionally, if there is no PP selected, there MUST | |||
NOT be any AP selected as well. Finally, as with MRHOF, a node | NOT be any AP selected as well. Finally, as with MRHOF, a node | |||
MAY include up to PARENT_SET_SIZE-1 additional candidate neighbors | MAY include up to PARENT_SET_SIZE-1 additional candidate neighbors | |||
in its alternative parent set. The value of PARENT_SET_SIZE is | in its alternative parent set. The value of PARENT_SET_SIZE is | |||
the same as in MRHOF. | the same as in MRHOF. | |||
MRHOF Section 3.3. "Computing Rank": Same as 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": | [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 | It is not possible to work without metric containers, since CA AP | |||
selection requires information from parents regarding their parent | selection requires information from parents regarding their parent | |||
sets, which is transmitted via the NSA object in the DIO Mectric | sets, which is transmitted via the NSA object in the DIO Mectric | |||
Container. | Container. | |||
MRHOF Section 4. "Using MRHOF for Metric Maximization": | [MRHOF], Section 4 "Using MRHOF for Metric Maximization": | |||
Same as MRHOF. | Same as MRHOF. | |||
MRHOF Section 5. "MRHOF Variables and Parameters": Same as MRHOF | [MRHOF], Section 5 "MRHOF Variables and Parameters": | |||
extended to AP selection. The CA OF operates like MRHOF for AP | Same as MRHOF extended to AP selection. The CA OF operates like | |||
selection by maintaining separate: | MRHOF for AP selection by maintaining separate: | |||
AP: Corresponding to the MRHOF PP. Hysteresis is configured for | AP: Corresponding to the MRHOF PP. Hysteresis is configured for | |||
AP with the same PARENT_SWITCH_THRESHOLD parameter as in MRHOF. | AP with the same PARENT_SWITCH_THRESHOLD parameter as in MRHOF. | |||
The AP MUST NOT be the same as the PP. | The AP MUST NOT be the same as the PP. | |||
Alternative parent set: Corresponding to the MRHOF parent set. | Alternative parent set: Corresponding to the MRHOF parent set. | |||
The size is defined by the same PARENT_SET_SIZE parameter as in | The size is defined by the same PARENT_SET_SIZE parameter as in | |||
MRHOF. The Alternative parent set MUST be a non-strict subset | MRHOF. The Alternative parent set MUST be a non-strict subset | |||
of the parent set. | of the parent set. | |||
cur_ap_min_path_cost: Corresponding to the MRHOF | cur_ap_min_path_cost: Corresponding to the MRHOF | |||
cur_min_path_cost variable. To support the operation of the | cur_min_path_cost variable. To support the operation of the | |||
hysteresis function for AP selection. | hysteresis function for AP selection. | |||
MRHOF Section 6. "Manageability": Same as MRHOF. | [MRHOF], Section 6 "Manageability": | |||
Same as MRHOF. | ||||
MRHOF Section 6.1. "Device Configuration": Same as MRHOF. | [MRHOF], Section 6.1 "Device Configuration": | |||
Same as MRHOF. | ||||
MRHOF Section 6.2. "Device Monitoring": Same as MRHOF. | [MRHOF], Section 6.2 "Device Monitoring": | |||
Same as MRHOF. | ||||
4.1. Usage | 4.1. Usage | |||
All OF policies apply their corresponding criterion to filter the | All OF policies apply their corresponding criterion to filter the | |||
list of candidate neighbours in the alternative parent set. The AP | list of candidate neighbours in the alternative parent set. The AP | |||
is then selected from the alternative parent set based on Rank and | 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 | 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 | that the OF uses the same Objective Code Point (OCP): TBD1 for all | |||
policies used. | policies used. | |||
skipping to change at page 9, line 8 ¶ | skipping to change at page 9, line 16 ¶ | |||
policies 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 policies. | It is optional for all nodes to use the same AP selection policies. | |||
Different nodes may use different AP selection policies, since the | Different nodes may use different AP selection policies, since the | |||
selection policy is local to each node. For example, using different | selection policy is local to each node. For example, using different | |||
policies can be used to vary the transmission reliability in each | policies can be used to vary the transmission reliability in each | |||
hop. | hop. | |||
5. 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], 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], does not | |||
not define how to propagate parent set related information, which is | define how to propagate parent set related information, which is what | |||
what this document addresses. | 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 | |||
semantically for the purpose of carrying the parent set. The DAG | semantically for the purpose of carrying the parent set. The DAG | |||
Metric Container option itself can carry different nested objects, | Metric Container option itself can carry different nested objects, | |||
out of which the Node State and Attribute (NSA) [RFC6551] is | out of which the Node State and Attribute (NSA) [RFC6551] is | |||
appropriate for transferring generic node state data. Within the | appropriate for transferring generic node state data. Within the | |||
Node State and Attribute it is possible to store optional TLVs | Node State and Attribute it is possible to store optional TLVs | |||
representing various node characteristics. As per the Node State and | representing various node characteristics. As per the Node State and | |||
Attribute (NSA) [RFC6551] description, no TLV has been defined for | Attribute (NSA) [RFC6551] description, no TLV has been defined for | |||
skipping to change at page 9, line 48 ¶ | skipping to change at page 10, line 27 ¶ | |||
+ + | + + | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| DAGMC Type (2)| DAGMC Length | | | | DAGMC Type (2)| DAGMC Length | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | |||
| | | | | | |||
// DAG Metric Container data // | // DAG Metric Container data // | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 2: Example DIO Message with a DAG Metric Container option | Figure 2: Example DIO Message with a DAG Metric Container option | |||
Figure 2 shows the structure of the DIO Control Message when a DAG | Figure 2 shows the structure of the DIO Control Message when a DAG | |||
Metric Container option is included. The DAG Metric Container option | Metric Container option is included. The DAG Metric Container option | |||
type (DAGMC Type in Figure 2) has the value 0x02 as per the IANA | type (DAGMC Type in Figure 2) has the value 0x02 as per the IANA | |||
registry for the RPL Control Message Options, and is defined in | registry for the RPL Control Message Options, and is defined in | |||
[RFC6550]. The DAG Metric Container option length (DAGMC Length in | [RPL]. The DAG Metric Container option length (DAGMC Length in | |||
Figure 2) expresses the DAG Metric Container length in bytes. DAG | Figure 2) expresses the DAG Metric Container length in bytes. DAG | |||
Metric Container data holds the actual data and is shown expanded in | Metric Container data holds the actual data and is shown expanded in | |||
Figure 3. | Figure 3. | |||
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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
|Routing-MC-Type|Res Flags|P|C|O|R| A | Prec | Length (bytes)| |MC | |Routing-MC-Type|Res Flags|P|C|O|R| A | Prec | Length (bytes)| |MC | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Res | Flags |A|O| PS type | PS Length | | | | Res | Flags |A|O| PS type | PS Length | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |NSA | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |NSA | |||
| PS IPv6 address(es) ... | | | PS IPv6 address(es) ... | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 3: DAG Metric Container (MC) data with Node State and | Figure 3: DAG Metric Container (MC) data with Node State and | |||
Attribute (NSA) object body and a TLV | Attribute (NSA) object body and a TLV | |||
The structure of the DAG Metric Container data in the form of a Node | The structure of the DAG Metric Container data in the form of a Node | |||
State and Attribute (NSA) object with a TLV in the NSA Optional TLVs | State and Attribute (NSA) object with a TLV in the NSA Optional TLVs | |||
field is shown in Figure 3. The first 32 bits comprise the DAG | field is shown in Figure 3. The first 32 bits comprise the DAG | |||
Metric Container header and all the following bits are part of the | Metric Container header and all the following bits are part of the | |||
Node State and Attribute object body, as defined in [RFC6551]. This | Node State and Attribute object body, as defined in [RFC6551]. This | |||
document defines a new TLV, which CAN be carried in the Node State | document defines a new TLV, which MAY be carried in the Node State | |||
and Attribute (NSA) object Optional TLVs field. The TLV is named | and Attribute (NSA) object Optional TLVs field. The TLV is named | |||
Parent Set and is abbreviated as PS in Figure 3. | Parent Set and is abbreviated as PS in Figure 3. | |||
PS type: The type of the Parent Set TLV. The value is TBD2. | PS type: The type of the Parent Set TLV. The value is TBD2. | |||
PS Length: The total length of the TLV value field (PS IPv6 | PS Length: The total length of the TLV value field (PS IPv6 | |||
address(es)) in bytes. The length is an integral multiple of | address(es)) in bytes. The length is an integral multiple of | |||
16, the number of bytes in an IPv6 address. | 16, the number of bytes in an IPv6 address. | |||
PS IPv6 address(es) One or more 128-bit IPv6 address(es) without any | PS IPv6 address(es) One or more 128-bit IPv6 address(es) without any | |||
skipping to change at page 11, line 44 ¶ | skipping to change at page 12, line 24 ¶ | |||
Architecture [RFC8655]. | Architecture [RFC8655]. | |||
7. 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. The additional information are the IPv6 | defined DIO options. The additional information are the IPv6 | |||
addresses of the parent set of the node transmitting the DIO. This | addresses of the parent set of the node transmitting the DIO. This | |||
use of this additional information can have the following potential | use of this additional information can have the following potential | |||
consequences: | consequences: | |||
o A malicious node that can receive and read the DIO can "see" | * A malicious node that can receive and read the DIO can "see" | |||
further than it's own neighbourhood by one hop, learning the | further than it's own neighbourhood by one hop, learning the | |||
addresses of it's two hop neighbors. This is a privacy / network | addresses of it's two hop neighbors. This is a privacy / network | |||
discovery issue. | discovery issue. | |||
o A malicious node that can send DIOs can use the parent set | * A malicious node that can send DIOs can use the parent set | |||
extension to convince neighbours to route through itself, instead | extension to convince neighbours to route through itself, instead | |||
of the normal preferred parent they would use. However, this is | of the normal preferred parent they would use. However, this is | |||
already possible with other OFs (like OF0 [RFC6552] and MRHOF | already possible with other OFs (like [OF0] and [MRHOF]) by | |||
reporting a fake rank value in the DIO, thus masquerading as the | ||||
[RFC6719]) by reporting a fake rank value in the DIO, thus | DODAG root. | |||
masquerading as the DODAG root. | ||||
8. IANA Considerations | 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. | |||
9. References | 9. References | |||
9.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", Work in Progress, Internet-Draft, | |||
in progress), October 2019. | draft-ietf-6tisch-architecture-28, 29 October 2019, | |||
<https://tools.ietf.org/html/draft-ietf-6tisch- | ||||
architecture-28>. | ||||
[I-D.papadopoulos-6tisch-pre-reqs] | [I-D.papadopoulos-raw-pareo-reqs] | |||
Papadopoulos, G., Montavont, N., and P. Thubert, | Papadopoulos, G., Koutsiamanis, R., Montavont, N., and P. | |||
"Exploiting Packet Replication and Elimination in Complex | Thubert, "Exploiting Packet Replication and Elimination in | |||
Tracks in 6TiSCH LLNs", draft-papadopoulos-6tisch-pre- | Complex Tracks in LLNs", Work in Progress, Internet-Draft, | |||
reqs-02 (work in progress), July 2018. | draft-papadopoulos-raw-pareo-reqs-01, 2 January 2020, | |||
<https://tools.ietf.org/html/draft-papadopoulos-raw-pareo- | ||||
reqs-01>. | ||||
[MRHOF] Gnawali, O. and P. Levis, "The Minimum Rank with | ||||
Hysteresis Objective Function", RFC 6719, | ||||
DOI 10.17487/RFC6719, September 2012, | ||||
<https://www.rfc-editor.org/info/rfc6719>. | ||||
[OF0] 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>. | ||||
[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>. | |||
[RFC6550] Winter, T., Ed., Thubert, P., Ed., Brandt, A., Hui, J., | ||||
Kelsey, R., Levis, P., Pister, K., Struik, R., Vasseur, | ||||
JP., and R. Alexander, "RPL: IPv6 Routing Protocol for | ||||
Low-Power and Lossy Networks", RFC 6550, | ||||
DOI 10.17487/RFC6550, March 2012, | ||||
<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 | ||||
Hysteresis Objective Function", RFC 6719, | ||||
DOI 10.17487/RFC6719, September 2012, | ||||
<https://www.rfc-editor.org/info/rfc6719>. | ||||
[RFC8557] Finn, N. and P. Thubert, "Deterministic Networking Problem | [RFC8557] Finn, N. and P. Thubert, "Deterministic Networking Problem | |||
Statement", RFC 8557, DOI 10.17487/RFC8557, May 2019, | Statement", RFC 8557, DOI 10.17487/RFC8557, May 2019, | |||
<https://www.rfc-editor.org/info/rfc8557>. | <https://www.rfc-editor.org/info/rfc8557>. | |||
[RFC8655] Finn, N., Thubert, P., Varga, B., and J. Farkas, | [RFC8655] Finn, N., Thubert, P., Varga, B., and J. Farkas, | |||
"Deterministic Networking Architecture", RFC 8655, | "Deterministic Networking Architecture", RFC 8655, | |||
DOI 10.17487/RFC8655, October 2019, | DOI 10.17487/RFC8655, October 2019, | |||
<https://www.rfc-editor.org/info/rfc8655>. | <https://www.rfc-editor.org/info/rfc8655>. | |||
[RPL] Winter, T., Ed., Thubert, P., Ed., Brandt, A., Hui, J., | ||||
Kelsey, R., Levis, P., Pister, K., Struik, R., Vasseur, | ||||
JP., and R. Alexander, "RPL: IPv6 Routing Protocol for | ||||
Low-Power and Lossy Networks", RFC 6550, | ||||
DOI 10.17487/RFC6550, March 2012, | ||||
<https://www.rfc-editor.org/info/rfc6550>. | ||||
9.2. Other Informative References | 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. | |||
9.3. URIs | ||||
[1] https://github.com/ariskou/contiki/tree/draft-koutsiamanis-roll- | ||||
nsa-extension | ||||
[2] https://code.wireshark.org/review/gitweb?p=wireshark.git;a=commit | ||||
;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 | |||
proposed extension as part of a 6TiSCH IOT use case was developed at | proposed extension as part of a 6TiSCH IOT use case was developed at | |||
IMT Atlantique, France by Tomas Lagos Jenschke and Remous-Aris | IMT Atlantique, France by Tomas Lagos Jenschke and Remous-Aris | |||
Koutsiamanis. It was implemented on the open-source Contiki OS and | Koutsiamanis. It was implemented on the open-source Contiki OS and | |||
tested with the Cooja simulator. The DIO DAGMC NSA extension is | tested with the Cooja simulator. The DIO DAGMC NSA extension is | |||
implemented with a configurable number of parents from the parent set | implemented with a configurable number of parents from the parent set | |||
of a node to be reported. | of a node to be reported. | |||
skipping to change at page 15, line 10 ¶ | skipping to change at page 15, line 27 ¶ | |||
Radio Links: Every 60 s, a new Packet Delivery Rate is randomly | Radio Links: Every 60 s, a new Packet Delivery Rate is randomly | |||
drawn for each link, with a uniform distribution spanning the 70% | drawn for each link, with a uniform distribution spanning the 70% | |||
to 100% interval. | to 100% interval. | |||
Traffic Pattern: CBR, S sends one non-fragmented UDP packet every 5 | Traffic Pattern: CBR, S sends one non-fragmented UDP packet every 5 | |||
seconds to R. | seconds to R. | |||
PS extension size: 3 parents. | PS extension size: 3 parents. | |||
Routing Methods: | Routing Methods: * RPL: The default RPL non-PRE implementation in | |||
Contiki OS. | ||||
* RPL: The default RPL non-PRE implementation in Contiki OS. | ||||
* 2nd ETX: PRE with a parent selection method which picks as AP | * 2nd ETX: PRE with a parent selection method | |||
the 2nd best parent in the parent set based on ETX. | which picks as AP the 2nd best parent in the parent set based | |||
on ETX. | ||||
* CA Strict: As described in Section 3.1. | * CA Strict: As described in Section 3.1. | |||
* CA Medium: As described in Section 3.2. | * CA Medium: As described in Section 3.2. | |||
Simulation results: | Simulation results: | |||
+-----------+---------------+-----------------+---------------------+ | +---------+-------------------+-------------------+---------------+ | |||
| Routing | Average | Average | Average | | | Routing | Average Packet | Average Traversed | Average | | |||
| Method | Packet | Traversed | Duplications/packet | | | Method | Delivery Rate (%) | Nodes/packet (#) | Duplications/ | | |||
| | Delivery Rate | Nodes/packet | (#) | | | | | | packet (#) | | |||
| | (%) | (#) | | | +=========+===================+===================+===============+ | |||
+-----------+---------------+-----------------+---------------------+ | | RPL | 82.70 | 5.56 | 7.02 | | |||
| RPL | 82.70 | 5.56 | 7.02 | | +---------+-------------------+-------------------+---------------+ | |||
| 2nd ETX | 99.38 | 14.43 | 31.29 | | | 2nd ETX | 99.38 | 14.43 | 31.29 | | |||
| CA Strict | 97.32 | 9.86 | 18.23 | | +---------+-------------------+-------------------+---------------+ | |||
| CA Medium | 99.66 | 13.75 | 28.86 | | | CA | 97.32 | 9.86 | 18.23 | | |||
+-----------+---------------+-----------------+---------------------+ | | Strict | | | | | |||
+---------+-------------------+-------------------+---------------+ | ||||
| CA | 99.66 | 13.75 | 28.86 | | ||||
| Medium | | | | | ||||
+---------+-------------------+-------------------+---------------+ | ||||
Table 1 | ||||
Links: | Links: | |||
o Contiki OS DIO DAGMC NSA extension (draft-koutsiamanis-roll-nsa- | * Contiki OS DIO DAGMC NSA extension (draft-koutsiamanis-roll-nsa- | |||
extension branch) [1] | extension branch) (https://github.com/ariskou/contiki/tree/draft- | |||
koutsiamanis-roll-nsa-extension) | ||||
o Wireshark dissectors (for the optional PS TLV) - currently merged | * Wireshark dissectors (for the optional PS TLV) - currently merged | |||
/ in master [2] | / in master (https://code.wireshark.org/review/gitweb?p=wireshark. | |||
git;a=commit;h=e2f6ba229f45d8ccae2a6405e0ef41f1e61da138) | ||||
Appendix B. Choosing an AP selection policy | Appendix B. Choosing an AP selection policy | |||
The manner of choosing an AP selection policy is left to the | The manner of choosing an AP selection policy is left to the | |||
implementation, for maximum flexibility. | implementation, for maximum flexibility. | |||
For example, a different policy can be used per traffic type. The | For example, a different policy can be used per traffic type. The | |||
network configurator can choose the CA Relaxed policy to increase | network configurator can choose the CA Relaxed policy to increase | |||
reliability (thus producing some flooding) for specific, extremely | reliability (thus producing some flooding) for specific, extremely | |||
important, alert packets. On the other hand, all normal data traffic | important, alert packets. On the other hand, all normal data traffic | |||
skipping to change at page 16, line 22 ¶ | skipping to change at page 17, line 11 ¶ | |||
Finally, a network configurator may provide the CA policies with a | Finally, a network configurator may provide the CA policies with a | |||
preference order of Strict > Medium > Relaxed as a means of falling | preference order of Strict > Medium > Relaxed as a means of falling | |||
back to more flood-prone policies to maintain reliability. | 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 | 35510 Cesson-Sevigne - Rennes | |||
FRANCE | France | |||
Phone: +33 299 12 70 49 | Phone: +33 299 12 70 49 | |||
Email: aris@ariskou.com | Email: aris@ariskou.com | |||
Georgios Papadopoulos | Georgios Papadopoulos | |||
IMT Atlantique | IMT Atlantique | |||
Office B00 - 114A | Office B00 - 114A | |||
2 Rue de la Chataigneraie | 2 Rue de la Chataigneraie | |||
Cesson-Sevigne - Rennes 35510 | 35510 Cesson-Sevigne - Rennes | |||
FRANCE | France | |||
Phone: +33 299 12 70 04 | Phone: +33 299 12 70 04 | |||
Email: georgios.papadopoulos@imt-atlantique.fr | Email: georgios.papadopoulos@imt-atlantique.fr | |||
Nicolas Montavont | Nicolas Montavont | |||
IMT Atlantique | IMT Atlantique | |||
Office B00 - 106A | Office B00 - 106A | |||
2 Rue de la Chataigneraie | 2 Rue de la Chataigneraie | |||
Cesson-Sevigne - Rennes 35510 | 35510 Cesson-Sevigne - Rennes | |||
FRANCE | France | |||
Phone: +33 299 12 70 23 | Phone: +33 299 12 70 23 | |||
Email: nicolas.montavont@imt-atlantique.fr | Email: nicolas.montavont@imt-atlantique.fr | |||
Pascal Thubert | Pascal Thubert | |||
Cisco Systems, Inc | Cisco Systems, Inc | |||
Building D | Building D | |||
45 Allee des Ormes - BP1200 | 45 Allee des Ormes - BP1200 | |||
MOUGINS - Sophia Antipolis 06254 | 06254 MOUGINS - Sophia Antipolis | |||
FRANCE | France | |||
Phone: +33 497 23 26 34 | Phone: +33 497 23 26 34 | |||
Email: pthubert@cisco.com | Email: pthubert@cisco.com | |||
End of changes. 68 change blocks. | ||||
187 lines changed or deleted | 200 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/ |