idnits 2.17.1 draft-thubert-roll-flow-label-02.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (November 6, 2012) is 4160 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) ** Obsolete normative reference: RFC 2460 (Obsoleted by RFC 8200) == Outdated reference: A later version (-13) exists of draft-ietf-roll-terminology-06 == Outdated reference: A later version (-02) exists of draft-thubert-roll-forwarding-frags-00 Summary: 1 error (**), 0 flaws (~~), 3 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 ROLL P. Thubert, Ed. 3 Internet-Draft Cisco 4 Intended status: Standards Track November 6, 2012 5 Expires: May 10, 2013 7 Use of the IPv6 Flow Label within an LLN 8 draft-thubert-roll-flow-label-02 10 Abstract 12 This document present how the Flow Label can be used inside a LLN as 13 a replacement to the RPL option and provides rules for the root to 14 set and reset the Flow Label when forwarding between the inside of 15 RPL domain and the larger Internet, in both direction. This new 16 operation aims at saving an IPv6 in IPv6 encapsulation within the RPL 17 domain that is required with the RPL option for all packets that 18 reach outside of the RPL domain. 20 Status of this Memo 22 This Internet-Draft is submitted in full conformance with the 23 provisions of BCP 78 and BCP 79. 25 Internet-Drafts are working documents of the Internet Engineering 26 Task Force (IETF). Note that other groups may also distribute 27 working documents as Internet-Drafts. The list of current Internet- 28 Drafts is at http://datatracker.ietf.org/drafts/current/. 30 Internet-Drafts are draft documents valid for a maximum of six months 31 and may be updated, replaced, or obsoleted by other documents at any 32 time. It is inappropriate to use Internet-Drafts as reference 33 material or to cite them other than as "work in progress." 35 This Internet-Draft will expire on May 10, 2013. 37 Copyright Notice 39 Copyright (c) 2012 IETF Trust and the persons identified as the 40 document authors. All rights reserved. 42 This document is subject to BCP 78 and the IETF Trust's Legal 43 Provisions Relating to IETF Documents 44 (http://trustee.ietf.org/license-info) in effect on the date of 45 publication of this document. Please review these documents 46 carefully, as they describe your rights and restrictions with respect 47 to this document. Code Components extracted from this document must 48 include Simplified BSD License text as described in Section 4.e of 49 the Trust Legal Provisions and are provided without warranty as 50 described in the Simplified BSD License. 52 Table of Contents 54 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 55 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . . 5 56 3. Flow Label Format Within the RPL Domain . . . . . . . . . . . . 5 57 4. Root Operation . . . . . . . . . . . . . . . . . . . . . . . . 6 58 4.1. Incoming Packets . . . . . . . . . . . . . . . . . . . . . 6 59 4.2. Outgoing Packets . . . . . . . . . . . . . . . . . . . . . 7 60 5. RPL node Operation . . . . . . . . . . . . . . . . . . . . . . 7 61 6. Security Considerations . . . . . . . . . . . . . . . . . . . . 7 62 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 7 63 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . 7 64 9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 7 65 9.1. Normative References . . . . . . . . . . . . . . . . . . . 7 66 9.2. Informative References . . . . . . . . . . . . . . . . . . 8 67 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 8 69 1. Introduction 71 In some Low Power and Lossy Network (LLN) applications such as 72 control systems [RFC5673], a packet loss is usually acceptable but 73 jitter and latency must be strictly controlled as they can play a 74 critical role in the interpretation of the measured information. 75 Sensory systems are often distributed, and the control information 76 can in fact be originated from multiple sources and aggregated. As a 77 result, it can be a requirement for related measurements from 78 multiple sources to be treated as a single flow following a same path 79 over the Internet in order to experience similar jitter and latency. 80 The traditional tuple of source, destination and ports might then not 81 be the proper indication to isolate a meaningful flow. 83 In a typical LLN application, the bulk of the traffic consists of 84 small chunks of data (in the order few bytes to a few tens of bytes) 85 at a time. In the industrial case, a typical frequency is 4Hz but it 86 can be a lot slower than that for, say, environmental monitoring. 87 The granularity of traffic from a single source is too small to make 88 a lot of sense in load balancing application. 90 In such cases, related packets from multiple sources should not be 91 load-balanced along their path in the Internet; load-balancing can be 92 discouraged by tagging those packets with a same Flow Label in the 93 IPv6 [RFC2460] header. This can be achieved if the Flow Label in 94 packets outgoing a RPL domain are set by the root of the RPL 95 structure as opposed to the actual source. It derives that the Flow 96 Label could be reused inside the RPL domain. 98 In a LLN, each transmitted bit represents energy and every saving 99 counts dearly. Considering that the value for which the Flow Label 100 is used in the IPv6 Flow Label Specification [RFC6437] is to serve 101 load balancing in the core, it is unlikely that LLN devices will 102 consume energy to generate and then transmit a Flow Label to serve 103 interests in some other place. On the other hand, it makes sense to 104 recommend the computation of a stateless Flow Label at the root of 105 the LLN towards the Internet. 107 Reciprocally, [RFC6437] requires that once set, a non-zero flow label 108 value is left unchanged. The value for that setting is consumed once 109 the packet has traversed the core and reaches the LLN. Then again, 110 there is little value but a high cost for the LLN in spending 20 bits 111 to transport a Flow Label from the Internet over the constrained 112 network to the destination node. It results that the MUST in 113 [RFC6437] should be alleviated for packets coming from the outside on 114 the LLN, and that it should be acceptable that the compression over 115 the LLN erases the original flow label. It should also be acceptable 116 that the Flow Label field is reused in the LLN as proposed in this 117 draft. 119 The Routing Protocol for Low Power and Lossy Networks (RPL) [RFC6550] 120 specification defines a generic Distance Vector protocol that is 121 adapted to a variety of LLNs. RPL forms Destination Oriented 122 Directed Acyclic Graphs (DODAGs) which root often acts as the Border 123 Router to connect the RPL domain to the Internet. The root is 124 responsible to select the RPL Instance that is used to forward a 125 packet coming from the Internet into the RPL domain. 127 A classical RPL implementation will use the RPL Option for Carrying 128 RPL Information in Data-Plane Datagrams [RFC6553] to tag a packet 129 with the Instance ID and other information that RPL requires for its 130 operation within the RPL domain. Sadly, the Option must be placed in 131 a Hop-by-Hop header that must be added to or removed from packets 132 that cross the border of the RPL domain. For reasons such as the 133 capability to send ICMP errors, back, this operation involves an 134 extra 6in6 encapsulation within the RPL domain that is detrimental to 135 the LLN operation, in particular with regards to bandwidth and 136 battery constraints. The extra encapsulation may cause a containing 137 frame to grow above maximum frame size, leading to Layer 2 or 6LoWPAN 138 [RFC4944] fragmentation, which in turn cause even more energy 139 spending and issues discussed in the LLN Fragment Forwarding and 140 Recovery [I-D.thubert-roll-forwarding-frags]. 142 ------+--------- 143 | Internet | 144 | | Native IPv6 145 +-----+ | 146 | | Border Router (RPL Root) | 147 | | || | || 148 +-----+ || | || IPv6 + 149 | || | || HbH 150 o o o o || | || headers 151 o o o o o o o o o || | || 152 o o o o o o o o o o || | || 153 o o o o o o o o o || | || 154 o o o o o o o o 155 o o o o o o 156 o o o o 158 LLN 160 Figure 1: 6in6 Encapsulation within the LLN 162 Additionally, Compression Format for IPv6 Datagrams over IEEE 163 802.15.4-Based Networks [RFC6282] and its variants for other types of 164 LLNs do not provide an efficient compression for the RPL option so 165 the cost in current implementations can not be alleviated in any 166 fashion. So even for packets that are confined within the RPL domain 167 and do not need the 6in6 encapsulation, the use of the flow label 168 instead of the RPL option is a valuable saving. 170 All the packets that are leaving a DODAG of a RPL domain towards the 171 Internet will transit via a same root. The root is an ideal place to 172 set the IPv6 Flow Label to a same value across multiple sources of a 173 same flow when that operation is needed, ensuring complience with the 174 rules defined by the IPv6 Flow Label Specification [RFC6437] within 175 the Internet. At the same time, the root segragates the Internet and 176 the RPL domain, allowing to reuse the Flow Label within the RPL 177 domain. 179 It can be noted that [RFC6282] provides an efficient header 180 compression for packets that do have the Flow Label set in the IPv6 181 header. It results that the same information as transported in the 182 RPL option itself represents actually less bits in the air when the 183 Flow Label is used instead. This document specifies how the Flow 184 Label can be reused within the RPL domain as a replacement to the RPL 185 option. The use of the Flow Label within a RPL domain is an instance 186 of the stateful scenarios as discussed in [RFC6437] where the states 187 include the rank of a node and the RPLInstanceID that identifies the 188 routing topology. 190 2. Terminology 192 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 193 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 194 document are to be interpreted as described in [RFC2119]. 196 The Terminology used in this document is consistent with and 197 incorporates that described in `Terminology in Low power And Lossy 198 Networks' [I-D.ietf-roll-terminology] and [RFC6550]. 200 3. Flow Label Format Within the RPL Domain 202 [RFC6550] section 11.2 specifies the fields that are to be placed 203 into the packets for the purpose of Instance Identification, as well 204 as Loop Avoidance and Detection. Those fields include an 'O', and 205 'R' and an 'F' bits, the 8-bit RPLInstanceID, and the 16-bit 206 SenderRank. SenderRank is the result of the DAGRank operation on the 207 rank of the sender, where the DAGRank operation is defined in section 208 3.5.1 as: 210 DAGRank(rank) = floor(rank/MinHopRankIncrease) 212 If MinHopRankIncrease is set to a multiple of 256, it appears that 213 the most significant 8 bits of the SenderRank will be all zeroes and 214 could be ommitted. In that case, the Flow Label MAY be used as a 215 replacement to the [RFC6553] RPL option. To achive this, the 216 SenderRank is expressed with 8 least significant bits, and the 217 information carried within the Flow Label in a packet is constructed 218 follows: 220 0 1 2 221 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 222 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 223 | |O|R|F| SenderRank | RPLInstanceID | 224 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 226 Figure 1: The RPL Flow Label 228 The first (leftmost) bit of the Flow Label is reserved and should be 229 set to zero. 231 4. Root Operation 233 [RFC6437] section 3 intentionally does not consider flow label values 234 in which any of the bits have semantic significance. However, the 235 present specification assigns semantics to various bits in the flow 236 label, destroying within the edge network that is the RPL domaina 237 property of belonging to a statistically uniform distribution that is 238 desirable in the rest of the Internet. This property MUST be 239 restored by the root for outgoing packets. 241 It can be noted that the rationale for the statistically uniform 242 distribution does not necessarily bring a lot of value within the RPL 243 domain. In a specific use case where it would, that value must be 244 compared with that of the battery savings in order to decide which 245 technique the deployment will use to transport the RPL information. 247 4.1. Incoming Packets 249 When routing a packet towards the RPL domain, the root applies a 250 policy to determine whether the Flow Label is to be used to carry the 251 RPL information. If so, the root MUST reset the Flow Label and then 252 it MUST set all the fields in the Flow Label as prescribed by 253 [RFC6553] using the format specified in Figure 1. In particular, the 254 root selects the Instance that will be used to forward the packet 255 within the RPL domain. 257 4.2. Outgoing Packets 259 When routing a packet outside the RPL domain, the root applies a 260 policy to determine whether the Flow Label was used to carry the RPL 261 information. If so, the root MUST reset the Flow Label. The root 262 SHOULD recompute a Flow Label following the rules prescribed by 263 [RFC6553]. In particular, the root MAY ignore the source address but 264 it SHOULD use the RPLInstanceID for the computation. 266 5. RPL node Operation 268 Depending on the policy in place, the source of a packet will decide 269 whether to use this specification to transport the RPL information in 270 the IPv6 packets. If it does, the source in the LLN SHOULD set the 271 Flow Label to zero and MUST NOT expect that the flow label will be 272 conserved end-to-end". 274 6. Security Considerations 276 The process of using the Flow Label as opposed to the RPL option does 277 not appear to create any opening for new threat compared to 278 [RFC6553]. 280 7. IANA Considerations 282 No IANA action is required for this specification. 284 8. Acknowledgments 286 The author wishes to thank Brian Carpenter for his in-depth review 287 and constructive approach to the problem and its resolution. 289 9. References 291 9.1. Normative References 293 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 294 Requirement Levels", BCP 14, RFC 2119, March 1997. 296 [RFC2460] Deering, S. and R. Hinden, "Internet Protocol, Version 6 297 (IPv6) Specification", RFC 2460, December 1998. 299 [RFC6282] Hui, J. and P. Thubert, "Compression Format for IPv6 300 Datagrams over IEEE 802.15.4-Based Networks", RFC 6282, 301 September 2011. 303 [RFC6550] Winter, T., Thubert, P., Brandt, A., Hui, J., Kelsey, R., 304 Levis, P., Pister, K., Struik, R., Vasseur, JP., and R. 305 Alexander, "RPL: IPv6 Routing Protocol for Low-Power and 306 Lossy Networks", RFC 6550, March 2012. 308 [RFC6553] Hui, J. and JP. Vasseur, "The Routing Protocol for Low- 309 Power and Lossy Networks (RPL) Option for Carrying RPL 310 Information in Data-Plane Datagrams", RFC 6553, 311 March 2012. 313 9.2. Informative References 315 [I-D.ietf-roll-terminology] 316 Vasseur, J., "Terminology in Low power And Lossy 317 Networks", draft-ietf-roll-terminology-06 (work in 318 progress), September 2011. 320 [I-D.thubert-roll-forwarding-frags] 321 Thubert, P. and J. Hui, "LLN Fragment Forwarding and 322 Recovery", draft-thubert-roll-forwarding-frags-00 (work in 323 progress), March 2012. 325 [RFC4944] Montenegro, G., Kushalnagar, N., Hui, J., and D. Culler, 326 "Transmission of IPv6 Packets over IEEE 802.15.4 327 Networks", RFC 4944, September 2007. 329 [RFC5673] Pister, K., Thubert, P., Dwars, S., and T. Phinney, 330 "Industrial Routing Requirements in Low-Power and Lossy 331 Networks", RFC 5673, October 2009. 333 [RFC6437] Amante, S., Carpenter, B., Jiang, S., and J. Rajahalme, 334 "IPv6 Flow Label Specification", RFC 6437, November 2011. 336 Author's Address 338 Pascal Thubert (editor) 339 Cisco Systems 340 Village d'Entreprises Green Side 341 400, Avenue de Roumanille 342 Batiment T3 343 Biot - Sophia Antipolis 06410 344 FRANCE 346 Phone: +33 4 97 23 26 34 347 Email: pthubert@cisco.com