<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.4.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-roll-nsa-extension-13" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.0 -->
  <front>
    <title abbrev="CA OF and PS DAG MC Extension">Common Ancestor Objective Function and Parent Set DAG Metric Container Extension</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-roll-nsa-extension-13"/>
    <author initials="R." surname="Koutsiamanis" fullname="Remous-Aris Koutsiamanis" role="editor">
      <organization>IMT Atlantique</organization>
      <address>
        <postal>
          <street>Office B220</street>
          <street>4 rue Alfred Kastler, CS 20722</street>
          <city>Nantes Cedex 3</city>
          <code>44307</code>
          <country>France</country>
        </postal>
        <email>aris@ariskou.com</email>
      </address>
    </author>
    <author initials="G. Z." surname="Papadopoulos" fullname="Georgios Papadopoulos">
      <organization>IMT Atlantique</organization>
      <address>
        <postal>
          <street>Office B00 - 114A</street>
          <street>2 Rue de la Chataigneraie</street>
          <city>Cesson-Sevigne - Rennes</city>
          <code>35510</code>
          <country>FRANCE</country>
        </postal>
        <phone>+33 299 12 70 04</phone>
        <email>georgios.papadopoulos@imt-atlantique.fr</email>
      </address>
    </author>
    <author initials="N." surname="Montavont" fullname="Nicolas Montavont">
      <organization>IMT Atlantique</organization>
      <address>
        <postal>
          <street>Office B00 - 106A</street>
          <street>2 Rue de la Chataigneraie</street>
          <city>Cesson-Sevigne - Rennes</city>
          <code>35510</code>
          <country>FRANCE</country>
        </postal>
        <phone>+33 299 12 70 23</phone>
        <email>nicolas.montavont@imt-atlantique.fr</email>
      </address>
    </author>
    <author initials="P." surname="Thubert" fullname="Pascal Thubert">
      <organization abbrev="Cisco">Cisco Systems</organization>
      <address>
        <postal>
          <street>Building D</street>
          <street>45 Allee des Ormes - BP1200</street>
          <city>MOUGINS - Sophia Antipolis</city>
          <code>3244</code>
          <country>FRANCE</country>
        </postal>
        <phone>+33 497 23 26 34</phone>
        <email>pthubert@cisco.com</email>
      </address>
    </author>
    <date year="2025" month="July" day="07"/>
    <area>Internet</area>
    <workgroup>ROLL Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 87?>

<t>High reliability and low jitter can be achieved by being able to send data packets through multiple paths, via different parents, in a network. This document details how to exchange the necessary information within RPL control packets to let a node better select the different parents that will be used to forward a packet over different paths. This document also describes the Objective Function which takes advantage of this information to implement multi-path routing.</t>
    </abstract>
  </front>
  <middle>
    <?line 91?>

<section anchor="problems">
      <name>Introduction</name>
      <t>Networks in the industrial context must provide stringent guarantees in terms of reliability and predictability, with this domain being one of the main ones addressed by <xref target="RFC8557">Deterministic Networking</xref>.
One of the ways of achieving such guarantees is through Packet Replication and Elimination (PRE) (<xref section="4.5.3" sectionFormat="comma" target="RFC9030"/>), a technique which allows redundant paths in the network to be utilized for traffic requiring higher reliability.
Another is to have pre-selected backup paths on standby for quick packet retransmission when packet failures occur.
Load-balancing can be also used to make sure that not all traffic passes through the same nodes, to more evenly spread the packet forwarding load.
Allowing industrial applications to function over wireless networks requires the application of the principles and <xref target="RFC8655">architecture of Deterministic Networking</xref>. This results in designs that aim at optimizing packet delivery rate and bounding latency.
Additionally, nodes operating on battery need to minimize their energy consumption.</t>
      <t>As an example, to meet this goal, <xref target="IEEE802154">IEEE Std. 802.15.4</xref> provides Time-Slotted Channel Hopping (TSCH), a mode of operation that uses a common communication schedule based on timeslots to allow deterministic medium access as well as channel hopping to work around radio interference. However, since TSCH uses retransmissions in the event of a failed transmission, end-to-end latency and jitter performance can deteriorate.</t>
      <t>Furthermore, the 6TiSCH working group, focusing on IPv6 over IEEE Std. 802.15.4-TSCH, has worked on these issues and produced the <xref target="RFC9030">"6TiSCH Architecture"</xref> to address that case.</t>
      <t>Building a multi-path DODAG can be achieved 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 to select parents to be part of this subset, the RPL Objective Function (OF) needs additional information. This document describes an OF which implements multi-path routing and specifies the transmission of this specific path information.</t>
      <t>This document describes a new Objective Function (OF) called the Common Ancestor (CA) OF (see <xref target="ca_of"/>). A detailed description is given of how the path information is used within the CA OF and how the subset of parents for forwarding packets is selected. This specification defines a new Objective Code Point (OCP) for the CA OF.</t>
      <t>For the path information, this specification focuses on the extensions to the <xref target="RFC6551">DAG Metric Container</xref> required for supplying to the CA OF a part of the information it needs to operate. This information is the <xref target="RFC6550">RPL</xref> parent address set of a node and it must be sent to potential children of the node. The RPL DIO Control Message is the canonical way of broadcasting this kind of information and therefore its <xref target="RFC6551">DAG Metric Container</xref> field is used to append a Node State and Attribute (NSA) object. The node's parent address set is stored as an optional TLV within the NSA object. This specification defines the type value and structure for the parent address set TLV (see <xref target="PS_TLV"/>).</t>
    </section>
    <section anchor="Terminology">
      <name>Terminology</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.
