ROLL | P. Thubert, Ed. |
Internet-Draft | Cisco Systems |
Intended status: Standards Track | January 27, 2012 |
Expires: July 28, 2012 |
RPL adaptation for asymmetrical links
draft-thubert-roll-asymlink-02
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.
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 RFC 2119 [RFC2119].
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."
This Internet-Draft will expire on July 28, 2012.
Copyright (c) 2012 IETF Trust and the persons identified as the document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.
The IETF ROLL Working Group has defined application-specific routing requirements for a Low Power and Lossy Network (LLN) routing protocol, specified in [RFC5548], [RFC5673], [RFC5826], and [RFC5867], many of which explicitly or implicitly refer to links with asymmetrical properties.
Upon those requirements, the Routing Protocol for Low Power and Lossy Network [I-D.ietf-roll-rpl] was designed as a platform that can be extended by further specification or guidance, by adding new metrics, Objective Functions, or additional options.
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.
On one hand, RPL requires bi-directional links for the control, but on the other hand, there is no requirement that the properties of a link are the same in both directions. In fact, a perfect symmetry is rarely present in Low Power and Lossy Networks (LLNs) such as wireless radio or power-line links.
Some initial implementations require that the quality of both directions of a link is evaluated as operational at an acceptable level so that the link can be used for control and data in both directions. This eliminates asymmetrical links that are not operational at an acceptable level in one direction.
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 types of bi-directional links.
The terminology used in this document is consistent with and incorporates that described in `Terminology in Low power And Lossy Networks' [I-D.ietf-roll-terminology] and [I-D.ietf-roll-rpl].
The term upwards qualifies a link, a DODAG or a RPL instance that is optimal for sending traffic towards the root, though may be usable but suboptimal for traffic coming from the direction of the root. The term downwards qualifies the same wording, only for opposite directions.
The term parenting applied to instances refers to the directional association of two instances. The meta graph formed by parented instances must be a DAG. Traffic may be transferred from an instance onto a parent instance under specified circumstances.
The draft also uses the following terminology:
With the core RPL specification, [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 operational at an acceptable level for both upwards and downwards traffic; otherwise, traffic between two nodes in the RPL instance may suffer.
RPL is designed to operate on bi-directional links. When the link properties do not widely differ between the upwards and the downwards directions, a single DAG is adequate as the routing topology for both upwards and downwards traffic. In that case, an asymmetrical link, that can only be used for traffic in one direction, cannot participate to the routing topology. This results in an sub-optimal bandwidth utilization and/or a reduction of the possible path diversity.
This issue can be addressed with [I-D.ietf-roll-rpl], by constructing two DAGs, one that is used for upwards traffic and one that is used for downwards traffic. This solves the issue for all traffic that transits through the root of the DODAG, whether it is originated in the DODAG going out or is injected into the DODAG from the outside, since in both cases a packet will mostly use the asymmetric links in the appropriate direction.
On the other hand, with RPL as it is specified, a packet follows the topology that is generated for its instance all the way through a DAG, and transferring a packet from an instance to another is not permitted. As a result, the 2 DAGs solution would penalize Peer to peer traffic that would have to go through the root in order to leave the upward instance and then reenter at the root in order to join the downwards instance. This is not an issue in non-storing mode since the packet has to go through the root to load the routing header downwards anyway, but going through the root stretches the path in storing mode.
In order to benefit from both instances and yet avoid extra stretch through the root in storing mode, it is required to extend RPL rules so as to allow traffic to be transferred from one instance to the next before reaching the root on the way up. This document specifies conditions under which 2 instances can be bound together so that a node may transfer traffic from a RPL instance onto another, e.g. from an upwards RPL instance onto the downwards RPL instance.
It can be noted at this point that with [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 instances 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.
Additionally, if there is no next-hop for a packet going down within the instance, then with [I-D.ietf-roll-rpl] the packet will be dropped or sent back with an error along the wrong direction of an asymmetric link. In order to avoid those unwanted behaviors, 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, fallback topology into which traffic can be transferred.
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 Directed Acyclic Graph, and enforce that inter-DAG transfers occur only within that meta DAG.
The DODAG Information Object [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.
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)... +-+-+-+-+-+-+-+-+
This specification allows an organization of Instances as follows:
This specification defines a new bit in the RPL [I-D.ietf-roll-rpl] 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.
In case of a directional operation,
An OF is generally designed to compute a Rank of a directional link in a fashion that is different from a bidirectional link, and in particular will not use the same metrics and thus obtain 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.
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.
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 by the OF. In the case of OF0 [I-D.ietf-roll-of0], 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 are calculated and can be compared.
This specification requires that a bit in DIO shall be assigned to indicate directional link operations as specified in Section 5
Security considerations for this proposal are to be developed in accordance with recommendations laid out in, for example, [I-D.tsao-roll-security-framework].
The author wishes to recognize Richard Kelsey, JP Vasseur, Tom Phinney, Robert Assimiti, Don Sturek, Thomas Clausen and Yoav Ben-Yehezkel for their various contributions.
[RFC2119] | Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. |
[I-D.ietf-roll-rpl] | Winter, T, Thubert, P, Brandt, A, Clausen, T, Hui, J, Kelsey, R, Levis, P, Pister, K, Struik, R and J Vasseur, "RPL: IPv6 Routing Protocol for Low power and Lossy Networks", Internet-Draft draft-ietf-roll-rpl-19, March 2011. |
[I-D.ietf-roll-terminology] | Vasseur, J, "Terminology in Low power And Lossy Networks", Internet-Draft draft-ietf-roll-terminology-06, September 2011. |
[I-D.ietf-roll-of0] | Thubert, P, "RPL Objective Function Zero", Internet-Draft draft-ietf-roll-of0-20, September 2011. |
[RFC5548] | Dohler, M., Watteyne, T., Winter, T. and D. Barthel, "Routing Requirements for Urban Low-Power and Lossy Networks", RFC 5548, May 2009. |
[RFC5673] | Pister, K., Thubert, P., Dwars, S. and T. Phinney, "Industrial Routing Requirements in Low-Power and Lossy Networks", RFC 5673, October 2009. |
[RFC5826] | Brandt, A., Buron, J. and G. Porcu, "Home Automation Routing Requirements in Low-Power and Lossy Networks", RFC 5826, April 2010. |
[RFC5867] | Martocci, J., De Mil, P., Riou, N. and W. Vermeylen, "Building Automation Routing Requirements in Low-Power and Lossy Networks", RFC 5867, June 2010. |
[I-D.tsao-roll-security-framework] | Tsao, T, Alexander, R, Daza, V and A Lozano, "A Security Framework for Routing over Low Power and Lossy Networks", Internet-Draft draft-tsao-roll-security-framework-02, March 2010. |