idnits 2.17.00 (12 Aug 2021) /tmp/idnits14371/draft-thubert-6man-flow-label-for-rpl-04.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 : ---------------------------------------------------------------------------- -- The draft header indicates that this document updates RFC6437, but the abstract doesn't seem to mention this, which it should. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (August 4, 2014) is 2847 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) -- 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: 1 error (**), 0 flaws (~~), 4 warnings (==), 3 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 6MAN P. Thubert, Ed. 3 Internet-Draft Cisco 4 Updates: 6437 (if approved) August 4, 2014 5 Intended status: Standards Track 6 Expires: February 5, 2015 8 The IPv6 Flow Label within a RPL domain 9 draft-thubert-6man-flow-label-for-rpl-04 11 Abstract 13 This document present how the Flow Label can be used inside a RPL 14 domain as a replacement to the RPL option and provides rules for the 15 root to set and reset the Flow Label when forwarding between the 16 inside of RPL domain and the larger Internet, in both direction. 17 This new operation saves 44 bits in each frame, and an eventual IP- 18 in-IP encapsulation within the RPL domain that is required for all 19 packets that reach outside of the RPL domain. 21 Status of This Memo 23 This Internet-Draft is submitted in full conformance with the 24 provisions of BCP 78 and BCP 79. 26 Internet-Drafts are working documents of the Internet Engineering 27 Task Force (IETF). Note that other groups may also distribute 28 working documents as Internet-Drafts. The list of current Internet- 29 Drafts is at http://datatracker.ietf.org/drafts/current/. 31 Internet-Drafts are draft documents valid for a maximum of six months 32 and may be updated, replaced, or obsoleted by other documents at any 33 time. It is inappropriate to use Internet-Drafts as reference 34 material or to cite them other than as "work in progress." 36 This Internet-Draft will expire on February 5, 2015. 38 Copyright Notice 40 Copyright (c) 2014 IETF Trust and the persons identified as the 41 document authors. All rights reserved. 43 This document is subject to BCP 78 and the IETF Trust's Legal 44 Provisions Relating to IETF Documents 45 (http://trustee.ietf.org/license-info) in effect on the date of 46 publication of this document. Please review these documents 47 carefully, as they describe your rights and restrictions with respect 48 to this document. Code Components extracted from this document must 49 include Simplified BSD License text as described in Section 4.e of 50 the Trust Legal Provisions and are provided without warranty as 51 described in the Simplified BSD License. 53 Table of Contents 55 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 56 1.1. On Wasted Energy . . . . . . . . . . . . . . . . . . . . 3 57 1.2. LLN flows . . . . . . . . . . . . . . . . . . . . . . . . 5 58 1.3. On Compatibility With Existing Standards . . . . . . . . 6 59 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 7 60 3. Applicability . . . . . . . . . . . . . . . . . . . . . . . . 7 61 4. Flow Label Format Within the RPL Domain . . . . . . . . . . . 8 62 5. Root Operation . . . . . . . . . . . . . . . . . . . . . . . 8 63 5.1. Incoming Packets . . . . . . . . . . . . . . . . . . . . 9 64 5.2. Outgoing Packets . . . . . . . . . . . . . . . . . . . . 9 65 6. RPL node Operation . . . . . . . . . . . . . . . . . . . . . 9 66 7. Security Considerations . . . . . . . . . . . . . . . . . . . 9 67 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 68 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 9 69 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 10 70 10.1. Normative References . . . . . . . . . . . . . . . . . . 10 71 10.2. Informative References . . . . . . . . . . . . . . . . . 10 72 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 11 74 1. Introduction 76 The emergence of radio technology enabled a large variety of new 77 types of devices to be interconnected, at a very low marginal cost 78 compared to wire, at any range from Near Field to interplanetary 79 distances, and in circumstances where wiring would be less than 80 practical, for instance rotating devices. 82 In particular, IEEE802.14.5 [IEEE802154] that is chartered to specify 83 PHY and MAC layers for radio Lowpower Lossy Networks (LLNs), defined 84 the TimeSlotted Channel Hopping [I-D.ietf-6tisch-tsch] (TSCH) mode of 85 operation as part of the IEEE802.15.4e MAC specification in order to 86 address Time Sensitive applications. 88 The 6TISCH architecture [I-D.ietf-6tisch-architecture] specifies the 89 operation IPv6 over TSCH wireless networks attached and synchronized 90 by backbone routers. 92 With 6TiSCH, the route Computation may be achieved in a centralized 93 fashion by a Path Computation Element (PCE), in a distributed fashion 94 using the Routing Protocol for Low Power and Lossy Networks [RFC6550] 95 (RPL), or in a mixed mode. 97 6TiSCH was created to simplify the adoption of IETF technology by 98 other Standard Defining Organizations (SDOs), in particular in the 99 Industrial Automation space, which already relies on variations of 100 IEEE802.15.4e TSCH for Wireless Sensor Networking. 102 ISA100.11a [ISA100.11a] is an example of such industrial WSN 103 standard, using IEEE802.15.4e over the classical IEEE802.14.5 PHY. 104 In that case, after security is applied, roughly 80 octets are 105 available per frame for IP and Payload. In order to 1) avoid 106 fragmentation and 2) conserve energy, the SDO will scrutinize any bit 107 in the frame and reject any waste. 109 The challenge to obtain the adoption of IPv6 in the original standard 110 was really to save any possible bit in the frames, including the UDP 111 checksum which was an interesting discussion on its own. This work 112 was actually one of the roots for the 6LoWPAN Header Compression 113 [RFC6282] work, which goes down to the individual bits to save space 114 in the frames for actual data, and allowed ISA100.11a to adopt IPv6. 116 1.1. On Wasted Energy 118 The design of Lowpower Lossy Networks is generally focussed on saving 119 energy, which is the most constrained resource of all. The other 120 constraints, such as the memory capacity and the duty cycling of the 121 LLN devices, derive from that primary concern. Energy is typically 122 available from batteries that are expected to last for years, or 123 scavenged from the environment in very limited quantities. Any 124 protocol that is intended for use in LLNs must be designed with the 125 primary concern of saving energy as a strict requirement. 127 The Routing Protocol for Low Power and Lossy Networks (RPL) [RFC6550] 128 specification defines a generic Distance Vector protocol that is 129 indeed designed for very low energy consumption and adapted to a 130 variety of LLNs. RPL forms Destination Oriented Directed Acyclic 131 Graphs (DODAGs) which root often acts as the Border Router to connect 132 the RPL domain to the Internet. The root is responsible to select 133 the RPL Instance that is used to forward a packet coming from the 134 Internet into the RPL domain and set the related RPL information in 135 the packets. 137 A classical RPL implementation will use the RPL Option for Carrying 138 RPL Information in Data-Plane Datagrams [RFC6553] to tag a packet 139 with the Instance ID and other information that RPL requires for its 140 operation within the RPL domain. In particular, the Rank, which is 141 the scalar metric computed by an specialized Objective Function such 142 as [RFC6552], is modified at each hop and allows to validate that the 143 packet progresses in the expected direction each upwards or downwards 144 in along the DODAG. 146 With [RFC6553], the RPL option is encoded as 6 Octets; it must be 147 placed in a Hop-by-Hop header that represents 2 additional octets for 148 a total of 8. In order to limit its range to the inside the RPL 149 domain, the Hop-by-Hop header must be added to (or removed from) 150 packets that cross the border of the RPL domain. For reasons such as 151 the capability to send ICMP errors back to the source, this operation 152 involves an extra IP-in-IP encapsulation inside the RPL domain for 153 all the packets which path is not contained within the RPL domain. 155 The 8-octets overhead is detrimental to the LLN operation, in 156 particular with regards to bandwidth and battery constraints. The 157 extra encapsulation may cause a containing frame to grow above 158 maximum frame size, leading to Layer 2 or 6LoWPAN [RFC4944] 159 fragmentation, which in turn cause even more energy spending and 160 issues discussed in the LLN Fragment Forwarding and Recovery 161 [I-D.thubert-6lo-forwarding-fragments]. 163 ------+--------- ^ 164 | Internet | 165 | | Native IPv6 166 +-----+ | 167 | | Border Router (RPL Root) ^ | ^ 168 | | | | | 169 +-----+ | | | IPv6 + 170 | | | | HbH 171 o o o o | | | headers 172 o o o o o o o o o | | | 173 o o o o o o o o o o | | | 174 o o o o o o o o o | | | 175 o o o o o o o o v v v 176 o o o o o o 177 o o o o 179 LLN 181 Figure 1: IP-in-IP Encapsulation within the LLN 183 Considering that, in the classical IEEE802.14.5 PHY that is used by 184 ISA100.11a, roughly 80 octets are available per frame after security 185 is applied, and any additional transmitted bit weights in the energy 186 consumption and drains the batteries. 188 Regrettably, [RFC6282] does not provide an efficient compression for 189 the RPL option so the cost in current implementations can not be 190 alleviated in any fashion. So even for packets that are confined 191 within the RPL domain and do not need the IP-in-IP encapsulation, the 192 use of the flow label instead of the RPL option would be a valuable 193 saving. 195 1.2. LLN flows 197 In Industrial Automation and Control Systems (IACS) [RFC5673], a 198 packet loss is usually acceptable but jitter and latency must be 199 strictly controlled as they can play a critical role in the 200 interpretation of the measured information. Sensory systems are 201 often distributed, and the control information can in fact be 202 originated from multiple sources and aggregated. In such cases, 203 related packets from multiple sources should not be load-balanced 204 along their path in the Internet. 206 In a typical LLN application, the bulk of the traffic consists of 207 small chunks of data (in the order few bytes to a few tens of bytes) 208 at a time. 4Hz is a typical loop frequency in Process Control, 209 though it can be a lot slower than that in, say, environmental 210 monitoring. The granularity of traffic from a single source is too 211 small to make a lot of sense in load balancing application. 213 As a result, it can be a requirement for related measurements from 214 multiple sources to be treated as a single flow following a same path 215 over the Internet so as to experience similar jitter and latency. 216 The traditional tuple of source, destination and ports might then not 217 be the proper indication to isolate a consistent flow. On the other 218 hand, the flow integrity can be preserved in a simple manner if the 219 setting of the Flow Label in the IPv6 header of packets outgoing a 220 RPL domain, is centralized to the root of the RPL DODAG structure, as 221 opposed to distributed across the actual sources. 223 Considering that the goal for setting the Flow Label as prescribed in 224 the IPv6 Flow Label Specification [RFC6437] is to improve load 225 balancing in the core of the Internet, it is unlikely that LLN 226 devices will consume energy to generate and then transmit a Flow 227 Label to serve outside interests and the Flow Label is generally left 228 to zero so as to be elided in the 6LoWPAN [RFC6282] compression. So 229 in a general manner the interests of the core are better served if 230 the RPL roots systematically rewrite the flow label rather than if 231 they never do. 233 For packets coming into the RPL domain from the Internet, the value 234 for setting the Flow Label as prescribed in [RFC6437] is consumed 235 once the packet has traversed the core and reaches the LLN. Then 236 again, there is little value but a high cost for the LLN in spending 237 20 bits to transport a Flow Label from the Internet over the 238 constrained network to a destination node that has no use of it. 240 1.3. On Compatibility With Existing Standards 242 All the packets from all the nodes in a same DODAG that are leaving a 243 RPL domain towards the Internet will transit via a same RPL root. 244 The RPL root segregates the Internet and the RPL domain, which 245 enables the capability to reuse the Flow Label within the RPL domain. 247 On the other hand, the operation of resetting or reusing the IPv6 248 Flow Label at the root of a RPL domain is a deviation from the IPv6 249 Flow Label Specification [RFC6437], in that it is neither the source 250 nor the first hop router that sets the final Flow Label for use 251 outside the RPL domain. 253 Additionally, using the Flow Label to transport the information that 254 is classically present in the RPL option implies that the Flow Label 255 is modified at each hop inside the RPL domain, which again is a 256 limited deviation from [RFC6437], which explicitly requires that the 257 flow label cannot be modified once set. 259 But if we consider the whole RPL domain as a large virtual host from 260 the standpoint of the rest of the Internet, the interests that lead 261 to [RFC6437], and in particular load balancing in the core of the 262 Internet, are probably better served if the root guarantees that the 263 Flow Label is set in a compliant fashion than if we rely on each 264 individual sensor that may not use it at all, or use it slightly 265 differently such as done in ISA100.11a. 267 Additionally, LLN flows can be compound flows aggregating information 268 from multiple sources. The root is an ideal place to rewrite the 269 Flow Label to a same value for a same flow across multiple sources, 270 ensuring compliance with the rules defined by [RFC6437] for use 271 outside of the RPL domain and in particular in the core of the 272 Internet. 274 It can be noted that [RFC6282] provides an efficient header 275 compression for packets that do have the Flow Label set in the IPv6 276 header. It results that the overhead for transporting the RPL 277 information can be down from 64 to 20 bits, alleviating at the same 278 time the need for IP-in-IP encapsulation. This optimization cannot 279 be ignored, and can make the difference for the adoption of RPL and 280 6TiSCH by external standard bodies. 282 This document specifies how the Flow Label can be reused within the 283 RPL domain as a replacement to the RPL option. The use of the Flow 284 Label within a RPL domain is an instance of the stateful scenarios as 285 discussed in [RFC6437] where the states include the Rank of a node 286 and the RPLInstanceID that identifies the routing topology. 288 2. Terminology 290 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 291 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 292 document are to be interpreted as described in [RFC2119]. 294 The Terminology used in this document is consistent with and 295 incorporates that described in `Terminology in Low power And Lossy 296 Networks' [RFC7102] and [RFC6550]. 298 3. Applicability 300 This specification applies to a RPL [RFC6282] domain that forms a 301 stub LLN and is connected to the Internet by and only by its RPL 302 root(s), which act(s) as Border Router(s) for the LLN. With RPL, a 303 root is the bottleneck for all the traffic between the Internet and 304 the Destination-Oriented Directed Acyclic Graph (DODAG) that it 305 serves. 307 In that context, the specification entitles a RPL root to rewrite the 308 IPv6 [RFC2460] Flow Label of all packets entering or leaving the RPL 309 domain in both directions, from and towards the Internet, regardless 310 of its original setting. This may seem contradictory with the IPv6 311 Flow Label Specification [RFC6437] which stipulates that once it is 312 set, the Flow Label is left unchanged; but the RFC also indicates a 313 violation to the rule can be accepted for compelling reasons, and 314 that security is a case justifying such a violation. This 315 specification suggests that energy-saving is another compelling 316 reason for a violation to the aforementioned rule. 318 For the compelling reason of saving energy, this specification allows 319 that regardless of its original setting, a root of a RPL domain MAY 320 reset the Flow Label of IPv6 packets entering the RPL domain to zero 321 for an optimal Header Compression by 6LoWPAN [RFC6282]. The 322 specification also allows that the root and LLN routers MAY reuse the 323 Flow Label inside the LLN for LLN purposes, such as to carry the RPL 324 Information as detailed hereafter. 326 This specification also allows that regardless of its original 327 setting, a root of a RPL domain MAY set the Flow Label of IPv6 328 packets that exit the RPL domain in a manner that SHOULD conform to 329 the prescriptions in [RFC6437]. Therefore a source in the RPL domain 330 MUST NOT assume that its setting of the Flow Label be preserved end- 331 to-end. From there, the capability by RPL routers inside the LLN to 332 alter a non-zero Flow Label between the source and the root is 333 another minor deviation to [RFC6437] that is also acceptable since it 334 is transparent to the core of the Internet. 336 4. Flow Label Format Within the RPL Domain 338 [RFC6550] section 11.2 specifies the fields that are to be placed 339 into the packets for the purpose of Instance Identification, as well 340 as Loop Avoidance and Detection. Those fields include an 'O', and 341 'R' and an 'F' bits, the 8-bit RPLInstanceID, and the 16-bit 342 SenderRank. SenderRank is the result of the DAGRank operation on the 343 rank of the sender, where the DAGRank operation is defined in section 344 3.5.1 as: 346 DAGRank(rank) = floor(rank/MinHopRankIncrease) 348 If MinHopRankIncrease is set to a multiple of 256, it appears that 349 the most significant 8 bits of the SenderRank will be all zeroes and 350 could be omitted. In that case, the Flow Label MAY be used as a 351 replacement to the [RFC6553] RPL option. To achieve this, the 352 SenderRank is expressed with 8 least significant bits, and the 353 information carried within the Flow Label in a packet is constructed 354 follows: 356 0 1 2 357 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 358 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 359 | |O|R|F| SenderRank | RPLInstanceID | 360 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 362 Figure 1: The RPL Flow Label 364 The first (leftmost) bit of the Flow Label is reserved and should be 365 set to zero. 367 5. Root Operation 369 [RFC6437] section 3 intentionally does not consider flow label values 370 in which any of the bits have semantic significance. However, the 371 present specification assigns semantics to various bits in the flow 372 label, destroying within the edge network that is the RPL domain the 373 property of belonging to a statistically uniform distribution that is 374 desirable in the rest of the Internet. 376 It can be noted that the rationale for the statistically uniform 377 distribution does not necessarily bring a lot of value within the RPL 378 domain. In a specific use case where it would, that value must be 379 compared with that of the battery savings in order to decide which 380 technique the deployment will use to transport the RPL information. 382 5.1. Incoming Packets 384 When routing a packet towards the RPL domain, the root applies a 385 policy to determine whether the Flow Label is to be used to carry the 386 RPL information. If so, the root MUST reset the Flow Label and then 387 it MUST set all the fields in the Flow Label as prescribed by 388 [RFC6553] using the format specified in Figure 1. In particular, the 389 root selects the Instance that will be used to forward the packet 390 within the RPL domain. 392 5.2. Outgoing Packets 394 When routing a packet outside the RPL domain, the root applies a 395 policy to determine whether the Flow Label was used to carry the RPL 396 information. If so, the root MUST reset the Flow Label. The root 397 SHOULD recompute a Flow Label following the rules prescribed by 398 [RFC6553]. In particular, the root MAY ignore the source address but 399 it SHOULD use the RPLInstanceID for the computation. 401 6. RPL node Operation 403 Depending on the policy in place, the source of a packet will decide 404 whether to use this specification to transport the RPL information in 405 the IPv6 packets. If it does, the source in the LLN SHOULD set the 406 Flow Label to zero and MUST NOT expect that the flow label will be 407 conserved end-to-end". 409 7. Security Considerations 411 Because the flow label is not protected by IPSec, it is expected that 412 Layer-2 security is deployed in the LLN where is specification is 413 applied. This is the actual best practice in LLNs, which serves in 414 particular to avoid forwarding of untrusted packets over the 415 constrained network. 417 If the link layer is secured adequately, using the Flow Label as 418 opposed to the RPL option does not create an opening for a new threat 419 compared to [RFC6553]. 421 8. IANA Considerations 423 No IANA action is required for this specification. 425 9. Acknowledgements 427 The author wishes to thank Brian Carpenter for his in-depth review 428 and constructive approach to the problem resolution. 430 10. References 432 10.1. Normative References 434 [IEEE802154] 435 IEEE standard for Information Technology, "IEEE std. 436 802.15.4, Part. 15.4: Wireless Medium Access Control (MAC) 437 and Physical Layer (PHY) Specifications for Low-Rate 438 Wireless Personal Area Networks", June 2011. 440 [ISA100.11a] 441 ISA, "ISA100, Wireless Systems for Automation", May 2008, 442 < http://www.isa.org/Community/ 443 SP100WirelessSystemsforAutomation>. 445 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 446 Requirement Levels", BCP 14, RFC 2119, March 1997. 448 [RFC2460] Deering, S. and R. Hinden, "Internet Protocol, Version 6 449 (IPv6) Specification", RFC 2460, December 1998. 451 [RFC6282] Hui, J. and P. Thubert, "Compression Format for IPv6 452 Datagrams over IEEE 802.15.4-Based Networks", RFC 6282, 453 September 2011. 455 [RFC6437] Amante, S., Carpenter, B., Jiang, S., and J. Rajahalme, 456 "IPv6 Flow Label Specification", RFC 6437, November 2011. 458 [RFC6550] Winter, T., Thubert, P., Brandt, A., Hui, J., Kelsey, R., 459 Levis, P., Pister, K., Struik, R., Vasseur, JP., and R. 460 Alexander, "RPL: IPv6 Routing Protocol for Low-Power and 461 Lossy Networks", RFC 6550, March 2012. 463 [RFC6552] Thubert, P., "Objective Function Zero for the Routing 464 Protocol for Low-Power and Lossy Networks (RPL)", RFC 465 6552, March 2012. 467 [RFC6553] Hui, J. and JP. Vasseur, "The Routing Protocol for Low- 468 Power and Lossy Networks (RPL) Option for Carrying RPL 469 Information in Data-Plane Datagrams", RFC 6553, March 470 2012. 472 10.2. Informative References 474 [I-D.ietf-6tisch-architecture] 475 Thubert, P., Watteyne, T., and R. Assimiti, "An 476 Architecture for IPv6 over the TSCH mode of IEEE 477 802.15.4e", draft-ietf-6tisch-architecture-03 (work in 478 progress), July 2014. 480 [I-D.ietf-6tisch-tsch] 481 Watteyne, T., Palattella, M., and L. Grieco, "Using 482 IEEE802.15.4e TSCH in an LLN context: Overview, Problem 483 Statement and Goals", draft-ietf-6tisch-tsch-01 (work in 484 progress), July 2014. 486 [I-D.thubert-6lo-forwarding-fragments] 487 Thubert, P. and J. Hui, "LLN Fragment Forwarding and 488 Recovery", draft-thubert-6lo-forwarding-fragments-01 (work 489 in progress), February 2014. 491 [RFC4944] Montenegro, G., Kushalnagar, N., Hui, J., and D. Culler, 492 "Transmission of IPv6 Packets over IEEE 802.15.4 493 Networks", RFC 4944, September 2007. 495 [RFC5673] Pister, K., Thubert, P., Dwars, S., and T. Phinney, 496 "Industrial Routing Requirements in Low-Power and Lossy 497 Networks", RFC 5673, October 2009. 499 [RFC7102] Vasseur, JP., "Terms Used in Routing for Low-Power and 500 Lossy Networks", RFC 7102, January 2014. 502 Author's Address 504 Pascal Thubert (editor) 505 Cisco Systems 506 Village d'Entreprises Green Side 507 400, Avenue de Roumanille 508 Batiment T3 509 Biot - Sophia Antipolis 06410 510 FRANCE 512 Phone: +33 4 97 23 26 34 513 Email: pthubert@cisco.com