| < 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/ | ||||