< draft-thubert-roll-flow-label-00.txt   draft-thubert-roll-flow-label-01.txt >
ROLL P. Thubert, Ed. ROLL P. Thubert, Ed.
Internet-Draft Cisco Internet-Draft Cisco
Intended status: Standards Track May 4, 2012 Intended status: Standards Track May 9, 2012
Expires: November 5, 2012 Expires: November 10, 2012
Use of the IPv6 Flow Label within an LLN Use of the IPv6 Flow Label within an LLN
draft-thubert-roll-flow-label-00 draft-thubert-roll-flow-label-01
Abstract Abstract
In a Low Power Lossy Network, the traditional tuple of source, This document present how the Flow Label can be used inside a LLN as
destination and ports might not be the proper indication to isolate a a replacement to the RPL option and provides rules for the root to
meaningful flow. For instance, it can be a requirement for the set and reset the Flow Label when forwarding between the inside of
aggregation of related measurements from multiple sources to be RPL domain and the larger Internet, in both direction. This new
treated as a single flow following a same path in order to experience operation aims at saving an IPv6 in IPv6 encapsulation within the RPL
similar jitter and latency. In that case, the Flow Label in packets domain that is required with the RPL option for all packets that
outgoing a RPL domain could and sometimes should be set by the root reach outside of the RPL domain.
of the RPL structure. It derives that the Flow Label could be reused
inside the RPL domain. This document present how the Flow Label can
be used inside a LLN as a replacement to the RPL option and provides
rules for the root to set and reset the Flow Label when forwarding
between the inside of RPL domain and the larger Internet, in both
direction.
Status of this Memo Status of this Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on November 5, 2012. This Internet-Draft will expire on November 10, 2012.
Copyright Notice Copyright Notice
Copyright (c) 2012 IETF Trust and the persons identified as the Copyright (c) 2012 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3. Flow Label Format Within the RPL Domain . . . . . . . . . . . . 4 3. Flow Label Format Within the RPL Domain . . . . . . . . . . . . 5
4. Root Operation . . . . . . . . . . . . . . . . . . . . . . . . 5 4. Root Operation . . . . . . . . . . . . . . . . . . . . . . . . 6
4.1. Incoming Packets . . . . . . . . . . . . . . . . . . . . . 5 4.1. Incoming Packets . . . . . . . . . . . . . . . . . . . . . 6
4.2. Outgoing Packets . . . . . . . . . . . . . . . . . . . . . 5 4.2. Outgoing Packets . . . . . . . . . . . . . . . . . . . . . 6
5. Security Considerations . . . . . . . . . . . . . . . . . . . . 5 5. RPL node Operation . . . . . . . . . . . . . . . . . . . . . . 7
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 5 6. Security Considerations . . . . . . . . . . . . . . . . . . . . 7
7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . 6 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 7
8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 6 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . 7
8.1. Normative References . . . . . . . . . . . . . . . . . . . 6 9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 7
8.2. Informative References . . . . . . . . . . . . . . . . . . 6 9.1. Normative References . . . . . . . . . . . . . . . . . . . 7
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 6 9.2. Informative References . . . . . . . . . . . . . . . . . . 8
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 8
1. Introduction 1. Introduction
In some Low Power and Lossy Network (LLN) applications such as In some Low Power and Lossy Network (LLN) applications such as
control systems [RFC5673], a packet loss is usually acceptable but control systems [RFC5673], a packet loss is usually acceptable but
jitter and latency must be strictly controlled as they can play a jitter and latency must be strictly controlled as they can play a
critical role in the interpretation of the measured information. critical role in the interpretation of the measured information.
Sensory systems are often distributed, and the control information Sensory systems are often distributed, and the control information
can in fact be aggregated from multiple source. can in fact be originated from multiple sources and aggregated. As a
result, it can be a requirement for related measurements from
If this aggregated control information is transported across the multiple sources to be treated as a single flow following a same path
Internet, it should be treated as a single flow for two reasons: over the Internet in order to experience similar jitter and latency.
The traditional tuple of source, destination and ports might then not
The bulk of the traffic consists of small chunks of data (in the be the proper indication to isolate a meaningful flow.
order few bytes to a few tens of bytes) at a time. In industrial
applications, a typical frequency is 4Hz but it can be a lot
slower than that for, say, environmental monitoring. The
granularity of that traffic is too small to make a lot of sense in
load balancing application.
The control system may be fooled into misbehaviors if the latency In a typical LLN application, the bulk of the traffic consists of
and jitter of packets vary from a source to another source for a small chunks of data (in the order few bytes to a few tens of bytes)
related measurement. at a time. In the industrial case, a typical frequency is 4Hz but it
can be a lot slower than that for, say, environmental monitoring.
The granularity of traffic from a single source is too small to make
a lot of sense in load balancing application.
This is a case where related packets from multiple sources should not In such cases, related packets from multiple sources should not be
be load-balanced along their path in the Internet; this is load-balanced along their path in the Internet; load-balancing can be
discouraged by tagging those packets with a same Flow Label in the discouraged by tagging those packets with a same Flow Label in the
IPv6 [RFC2460] header. IPv6 [RFC2460] header. This can be achieved if the Flow Label in
packets outgoing a RPL domain are set by the root of the RPL
structure as opposed to the actual source. It derives that the Flow
Label could be reused inside the RPL domain.
The Routing Protocol for Low Power and Lossy Networks (RPL) [RFC6550] The Routing Protocol for Low Power and Lossy Networks (RPL) [RFC6550]
specification defines a generic Distance Vector protocol that is specification defines a generic Distance Vector protocol that is
adapted to a variety of LLNs. RPL forms Destination Oriented adapted to a variety of LLNs. RPL forms Destination Oriented
Directed Acyclic Graphs (DODAGs) which root often acts as the Border Directed Acyclic Graphs (DODAGs) which root often acts as the Border
Router to connect the RPL domain to the Internet. The root is Router to connect the RPL domain to the Internet. The root is
responsible to select the RPL Instance that is used to forward a responsible to select the RPL Instance that is used to forward a
packet coming from the Internet into the RPL domain. packet coming from the Internet into the RPL domain.
A classical RPL implementation will use the RPL Option for Carrying A classical RPL implementation will use the RPL Option for Carrying
RPL Information in Data-Plane Datagrams [RFC6553] to tag a packet RPL Information in Data-Plane Datagrams [RFC6553] to tag a packet
with the Instance ID and other information that RPL requires for its with the Instance ID and other information that RPL requires for its
operation within the RPL domain. Sadly, the Option must be placed in operation within the RPL domain. Sadly, the Option must be placed in
a Hop-by-Hop option that must be inserted or removed as the packet a Hop-by-Hop header that must be added to or removed from packets
crosses the border of the RPL domain. This operation may involve an that cross the border of the RPL domain. For reasons such as the
extra encapsulation that is detrimental to the network operation, in capability to send ICMP errors, back, this operation involves an
particular with regards to bandwidth and battery constraints. extra 6in6 encapsulation within the RPL domain that is detrimental to
the LLN operation, in particular with regards to bandwidth and
battery constraints. The extra encapsulation may cause a containing
frame to grow above maximum frame size, leading to Layer 2 or 6LoWPAN
[RFC4944] fragmentation, which in turn cause even more energy
spending and issues discussed in the LLN Fragment Forwarding and
Recovery [I-D.thubert-roll-forwarding-frags].
------+---------
| Internet |
| | Native IPv6
+-----+ |
| | Border Router (RPL Root) |
| | || | ||
+-----+ || | || IPv6 +
| || | || HbH
o o o o || | || headers
o o o o o o o o o || | ||
o o o o o o o o o o || | ||
o o o o o o o o o || | ||
o o o o o o o o
o o o o o o
o o o o
LLN
Figure 1: 6in6 Encapsulation within the LLN
Additionally, Compression Format for IPv6 Datagrams over IEEE
802.15.4-Based Networks [RFC6282] and its variants for other types of
LLNs do not provide an efficient compression for the RPL option so
the cost in current implementations can not be alleviated in any
fashion. So even for packets that are confined within the RPL domain
and do not need the 6in6 encapsulation, the use of the flow label
instead of the RPL option is a valuable saving.
All the packets that are leaving a DODAG of a RPL domain towards the All the packets that are leaving a DODAG of a RPL domain towards the
Internet will transit via a same root. The root is an ideal place to Internet will transit via a same root. The root is an ideal place to
set the IPv6 Flow Label to a same value across multiple sources of a set the IPv6 Flow Label to a same value across multiple sources of a
same flow when that operation is needed, ensuring complience with the same flow when that operation is needed, ensuring complience with the
rules defined by the IPv6 Flow Label Specification [RFC6437] within rules defined by the IPv6 Flow Label Specification [RFC6437] within
the Internet. At the same time, the root segragates the Internet and the Internet. At the same time, the root segragates the Internet and
the RPL domain, allowing to reuse the Flow Label within the RPL the RPL domain, allowing to reuse the Flow Label within the RPL
domain. domain.
This document specifies how the Flow Label can be reused within the In a LLN, each transmitted bit represents energy and each saving
RPL domain as a replacement to the RPL option. The use of the Flow counts. So comsuming 20 bits as recommended in the stateless usage
Label within a RPL domain is an instance of the stateful scenarios of the Flow Label by [RFC6437] to transport a randomized value will
decribed in [RFC6437] where the states include the rank of a node and not be very popular. On the other hand, it makes sense to recommend
the RPLInstanceID that identifies the routing topology. the computation of a stateless Flow Label at the root of the LLN
towards the Internet.
It can be noted that [RFC6282] provides an efficient header
compression for packets that do have the Flow Label set in the IPv6
header. It results that the same information as transported in the
RPL option itself represents actually less bits in the air when the
Flow Label is used instead. This document specifies how the Flow
Label can be reused within the RPL domain as a replacement to the RPL
option. The use of the Flow Label within a RPL domain is an instance
of the stateful scenarios as discussed in [RFC6437] where the states
include the rank of a node and the RPLInstanceID that identifies the
routing topology.
2. Terminology 2. Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119]. document are to be interpreted as described in [RFC2119].
The Terminology used in this document is consistent with and The Terminology used in this document is consistent with and
incorporates that described in `Terminology in Low power And Lossy incorporates that described in `Terminology in Low power And Lossy
Networks' [I-D.ietf-roll-terminology] and [RFC6550]. Networks' [I-D.ietf-roll-terminology] and [RFC6550].
skipping to change at page 5, line 18 skipping to change at page 6, line 18
| |O|R|F| SenderRank | RPLInstanceID | | |O|R|F| SenderRank | RPLInstanceID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 1: The RPL Flow Label Figure 1: The RPL Flow Label
The first (leftmost) bit of the Flow Label is reserved and should be The first (leftmost) bit of the Flow Label is reserved and should be
set to zero. set to zero.
4. Root Operation 4. Root Operation
[RFC6437] section 3 intentionally does not consider flow label values
in which any of the bits have semantic significance. However, the
present specification assigns semantics to various bits in the flow
label, destroying within the edge network that is the RPL domaina
property of belonging to a statistically uniform distribution that is
desirable in the rest of the Internet. This property MUST be
restored by the root for outgoing packets.
It can be noted that the rationale for the statistically uniform
distribution does not necessarily bring a lot of value within the RPL
domain. In a specific use case where it would, that value must be
compared with that of the battery savings in order to decide which
technique the deployment will use to transport the RPL information.
4.1. Incoming Packets 4.1. Incoming Packets
When routing a packet towards the RPL domain, the root applies a When routing a packet towards the RPL domain, the root applies a
policy to determine whether the Flow Label is to be used to carry the policy to determine whether the Flow Label is to be used to carry the
RPL information. If so, the root MUST reset the Flow Label and then RPL information. If so, the root MUST reset the Flow Label and then
it MUST set all the fields in the Flow Label as prescribed by it MUST set all the fields in the Flow Label as prescribed by
[RFC6553] using the format specified in Figure 1. In particular, the [RFC6553] using the format specified in Figure 1. In particular, the
root selects the Instance that will be used to forward the packet root selects the Instance that will be used to forward the packet
within the RPL domain. within the RPL domain.
4.2. Outgoing Packets 4.2. Outgoing Packets
When routing a packet outside the RPL domain, the root applies a When routing a packet outside the RPL domain, the root applies a
policy to determine whether the Flow Label was used to carry the RPL policy to determine whether the Flow Label was used to carry the RPL
information. If so, the root MUST reset the Flow Label. The root information. If so, the root MUST reset the Flow Label. The root
SHOULD recompute a Flow Label following the rules prescribed by SHOULD recompute a Flow Label following the rules prescribed by
[RFC6553]. In particular, the root MAY ignore the source address but [RFC6553]. In particular, the root MAY ignore the source address but
it SHOULD use the RPLInstanceID for the computation. it SHOULD use the RPLInstanceID for the computation.
5. Security Considerations 5. RPL node Operation
Depending on the policy in place, the source of a packet will decide
whether to use this specification to transport the RPL information in
the IPv6 packets. If it does, the source in the LLN SHOULD set the
Flow Label to zero and MUST NOT expect that the flow label will be
conserved end-to-end".
6. Security Considerations
The process of using the Flow Label as opposed to the RPL option does The process of using the Flow Label as opposed to the RPL option does
not appear to create any opening for new threat compared to not appear to create any opening for new threat compared to
[RFC6553]. [RFC6553].
6. IANA Considerations 7. IANA Considerations
No IANA action is required for this specification. No IANA action is required for this specification.
7. Acknowledgments 8. Acknowledgments
8. References The author wishes to thank Brian Carpenter for his in-depth review
and constructive approach to the problem and its resolution.
8.1. Normative References 9. References
9.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997. Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC2460] Deering, S. and R. Hinden, "Internet Protocol, Version 6 [RFC2460] Deering, S. and R. Hinden, "Internet Protocol, Version 6
(IPv6) Specification", RFC 2460, December 1998. (IPv6) Specification", RFC 2460, December 1998.
[RFC6282] Hui, J. and P. Thubert, "Compression Format for IPv6
Datagrams over IEEE 802.15.4-Based Networks", RFC 6282,
September 2011.
[RFC6550] Winter, T., Thubert, P., Brandt, A., Hui, J., Kelsey, R., [RFC6550] Winter, T., Thubert, P., Brandt, A., Hui, J., Kelsey, R.,
Levis, P., Pister, K., Struik, R., Vasseur, JP., and R. Levis, P., Pister, K., Struik, R., Vasseur, JP., and R.
Alexander, "RPL: IPv6 Routing Protocol for Low-Power and Alexander, "RPL: IPv6 Routing Protocol for Low-Power and
Lossy Networks", RFC 6550, March 2012. Lossy Networks", RFC 6550, March 2012.
[RFC6553] Hui, J. and JP. Vasseur, "The Routing Protocol for Low- [RFC6553] Hui, J. and JP. Vasseur, "The Routing Protocol for Low-
Power and Lossy Networks (RPL) Option for Carrying RPL Power and Lossy Networks (RPL) Option for Carrying RPL
Information in Data-Plane Datagrams", RFC 6553, Information in Data-Plane Datagrams", RFC 6553,
March 2012. March 2012.
8.2. Informative References 9.2. Informative References
[I-D.ietf-roll-terminology] [I-D.ietf-roll-terminology]
Vasseur, J., "Terminology in Low power And Lossy Vasseur, J., "Terminology in Low power And Lossy
Networks", draft-ietf-roll-terminology-06 (work in Networks", draft-ietf-roll-terminology-06 (work in
progress), September 2011. progress), September 2011.
[I-D.thubert-roll-forwarding-frags]
Thubert, P. and J. Hui, "LLN Fragment Forwarding and
Recovery", draft-thubert-roll-forwarding-frags-00 (work in
progress), March 2012.
[RFC4944] Montenegro, G., Kushalnagar, N., Hui, J., and D. Culler,
"Transmission of IPv6 Packets over IEEE 802.15.4
Networks", RFC 4944, September 2007.
[RFC5673] Pister, K., Thubert, P., Dwars, S., and T. Phinney, [RFC5673] Pister, K., Thubert, P., Dwars, S., and T. Phinney,
"Industrial Routing Requirements in Low-Power and Lossy "Industrial Routing Requirements in Low-Power and Lossy
Networks", RFC 5673, October 2009. Networks", RFC 5673, October 2009.
[RFC6437] Amante, S., Carpenter, B., Jiang, S., and J. Rajahalme, [RFC6437] Amante, S., Carpenter, B., Jiang, S., and J. Rajahalme,
"IPv6 Flow Label Specification", RFC 6437, November 2011. "IPv6 Flow Label Specification", RFC 6437, November 2011.
Author's Address Author's Address
Pascal Thubert (editor) Pascal Thubert (editor)
 End of changes. 20 change blocks. 
61 lines changed or deleted 142 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/