idnits 2.17.00 (12 Aug 2021) /tmp/idnits15712/draft-thubert-6man-flow-label-for-rpl-00.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: ---------------------------------------------------------------------------- == The page length should not exceed 58 lines per page, but there was 1 longer page, the longest (page 2) being 60 lines Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** There is 1 instance of too long lines in the document, the longest one being 1 character in excess of 72. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Line 319 has weird spacing: '...troying withi...' -- The document date (April 17, 2014) is 2956 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) == Unused Reference: 'I-D.thubert-6lo-forwarding-fragments' is defined on line 428, but no explicit reference was found in the text -- Possible downref: Non-RFC (?) normative reference: ref. 'IEEE802154' ** Obsolete normative reference: RFC 2460 (Obsoleted by RFC 8200) == Outdated reference: draft-ietf-6tisch-architecture has been published as RFC 9030 == Outdated reference: draft-ietf-6tisch-tsch has been published as RFC 7554 == Outdated reference: A later version (-08) exists of draft-thubert-6lo-forwarding-fragments-01 Summary: 2 errors (**), 0 flaws (~~), 7 warnings (==), 2 comments (--). 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 April 17, 2014 5 Expires: October 17, 2014 7 The IPv6 Flow Label within a RPL domain 8 draft-thubert-6man-flow-label-for-rpl-00 10 Abstract 12 This document present how the Flow Label can be used inside a RPL 13 domain as a replacement to the RPL option and provides rules for the 14 root to set and reset the Flow Label when forwarding between the 15 inside of RPL domain and the larger Internet, in both direction. 16 This new operation saves 44 bits in each frame, and an eventual IP- 17 in-IP encapsulation within the RPL domain that is required for all 18 packets that 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 October 17, 2014. 37 Copyright Notice 39 Copyright (c) 2014 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 (http://trustee.ietf.org/ 44 license-info) in effect on the date of publication of this document. 45 Please review these documents carefully, as they describe your rights 46 and restrictions with respect to this document. Code Components 47 extracted from this document must include Simplified BSD License text 48 as described in Section 4.e of the Trust Legal Provisions and are 49 provided without warranty as described in the Simplified BSD License. 51 Table of Contents 53 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 2 54 1.1. On LLN flows . . . . . . . . . . . . . . . . . . . . . . . 3 55 1.2. On Wasted Resources . . . . . . . . . . . . . . . . . . . 4 56 1.3. On Compatibility With Existing Standards . . . . . . . . . 5 57 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 6 58 3. Flow Label Format Within the RPL Domain . . . . . . . . . . . 6 59 4. Root Operation . . . . . . . . . . . . . . . . . . . . . . . . 7 60 4.1. Incoming Packets . . . . . . . . . . . . . . . . . . . . . 7 61 4.2. Outgoing Packets . . . . . . . . . . . . . . . . . . . . . 7 62 5. RPL node Operation . . . . . . . . . . . . . . . . . . . . . . 8 63 6. Security Considerations . . . . . . . . . . . . . . . . . . . 8 64 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 65 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 8 66 9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 8 67 9.1. Normative References . . . . . . . . . . . . . . . . . . . 8 68 9.2. Informative References . . . . . . . . . . . . . . . . . . 9 69 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 9 71 1. Introduction 73 The emergence of radio technology enabled a large variety of new 74 types of devices to be interconnected, at a very low marginal cost 75 compared to wire, at any range from Near Field to interplanetary 76 distances, and in circumstances where wiring would be less than 77 practical, for instance rotating devices. 79 In particular, IEEE802.14.5 [IEEE802154] that is chartered to specify 80 PHY and MAC layers for radio Lowpower Lossy Networks (LLNs), defined 81 the TimeSlotted Channel Hopping [I-D.ietf-6tisch-tsch] (TSCH) mode of 82 operation as part of the IEEE802.15.4e MAC specification in order to 83 address Time Sensitive applications. 85 The 6TISCH architecture [I-D.ietf-6tisch-architecture] specifies 86 the operation IPv6 over the IEEE802.15.4e TimeSlotted Channel Hopping 87 [I-D.ietf-6tisch-tsch] (TSCH) wireless networks attached and 88 synchronized by backbone routers. In that model, route Computation 89 may be achieved in a centralized fashion by a Path Computation 90 Element (PCE), in a distributed fashion using the Routing Protocol 91 for Low Power and Lossy Networks [RFC6550] (RPL), or in a mixed 92 mode. The Backbone Routers may typically serve as roots for the RPL 93 domain. 95 6TiSCH was created to simplify the adoption of IETF technology by 96 other Standard Defining Organizations (SDOs), in particular in the 97 Industrial Automation space, which already relies on variations of 98 IEEE802.15.4e TSCH for Wireless Sensor Networking. ISA100.11a 99 [ISA100.11a] is an example of such industrial WSN standard, using 100 IEEE802.15.4e over the classical IEEE802.14.5 PHY. In that case, 101 after security is applied, roughly 80 octets are available per frame 102 for IP and Payload. In order to 1) avoid fragmentation and 2) 103 conserve energy, the SDO will scrutinize any bit in the frame and 104 reject any waste. 106 The challenge to obtain the adoption of IPv6 in the original standard 107 was really to save any possible bit in the frames, including the UDP 108 checksum which was an interesting discussion on its own. This work 109 was actually one of the roots for the 6LoWPAN Header Compression 110 [RFC6282] work, which goes down to the individual bits to save space 111 in the frames for actual data, and allowed ISA100.11a to adopt IPv6. 113 1.1. On LLN flows 115 In industrial applications such as control systems [RFC5673], a 116 packet loss is usually acceptable but jitter and latency must be 117 strictly controlled as they can play a critical role in the 118 interpretation of the measured information. Sensory systems are 119 often distributed, and the control information can in fact be 120 originated from multiple sources and aggregated. As a result, it can 121 be a requirement for related measurements from multiple sources to be 122 treated as a single flow following a same path over the Internet in 123 order to experience similar jitter and latency. The traditional 124 tuple of source, destination and ports might then not be the proper 125 indication to isolate a meaningful flow. 127 In a typical LLN application, the bulk of the traffic consists of 128 small chunks of data (in the order few bytes to a few tens of bytes) 129 at a time. In the industrial case, a typical frequency is 4Hz but it 130 can be a lot slower than that for, say, environmental monitoring. 131 The granularity of traffic from a single source is too small to make 132 a lot of sense in load balancing application. 134 In such cases, related packets from multiple sources should not be 135 load-balanced along their path in the Internet; load-balancing can be 136 discouraged by tagging those packets with a same Flow Label in the 137 IPv6 [RFC2460] header. This can be achieved if the Flow Label in 138 packets outgoing a RPL domain are set by the root of the RPL 139 structure as opposed to the actual source. It derives that the Flow 140 Label could be reused inside the RPL domain. 142 In a LLN, each transmitted bit represents energy and every saving 143 counts dearly. Considering that the value for which the Flow Label 144 is used in the IPv6 Flow Label Specification [RFC6437] is to serve 145 load balancing in the core, it is unlikely that LLN devices will 146 consume energy to generate and then transmit a Flow Label to serve 147 interests in some other place. On the other hand, it makes sense to 148 recommend the computation of a stateless Flow Label at the root of 149 the LLN towards the Internet. 151 Reciprocally, [RFC6437] requires that once set, a non-zero flow label 152 value is left unchanged. The value for that setting is consumed once 153 the packet has traversed the core and reaches the LLN. Then again, 154 there is little value but a high cost for the LLN in spending 20 bits 155 to transport a Flow Label from the Internet over the constrained 156 network to the destination node. It results that the MUST in 157 [RFC6437] should be alleviated for packets coming from the outside on 158 the LLN, and that it should be acceptable that the compression over 159 the LLN erases the original flow label. It should also be acceptable 160 that the Flow Label field is reused in the LLN as proposed in this 161 draft. 163 1.2. On Wasted Resources 165 The Routing Protocol for Low Power and Lossy Networks (RPL) 166 [RFC6550] specification defines a generic Distance Vector protocol 167 that is adapted to a variety of LLNs. RPL forms Destination Oriented 168 Directed Acyclic Graphs (DODAGs) which root often acts as the Border 169 Router to connect the RPL domain to the Internet. The root is 170 responsible to select the RPL Instance that is used to forward a 171 packet coming from the Internet into the RPL domain. 173 A classical RPL implementation will use the RPL Option for Carrying 174 RPL Information in Data-Plane Datagrams [RFC6553] to tag a packet 175 with the Instance ID and other information that RPL requires for its 176 operation within the RPL domain. In particular, the Rank, which is 177 the scalar metric computed by an specialized Objective Function such 178 as [RFC6552], is modified at each hop and allows to validate that the 179 packet progresses in the execpted direction each upwards or downwards 180 in along the DODAG. 182 With [RFC6553] the RPL option is encoded as 6 Octets; it must be 183 placed in a Hop-by-Hop header that represents 2 additional octets for 184 a total of 8. In order to limit its range to the inside the RPL 185 domain, the Hop-by-Hop header must be added to (or removed from) 186 packets that cross the border of the RPL domain. For reasons such as 187 the capability to send ICMP errors back to the source, this operation 188 involves an extra IP-in-IP encapsulation inside the RPL domain for 189 all the packets which path is not contained within the RPL domain. 191 The 8-octets overhead is detrimental to the LLN operation, in 192 particular with regards to bandwidth and battery constraints. The 193 extra encapsulation may cause a containing frame to grow above 194 maximum frame size, leading to Layer 2 or 6LoWPAN [RFC4944] 195 fragmentation, which in turn cause even more energy spending and 196 issues discussed in the LLN Fragment Forwarding and Recovery [I-D 197 .thubert-6lo-forwarding-fragments]. 199 ------+--------- ^ 200 | Internet | 201 | | Native IPv6 202 +-----+ | 203 | | Border Router (RPL Root) ^ | ^ 204 | | | | | 205 +-----+ | | | IPv6 + 206 | | | | HbH 207 o o o o | | | headers 208 o o o o o o o o o | | | 209 o o o o o o o o o o | | | 210 o o o o o o o o o | | | 211 o o o o o o o o v v v 212 o o o o o o 213 o o o o 215 LLN 217 Considering that, in the classical IEEE802.14.5 PHY that is used by 218 ISA100.11a, roughly 80 octets are available per frame after security 219 is applied, and , any additional transmitted octet weights in the 220 energy consumption and drains the batteriesBut [RFC6282] does not 221 provide an efficient compression for the RPL option so the cost in 222 current implementations can not be alleviated in any fashion. So 223 even for packets that are confined within the RPL domain and do not 224 need the 6in6 encapsulation, the use of the flow label instead of the 225 RPL option would be a valuable saving. 227 1.3. On Compatibility With Existing Standards 229 All the packets from all the nodes in a same DODAG that are leaving a 230 RPL domain towards the Internet will transit via a same RPL root. 231 The RPL root segregates the Internet and the RPL domain, which 232 enables the capability to reuse the Flow Label within the RPL domain. 234 On the other hand, the operation of writing/rewriting the IPv6 Flow 235 Label at the root of a RPL domain may seem in contradiction with the 236 IPv6 Flow Label Specification [RFC6437], in that it is neither the 237 source nor the first hop router that sets the final Flow Label for 238 use outside the RPL domain. 240 Additionally, using the Flow Label to transport the information that 241 is classically present in the RPL option implies that the Flow Label 242 is modified at each hop inside the RPL domain, which again 243 contradicts [RFC6437], which explicitly requires that the flow label 244 cannot be modified once set. 246 But if we consider the whole RPL domain as a large virtual host from 247 the standpoint of the rest of the Internet, the interests that lead 248 to [RFC6437], and in particular load balancing in the core of the 249 Internet, are probably better served if the root guarantees that the 250 Flow Label is set in a compliant fashion than if we rely on each 251 individual sensor that may not use it at all, or use it slightly 252 differently such as done in ISA100.11a. 254 Additionally, LLN flows can be compound flows aggregating information 255 from multiple sources. The root is an ideal place to rewrite the 256 Flow Label to a same value for a same flow across multiple sources, 257 ensuring compliance with the rules defined by [RFC6437] for use 258 outside of the RPL domain and in particular in the core of the 259 Internet. 261 It can be noted that [RFC6282] provides an efficient header 262 compression for packets that do have the Flow Label set in the IPv6 263 header. It results overhead for transporting the RPL information can 264 be down from 64 to 20 bits, alleviating at the same time the need for 265 IP-in-IP encapsulation. This optimization cannot be ignored, and is 266 required for the adoption of the 6TiSCH architecture by external 267 standard bodies. 269 This document specifies how the Flow Label can be reused within the 270 RPL domain as a replacement to the RPL option. The use of the Flow 271 Label within a RPL domain is an instance of the stateful scenarios as 272 discussed in [RFC6437]where the states include the rank of a node and 273 the RPLInstanceID that identifies the routing topology. 275 2. Terminology 277 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 278 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 279 document are to be interpreted as described in [RFC2119]. 281 The Terminology used in this document is consistent with and 282 incorporates that described in `Terminology in Low power And Lossy 283 Networks' [RFC7102] and [RFC6550]. 285 3. Flow Label Format Within the RPL Domain 287 [RFC6550] section 11.2 specifies the fields that are to be placed 288 into the packets for the purpose of Instance Identification, as well 289 as Loop Avoidance and Detection. Those fields include an 'O', and 290 'R' and an 'F' bits, the 8-bit RPLInstanceID, and the 16-bit 291 SenderRank. SenderRank is the result of the DAGRank operation on the 292 rank of the sender, where the DAGRank operation is defined in section 293 3.5.1 as: 295 DAGRank(rank) = floor(rank/MinHopRankIncrease) 297 If MinHopRankIncrease is set to a multiple of 256, it appears that 298 the most significant 8 bits of the SenderRank will be all zeroes and 299 could be ommitted. In that case, the Flow Label MAY be used as a 300 replacement to the [RFC6553] RPL option. To achive this, the 301 SenderRank is expressed with 8 least significant bits, and the 302 information carried within the Flow Label in a packet is constructed 303 follows: 305 0 1 2 306 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 307 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 308 | |O|R|F| SenderRank | RPLInstanceID | 309 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 311 The first (leftmost) bit of the Flow Label is reserved and should be 312 set to zero. 314 4. Root Operation 316 [RFC6437] section 3 intentionally does not consider flow label values 317 in which any of the bits have semantic significance. However, the 318 present specification assigns semantics to various bits in the flow 319 label, destroying within the edge network that is the RPL domaina 320 property of belonging to a statistically uniform distribution 321 that is desirable in the rest of the Internet. This property MUST be 322 restored by the root for outgoing packets. 324 It can be noted that the rationale for the statistically uniform 325 distribution does not necessarily bring a lot of value within the RPL 326 domain. In a specific use case where it would, that value must be 327 compared with that of the battery savings in order to decide which 328 technique the deployment will use to transport the RPL information. 330 4.1. Incoming Packets 332 When routing a packet towards the RPL domain, the root applies a 333 policy to determine whether the Flow Label is to be used to carry the 334 RPL information. If so, the root MUST reset the Flow Label and then 335 it MUST set all the fields in the Flow Label as prescribed by 336 [RFC6553] using the format specified in Figure 2. In particular, the 337 root selects the Instance that will be used to forward the packet 338 within the RPL domain. 340 4.2. Outgoing Packets 342 When routing a packet outside the RPL domain, the root applies a 343 policy to determine whether the Flow Label was used to carry the RPL 344 information. If so, the root MUST reset the Flow Label. The root 345 SHOULD recompute a Flow Label following the rules prescribed by 346 [RFC6553]. In particular, the root MAY ignore the source address but 347 it SHOULD use the RPLInstanceID for the computation. 349 5. RPL node Operation 351 Depending on the policy in place, the source of a packet will decide 352 whether to use this specification to transport the RPL information in 353 the IPv6 packets. If it does, the source in the LLN SHOULD set the 354 Flow Label to zero and MUST NOT expect that the flow label will be 355 conserved end-to-end". 357 6. Security Considerations 359 The process of using the Flow Label as opposed to the RPL option does 360 not appear to create any opening for new threat compared to 361 [RFC6553]. 363 7. IANA Considerations 365 No IANA action is required for this specification. 367 8. Acknowledgements 369 The author wishes to thank Brian Carpenter for his in-depth review 370 and constructive approach to the problem and its resolution. 372 9. References 374 9.1. Normative References 376 [IEEE802154] 377 IEEE standard for Information Technology, "IEEE std. 378 802.15.4, Part. 15.4: Wireless Medium Access Control 379 (MAC) and Physical Layer (PHY) Specifications for Low-Rate 380 Wireless Personal Area Networks", June 2011. 382 [ISA100.11a] 383 ISA, "ISA100, Wireless Systems for Automation", May 2008, 384 < http://www.isa.org/Community/ 385 SP100WirelessSystemsforAutomation>. 387 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 388 Requirement Levels", BCP 14, RFC 2119, March 1997. 390 [RFC2460] Deering, S.E. and R.M. Hinden, "Internet Protocol, Version 391 6 (IPv6) Specification", RFC 2460, December 1998. 393 [RFC6282] Hui, J. and P. Thubert, "Compression Format for IPv6 394 Datagrams over IEEE 802.15.4-Based Networks", RFC 6282, 395 September 2011. 397 [RFC6437] Amante, S., Carpenter, B., Jiang, S. and J. Rajahalme, 398 "IPv6 Flow Label Specification", RFC 6437, November 2011. 400 [RFC6550] Winter, T., Thubert, P., Brandt, A., Hui, J., Kelsey, R., 401 Levis, P., Pister, K., Struik, R., Vasseur, JP. and R. 402 Alexander, "RPL: IPv6 Routing Protocol for Low-Power and 403 Lossy Networks", RFC 6550, March 2012. 405 [RFC6552] Thubert, P., "Objective Function Zero for the Routing 406 Protocol for Low-Power and Lossy Networks (RPL)", RFC 407 6552, March 2012. 409 [RFC6553] Hui, J. and JP. Vasseur, "The Routing Protocol for Low- 410 Power and Lossy Networks (RPL) Option for Carrying RPL 411 Information in Data-Plane Datagrams", RFC 6553, March 412 2012. 414 9.2. Informative References 416 [I-D.ietf-6tisch-architecture] 417 Thubert, P., Watteyne, T. and R. Assimiti, "An 418 Architecture for IPv6 over the TSCH mode of IEEE 419 802.15.4e", Internet-Draft draft-ietf-6tisch- 420 architecture-01, February 2014. 422 [I-D.ietf-6tisch-tsch] 423 Watteyne, T., Palattella, M. and L. Grieco, "Using 424 IEEE802.15.4e TSCH in an LLN context: Overview, Problem 425 Statement and Goals", Internet-Draft draft-ietf-6tisch- 426 tsch-00, November 2013. 428 [I-D.thubert-6lo-forwarding-fragments] 429 Thubert, P. and J. Hui, "LLN Fragment Forwarding and 430 Recovery", Internet-Draft draft-thubert-6lo-forwarding- 431 fragments-01, February 2014. 433 [RFC4944] Montenegro, G., Kushalnagar, N., Hui, J. and D. Culler, 434 "Transmission of IPv6 Packets over IEEE 802.15.4 435 Networks", RFC 4944, September 2007. 437 [RFC5673] Pister, K., Thubert, P., Dwars, S. and T. Phinney, 438 "Industrial Routing Requirements in Low-Power and Lossy 439 Networks", RFC 5673, October 2009. 441 [RFC7102] Vasseur, JP., "Terms Used in Routing for Low-Power and 442 Lossy Networks", RFC 7102, January 2014. 444 Author's Address 445 Pascal Thubert, editor 446 Cisco Systems 447 Village d'Entreprises Green Side 448 400, Avenue de Roumanille 449 Batiment T3 450 Biot - Sophia Antipolis, 06410 451 FRANCE 453 Phone: +33 4 97 23 26 34 454 Email: pthubert@cisco.com