summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc6551.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/rfc/rfc6551.txt')
-rw-r--r--doc/rfc/rfc6551.txt1683
1 files changed, 1683 insertions, 0 deletions
diff --git a/doc/rfc/rfc6551.txt b/doc/rfc/rfc6551.txt
new file mode 100644
index 0000000..f726ffd
--- /dev/null
+++ b/doc/rfc/rfc6551.txt
@@ -0,0 +1,1683 @@
+
+
+
+
+
+
+Internet Engineering Task Force (IETF) JP. Vasseur, Ed.
+Request for Comments: 6551 Cisco Systems
+Category: Standards Track M. Kim, Ed.
+ISSN: 2070-1721 Corporate Technology Group, KT
+ K. Pister
+ Dust Networks
+ N. Dejean
+ Elster SAS
+ D. Barthel
+ France Telecom Orange
+ March 2012
+
+
+ Routing Metrics Used for Path Calculation in
+ Low-Power and Lossy Networks
+
+Abstract
+
+ 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).
+
+Status of This Memo
+
+ This is an Internet Standards Track document.
+
+ This document is a product of the Internet Engineering Task Force
+ (IETF). It represents the consensus of the IETF community. It has
+ received public review and has been approved for publication by the
+ Internet Engineering Steering Group (IESG). Further information on
+ Internet Standards is available in Section 2 of RFC 5741.
+
+ Information about the current status of this document, any errata,
+ and how to provide feedback on it may be obtained at
+ http://www.rfc-editor.org/info/rfc6551.
+
+Copyright Notice
+
+ 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
+
+
+
+Vasseur, et al. Standards Track [Page 1]
+
+RFC 6551 Routing for Path Calculation in LLNs March 2012
+
+
+ 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.
+
+Table of Contents
+
+ 1. Introduction ....................................................3
+ 1.1. Requirements Language ......................................6
+ 2. Object Formats ..................................................7
+ 2.1. DAG Metric Container Format ................................7
+ 2.2. Use of Multiple DAG Metric Containers .....................10
+ 2.3. Metric Usage ..............................................10
+ 3. Node Metric/Constraint Objects .................................11
+ 3.1. Node State and Attribute Object ...........................11
+ 3.2. Node Energy Object ........................................12
+ 3.3. Hop Count Object ..........................................16
+ 4. Link Metric/Constraint Objects .................................17
+ 4.1. Throughput ................................................17
+ 4.2. Latency ...................................................18
+ 4.3. Link Reliability ..........................................19
+ 4.3.1. The Link Quality Level Reliability Metric ..........19
+ 4.3.2. The ETX Reliability Object .........................21
+ 4.4. Link Color Object .........................................22
+ 4.4.1. Link Color Object Description ......................22
+ 4.4.2. Mode of Operation ..................................24
+ 5. Computation of Dynamic Metrics and Attributes ..................24
+ 6. IANA Considerations ............................................25
+ 6.1. Routing Metric/Constraint Type ............................25
+ 6.2. Routing Metric/Constraint TLVs ............................25
+ 6.3. Routing Metric/Constraint Common Header Flag Field ........26
+ 6.4. Routing Metric/Constraint Common Header A Field ...........26
+ 6.5. NSA Object Flags Field ....................................26
+ 6.6. Hop-Count Object Flags Field ..............................27
+ 6.7. Node Type Field ...........................................27
+ 7. Security Considerations ........................................27
+ 8. Acknowledgements ...............................................28
+ 9. References .....................................................28
+ 9.1. Normative References ......................................28
+ 9.2. Informative References ....................................28
+
+
+
+
+
+
+
+
+
+Vasseur, et al. Standards Track [Page 2]
+
+RFC 6551 Routing for Path Calculation in LLNs March 2012
+
+
+1. Introduction
+
+ This document makes use of the terminology defined in [ROLL-TERMS].
+
+ Low-power and Lossy Networks (LLNs) have specific routing
+ characteristics compared with traditional wired or ad hoc networks
+ that have been spelled out in [RFC5548], [RFC5673], [RFC5826], and
+ [RFC5867].
+
+ Historically, IGP, such as OSPF ([RFC2328]) and IS-IS ([RFC1195]),
+ has used quantitative static link metrics. Other mechanisms, such as
+ Multiprotocol Label Switching (MPLS) Traffic Engineering (TE) (see
+ [RFC2702] and [RFC3209]), make use of other link attributes such as
+ the available reserved bandwidth (dynamic) or link affinities (most
+ of the time static) to compute constrained shortest paths for Traffic
+ Engineering Label Switched Paths (TE LSPs).
+
+ This document specifies routing metrics and constraints to be used in
+ path calculation by the Routing Protocol for Low-Power and Lossy
+ Networks (RPL) specified in [RFC6550].
+
+ One of the prime objectives of this document is to define a flexible
+ mechanism for the advertisement of routing metrics and constraints
+ used by RPL. Some RPL implementations may elect to adopt an
+ extremely simple approach based on the use of a single metric with no
+ constraint, whereas other implementations may use a larger set of
+ link and node routing metrics and constraints. This specification
+ provides a high degree of flexibility and a set of routing metrics
+ and constraints. New routing metrics and constraints could be
+ defined in the future, as needed.
+
+ The metrics and constraints defined in this document are carried in
+ objects that are OPTIONAL from the point of view of a RPL
+ implementation. This means that implementations are free to include
+ different subsets of the functions (metric, constraint) defined in
+ this document. Specific sets of metrics/constraints and other
+ optional RPL parameters for use in key environments will be specified
+ as compliance profiles in applicability profile documents produced by
+ the ROLL working group. Note that RPL can even make use of no
+ metric, for example, using the Objective Function defined in
+ [RFC6552].
+
+ RPL is a distance vector routing protocol variant that builds
+ Directed Acyclic Graphs (DAGs) based on routing metrics and
+ constraints. DAG formation rules are defined in [RFC6550]:
+
+
+
+
+
+
+Vasseur, et al. Standards Track [Page 3]
+
+RFC 6551 Routing for Path Calculation in LLNs March 2012
+
+
+ o The Destination-Oriented Directed Acyclic Graph (DODAG) root, as
+ defined in [RFC6550], may advertise a routing constraint used as a
+ "filter" to prune links and nodes that do not satisfy specific
+ properties. For example, it may be required for a path only to
+ traverse nodes that are mains-powered or links that have at least
+ a minimum reliability or a specific "color" reflecting a user-
+ defined link characteristic (e.g., the link layer supports
+ encryption).
+
+ o A routing metric is a quantitative value that is used to evaluate
+ the path cost. Link and node metrics are usually (but not always)
+ additive.
+
+ The best path is the path that satisfies all supplied constraints (if
+ any) and that has the lowest cost with respect to some specified
+ metrics. It is also called the shortest constrained path (in the
+ presence of constraints).
+
+ Routing metrics may be categorized according to the following
+ characteristics:
+
+ o Link versus node metrics
+
+ o Qualitative versus quantitative
+
+ o Dynamic versus static
+
+ Routing requirements documents (see [RFC5673], [RFC5826], [RFC5548],
+ and [RFC5867]) observe that it must be possible to take into account
+ a variety of node constraints/metrics during path computation.
+
+ Some link or node characteristics (e.g., link reliability, remaining
+ energy on the node) may be used by RPL either as routing constraints
+ or as metrics (or sometimes both). For example, the path may be
+ computed to avoid links that do not provide a sufficient level of
+ reliability (use as a constraint) or as the path offering most links
+ with a specified reliability level (use as a metric). This document
+ provides the flexibility to use link and node characteristics as
+ constraints and/or metrics.
+
+ The use of link and node routing metrics and constraints is not
+ exclusive (e.g., it is possible to advertise a "hop count" both as a
+ metric to optimize the computed path and as a constraint (e.g., "Path
+ should not exceed n hops")).
+
+ Links in LLN commonly have rapidly changing node and link
+ characteristics; thus, routing metrics must be dynamic and techniques
+ must be used to smooth out the dynamicity of these metrics so as to
+
+
+
+Vasseur, et al. Standards Track [Page 4]
+
+RFC 6551 Routing for Path Calculation in LLNs March 2012
+
+
+ avoid routing oscillations. For instance, in addition to the dynamic
+ nature of some links (e.g., wireless but also Power Line
+ Communication (PLC) links), nodes' resources, such as residual
+ energy, are changing continuously and may have to be taken into
+ account during the path computation.
+
+ It must be noted that the use of dynamic metrics is not new and has
+ been experimented in ARPANET 2 (see [Zinky1989]). The use of dynamic
+ metrics is not trivial and great care must be given to the use of
+ dynamic metrics since it may lead to potential routing instabilities.
+ That being said, a lot of experience has been gained over the years
+ on the use of dynamic routing metrics, which have been deployed in a
+ number of (non-IP) networks.
+
+ Very careful attention must be given to the pace at which routing
+ metrics and attributes values change in order to preserve routing
+ stability. When using a dynamic routing metric, a RPL implementation
+ should make use of a multi-threshold scheme rather than fine granular
+ metric updates reflecting each individual change to avoid spurious
+ and unnecessary routing changes.
+
+ The requirements on reporting frequency may differ among metrics;
+ thus, different reporting rates may be used for each metric.
+
+ The set of routing metrics and constraints used by a RPL deployment
+ is signaled along the DAG that is built according to the Objective
+ Function (rules governing how to build a DAG) and the routing metrics
+ and constraints are advertised in the DODAG Information Object (DIO)
+ message specified in [RFC6550]. RPL may be used to build DAGs with
+ different characteristics. For example, it may be desirable to build
+ a DAG with the goal to maximize reliability by using the link
+ reliability metric to compute the "best" path. Another example might
+ be to use the energy node characteristic (e.g., mains-powered versus
+ battery-operated) as a node constraint when building the DAG so as to
+ avoid battery-powered nodes in the DAG while optimizing the link
+ throughput.
+
+ The specification of Objective Functions used to compute the DAG
+ built by RPL is out of the scope of this document. This document
+ defines routing metrics and constraints that are decoupled from the
+ Objective Function. So a generic Objective Function could, for
+ example, specify the rules to select the best parents in the DAG, the
+ number of backup parents, etc., and it could be used with any routing
+ metrics and/or constraints such as the ones specified in this
+ document.
+
+
+
+
+
+
+Vasseur, et al. Standards Track [Page 5]
+
+RFC 6551 Routing for Path Calculation in LLNs March 2012
+
+
+ Some metrics are either aggregated or recorded. An aggregated metric
+ is adjusted as the DIO message travels along the DAG. For example,
+ if the metric is the number of hops, each node updates the path cost
+ that reflects the number of traversed hops along the DAG. By
+ contrast, for a recorded metric, each node adds a sub-object
+ reflecting the local valuation of the metric. For example, it might
+ be desirable to record the link quality level along a path. In this
+ case, each visited node adds a sub-object recording the local link
+ quality level. In order to limit the number of sub-objects, the use
+ of a counter may be desirable (e.g., record the number of links with
+ a certain link quality level), thus, compressing the information to
+ reduce the message length. Upon receiving the DIO message from a set
+ of parents, a node might decide, according to the OF and local
+ policy, which node to choose as a parent based on the maximum number
+ of links with a specific link reliability level, for example.
+
+ Note that the routing metrics and constraints specified in this
+ document are not specific to any particular link layer. An internal
+ API between the Medium Access Control (MAC) layer and RPL may be used
+ to accurately reflect the metrics values of the link (wireless,
+ wired, PLC).
+
+ Since a set of metrics and constraints will be used for links and
+ nodes in a LLN, it is critical to ensure the use of consistent metric
+ calculation mechanisms for all links and nodes in the network,
+ similar to the case of inter-domain IP routing.
+
+ There are many different permutations of options that may be
+ appropriate in different deployments. Implementations must clearly
+ state which options they include, and they must state which are
+ default and which are configurable as options within the
+ implementation. Applicability statements will be developed within
+ the ROLL working group to clarify which options are applicable to the
+ specific deployment scenarios indicated by [RFC5673], [RFC5826],
+ [RFC5548], and [RFC5867].
+
+1.1. Requirements Language
+
+ 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].
+
+
+
+
+
+
+
+
+
+
+Vasseur, et al. Standards Track [Page 6]
+
+RFC 6551 Routing for Path Calculation in LLNs March 2012
+
+
+2. Object Formats
+
+2.1. DAG Metric Container Format
+
+ Routing metrics and constraints are carried within the DAG Metric
+ Container object defined in [RFC6550]. Should multiple metrics
+ and/or constraints be present in the DAG Metric Container, their use
+ to determine the "best" path can be defined by an Objective Function.
+
+ The Routing Metric/Constraint objects represent a metric or a
+ constraint of a particular type. They may appear in any order in the
+ DAG Metric Container (specified in [RFC6550]). They have a common
+ format consisting of one or more bytes with a common header.
+
+ 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)|
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | |
+ // (object body) //
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 1: Routing Metric/Constraint Object Generic Format
+
+ The object body carries one or more sub-objects defined later in this
+ document. Note that an object may carry a TLV, which may itself
+ comprise other TLVs. A TLV carried within a TLV is called a TLV in
+ this specification.
+
+ Routing-MC-Type (Routing Metric/Constraint Type - 8 bits): the
+ Routing Metric/Constraint Type field uniquely identifies each Routing
+ Metric/Constraint object and is managed by IANA.
+
+ Length (8 bits): this field defines the length of the object body,
+ expressed in bytes. It ranges from 0 to 255.
+
+ Res Flags field (16 bits). The Flag field of the Routing Metric/
+ Constraint object is managed by IANA. Unassigned bits are considered
+ as reserved. They MUST be set to zero on transmission and MUST be
+ ignored on receipt.
+
+ The following bits of the Routing Metric/Constraint Flag field object
+ are currently defined:
+
+
+
+
+
+
+Vasseur, et al. Standards Track [Page 7]
+
+RFC 6551 Routing for Path Calculation in LLNs March 2012
+
+
+ o 'P' flag: the P field is only used for recorded metrics. When
+ cleared, all nodes along the path successfully recorded the
+ corresponding metric. When set, this indicates that one or
+ several nodes along the path could not record the metric of
+ interest (either because of lack of knowledge or because this was
+ prevented by policy).
+
+ o 'C' flag. When set, this indicates that the Routing Metric/
+ Constraint object refers to a routing constraint. When cleared,
+ the routing object refers to a routing metric.
+
+ o 'O' flag: The 'O' flag is used exclusively for routing constraints
+ ('C' flag is set). When set, this indicates that the constraint
+ specified in the body of the object is optional. When cleared,
+ the constraint is mandatory. If the 'C' flag is zero, the 'O'
+ flag MUST be set to zero on transmission and ignored on reception.
+
+ o 'R' flag: The 'R' flag is only relevant for a routing metric (C=0)
+ and MUST be cleared for C=1. When set, this indicates that the
+ routing metric is recorded along the path. Conversely, when
+ cleared, the routing metric is aggregated.
+
+ A Field (3 bits): The A field is only relevant for metrics and is
+ used to indicate whether the aggregated routing metric is additive,
+ is multiplicative, reports a maximum, or reports a minimum.
+
+ o A=0: The routing metric is additive
+
+ o A=1: The routing metric reports a maximum
+
+ o A=2: The routing metric reports a minimum
+
+ o A=3: The routing metric is multiplicative
+
+ The A field has no meaning when the 'C' flag is set (i.e., when the
+ Routing Metric/Constraint object refers to a routing constraint) and
+ is only valid when the 'R' bit is cleared. Otherwise, the A field
+ MUST be set to 0 and MUST be ignored on receipt.
+
+ Prec field (4 bits): The Prec field indicates the precedence of this
+ Routing Metric/Constraint object relative to other objects in the
+ container. This is useful when a DAG Metric Container contains
+ several Routing Metric objects. Its value ranges from 0 to 15. The
+ value 0 means the highest precedence.
+
+ Example 1: A DAG formed by RPL where all nodes must be mains-powered
+ and the best path is the one with lower aggregated expected
+ transmission count (ETX). In this case, the DAG Metric Container
+
+
+
+Vasseur, et al. Standards Track [Page 8]
+
+RFC 6551 Routing for Path Calculation in LLNs March 2012
+
+
+ carries two Routing Metric/Constraint objects: one is an ETX metric
+ object with header (C=0, O=0, A=00, R=0) and the second one is a Node
+ Energy constraint object with header (C=1, O=0, A=00, R=0). Note
+ that a RPL Instance may use the metric object to report a maximum
+ (A=1) or a minimum (A=2). If, for example, the best path is
+ characterized by the path avoiding low quality links, then the path
+ metric reports a maximum (A=1) (the higher the ETX, the lower the
+ link quality): when the DIO message reporting the link quality metric
+ (ETX) is processed by a node, each node selecting the advertising
+ node as a parent updates the value carried in the metric object by
+ replacing it with its local link ETX value if and only if the latter
+ is higher. As far as the constraint is concerned, the object body
+ will carry a Node Energy constraint object defined in Section 3.1
+ indicating that nodes must be mains-powered: if the constraint
+ signaled in the DIO message is not satisfied, the advertising node is
+ just not selected as a parent by the node that processes the DIO
+ message.
+
+ Example 2: A DAG formed by RPL where the link metric is the link
+ quality level (defined in Section 4) and link quality levels must be
+ recorded along the path. In this case, the DAG Metric Container
+ carries a Routing Metric/Constraint object: link quality level metric
+ (C=0, O=0, A=00, R=1) containing multiple sub-objects.
+
+ A Routing Metric/Constraint object may also include one or more
+ additional type-length-value (TLV) encoded data sets. Each Routing
+ Metric/Constraint TLV has the same structure:
+
+ Type: 1 byte
+ Length: 1 byte
+ Value: variable
+
+ A Routing Metric/Constraint TLV is comprised of 1 byte for the type,
+ 1 byte specifying the TLV length, and a value field. The TLV length
+ field defines the length of the value field in bytes (from 0 to 255).
+
+ Unrecognized TLVs MUST be silently ignored while still being
+ propagated in DIOs generated by the receiving node.
+
+ IANA manages the codepoints for all TLVs carried in routing
+ constraint/metric objects.
+
+ IANA management of the Routing Metric/Constraint objects identifier
+ codespace is described in Section 6.
+
+
+
+
+
+
+
+Vasseur, et al. Standards Track [Page 9]
+
+RFC 6551 Routing for Path Calculation in LLNs March 2012
+
+
+2.2. Use of Multiple DAG Metric Containers
+
+ Since the length of RPL options is encoded using 1 octet, they cannot
+ exceed 255 bytes, which also applies to the DAG Metric Container. In
+ the vast majority of cases, the advertised routing metrics and
+ constraints will not require that much space. However, there might
+ be circumstances where larger space is required, should, for example,
+ a set of routing metrics be recorded along a long path. In this
+ case, in order to avoid overflow, as specified in [RFC6550], routing
+ metrics will be carried using multiple DAG Metric Container objects.
+
+ In the rest of this document, this use of multiple DAG Metric
+ Container objects will be considered as if they were actually just
+ one long DAG Metric Container object.
+
+2.3. Metric Usage
+
+ When the DAG Metric Container contains a single aggregated metric
+ (scalar value), the order relation to select the best path is
+ implicitly derived from the metric type. For example, lower is
+ better for Hop Count, Link Latency, and ETX. Conversely, for Node
+ Energy or Throughput, higher is better.
+
+ An example of using such a single aggregated metric is optimizing
+ routing for node energy. The Node Energy metric (E_E field) defined
+ in Section 3.2 is aggregated along paths with an explicit min
+ function (A field), and the best path is selected through an implied
+ Max function because the metric is Energy.
+
+ When the DAG Metric Container contains several aggregated metrics,
+ they are to be used as tiebreakers according to their precedence
+ defined by their Prec field values.
+
+ An example of such use of multiple aggregated metrics is the
+ following: Hop Count as the primary criterion, Link Quality Level
+ (LQL) as the secondary criterion, and Node Energy as the ultimate
+ tiebreaker. In such a case, the Hop Count, LQL, and Node Energy
+ metric objects' Prec fields should bear strictly increasing values
+ such as 0, 1, and 2, respectively.
+
+ If several aggregated metrics happen to bear the same Prec value, the
+ behavior is implementation dependent.
+
+
+
+
+
+
+
+
+
+Vasseur, et al. Standards Track [Page 10]
+
+RFC 6551 Routing for Path Calculation in LLNs March 2012
+
+
+3. Node Metric/Constraint Objects
+
+ Sections 3 and 4 specify several link and node metric/constraint
+ objects. In some cases, it is stated that there must not be more
+ than one object of a specific type. In that case, if a RPL
+ implementation receives more than one object of that type, the second
+ object MUST silently be ignored.
+
+ In the presence of a constraint, a node MUST include a metric of the
+ same type. That metric is used to check whether or not the
+ constraint is met. In all cases, a node MUST not change the content
+ of the constraint.
+
+3.1. Node State and Attribute Object
+
+ The Node State and Attribute (NSA) object is used to provide
+ information on node characteristics.
+
+ The NSA object MAY be present in the DAG Metric Container. There
+ MUST NOT be more than one NSA object as a constraint per DAG Metric
+ Container, and there MUST NOT be more than one NSA object as a metric
+ per DAG Metric Container.
+
+ The NSA object may also contain a set of TLVs used to convey various
+ node characteristics. No TLV is currently defined.
+
+ The NSA Routing Metric/Constraint Type has been assigned value 1 by
+ IANA.
+
+ The format of the NSA object body is as follows:
+
+ 0 1 2
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ...
+ | Res | Flags |A|O| Optional TLVs
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ...
+
+ Figure 2: NSA Object Body Format
+
+ Res flags (8 bits): Reserved field. This field MUST be set to zero
+ on transmission and MUST be ignored on receipt.
+
+ Flags field (8 bits). The following two bits of the NSA object are
+ currently defined:
+
+ o 'A' flag: data Aggregation Attribute. Data aggregation is listed
+ as a requirement in Section 6.2 of [RFC5548]. Some applications
+ may make use of the aggregation node attribute in their routing
+
+
+
+Vasseur, et al. Standards Track [Page 11]
+
+RFC 6551 Routing for Path Calculation in LLNs March 2012
+
+
+ decision so as to minimize the amount of traffic on the network,
+ thus, potentially increasing its lifetime in battery operated
+ environments. Applications where highly directional data flow is
+ expected on a regular basis may take advantage of data aggregation
+ supported routing. When set, this indicates that the node can act
+ as a traffic aggregator. Further documents MAY define optional
+ TLVs to describe the node traffic aggregator functionality.
+
+ o 'O' flag: node workload may be hard to determine and express in
+ some scalar form. However, node workload could be a useful metric
+ to consider during path calculation, in particular when queuing
+ delays must be minimized for highly sensitive traffic considering
+ Medium Access Control (MAC) layer delay. Node workload MAY be set
+ upon CPU overload, lack of memory, or any other node related
+ conditions. Using a simple 1-bit flag to characterize the node
+ workload provides a sufficient level of granularity, similar to
+ the "overload" bit used in routing protocols such as IS-IS.
+ Algorithms used to set the overload bit and to compute paths to
+ potentially avoid nodes with their overload bit set are outside
+ the scope of this document, but it is RECOMMENDED to avoid
+ frequent changes of this bit to avoid routing oscillations. When
+ set, this indicates that the node is overloaded and may not be
+ able to process traffic.
+
+ The unspecified flag fields MUST be set to zero on transmission and
+ MUST be ignored on receipt.
+
+ The Flags field of the NSA Routing Metric/Constraint object is
+ managed by IANA. Unassigned bits are considered as reserved.
+
+3.2. Node Energy Object
+
+ It may sometimes be desirable to avoid selecting a node with low
+ residual energy as a router; thus, the support for constraint-based
+ routing is needed. In such cases, the routing protocol engine may
+ compute a longer path (constraint based) for some traffic in order to
+ increase the network life duration.
+
+ Power and energy are clearly critical resources in most LLNs. As
+ yet, there is no simple abstraction that adequately covers the broad
+ range of power sources and energy storage devices used in existing
+ LLN nodes. These include mains-powered, primary batteries, energy
+ scavengers, and a variety of secondary storage mechanisms.
+ Scavengers may provide a reliable low level of power, such as might
+ be available from a 4-20 mA loop; a reliable but periodic stream of
+ power, such as provided by a well-positioned solar cell; or
+ unpredictable power, such as might be provided by a vibrational
+ energy scavenger on an intermittently powered pump. Routes that are
+
+
+
+Vasseur, et al. Standards Track [Page 12]
+
+RFC 6551 Routing for Path Calculation in LLNs March 2012
+
+
+ viable when the sun is shining may disappear at night. A pump
+ turning on may connect two previously disconnected sections of a
+ network.
+
+ Storage systems, such as rechargeable batteries, often suffer
+ substantial degradation if regularly used to full discharge, leading
+ to different residual energy numbers for regular versus emergency
+ operation. A route for emergency traffic may have a different
+ optimum than one for regular reporting.
+
+ Batteries used in LLNs often degrade substantially if their average
+ current consumption exceeds a small fraction of the peak current that
+ they can deliver. It is not uncommon for self-supporting nodes to
+ have a combination of primary storage, energy scavenging, and
+ secondary storage, leading to three different values for acceptable
+ average current depending on the time frame being considered, e.g.,
+ milliseconds, seconds, and hours/years.
+
+ Raw power and energy values are meaningless without knowledge of the
+ energy cost of sending and receiving packets, and lifetime estimates
+ have no value without some higher-level constraint on the lifetime
+ required of a device. In some cases, the path that exhausts the
+ battery of a node on the bed table in a month may be preferable to a
+ route that reduces the lifetime of a node in the wall to a decade.
+
+ Given the complexity of trying to address such a broad collection of
+ constraints, this document defines two levels of fidelity in the
+ solution.
+
+ The simplest solution relies on a 2-bit field encoding three types of
+ power sources: "powered", "battery", and "scavenger". This simple
+ approach may be sufficient for many applications.
+
+ The mid-complexity solution is a single parameter that can be used to
+ encode the energetic happiness of both battery-powered and scavenging
+ nodes. For scavenging nodes, the 8-bit quantity is the power
+ provided by the scavenger divided by the power consumed by the
+ application, E_E=P_in/P_out, in units of percent. Nodes that are
+ scavenging more power than they are consuming will register above
+ 100. A good time period for averaging power in this calculation may
+ be related to the discharge time of the energy storage device on the
+ node, but specifying this is out of the scope of this document. For
+ battery-powered devices, E_E is the current expected lifetime divided
+ by the desired minimum lifetime, in units of percent. The estimation
+ of remaining battery energy and actual power consumption can be
+ difficult, and the specifics of this calculation are out of scope of
+ this document, but two examples are presented. If the node can
+ measure its average power consumption, then E_E can be calculated as
+
+
+
+Vasseur, et al. Standards Track [Page 13]
+
+RFC 6551 Routing for Path Calculation in LLNs March 2012
+
+
+ the ratio of desired max power (initial energy E_0 divided by desired
+ lifetime T) to actual power, E_E=P_max/P_now. Alternatively, if the
+ energy in the battery E_bat can be estimated, and the total elapsed
+ lifetime, t, is available, then E_E can be calculated as the total
+ stored energy remaining versus the target energy remaining: E_E=
+ E_bat / [E_0 (T-t)/T].
+
+ An example of an optimized route is max(min(E_E)) for all battery-
+ operated nodes along the route, subject to the constraint that
+ E_E>=100 for all scavengers along the route.
+
+ Note that the estimated percentage of remaining energy indicated in
+ the E_E field may not be useful in the presence of nodes powered by
+ battery or energy scavengers when the amount of energy accumulated by
+ the device significantly differ. Indeed, X% of remaining energy on a
+ node that can store a large amount of energy cannot be easily
+ compared to the same percentage of remaining energy on a node powered
+ by a tiny source of energy. That being said, in networks where nodes
+ have similar energy storage, such a percentage of remaining energy is
+ useful.
+
+ The Node Energy (NE) object is used to provide information related to
+ node energy and may be used as a metric or as constraint.
+
+ The NE object MAY be present in the DAG Metric Container. There MUST
+ NOT be more than one NE object as a constraint per DAG Metric
+ Container, and there MUST NOT be more than one NE object as a metric
+ per DAG Metric Container.
+
+ The NE object Type has been assigned value 2 by IANA.
+
+ The format of the NE object body is as follows:
+
+ 0 1 2
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ...
+ | NE Sub-objects
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ...
+
+ Figure 3: NE Sub-Object Format
+
+
+
+
+
+
+
+
+
+
+
+Vasseur, et al. Standards Track [Page 14]
+
+RFC 6551 Routing for Path Calculation in LLNs March 2012
+
+
+ The format of the NE sub-object body is as follows:
+
+ 0 1 2
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ...
+ | Flags |I| T |E| E_E | Optional TLVs
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ...
+
+ Figure 4: NE Sub-Object Format
+
+ The NE sub-object may also contain a set of TLVs used to convey
+ various nodes' characteristics.
+
+ Flags field (8 bits). The following flags are currently defined:
+
+ o I (Included): the 'I' bit is only relevant when the node type is
+ used as a constraint. For example, the path must only traverse
+ mains-powered nodes. Conversely, battery-operated nodes must be
+ excluded. The 'I' bit is used to stipulate inclusion versus
+ exclusion. When set, this indicates that nodes of the type
+ specified in the node type field MUST be included. Conversely,
+ when cleared, this indicates that nodes of type specified in the
+ node type field MUST be excluded.
+
+ o T (node Type): 2-bit field indicating the node type. T=0
+ designates a mains-powered node, T=1 a battery-powered node, and
+ T=2 a node powered by an energy scavenger.
+
+ o E (Estimation): when the 'E' bit is set for a metric, the
+ estimated percentage of remaining energy on the node is indicated
+ in the E_E 8-bit field. When cleared, the estimated percentage of
+ remaining energy is not provided. When the 'E' bit is set for a
+ constraint, the E_E field defines a threshold for the inclusion/
+ exclusion: if an inclusion, nodes with values higher than the
+ threshold are to be included; if an exclusion, nodes with values
+ lower than the threshold are to be excluded.
+
+ E_E (Estimated-Energy): 8-bit unsigned integer field indicating an
+ estimated percentage of remaining energy. The E_E field is only
+ relevant when the 'E' flag is set, and it MUST be set to 0 when the
+ 'E' flag is cleared.
+
+ If the NE object comprises several sub-objects when used as a
+ constraint, each sub-object adds or subtracts node subsets as the
+ sub-objects are parsed in order. The initial set (full or empty) is
+ defined by the 'I' bit of the first sub-object: full if that 'I' bit
+ is an exclusion, empty if that 'I' bit is an inclusion.
+
+
+
+
+Vasseur, et al. Standards Track [Page 15]
+
+RFC 6551 Routing for Path Calculation in LLNs March 2012
+
+
+ No TLV is currently defined.
+
+ Future documents may define more complex solutions involving TLV
+ parameters representing energy storage, consumption, and generation
+ capabilities of the node, as well as desired lifetime.
+
+3.3. Hop Count Object
+
+ The Hop Count (HP) object is used to report the number of traversed
+ nodes along the path.
+
+ The HP object MAY be present in the DAG Metric Container. There MUST
+ NOT be more than one HP object as a constraint per DAG Metric
+ Container, and there MUST NOT be more than one HP object as a metric
+ per DAG Metric Container.
+
+ The HP object may also contain a set of TLVs used to convey various
+ node characteristics. No TLV is currently defined.
+
+ The HP routing metric object Type has been assigned value 3 by IANA.
+
+ The format of the Hop Count object body is as follows:
+
+ 0 1 2
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ...
+ | Res | Flags | Hop Count | Optional TLVs
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ...
+
+ Figure 5: Hop Count Object Body Format
+
+ Res flags (4 bits): Reserved field. This field MUST be set to zero
+ on transmission and MUST be ignored on receipt.
+
+ No Flag is currently defined. Unassigned bits are considered
+ reserved. They MUST be set to zero on transmission and MUST be
+ ignored on receipt.
+
+ The HP object may be used as a constraint or a metric. When used as
+ a constraint, the DAG root indicates the maximum number of hops that
+ a path may traverse. When that number is reached, no other node can
+ join that path. When used as a metric, each visited node simply
+ increments the Hop Count field.
+
+ Note that the first node along a path inserting a Hop Count metric
+ object MUST set the Hop Count field value to 1.
+
+
+
+
+
+Vasseur, et al. Standards Track [Page 16]
+
+RFC 6551 Routing for Path Calculation in LLNs March 2012
+
+
+4. Link Metric/Constraint Objects
+
+4.1. Throughput
+
+ Many LLNs support a wide range of throughputs. For some links, this
+ may be due to variable coding. For the deeply duty-cycled links
+ found in many LLNs, the variability comes as a result of trading
+ power consumption for bit rate. There are several MAC layer
+ protocols that allow for the effective bit rate of a link to vary
+ over more than three orders of magnitude with a corresponding change
+ in power consumption. For efficient operation, it may be desirable
+ for nodes to report the range of throughput that their links can
+ handle in addition to the currently available throughput.
+
+ The Throughput object MAY be present in the DAG Metric Container.
+ There MUST NOT be more than one Throughput object as a constraint per
+ DAG Metric Container, and there MUST NOT be more than one Throughput
+ object as a metric per DAG Metric Container.
+
+ The Throughput object is made of throughput sub-objects and MUST at
+ least comprise one Throughput sub-object. The first Throughput sub-
+ object MUST be the most recently estimated actual throughput. The
+ actual estimation of the throughput is outside the scope of this
+ document.
+
+ Each Throughput sub-object has a fixed length of 4 bytes.
+
+ The Throughput object does not contain any additional TLVs.
+
+ The Throughput object Type has been assigned value 4 by IANA.
+
+ The format of the Throughput object body is as follows:
+
+ 0 1
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | (sub-object) .....
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 6: Throughput Object Body Format
+
+
+
+
+
+
+
+
+
+
+
+Vasseur, et al. Standards Track [Page 17]
+
+RFC 6551 Routing for Path Calculation in LLNs March 2012
+
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Throughput |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 7: Throughput Sub-Object Format
+
+ Throughput: 32 bits. The Throughput is encoded in 32 bits in
+ unsigned integer format, expressed in bytes per second.
+
+4.2. Latency
+
+ Similar to throughput, the latency of many LLN MAC sub-layers can
+ vary over many orders of magnitude, again with a corresponding change
+ in power consumption. Some LLN MAC link layers will allow the
+ latency to be adjusted globally on the subnet, on a link-by-link
+ basis, or not at all. Some will insist that it be fixed for a given
+ link, but allow it to be variable from link to link.
+
+ The Latency object MAY be present in the DAG Metric Container. There
+ MUST NOT be more than one Latency object as a constraint per DAG
+ Metric Container, and there MUST NOT be more than one Latency object
+ as a metric per DAG Metric Container.
+
+ The Latency object is made of Latency sub-objects and MUST at least
+ comprise one Latency sub-object. Each Latency sub-object has a fixed
+ length of 4 bytes.
+
+ The Latency object does not contain any additional TLVs.
+
+ The Latency object Type has been assigned value 5 by IANA.
+
+ The Latency object is a metric or constraint.
+
+ The format of the Latency object body is as follows:
+
+ 0 1
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | (sub-object) .....
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 8: Latency Object Body Format
+
+
+
+
+
+
+
+Vasseur, et al. Standards Track [Page 18]
+
+RFC 6551 Routing for Path Calculation in LLNs March 2012
+
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Latency |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 9: Latency Sub-Object Format
+
+ Latency: 32 bits. The Latency is encoded in 32 bits in unsigned
+ integer format, expressed in microseconds.
+
+ The Latency object may be used as a constraint or a path metric. For
+ example, one may want the latency not to exceed some value. In this
+ case, the Latency object common header indicates that the provided
+ value relates to a constraint. In another example, the Latency
+ object may be used as an aggregated additive metric where the value
+ is updated along the path to reflect the path latency.
+
+4.3. Link Reliability
+
+ In LLNs, link reliability could be degraded for a number of reasons:
+ signal attenuation, interferences of various forms, etc. Time scales
+ vary from milliseconds to days, and are often periodic and linked to
+ human activity. Packet error rates can generally be measured
+ directly, and other metrics (e.g., bit error rate, mean time between
+ failures) are typically derived from that. Note that such
+ variability is not specific to wireless link but also applies to PLC
+ links.
+
+ A change in link quality can affect network connectivity; thus, link
+ quality may be taken into account as a critical routing metric.
+
+ A number of link reliability metrics could be defined reflecting
+ several reliability aspects. Two link reliability metrics are
+ defined in this document: the Link Quality Level (LQL) and the ETX
+ Metric.
+
+ Note that a RPL deployment MAY use the LQL, the ETX, or both.
+
+4.3.1. The Link Quality Level Reliability Metric
+
+ The Link Quality Level (LQL) object is used to quantify the link
+ reliability using a discrete value, from 0 to 7, where 0 indicates
+ that the link quality level is unknown and 1 reports the highest link
+ quality level. The mechanisms and algorithms used to compute the LQL
+ are implementation specific and outside of the scope of this
+ document.
+
+
+
+
+Vasseur, et al. Standards Track [Page 19]
+
+RFC 6551 Routing for Path Calculation in LLNs March 2012
+
+
+ The LQL can be used either as a metric or a constraint. When used as
+ a metric, the LQL metric can only be recorded. For example, the DAG
+ Metric object may request all traversed nodes to record the LQL of
+ their incoming link into the LQL object. Each node can then use the
+ LQL record to select its parent based on some user defined rules
+ (e.g., something like "select the path with most links reporting a
+ LQL value of 3 or less").
+
+ Counters are used to compress the information: for each encountered
+ LQL value, only the number of matching links is reported.
+
+ The LQL object MAY be present in the DAG Metric Container. There
+ MUST NOT be more than one LQL object as a constraint per DAG Metric
+ Container, and there MUST NOT be more than one LQL object as a metric
+ per DAG Metric Container.
+
+ The LQL object MUST contain one or more sub-object used to report the
+ number of links along with their LQL.
+
+ The LQL object Type has been assigned value 6 by IANA.
+
+ The format of the LQL object body is as follows:
+
+ 0 1 2
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ...
+ | Res | LQL sub-object
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ...
+
+ Figure 10: LQL Object Body Format
+
+ Res flags (8 bits): Reserved field. This field MUST be set to zero
+ on transmission and MUST be ignored on receipt.
+
+ When the LQL metric is recorded, the LQL object body comprises one or
+ more LQL Type 1 sub-object.
+
+ The format of the LQL Type 1 sub-object is as follows
+
+ 0
+ 0 1 2 3 4 5 6 7
+ +-+-+-+-+-+-+-+-+
+ | Val | Counter |
+ +-+-+-+-+-+-+-+-+
+
+ Figure 11: LQL Type 1 Sub-Object Format
+
+
+
+
+
+Vasseur, et al. Standards Track [Page 20]
+
+RFC 6551 Routing for Path Calculation in LLNs March 2012
+
+
+ Val: LQL value from 0 to 7 where 0 means undetermined and 1 indicates
+ the highest link quality.
+
+ Counter: number of links with that value.
+
+4.3.2. The ETX Reliability Object
+
+ The ETX metric is the number of transmissions a node expects to make
+ to a destination in order to successfully deliver a packet. In
+ contrast with the LQL routing metric, the ETX provides a discrete
+ value (which may not be an integer) computed according to a specific
+ formula: for example, an implementation may use the following
+ formula: ETX= 1 / (Df * Dr) where Df is the measured probability that
+ a packet is received by the neighbor and Dr is the measured
+ probability that the acknowledgment packet is successfully received.
+ This document does not mandate the use of a specific formula to
+ compute the ETX value.
+
+ The ETX object MAY be present in the DAG Metric Container. There
+ MUST NOT be more than one ETX object as a constraint per DAG Metric
+ Container, and there MUST NOT be more than one ETX object as a metric
+ per DAG Metric Container.
+
+ The ETX object is made of ETX sub-objects and MUST at least comprise
+ one ETX sub-object. Each ETX sub-object has a fixed length of 16
+ bits.
+
+ The ETX object does not contain any additional TLVs.
+
+ The ETX object Type has been assigned value 7 by IANA.
+
+ The format of the ETX object body is as follows:
+
+ 0 1
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | (sub-object) .....
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 12: ETX Object Body Format
+
+ 0 1
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ETX |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 13: ETX Sub-Object Format
+
+
+
+Vasseur, et al. Standards Track [Page 21]
+
+RFC 6551 Routing for Path Calculation in LLNs March 2012
+
+
+ ETX: 16 bits. The ETX * 128 is encoded using 16 bits in unsigned
+ integer format, rounded off to the nearest whole number. For
+ example, if ETX = 3.569, the object value will be 457. If ETX >
+ 511.9921875, the object value will be the maximum, which is 65535.
+
+ The ETX object may be used as a constraint or a path metric. For
+ example, it may be required that the ETX must not exceed some
+ specified value. In this case, the ETX object common header
+ indicates that the value relates to a constraint. In another
+ example, the ETX object may be used as an aggregated additive metric
+ where the value is updated along the path to reflect the path
+ quality: when a node receives the aggregated additive ETX value of
+ the path (cumulative path ETX calculated as the sum of the link ETX
+ of all of the traversed links from the advertising node to the DAG
+ root), if it selects that node as its preferred parent, the node
+ updates the path ETX by adding the ETX of the local link between
+ itself and the preferred parent to the received path cost (path ETX)
+ before potentially advertising itself the new path ETX.
+
+4.4. Link Color Object
+
+4.4.1. Link Color Object Description
+
+ The Link Color (LC) object is an administrative 10-bit link
+ constraint (which may be either static or dynamically adjusted) used
+ to avoid or attract specific links for specific traffic types.
+
+ The LC object can be used either as a metric or as a constraint.
+ When used as a metric, the LC metric can only be recorded. For
+ example, the DAG may require recording the link colors for all
+ traversed links. A color is defined as a specific set of bit values:
+ in other words, that 10-bit field is a flag field, and not a scalar
+ value. Each node can then use the LC to select the parent based on
+ user defined rules (e.g., "select the path with the maximum number of
+ links having their first bit set 1 (e.g., encrypted links)"). The LC
+ object may also be used as a constraint.
+
+ When used as a recorded metric, a counter is used to compress the
+ information where the number of links for each Link Color is
+ reported.
+
+ The Link Color (LC) object MAY be present in the DAG Metric
+ Container. There MUST NOT be more than one LC object as a constraint
+ per DAG Metric Container, and there MUST NOT be more than one LC
+ object as a metric per DAG Metric Container.
+
+ There MUST be a at least one LC sub-object per LC object.
+
+
+
+
+Vasseur, et al. Standards Track [Page 22]
+
+RFC 6551 Routing for Path Calculation in LLNs March 2012
+
+
+ The LC object does not contain any additional TLVs.
+
+ The LC object Type has been assigned value 8 by IANA.
+
+ The format of the LC object body is as follows:
+
+ 0 1 2
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ...
+ | Res | LC sub-objects
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ...
+
+ Figure 14: LC Object Format
+
+ Res flags (8 bits): Reserved field. This field MUST be set to zero
+ on transmission and MUST be ignored on receipt.
+
+ When the LC object is used as a recorded metric, the LC object body
+ comprises one or more LC Type 1 sub-objects.
+
+ The format of the LC Type 1 sub-object body is as follows:
+
+ 0 1
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Link Color | Counter |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 15: LC Type 1 Sub-Object Format
+
+ When the LC object is used as a constraint, the LC object body
+ comprises one or more LC Type 2 sub-objects.
+
+ The format of the LC Type 2 sub-object body is as follows:
+
+ 0 1
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Link Color |Reserved |I|
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 16: LC Type 2 Sub-Object Format
+
+ Reserved (5 bits): Reserved field. This field MUST be set to zero on
+ transmission and MUST be ignored on receipt.
+
+
+
+
+
+
+Vasseur, et al. Standards Track [Page 23]
+
+RFC 6551 Routing for Path Calculation in LLNs March 2012
+
+
+ 'I' Bit: The 'I' bit is only relevant when the Link Color is used as
+ a constraint. When set, this indicates that links with the specified
+ color must be included. When cleared, this indicates that links with
+ the specified color must be excluded.
+
+ It is left to the implementer to define the meaning of each bit of
+ the 10-bit Link Color Flag field.
+
+4.4.2. Mode of Operation
+
+ The link color may be used as a constraint or a metric.
+
+ o When used as constraint, the LC object may be inserted in the DAG
+ Metric Container to indicate that links with a specific color
+ should be included or excluded from the computed path.
+
+ o When used as recorded metric, each node along the path may insert
+ an LC object in the DAG Metric Container to report the color of
+ the local link. If there is already an LC object reporting a
+ similar color, the node MUST NOT add another identical LC sub-
+ object and MUST increment the counter field.
+
+5. Computation of Dynamic Metrics and Attributes
+
+ As already pointed out, dynamically calculated metrics are of the
+ utmost importance in many circumstances in LLNs. This is mainly
+ because a variety of metrics change on a frequent basis, thus,
+ implying the need to adapt the routing decisions. That being said,
+ care must be given to the pace at which changes are reported in the
+ network. The attributes will change according to their own time
+ scales. RPL controls the reporting rate.
+
+ To minimize metric updates, multi-threshold algorithms MAY be used to
+ determine when updates should be sent. When practical, low-pass
+ filtering and/or hysteresis should be used to avoid rapid
+ fluctuations of these values. Finally, although the specification of
+ path computation algorithms using dynamic metrics is out of the scope
+ of this document, it is RECOMMENDED to carefully design the route
+ optimization algorithm to avoid too frequent computation of new
+ routes upon metric values changes.
+
+ Controlled adaptation of the routing metrics and rate at which paths
+ are computed are critical to avoid undesirable routing instabilities
+ resulting in increased latencies and packet loss because of temporary
+ micro-loops. Furthermore, excessive route changes will adversely
+ impact the traffic and power consumption in the network, thus,
+ potentially impacting its scalability.
+
+
+
+
+Vasseur, et al. Standards Track [Page 24]
+
+RFC 6551 Routing for Path Calculation in LLNs March 2012
+
+
+6. IANA Considerations
+
+ IANA has established a new top-level registry, called "RPL Routing
+ Metric/Constraint", to contain all Routing Metric/Constraint objects
+ codepoints and sub-registries.
+
+ The allocation policy for each new registry is by IETF review: new
+ values are assigned through the IETF review process (see [RFC5226]).
+ Specifically, new assignments are made via RFCs approved by the IESG.
+ Typically, the IESG will seek input on prospective assignments from
+ appropriate persons (e.g., a relevant working group if one exists).
+
+ New bit numbers may be allocated only by an IETF Review action. Each
+ bit should be tracked with the following qualities:
+
+ o Bit number
+
+ o Capability Description
+
+ o Defining RFC
+
+6.1. Routing Metric/Constraint Type
+
+ IANA has created a sub-registry, called "Routing Metric/Constraint
+ Type", for Routing Metric/Constraint object types, which range from 0
+ to 255. Value 0 is unassigned.
+
+
+ Value Meaning Reference
+ 1 Node State and Attribute This document
+ 2 Node Energy This document
+ 3 Hop Count This document
+ 4 Link Throughput This document
+ 5 Link Latency This document
+ 6 Link Quality Level This document
+ 7 Link ETX This document
+ 8 Link Color This document
+
+6.2. Routing Metric/Constraint TLVs
+
+ IANA has created a sub-registry, called "Routing Metric/Constraint
+ TLVs", used for all TLVs carried within Routing Metric/Constraint
+ objects. The Type field is an 8-bit field whose value is comprised
+ between 0 and 255. Value 0 is unassigned. The Length field is an
+ 8-bit field whose value ranges from 0 to 255. The Value field has
+ value ranges depending on the Type; therefore, they are not defined
+ here, since no Type is registered at this time.
+
+
+
+
+Vasseur, et al. Standards Track [Page 25]
+
+RFC 6551 Routing for Path Calculation in LLNs March 2012
+
+
+6.3. Routing Metric/Constraint Common Header Flag Field
+
+ IANA has created a sub-registry, called "Routing Metric/Constraint
+ Common Header Flag field", to manage the 9-bit Flag field of the
+ Routing Metric/Constraint common header.
+
+ Several bits are defined for the Routing Metric/Constraint common
+ header Flag field in this document. The following values have been
+ assigned:
+
+ Codespace of the Flag field (Routing Metric/Constraint common header)
+
+ Bit Description Reference
+
+ 8 Recorded/Aggregated This document
+ 7 Optional Constraint This document
+ 6 Constraint/Metric This document
+ 5 P (Partial) This document
+
+ Bits 0-4 are currently reserved.
+
+6.4. Routing Metric/Constraint Common Header A Field
+
+ IANA has created a sub-registry, called "Routing Metric/Constraint
+ Common Header A field", to manage the codespace of the A field of the
+ Routing Metric/Constraint common header.
+
+ The A field is 3 bits in length, and it has values ranging from 0 to
+ 7.
+
+ Codespace of the A field (Routing Metric/Constraint common header)
+ Value Meaning Reference
+
+ 0 Routing metric is additive This document
+ 1 Routing metric reports a maximum This document
+ 2 Routing metric reports a minimum This document
+ 3 Routing metric is multiplicative This document
+
+6.5. NSA Object Flags Field
+
+ IANA has created a sub-registry, called "NSA Object Flag field", to
+ manage the codespace of the 8-bit Flag field of the NSA object.
+
+ Several bits are defined for the NSA Object Flag field in this
+ document. The following values have been assigned:
+
+
+
+
+
+
+Vasseur, et al. Standards Track [Page 26]
+
+RFC 6551 Routing for Path Calculation in LLNs March 2012
+
+
+ Codespace of the Flag field (NSA object)
+
+ Bit Description Reference
+
+ 6 Aggregator This document
+ 7 Overloaded This document
+
+ Bits 0-5 are reserved.
+
+6.6. Hop-Count Object Flags Field
+
+ IANA has created a sub-registry, called "Hop-Count Object Flag
+ field", to manage the codespace of the 4-bit Flag field of the Hop
+ Count object.
+
+ No Flag is currently defined.
+
+6.7. Node Type Field
+
+ IANA has created a sub-registry, called "Node Type Field", to manage
+ the codespace of the field of the Routing Metric/Constraint common
+ header.
+
+ The T field is 2 bits in length, and it has values ranging from 0 to
+ 3.
+
+ Codespace of the T field (Routing Metric/Constraint common header)
+
+ Value Description Reference
+ 0 a mains-powered node This document
+ 1 a battery-powered node This document
+ 2 a node powered by an energy scavenger This document
+
+7. Security Considerations
+
+ Routing metrics should be handled in a secure and trustful manner.
+ For instance, RPL should not allow a malicious node to falsely
+ advertise that it has good metrics for routing so as to be selected
+ as preferred next-hop router for other nodes' traffic and intercept
+ packets. Another attack may consist of making intermittent attacks
+ on a link in an attempt to constantly modify the link quality and
+ consequently the associated routing metric, thus, leading to
+ potential fluctuation in the DODAG. Thus, it is RECOMMENDED for a
+ RPL implementation to put in place mechanisms so as to stop
+ advertising routing metrics for highly unstable links that may be
+ subject to attacks.
+
+
+
+
+
+Vasseur, et al. Standards Track [Page 27]
+
+RFC 6551 Routing for Path Calculation in LLNs March 2012
+
+
+ Some routing metrics may also be used to identify some areas of
+ weaknesses in the network (a highly unreliable link, a node running
+ low in terms of energy, etc.). Such information may be used by a
+ potential attacker. Thus, it is RECOMMENDED to carefully consider
+ which metrics should be used by RPL and the level of visibility that
+ they provide about the network state or to use appropriate the
+ security measures as specified in [RFC6550] to protect that
+ information.
+
+ Since the routing metrics/constraints are carried within RPL message,
+ the security routing mechanisms defined in [RFC6550] apply here.
+
+8. Acknowledgements
+
+ The authors would like to acknowledge the contributions of Young Jae
+ Kim, Hakjin Chong, David Meyer, Mischa Dohler, Anders Brandt, Philip
+ Levis, Pascal Thubert, Richard Kelsey, Jonathan Hui, Alexandru
+ Petrescu, Richard Kelsey, Mathilde Durvy, Phoebus Chen, Tim Winter,
+ Yoav Ben-Yehezkel, Matteo Paris, Omprakash Gnawali, Mads Westergreen,
+ Mukul Goyal, Joseph Saloway, David Culler, and Jari Arkko for their
+ review and valuable comments. Special thanks to Adrian Farrel for
+ his thorough review.
+
+9. References
+
+9.1. Normative References
+
+ [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
+ Requirement Levels", BCP 14, RFC 2119, March 1997.
+
+ [RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing
+ an IANA Considerations Section in RFCs", BCP 26,
+ RFC 5226, May 2008.
+
+ [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, March 2012.
+
+9.2. Informative References
+
+ [RFC1195] Callon, R., "Use of OSI IS-IS for routing in TCP/IP and
+ dual environments", RFC 1195, December 1990.
+
+ [RFC2328] Moy, J., "OSPF Version 2", STD 54, RFC 2328,
+ April 1998.
+
+
+
+
+
+Vasseur, et al. Standards Track [Page 28]
+
+RFC 6551 Routing for Path Calculation in LLNs March 2012
+
+
+ [RFC2702] Awduche, D., Malcolm, J., Agogbua, J., O'Dell, M., and
+ J. McManus, "Requirements for Traffic Engineering Over
+ MPLS", RFC 2702, September 1999.
+
+ [RFC3209] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan,
+ V., and G. Swallow, "RSVP-TE: Extensions to RSVP for
+ LSP Tunnels", RFC 3209, December 2001.
+
+ [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.
+
+ [RFC6552] Thubert, P., Ed., "Objective Function Zero for the
+ Routing Protocol for Low-Power and Lossy Networks
+ (RPL)", RFC 6552, March 2012.
+
+ [ROLL-TERMS] Vasseur, JP., "Terminology in Low power And Lossy
+ Networks", Work in Progress, September 2011.
+
+ [Zinky1989] Zinky, J., Vichniac, G., and A. Khanna, "Performance of
+ the Revised Routing Metric for ARPANET and MILNET",
+ Military Communications Conference, MILCOM '89,
+ March 1989.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Vasseur, et al. Standards Track [Page 29]
+
+RFC 6551 Routing for Path Calculation in LLNs March 2012
+
+
+Authors' Addresses
+
+ JP. Vasseur (editor)
+ Cisco Systems
+ 11, Rue Camille Desmoulins
+ Issy Les Moulineaux 92782
+ France
+
+ EMail: jpv@cisco.com
+
+
+ Mijeom Kim (editor)
+ Corporate Technology Group, KT
+ 17 Woomyeon-dong, Seocho-gu
+ Seoul 137-792
+ Korea
+
+ EMail: mjkim@kt.com
+
+
+ Kris Pister
+ Dust Networks
+ 30695 Huntwood Ave.
+ Hayward, CA 95544
+ USA
+
+ EMail: kpister@dustnetworks.com
+
+
+ Nicolas Dejean
+ Elster SAS
+ Espace Concorde, 120 impasse JB Say
+ Perols 34470
+ France
+
+ EMail: nicolas.dejean@coronis.com
+
+
+ Dominique Barthel
+ France Telecom Orange
+ 28 chemin du Vieux Chene, BP 98
+ Meylan 38243
+ France
+
+ EMail: dominique.barthel@orange.com
+
+
+
+
+
+
+Vasseur, et al. Standards Track [Page 30]
+