<?line -6?>
      </t>
      <t>The draft uses the following Terminology from other RFCs:</t>
      <dl>
        <dt>Parent Set (PS):</dt>
        <dd>
          <t>Defined in <xref target="RFC6550">RPL</xref>.</t>
        </dd>
        <dt>Packet Replication and Elimination (PRE):</dt>
        <dd>
          <t>A method that consists of transmitting multiple copies of a packet using multi-path forwarding over a multi-hop network and that consolidates multiple received packet copies to control flooding. See "Complex Track with Replication and Elimination" in <xref section="4.5.3" sectionFormat="comma" target="RFC9030"/> for more details.</t>
        </dd>
      </dl>
      <t>The draft introduces the following Terminology:</t>
      <dl>
        <dt>Alternative Parent (AP):</dt>
        <dd>
          <t>An RPL parent in the parent set of a node is used to forward a packet copy when replicating packets.</t>
        </dd>
        <dt>Alternative Parent (AP) Selection:</dt>
        <dd>
          <t>The mechanism for choosing the next hop node to forward a packet copy when replicating packets.</t>
        </dd>
        <dt>Preferred Grand Parent (PGP):</dt>
        <dd>
          <t>The preferred parent of the preferred parent of a node.</t>
        </dd>
      </dl>
    </section>
    <section anchor="ca_policies">
      <name>Common Ancestor AP Selection Policies</name>
      <t>In the RPL protocol, each node maintains a list of potential parents. When more than one parent is required, as when performing PRE, the RPL DODAG Preferred Parent node is used, as per <xref target="RFC6550">RPL</xref> parent selection, effectively depending on the OF used. If the CA OF is used, the way this choice is made is described in <xref target="ca_of"/>. Furthermore, to construct an alternative path toward the root, in addition to the PP node, each node in the network selects one or more parents, called Alternative Parents (APs), from its Parent Set (PS).</t>
      <t>There are multiple possible policies for selecting the AP node. This section details three such possible policies.</t>
      <t>All three policies defined perform AP selection based on common ancestors, named Common Ancestor Strict, Common Ancestor Medium, and Common Ancestor Relaxed, depending on how restrictive the selection process is. A more restrictive policy will limit flooding but might fail to select an appropriate AP, while a less restrictive one will more often find an appropriate AP but might increase flooding.</t>
      <t>All three policies apply their corresponding common ancestor criterion to filter the list of candidate neighbors in the Alternative Parent set.</t>
      <t>If after the filtering there are multiple condition-meeting candidate nodes, the node MUST select at least one of them as its AP node. The way this choice is made depends on which OF is used. If the CA OF is used, the way this choice is made is described in <xref target="ca_of"/>.</t>
      <section anchor="sec_ca_strict">
        <name>Common Ancestor Strict</name>
        <t>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.</t>
        <figure anchor="fig_ca_alternative_parent_selection">
          <name>Example Common Ancestor Strict Alternative Parent Selection policy</name>
          <artwork><![CDATA[
               (  R  ) root
                  .                      PS(S) = {A, B, C, D}
                  .                      PP(S) = C
                  .                      PP(PP(S)) = Y
                  .
                                         PS(A) = {W, X}
  ( W )    ( X )    ( Y )    ( Z )       PP(A) = X
    ^ ^   ^^ ^ ^    ^^^^ ^   ^ ^^
    |  \ //  |  \ //  ||  \ /  ||        PS(B) = {W, X, Y}
    |   //   |   //   ||   /   ||        PP(B) = Y
    |  // \  |  // \  ||  / \  ||
    | //   \ | //   \ || /   \ ||        PS(C) = {X, Y, Z}
  ( A )    ( B )    ( C )    ( D )       PP(C) = Y
      ^        ^      ^^     ^
       \        \     ||    /            PS(D) = {Y, Z}
         \       \    ||   /             PP(D) = Z
           \      \   ||  /
             \----\\  || /               || Preferred Parent
                  (   S   ) source       |  Potential Alt. Parent

]]></artwork>
        </figure>
        <t>For example, in <xref target="fig_ca_alternative_parent_selection"/>, the source node S must know its grandparent 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 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)) = Y:</t>
        <ul spacing="normal">
          <li>
            <t>Node A: PP(A) = X and therefore it is different than PP(PP(S))</t>
          </li>
          <li>
            <t>Node B: PS(B) = Y and therefore it is equal to PP(PP(S))</t>
          </li>
          <li>
            <t>Node D: PS(D) = Z and therefore it is different than PP(PP(S))</t>
          </li>
        </ul>
        <t>Therefore, node S MUST select node B as its AP node, since PP(PP(S)) = Y = PP(B).</t>
      </section>
      <section anchor="sec_ca_medium">
        <name>Common Ancestor Medium</name>
        <t>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.</t>
        <t>Using the same example, in <xref target="fig_ca_alternative_parent_selection"/>, the CA Medium parent selection policy will select an AP for node S for which PP(PP(S)) is in PS(AP). Given that PP(PP(S)) = Y:</t>
        <ul spacing="normal">
          <li>
            <t>Node A: PS(A) = {W, X} and therefore PP(PP(S)) is not in the set</t>
          </li>
          <li>
            <t>Node B: PS(B) = {W, X, Y} and therefore PP(PP(S)) is in the set</t>
          </li>
          <li>
            <t>Node D: PS(D) = {Y, Z} and therefore PP(PP(S)) is in the set</t>
          </li>
        </ul>
        <t>Therefore, S MUST select at least one node among B and D as its AP node.</t>
      </section>
      <section anchor="common-ancestor-relaxed">
        <name>Common Ancestor Relaxed</name>
        <t>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 potential AP.</t>
        <t>Using the same example, in <xref target="fig_ca_alternative_parent_selection"/>, the CA Relaxed parent selection 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}:</t>
        <ul spacing="normal">
          <li>
            <t>Node A: PS(A) = {W, X} and the common nodes are {X}</t>
          </li>
          <li>
            <t>Node B: PS(B) = {W, X, Y} and the common nodes are {X, Y}</t>
          </li>
          <li>
            <t>Node D: PS(D) = {Y, Z} and the common nodes are {Y, Z}</t>
          </li>
        </ul>
        <t>Therefore, S MUST select at least one node among A, B, and D as its AP node.</t>
      </section>
    </section>
    <section anchor="ca_of">
      <name>Common Ancestor Objective Function</name>
      <t>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. Closeness here is not strictly defined, however, the premise is that those candidate parent nodes that have common parents themselves have a higher probability of being within each other's radio range, though it's of course not guaranteed. For more details about overhearing and its use in this context see the "Complex Track with Replication and Elimination" in <xref section="4.5.3" sectionFormat="comma" target="RFC9030"/>. If multiple potential APs match this condition, one of the APs with the lowest rank will be registered, with the choice between multiple nodes with the same lowest rank being implementation-specific.</t>
      <t>The OF described here is an extension of <xref target="RFC6719">The Minimum Rank with Hysteresis Objective Function (MRHOF)</xref>. The CA OF does not update <xref target="RFC6719"/>. Rather, it uses the existing definition of MRHOF in <xref target="RFC6719"/> to build a new OF (with a new Objective Code Point (OCP)) which provides additional functionality, while maintaining compatibility by retaining the existing functionality of MRHOF for the preferred parent. To be precise, this OF extends MRHOF by specifying how an AP is selected while the selection and switching of the PP remain unaltered. 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.</t>
      <t>How the CA OF differs from MRHOF in a section-by-section manner follows in detail:</t>
      <dl newline="true">
        <dt><xref section="2" sectionFormat="comma" target="RFC6719"/>: "Terminology". Term "Selected Metric":</dt>
        <dd>
          <t>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 <xref target="PS_TLV"/>) is used. This additional NSA metric is disregarded for rank calculation.</t>
        </dd>
        <dt><xref section="3" sectionFormat="comma" target="RFC6719"/> "The Minimum Rank with Hysteresis Objective Function":</dt>
        <dd>
          <t>Same as MRHOF extended to AP selection. Minimum Rank path selection and switching apply correspondingly to the AP with the extra CA requirement of having some match between ancestors, according to one of the Common Ancestor AP selection policies defined in <xref target="ca_policies"/>.</t>
        </dd>
        <dt><xref section="3.1" sectionFormat="comma" target="RFC6719"/> "Computing the Path Cost":</dt>
        <dd>
          <t>Same as MRHOF extended to AP selection. If a candidate neighbor does not fulfill the CA requirement then the path cost through that neighbor MUST 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.</t>
        </dd>
        <dt><xref section="3.2" sectionFormat="comma" target="RFC6719"/> "Parent Selection":</dt>
        <dd>
          <t>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.</t>
        </dd>
        <dt><xref section="3.2.1" sectionFormat="comma" target="RFC6719"/> "When Parent Selection Runs":</dt>
        <dd>
          <t>Same as MRHOF.</t>
        </dd>
        <dt><xref section="3.2.2" sectionFormat="comma" target="RFC6719"/> "Parent Selection Algorithm":</dt>
        <dd>
          <t>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 either. 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.</t>
        </dd>
        <dt><xref section="3.3" sectionFormat="comma" target="RFC6719"/> "Computing Rank":</dt>
        <dd>
          <t>Same as MRHOF.</t>
        </dd>
        <dt><xref section="3.4" sectionFormat="comma" target="RFC6719"/> "Advertising the Path Cost":</dt>
        <dd>
          <t>Same as MRHOF.</t>
        </dd>
        <dt><xref section="3.5" sectionFormat="comma" target="RFC6719"/> "Working without Metric Containers":</dt>
        <dd>
          <t>The CA OF can work without metric containers identically to MRHOF. Nodes that transmit DIO messages without the Metric Container will never be selected as an AP by the CA OF of another node but can be selected as the PP as per the operation of MRHOF. Effectively, the lack of Metric Containers is equivalent to operating with a Parent Set TLV where there are no PS IPv6 addresses and the PS Length is 0.</t>
        </dd>
        <dt><xref section="4" sectionFormat="comma" target="RFC6719"/> "Using MRHOF for Metric Maximization":</dt>
        <dd>
          <t>Same as MRHOF.</t>
        </dd>
        <dt><xref section="5" sectionFormat="comma" target="RFC6719"/> "MRHOF Variables and Parameters":</dt>
        <dd>
          <t>Same as MRHOF extended to AP selection. The CA OF operates like MRHOF for AP selection by maintaining separate:
