One document matched: draft-thubert-roll-asymlink-00.xml
<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<?rfc subcompact="no"?>
<?rfc authorship="yes"?>
<?rfc tocappendix="yes"?>
<rfc category="std" docName="draft-thubert-roll-asymlink-00" ipr="trust200902">
<front>
<title abbrev="draft-thubert-roll-asymlink">RPL adaptation for asymmetrical links</title>
<author fullname="Pascal Thubert" initials="P" role="editor"
surname="Thubert">
<organization abbrev="Cisco Systems">Cisco Systems</organization>
<address>
<postal>
<street>Village d'Entreprises Green Side</street>
<street>400, Avenue de Roumanille</street>
<street>Batiment T3</street>
<city>Biot - Sophia Antipolis</city>
<code>06410</code>
<country>FRANCE</country>
</postal>
<phone>+33 497 23 26 34</phone>
<email>pthubert@cisco.com</email>
</address>
</author>
<date />
<area>Routing Area</area>
<workgroup>ROLL</workgroup>
<keyword>Draft</keyword>
<abstract>
<t>The Routing Protocol for Low Power and Lossy Networks
defines a generic Distance Vector protocol for Low Power and
Lossy Networks, many of which exhibit strongly asymmetrical
characteristics. This draft proposes an extension for that
optimizes RPL operations whereby upwards and downwards direction-optimized
RPL instances are associated.
</t>
</abstract>
<note title="Requirements Language">
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in <xref
target="RFC2119">RFC 2119</xref>.</t>
</note>
</front>
<middle>
<section title="Introduction">
<t>The IETF ROLL Working Group has defined
application-specific routing requirements for a Low Power and Lossy
Network (LLN) routing protocol, specified in
<xref target="RFC5548"></xref>,
<xref target="RFC5673"></xref>,
<xref target="RFC5826"></xref>, and
<xref target="RFC5867"></xref>,
many of which explicitly or implicitly refer to links with
asymmetrical properties.
</t>
<t>Upon those requirements, the <xref target="I-D.ietf-roll-rpl">
Routing Protocol for Low Power and Lossy Network</xref>
was designed as a platform that can be extended by further specifications or
guidances, by adding new metrics, Objective Functions, or additional options.</t>
<t>RPL forms Destination Oriented Directed Acyclic Graphs (DODAGs) within instances
of the protocol. Each instance is associated with an Objective Function that is
designed to solve the problem that is addressed by that instance.</t>
<t>In one hand, RPL requires bidirectional links for the control, but on the other,
there is no requirement that the properties of a link are the same in both directions.
In fact, such a symmetry is rarely present in LLNs, whether links are based on radios
or power-line.</t>
<t>Some initial implementations require that the quality of both directions of a link
is evaluated as very good so that the link can be used for control and data in both
directions. This eliminates asymmetrical links that are very good in one direction,
but only good enough for scarce activity in the other direction.</t>
<t>In practice, a DAG that is built to optimize upwards traffic is generally not
congruent with a DAG that is built to optimize downwards traffic. This is why
this specification is designed to enable asymmetrical routing DAGs that are bound
together to get the maximum benefits of all bidirectional links.</t>
</section>
<section anchor="Terminology" title="Terminology">
<t>The terminology used in this document is consistent with and
incorporates that described in `Terminology in Low power And Lossy
Networks' <xref target="I-D.ietf-roll-terminology"></xref>
and <xref target="I-D.ietf-roll-rpl"/>.</t>
<t>The term upwards qualifies a link, a DODAG or an instance that is optimal for
sending traffic in the general direction of the root,
though may be usable but suboptimal for traffic coming form the
direction of the root. The term downwards
qualifies the same words for the opposite direction.</t>
<t>The term parenting applied to instances refers to the directional association
of two instances. The graph formed by parented instances must be a DAG. Traffic
may be transferred from an instance onto a parent instance under specified
circumstances.
</t>
</section>
<section title="The asymmetrical link problem">
</section>
<section title="Solution Overview">
<t>With the core RPL specification, <xref target="I-D.ietf-roll-rpl"/>
each instance is a separate routing topology, and packets must
be forwarded within the same topology / same instance. One direct
consequence of that design choice is that a topology must be very
good for both upwards and downwards traffic; otherwise, traffic between
two nodes in the instance may suffer.
</t>
<t> A simple approach to address bidirectional but asymmetrical links
with RPL is to construct two DAGs, one for upwards traffic and one
for downwards traffic, each DAG a separate instance, and then bind
the two together. In order to benefit from both instances for a same
packet, this solution extends RPL to allow traffic to be transferred
from one instance to the next.</t>
<t>It can be noted at this point that with <xref target="I-D.ietf-roll-rpl"/>,
traffic that goes down does not generally go back up again, whereas P2P
traffic within a DODAG might go up to a common parent and then down
to the destination. In terms of instance relationship, this means
that when an upwards and a downwards instance are bound together,
traffic from the former may be transferred to the latter, but not
the other way around. In other words, there is an order, a
parent-child relationship, between the two instances.
</t>
<t>Additionally, if there is no next-hop for a packet going down within
the instance, then with <xref target="I-D.ietf-roll-rpl"/> the packet
must be dropped. In order to limit that risk, it is
tempting though inefficient to lower the constraints that are applied
to build the topology. It can be more efficient to actually keep the
constraints as they should be, but, instead, enable a less constrained,
more spanning, fall-back topology into which traffic can be transferred.
</t>
<t>For that reason, this solution allows for more complex instance
relationships than plain child-parent associations. In order to
avoids loops which could be created when transferring packets from
one instance to the next, this solution requires that the instances
be themselves organized as a superior Directed Acyclic Graph, and
enforce that inter-DAG transfers occur only within that superior
super-DAG of DAG instances.
</t>
</section>
<section anchor="DAGInformationObject"
title="Modified DODAG Information Object (DIO)">
<t>The DODAG Information Object <xref target="I-D.ietf-roll-rpl"/>
carries information that allows a node to discover a RPL Instance,
learn its configuration parameters, select a DODAG parent set, and
maintain the DODAG. This specification defines a new flag bit to
indicate that the DAG is directional.</t>
<t><figure anchor="DIObase" title="The DIO Base Object">
<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|D| MOP | Prf | DTSN | Flags | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ DODAGID +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option(s)...
+-+-+-+-+-+-+-+-+
]]></artwork>
</figure></t>
<t><list hangIndent="6" style="hanging">
<t hangText="Directional (D):">The Directional (D) flag is set
to indicate that the instance is intended for directional operation,
and reset otherwise. When it is set, a MOP of 0 indicates the
upwards direction whereas any other value specified in
<xref target="I-D.ietf-roll-rpl"/> indicates downwards.
All other values of MOP will be considered downwards unless
explicitly specified otherwise.</t>
</list></t>
</section>
<section title="Operations">
<t>This specification allows an organization of Instances as follows:
<list>
<t>Instances MUST be organized as a Directed Acyclic Graph. This
information MUST be commissioned into the devices so they know both
which instances they should participate in, and which direction of
transfer is allowed between instances.</t>
<t>A spanning instance using OF0 <xref target="I-D.ietf-roll-of0"/>
MAY be used as root in that instance DAG.</t>
</list>
</t>
<t>This specification defines a new bit in the
<xref target="I-D.ietf-roll-rpl">RPL</xref>
DODAG Information Object (DIO) with the Directional (D) flag that
indicates a directional operation for a given instance.
An implementation that does not support that new bit will not be able to
propagate it. </t>
<t>In case of a directional operation,
<list>
<t>The direction is indicated by the MOP field, a MOP of 0 means upwards
and otherwise is downwards.</t>
<t>Links are still REQUIRED to allow bidirectional operations</t>
<t>Only the metrics that correspond to the DAG direction are used for
the parent selection. </t>
<t>An upward instance SHOULD install routes that lead to the root and beyond -
typically the default route. </t>
<t>A downwards instance MAY ONLY install more specific routes that are
injected by nodes in the DODAG through the DAO process.</t>
<t>P2P operations are achieved by associating a child upwards instance with
a parent downwards instance.</t>
<t>A packet MUST NOT be transferred from a parent instance to a child instance. </t>
<t>A packet MAY be transferred from a child instance to its parent instance
if and only if the child instance does not provide a route to the destination,
or the parent instance provides a more specific route (longer match) to the
destination.
</t>
<t>Transferring from an upwards instance to a downwards instance if generally
desirable. Other forms of transfers are generally not desirable. Policies
MAY be put in place to ovreride that general guidance.
</t>
</list>
</t>
</section>
<section anchor="back" title="Backward compatibility">
<t>An OF is generally designed to compute a Rank of a directional
link in a fashion that is diffent from a bidirectional link, and
in particular will not use the same metrics and thusobtain different
ranks for a same situation. For that
reason, it is important that the OF is aware that an instance is
supposed to define a directional DODAG, and it is RECOMMENDED that
only devices that support directional DODAGs are allowed in a directional
instance. </t>
<t>It might happen that for some purposes like higher availability,
an implementation that does not support directional links is administratively
allowed to join a directional DODAG. In that case, the extension of the DODAG that starts
at that device will not be directional, but the instance will still be functional. </t>
<t>In that case, it might also happen that a device that supports directional DODAGs
per this specification sees candidate neighbors that expose the Directional flag
and some others that do not. An OF that supports directional links
SHOULD favor directional links over non directional links, in a fashion
that is to be specified with the OF. In the case of <xref target="I-D.ietf-roll-of0">
OF0 </xref>, the 'D' flag should be accounted for before the computation of item 8
in the "Selection Of The Preferred Parent" section 4.2.1., that is before Ranks and
be calculated and compared.
</t>
</section>
<section anchor="IANA" title="IANA Considerations">
<t>This specification requires that a bit in DIO be assigned to
indicate directional link operations as specified in section </t>
</section>
<section anchor="Sec" title="Security Considerations">
<t>Security Considerations for this proposal are to be developed in accordance
with recommendations laid out in, for example, <xref
target="I-D.tsao-roll-security-framework"></xref>.</t>
</section>
<section anchor="Acknowledgements" title="Acknowledgements">
<t>The author wishes to recognize Richard Kelsey, JP Vasseur, Tom Phinney, Robert Assimiti,
Don Sturek and Yoav Ben-Yehezkel for their various contributions.</t>
</section>
</middle>
<back>
<references title="Normative References">
<?rfc include="reference.RFC.2119"?>
<?rfc include='reference.I-D.ietf-roll-rpl.xml'?>
<?rfc include='reference.I-D.ietf-roll-terminology.xml'?>
</references>
<references title="Informative References">
<?rfc include='reference.I-D.ietf-roll-of0.xml'?>
<?rfc include="reference.RFC.5548"?>
<?rfc include="reference.RFC.5673"?>
<?rfc include="reference.RFC.5826"?>
<?rfc include="reference.RFC.5867"?>
<?rfc include='reference.I-D.tsao-roll-security-framework.xml'?>
</references>
</back>
</rfc>
| PAFTECH AB 2003-2026 | 2026-04-22 03:24:33 |