</t>
          <dl>
            <dt>AP:</dt>
            <dd>
              <t>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.</t>
            </dd>
            <dt>Alternative parent set:</dt>
            <dd>
              <t>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 strict subset of the parent set.</t>
            </dd>
            <dt>cur_ap_min_path_cost:</dt>
            <dd>
              <t>Corresponding to the MRHOF cur_min_path_cost variable. To support the operation of the hysteresis function for AP selection.</t>
            </dd>
          </dl>
        </dd>
        <dt><xref section="6" sectionFormat="comma" target="RFC6719"/> "Manageability":</dt>
        <dd>
          <t>Same as MRHOF.</t>
        </dd>
        <dt><xref section="6.1" sectionFormat="comma" target="RFC6719"/> "Device Configuration":</dt>
        <dd>
          <t>Same as MRHOF.</t>
        </dd>
        <dt><xref section="6.2" sectionFormat="comma" target="RFC6719"/> "Device Monitoring":</dt>
        <dd>
          <t>Same as MRHOF.</t>
        </dd>
      </dl>
      <section anchor="usage">
        <name>Usage</name>
        <t>All the Common Ancestor AP Selection Policies (<xref target="ca_policies"/>) apply their corresponding criterion to filter the list of candidate neighbors 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.</t>
        <t>The PS information can be used by any of the described AP selection policies or other ones not described here, depending on requirements. It is optional for all nodes to use the same AP selection policies. Different nodes may use different AP selection policies since the selection policy is local to each node. For example, using different policies can be used to vary the transmission reliability in each hop. Some suggestions are provided in <xref target="appendix_choosing_policy"/>.</t>
      </section>
    </section>
    <section anchor="PS_TLV">
      <name>Node State and Attribute (NSA) object type extension</name>
      <t>In order to select their AP node, nodes need to be aware of their grandparent node sets. Within <xref target="RFC6550">RPL</xref>, the nodes use the DODAG Information Object (DIO) Control Message to broadcast information about themselves to potential children. However, <xref target="RFC6550">RPL</xref>, does not define how to propagate information related to the parent set, which is what this document addresses.</t>
      <t>DIO messages can carry multiple options, out of which the <xref target="RFC6551">DAG Metric Container option</xref> is the most suitable structurally and semantically to carry the parent set. The DAG Metric Container option itself can carry different nested objects, out of which the <xref target="RFC6551">Node State and Attribute (NSA)</xref> is appropriate for transferring generic node state data. Within the Node State and Attribute, it is possible to store optional TLVs representing various node characteristics. As per the <xref target="RFC6551">Node State and Attribute (NSA)</xref> description, no TLV has been defined for use. This document defines one TLV for transmitting a node's parent set.</t>
      <figure anchor="fig_dio">
        <name>Example DIO Message with a DAG Metric Container option</name>
        <artwork><![CDATA[
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| RPLInstanceID |Version Number |             Rank              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|G|0| MOP | Prf |     DTSN      |     Flags     |   Reserved    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
+                                                               +
|                                                               |
+                            DODAGID                            +
|                                                               |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| DAGMC Type (2)| DAGMC Length  |                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               |
|                                                               |
//                   DAG Metric Container data                 //
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
      </figure>
      <t><xref target="fig_dio"/> shows the structure of the DIO Control Message when a DAG Metric Container option is included. The DAG Metric Container option type (DAGMC Type in <xref target="fig_dio"/>) has the value 0x02 as per the IANA registry for the RPL Control Message Options, and is defined in <xref target="RFC6550"/>. The DAG Metric Container option length (DAGMC Length in <xref target="fig_dio"/>) expresses the DAG Metric Container length in bytes. DAG Metric Container data holds the actual data and is shown expanded in <xref target="fig_dagmc"/>.</t>
      <figure anchor="fig_dagmc">
        <name>DAG Metric Container (MC) data with Node State and Attribute (NSA) object body and a TLV</name>
        <artwork><![CDATA[
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Routing-MC-Type|Res Flags|P|C|O|R| A   |  Prec | Length (bytes)|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Res       |  Flags    |A|O|    PS  type   |   PS  Length  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   PS IPv6 address(es) ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
      </figure>
      <t>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 field is shown in <xref target="fig_dagmc"/>. The first 32 bits comprise the DAG Metric Container header and all the following bits are part of the Node State and Attribute object body, as defined in <xref target="RFC6551"/>. This document defines a new TLV, which MUST be carried in the Node State and Attribute (NSA) object Optional TLVs field within the context of the use of the CA OF. The TLV is named Parent Set and is abbreviated as PS in <xref target="fig_dagmc"/>.</t>
      <dl>
        <dt>PS type:</dt>
        <dd>
          <t>The type of the Parent Set TLV. The value is (TBD2).</t>
        </dd>
        <dt>PS Length:</dt>
        <dd>
          <t>The total length of the TLV value field (PS IPv6 address(es)) in bytes (0 included). The length is an integral multiple of 16, the number of bytes in an IPv6 address.</t>
        </dd>
        <dt>PS IPv6 address(es):</dt>
        <dd>
          <t>One or more 128-bit IPv6 addresses, without any separator between them. The field consists of one IPv6 address per parent in the parent set. The parent addresses are listed in decreasing order of preference and not all parents in the parent set need to be included. The selection of how many parents from the parent set will be included is left to the implementation. The number of parent addresses in the PS IPv6 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 in an IPv6 address.</t>
        </dd>
      </dl>
      <section anchor="usage-1">
        <name>Usage</name>
        <t>The PS is used in the process of parent selection, and especially in AP selection since it can help the alternative path to not significantly deviate from the preferred path. The Parent Set is information local to the node that broadcasts it.</t>
        <t>The PS is used only within NSA objects configured as a metric, therefore the DAG Metric Container field "C" MUST be 0. Additionally, since the information in the PS needs to be propagated downstream but cannot be aggregated, the DAG Metric Container field "R" MUST be 1. Finally, since the information contained is by definition partial, specifically just the parent set of the DIO-sending node, the DAG Metric Container field "P" MUST be 1.</t>
        <t>The presence of incorrectly configured flags MUST render the Parent Set TLV invalid. This case MUST be handled equivalently to operating with a Parent Set TLV where there are no PS IPv6 addresses and the PS Length is 0.</t>
        <t>The presence of a PS Length value that is not a multiple of 16 or larger than 240 MUST render the Parent Set TLV invalid. This case MUST be handled equivalently to operating with a Parent Set TLV where there are no PS IPv6 addresses and the PS Length is 0.</t>
      </section>
    </section>
    <section anchor="controlling-pre">
      <name>Controlling PRE</name>
      <t>PRE is very helpful when the aim is to increase reliability for a certain path, however, its use creates additional traffic as part of the replication process. It is conceivable that not all paths have stringent reliability requirements. Therefore, a way to control whether PRE is applied to a path's packets SHOULD be implemented. For example, a traffic class label can be used to determine this behavior per flow type as described in <xref target="RFC8655">Deterministic Networking Architecture</xref>.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>All the security considerations from <xref target="RFC6550"/>, <xref target="RFC6551"/>, and <xref target="RFC6719"/> apply.</t>
      <t>In this document, the structure of the DIO control message is extended, within the pre-defined DIO options. The additional information is the list of IPv6 addresses of the parent set of the node transmitting the DIO. This use of this additional information can have the following additional potential consequences:</t>
      <ul spacing="normal">
        <li>
          <t>A malicious node that can send DIOs can use the parent set extension to convince neighbors to route through itself, instead of the normal preferred parent they would use. However, this is already possible with other OFs (like <xref target="RFC6552">OF0</xref> and <xref target="RFC6719">MRHOF</xref>) by reporting a fake rank value in the DIO, thus masquerading as the DODAG root.</t>
        </li>
      </ul>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document requests the allocation of a new value (TBD1) from the "Objective Code Point (OCP)" registry in the "Routing Protocol for Low Power and Lossy Networks (RPL)" registry group. The Description field should have the value "Common Ancestor Objective Function (CAOF)".</t>
      <t>This document also requests the allocation of a new value (TBD2) for the "Parent Set" TLV from the "Routing Metric/Constraint TLVs" registry in the "Routing Protocol for Low Power and Lossy Networks (RPL) Routing Metric/Constraint" registry group. The Description field should have the value "Parent Set".</t>
    </section>
    <section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>We are very grateful to Dominique Barthel, Rahul Jadhav, Fabrice Theoleyre, Diego Dujovne, Derek Jianqiang Hou, Michael Richardson, and Alvaro Retana for their comments, feedback, and support which lead to many improvements to this document. We would also like to thank Tomas Lagos Jenschke very much for helping in the implementation and evaluation of this document.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC6550">
          <front>
            <title>RPL: IPv6 Routing Protocol for Low-Power and Lossy Networks</title>
            <author fullname="T. Winter" initials="T." role="editor" surname="Winter"/>
            <author fullname="P. Thubert" initials="P." role="editor" surname="Thubert"/>
            <author fullname="A. Brandt" initials="A." surname="Brandt"/>
            <author fullname="J. Hui" initials="J." surname="Hui"/>
            <author fullname="R. Kelsey" initials="R." surname="Kelsey"/>
            <author fullname="P. Levis" initials="P." surname="Levis"/>
            <author fullname="K. Pister" initials="K." surname="Pister"/>
            <author fullname="R. Struik" initials="R." surname="Struik"/>
            <author fullname="JP. Vasseur" initials="JP." surname="Vasseur"/>
            <author fullname="R. Alexander" initials="R." surname="Alexander"/>
            <date month="March" year="2012"/>
            <abstract>
              <t>Low-Power and Lossy Networks (LLNs) are a class of network in which both the routers and their interconnect are constrained. LLN routers typically operate with constraints on processing power, memory, and energy (battery power). Their interconnects are characterized by high loss rates, low data rates, and instability. LLNs are comprised of anything from a few dozen to thousands of routers. Supported traffic flows include point-to-point (between devices inside the LLN), point-to-multipoint (from a central control point to a subset of devices inside the LLN), and multipoint-to-point (from devices inside the LLN towards a central control point). This document specifies the IPv6 Routing Protocol for Low-Power and Lossy Networks (RPL), which provides a mechanism whereby multipoint-to-point traffic from devices inside the LLN towards a central control point as well as point-to-multipoint traffic from the central control point to the devices inside the LLN are supported. Support for point-to-point traffic is also available. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6550"/>
          <seriesInfo name="DOI" value="10.17487/RFC6550"/>
        </reference>
        <reference anchor="RFC6551">
          <front>
            <title>Routing Metrics Used for Path Calculation in Low-Power and Lossy Networks</title>
            <author fullname="JP. Vasseur" initials="JP." role="editor" surname="Vasseur"/>
            <author fullname="M. Kim" initials="M." role="editor" surname="Kim"/>
            <author fullname="K. Pister" initials="K." surname="Pister"/>
            <author fullname="N. Dejean" initials="N." surname="Dejean"/>
            <author fullname="D. Barthel" initials="D." surname="Barthel"/>
            <date month="March" year="2012"/>
            <abstract>
              <t>Low-Power and Lossy Networks (LLNs) have unique characteristics compared with traditional wired and ad hoc networks that require the specification of new routing metrics and constraints. By contrast, with typical Interior Gateway Protocol (IGP) routing metrics using hop counts or link metrics, this document specifies a set of link and node routing metrics and constraints suitable to LLNs to be used by the Routing Protocol for Low-Power and Lossy Networks (RPL). [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6551"/>
          <seriesInfo name="DOI" value="10.17487/RFC6551"/>
        </reference>
        <reference anchor="RFC6719">
          <front>
            <title>The Minimum Rank with Hysteresis Objective Function</title>
            <author fullname="O. Gnawali" initials="O." surname="Gnawali"/>
            <author fullname="P. Levis" initials="P." surname="Levis"/>
            <date month="September" year="2012"/>
            <abstract>
              <t>The Routing Protocol for Low-Power and Lossy Networks (RPL) constructs routes by using Objective Functions that optimize or constrain the routes it selects and uses. This specification describes the Minimum Rank with Hysteresis Objective Function (MRHOF), an Objective Function that selects routes that minimize a metric, while using hysteresis to reduce churn in response to small metric changes. MRHOF works with additive metrics along a route, and the metrics it uses are determined by the metrics that the RPL Destination Information Object (DIO) messages advertise. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6719"/>
          <seriesInfo name="DOI" value="10.17487/RFC6719"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="IEEE802154" target="http://standards.ieee.org/findstds/standard/802.15.4-2015.html">
          <front>
            <title>IEEE Std. 802.15.4, Part. 15.4: Wireless Medium Access Control (MAC) and Physical Layer (PHY) Specifications for Low-Rate Wireless Personal Area Networks</title>
            <author initials="" surname="IEEE standard for Information Technology">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="RFC6552">
          <front>
            <title>Objective Function Zero for the Routing Protocol for Low-Power and Lossy Networks (RPL)</title>
            <author fullname="P. Thubert" initials="P." role="editor" surname="Thubert"/>
            <date month="March" year="2012"/>
            <abstract>
              <t>The Routing Protocol for Low-Power and Lossy Networks (RPL) specification defines a generic Distance Vector protocol that is adapted to a variety of network types by the application of specific Objective Functions (OFs). An OF states the outcome of the process used by a RPL node to select and optimize routes within a RPL Instance based on the Information Objects available; an OF is not an algorithm.</t>
              <t>This document specifies a basic Objective Function that relies only on the objects that are defined in the RPL and does not use any protocol extensions. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6552"/>
          <seriesInfo name="DOI" value="10.17487/RFC6552"/>
        </reference>
        <reference anchor="RFC8557">
          <front>
            <title>Deterministic Networking Problem Statement</title>
            <author fullname="N. Finn" initials="N." surname="Finn"/>
            <author fullname="P. Thubert" initials="P." surname="Thubert"/>
            <date month="May" year="2019"/>
            <abstract>
              <t>This paper documents the needs in various industries to establish multi-hop paths for characterized flows with deterministic properties.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8557"/>
          <seriesInfo name="DOI" value="10.17487/RFC8557"/>
        </reference>
        <reference anchor="RFC8655">
          <front>
            <title>Deterministic Networking Architecture</title>
            <author fullname="N. Finn" initials="N." surname="Finn"/>
            <author fullname="P. Thubert" initials="P." surname="Thubert"/>
            <author fullname="B. Varga" initials="B." surname="Varga"/>
            <author fullname="J. Farkas" initials="J." surname="Farkas"/>
            <date month="October" year="2019"/>
            <abstract>
              <t>This document provides the overall architecture for Deterministic Networking (DetNet), which provides a capability to carry specified unicast or multicast data flows for real-time applications with extremely low data loss rates and bounded latency within a network domain. Techniques used include 1) reserving data-plane resources for individual (or aggregated) DetNet flows in some or all of the intermediate nodes along the path of the flow, 2) providing explicit routes for DetNet flows that do not immediately change with the network topology, and 3) distributing data from DetNet flow packets over time and/or space to ensure delivery of each packet's data in spite of the loss of a path. DetNet operates at the IP layer and delivers service over lower-layer technologies such as MPLS and Time- Sensitive Networking (TSN) as defined by IEEE 802.1.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8655"/>
          <seriesInfo name="DOI" value="10.17487/RFC8655"/>
        </reference>
        <reference anchor="RFC9030">
          <front>
            <title>An Architecture for IPv6 over the Time-Slotted Channel Hopping Mode of IEEE 802.15.4 (6TiSCH)</title>
            <author fullname="P. Thubert" initials="P." role="editor" surname="Thubert"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document describes a network architecture that provides low-latency, low-jitter, and high-reliability packet delivery. It combines a high-speed powered backbone and subnetworks using IEEE 802.15.4 time-slotted channel hopping (TSCH) to meet the requirements of low-power wireless deterministic applications.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9030"/>
          <seriesInfo name="DOI" value="10.17487/RFC9030"/>
        </reference>
      </references>
    </references>
    <?line 389?>

<section anchor="implementation-status">
      <name>Implementation Status</name>
      <t>A research-stage implementation of the PRE mechanism using the proposed extension as part of a 6TiSCH IOT use case was developed at IMT Atlantique, France by Tomas Lagos Jenschke and Remous-Aris Koutsiamanis. It was implemented on the open-source Contiki OS and tested with the Cooja simulator. The DIO DAGMC NSA extension is implemented with a configurable number of parents from the parent set of a node to be reported.</t>
      <figure anchor="fig_sim_topology">
        <name>Simulation Topology</name>
        <artwork><![CDATA[
                 ( R )


(11)   (12)   (13)   (14)   (15)   (16)


(21)   (22)   (23)   (24)   (25)   (26)


(31)   (32)   (33)   (34)   (35)   (36)


(41)   (42)   (43)   (44)   (45)   (46)


(51)   (52)   (53)   (54)   (55)   (56)


                 ( S )
]]></artwork>
      </figure>
      <t>The simulation setup is:</t>
      <dl>
        <dt>Topology:</dt>
        <dd>
          <t>32 nodes structured in a regular grid as shown in <xref target="fig_sim_topology"/>. Node S (source) is the only data packet sender and sends data to node R (root). The parent set of each node (except R) is all the nodes in the immediately higher row, the immediately above 6 nodes. For example, each node in {51, 52, 53, 54, 55, 56} is connected to all of {41, 42, 43, 44, 45, 46}. Nodes 11, 12, 13, 14, 15, and 16 have a single upwards link to R.</t>
        </dd>
        <dt>MAC:</dt>
        <dd>
          <t>TSCH with 1 retransmission</t>
        </dd>
        <dt>Platform:</dt>
        <dd>
          <t>Cooja</t>
        </dd>
        <dt>Schedule:</dt>
        <dd>
          <t>Static, 2 timeslots per link from each node to each parent in its parent set, 1 broadcast EB slot, 1 sender-based shared timeslot (for DIO and DIS) per node (total of 32).</t>
        </dd>
        <dt>Simulation lifecycle:</dt>
        <dd>
          <t>Allow link formation for 100 seconds before starting to send data packets. Afterward, S sends data packets to R. The simulation terminates when 1000 packets have been sent by S.</t>
        </dd>
        <dt>Radio Links:</dt>
        <dd>
          <t>Every 60 s, a new Packet Delivery Rate is randomly drawn for each link, with a uniform distribution spanning the 70% to 100% interval.</t>
        </dd>
        <dt>Traffic Pattern:</dt>
        <dd>
          <t>CBR, S sends one non-fragmented UDP packet every 5 seconds to R.</t>
        </dd>
        <dt>PS extension size:</dt>
        <dd>
          <t>3 parents.</t>
        </dd>
      </dl>
      <t>Routing Methods:</t>
      <ul spacing="normal">
        <li>
          <t>RPL: The default RPL non-PRE implementation in Contiki OS.</t>
        </li>
        <li>
          <t>2nd ETX: PRE with a parent selection method which picks as AP the 2nd best parent in the parent set based on ETX.</t>
        </li>
        <li>
          <t>CA Strict: As described in <xref target="sec_ca_strict"/>.</t>
        </li>
        <li>
          <t>CA Medium: As described in <xref target="sec_ca_medium"/>.</t>
        </li>
      </ul>
      <t>Simulation results:</t>
      <table anchor="tbl_sim_results">
        <name>Simulation results</name>
        <thead>
          <tr>
            <th align="left">Routing Method</th>
            <th align="left">Average Packet Delivery Rate (%)</th>
            <th align="left">Average Traversed Nodes/packet (#)</th>
            <th align="left">Average Duplications/packet (#)</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">RPL</td>
            <td align="left">82.70</td>
            <td align="left">5.56</td>
            <td align="left">7.02</td>
          </tr>
          <tr>
            <td align="left">2nd ETX</td>
            <td align="left">99.38</td>
            <td align="left">14.43</td>
            <td align="left">31.29</td>
          </tr>
          <tr>
            <td align="left">CA Strict</td>
            <td align="left">97.32</td>
            <td align="left">9.86</td>
            <td align="left">18.23</td>
          </tr>
          <tr>
            <td align="left">CA Medium</td>
            <td align="left">99.66</td>
            <td align="left">13.75</td>
            <td align="left">28.86</td>
          </tr>
        </tbody>
      </table>
      <t>Links:</t>
      <ul spacing="normal">
        <li>
          <t><eref target="https://github.com/ariskou/contiki/tree/draft-koutsiamanis-roll-nsa-extension">Contiki OS DIO DAGMC NSA extension (draft-koutsiamanis-roll-nsa-extension branch)</eref></t>
        </li>
        <li>
          <t><eref target="https://code.wireshark.org/review/gitweb?p=wireshark.git;a=commit;h=e2f6ba229f45d8ccae2a6405e0ef41f1e61da138">Wireshark dissectors (for the optional PS TLV) - currently merged / in master</eref></t>
        </li>
      </ul>
    </section>
    <section anchor="appendix_choosing_policy">
      <name>Choosing an AP selection policy</name>
      <t>The manner of choosing an AP selection policy is left to the implementation, for maximum flexibility.</t>
      <t>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.</t>
      <t>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.</t>
      <t>Finally, a network configurator may provide the CA policies with a preference order of Strict &gt; Medium &gt; Relaxed as a means of falling back to more flood-prone policies to maintain reliability.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
7T8BPR/75E54AAA=

-->

</rfc>
