idnits 2.17.00 (12 Aug 2021) /tmp/idnits59027/draft-thubert-6lo-rpl-nhc-01.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 are 4 instances of too long lines in the document, the longest one being 3 characters in excess of 72. -- The draft header indicates that this document updates RFC6282, 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 doesn't use any RFC 2119 keywords, yet seems to have RFC 2119 boilerplate text. (Using the creation date from RFC6282, updated by this document, for RFC5378 checks: 2008-10-08) -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (August 28, 2014) is 2823 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: 'RFC2460' is defined on line 346, but no explicit reference was found in the text == Unused Reference: 'I-D.thubert-6lo-forwarding-fragments' is defined on line 381, 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 (~~), 8 warnings (==), 4 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 6lo P. Thubert, Ed. 3 Internet-Draft Cisco 4 Updates: 6282 (if approved) August 28, 2014 5 Intended status: Standards Track 6 Expires: February 27, 2015 8 A compression mechanism for the RPL option 9 draft-thubert-6lo-rpl-nhc-01 11 Abstract 13 This document proposes a compression mechanism for the RPL option. 14 This operation saves up to 48 bits in each frame compared to RFC 15 6553. 17 Status of this Memo 19 This Internet-Draft is submitted in full conformance with the 20 provisions of BCP 78 and BCP 79. 22 Internet-Drafts are working documents of the Internet Engineering 23 Task Force (IETF). Note that other groups may also distribute 24 working documents as Internet-Drafts. The list of current Internet- 25 Drafts is at http://datatracker.ietf.org/drafts/current/. 27 Internet-Drafts are draft documents valid for a maximum of six months 28 and may be updated, replaced, or obsoleted by other documents at any 29 time. It is inappropriate to use Internet-Drafts as reference 30 material or to cite them other than as "work in progress." 32 This Internet-Draft will expire on February 27, 2015. 34 Copyright Notice 36 Copyright (c) 2014 IETF Trust and the persons identified as the 37 document authors. All rights reserved. 39 This document is subject to BCP 78 and the IETF Trust's Legal 40 Provisions Relating to IETF Documents (http://trustee.ietf.org/ 41 license-info) in effect on the date of publication of this document. 42 Please review these documents carefully, as they describe your rights 43 and restrictions with respect to this document. Code Components 44 extracted from this document must include Simplified BSD License text 45 as described in Section 4.e of the Trust Legal Provisions and are 46 provided without warranty as described in the Simplified BSD License. 48 Table of Contents 50 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 2 51 2. On Wasted Resources . . . . . . . . . . . . . . . . . . . . . 3 52 3. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 53 4. Updating RFC 6282 . . . . . . . . . . . . . . . . . . . . . . 4 54 5. New RPL Next Header Compression . . . . . . . . . . . . . . . 5 55 6. Security Considerations . . . . . . . . . . . . . . . . . . . 6 56 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 57 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 7 58 9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 7 59 9.1. Normative References . . . . . . . . . . . . . . . . . . . 7 60 9.2. Informative References . . . . . . . . . . . . . . . . . . 8 61 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 8 63 1. Introduction 65 The emergence of radio technology enabled a large variety of new 66 types of devices to be interconnected, at a very low marginal cost 67 compared to wire, at any range from Near Field to interplanetary 68 distances, and in circumstances where wiring would be less than 69 practical, for instance rotating devices. 71 In particular, IEEE802.14.5 [IEEE802154] that is chartered to specify 72 PHY and MAC layers for radio Lowpower Lossy Networks (LLNs), defined 73 the TimeSlotted Channel Hopping [I-D.ietf-6tisch-tsch] (TSCH) mode of 74 operation as part of the IEEE802.15.4e MAC specification in order to 75 address Time Sensitive applications. 77 The 6TiSCH architecture [I-D.ietf-6tisch-architecture] specifies 78 the operation IPv6 over TSCH wireless networks attached and 79 synchronized by backbone routers. 81 With 6TiSCH, the route Computation may be achieved in a centralized 82 fashion by a Path Computation Element (PCE), in a distributed fashion 83 using the Routing Protocol for Low Power and Lossy Networks 84 [RFC6550] (RPL), or in a mixed mode. 86 6TiSCH was created to simplify the adoption of IETF technology by 87 other Standard Defining Organizations (SDOs), in particular in the 88 Industrial Automation space, which already relies on variations of 89 IEEE802.15.4e TSCH for Wireless Sensor Networking. 91 ISA100.11a [ISA100.11a] (now IEC62734) is an example of such 92 industrial WSN standard, using IEEE802.15.4e over the classical 93 IEEE802.14.5 PHY. In that case, after security is applied, roughly 80 94 octets are available per frame for IP and Payload. In order to 1) 95 avoid fragmentation and 2) conserve energy, the SDO will scrutinize 96 any bit in the frame and reject any waste. 98 The challenge to obtain the adoption of IPv6 in the original standard 99 was really to save any possible bit in the frames, including the UDP 100 checksum which was an interesting discussion on its own. This work 101 was actually one of the roots for the 6LoWPAN Header Compression 102 [RFC6282] work, which goes down to the individual bits to save space 103 in the frames for actual data, and allowed ISA100.11a to adopt IPv6. 105 In order to get an SDO such as ISA100 to adopt RPL and 6TiSCH, it is 106 mandatory to maintain the same degree to requirement and maximize the 107 compression of all possible protocol information, and in particular 108 the overhead that RPL imposes on all packets. 110 2. On Wasted Resources 112 The design of Lowpower Lossy Networks is generally focussed on saving 113 energy, which is the most constrained resource of all. The other 114 constraints, such as the memory capacity and the duty cycling of the 115 LLN devices, derive from that primary concern. Energy is typically 116 available from batteries that are expected to last for years, or 117 scavenged from the environment in very limited quantities. Any 118 protocol that is intended for use in LLNs must be designed with the 119 primary concern of saving energy as a strict requirement. 121 The Routing Protocol for Low Power and Lossy Networks (RPL) 122 [RFC6550] specification defines a generic Distance Vector protocol 123 that is indeed designed for very low energy consumption and adapted 124 to a variety of LLNs. RPL forms Destination Oriented Directed 125 Acyclic Graphs (DODAGs) which root often acts as the Border Router to 126 connect the RPL domain to the Internet. The root is responsible to 127 select the RPL Instance that is used to forward a packet coming from 128 the Internet into the RPL domain and set the related RPL information 129 in the packets. 131 A classical RPL implementation will use the RPL Option for Carrying 132 RPL Information in Data-Plane Datagrams [RFC6553] to tag a packet 133 with the Instance ID and other information that RPL requires for its 134 operation within the RPL domain. In particular, the Rank, which is 135 the scalar metric computed by an specialized Objective Function such 136 as [RFC6552], is modified at each hop and allows to validate that the 137 packet progresses in the expected direction each upwards or downwards 138 in along the DODAG. 140 ------+--------- ^ 141 | Internet | 142 | | Native IPv6 143 +-----+ | 144 | | Border Router (RPL Root) ^ | ^ 145 | | | | | 146 +-----+ | | | IPv6 + 147 | | | | HbH 148 o o o o | | | headers 149 o o o o o o o o o | | | 150 o o o o o o o o o o | | | 151 o o o o o o o o o | | | 152 o o o o o o o o v v v 153 o o o o 154 LLN 156 With [RFC6553], the RPL option is encoded as 6 Octets; it must be 157 placed in a Hop-by-Hop header that represents 2 additional octets for 158 a total of 8. In order to limit its range to the inside the RPL 159 domain, the Hop-by-Hop header must be added to (or removed from) 160 packets that cross the border of the RPL domain. For reasons such as 161 the capability to send ICMP errors back to the source, this operation 162 involves an extra IP-in-IP encapsulation inside the RPL domain for 163 all the packets which path is not contained within the RPL domain. 165 The 8-octets overhead is detrimental to the LLN operation, in 166 particular with regards to bandwidth and battery constraints. These 167 octets may cause a containing frame to grow above maximum frame size, 168 leading to Layer 2 or 6LoWPAN [RFC4944] fragmentation, which in turn 169 cause even more energy spending and issues discussed in the LLN 170 Fragment Forwarding and Recovery [I-D.thubert-6lo-forwarding- 171 fragments]. 173 Considering that, in the classical IEEE802.14.5 PHY that is used by 174 6TiSCH, roughly 80 octets are available per frame after security is 175 applied, and any additional transmitted bit weights in the energy 176 consumption and drains the batteries. 178 For timing reasons, [RFC6282] failed to provide an adapted 179 compression for the RPL option so the cost in current implementations 180 can not be alleviated in any fashion. This document provides thus 181 the much-needed efficient compression of the RPL option as a logical 182 extension to [RFC6282]. 184 3. Terminology 186 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 187 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 188 document are to be interpreted as described in [RFC2119]. 190 The Terminology used in this document is consistent with and 191 incorporates that described in `Terminology in Low power And Lossy 192 Networks' [RFC7102] and [RFC6550]. 194 4. Updating RFC 6282 196 This specification proposes a new 6LoWPAN Next Header Compression 197 (NHC) for the RPL option [RFC6553], called RPL_NHC, to be placed in 198 an [RFC6282]-compressed packet. 200 It updates [RFC6282] in that the necessary property of encoding 201 headers using LOWPAN_NHC becomes that the immediately preceding 202 header must be encoded using either LOWPAN_IPHC, RPL_NHC or 203 LOWPAN_NHC. 205 Additionally, the necessary property of encoding headers using 206 RPL_NHC is that the immediately preceding header must be encoded 207 using either LOWPAN_IPHC or LOWPAN_NHC. 209 5. New RPL Next Header Compression 211 [RFC6550] section 11.2 specifies the RPL information as a set of 212 fields that are to be placed into the packets for the purpose of 213 Instance Identification, as well as Loop Avoidance and Detection. 214 Those fields include an 'O', an 'R' and an 'F' bits, a 8-bit 215 RPLInstanceID, which is in fact an encoded structure, and a 16-bit 216 SenderRank. 218 The SenderRank is the result of the DAGRank operation on the rank of 219 the sender, here the DAGRank operation is defined in section 3.5.1 220 as: 222 DAGRank(rank) = floor(rank/MinHopRankIncrease) 224 If MinHopRankIncrease is set to a multiple of 256, it appears that 225 the least significant 8 bits of the SenderRank will be all zeroes and 226 can be elided, in which case the SenderRank can be compressed into 227 one octet. This idea is leveraged in [RFC6552] that uses a 228 MinHopRankIncrease of 256 by default. 230 [RFC6553] defines an encoding for the RPL information as a RPL option 231 located in a Hop-by-hop header. The RPL_NHC provides a compressed 232 form for that the RPL information and is constructed as follows: 234 0 1 2 3 4 5 6 7 235 +---+---+---+---+---+---+---+---+ 236 | 1 | 0 | I | K | O | R | F |NH | 237 +---+---+---+---+---+---+---+---+ 239 The RPL_NHC is immediately followed by the RPLInstanceID, unless it 240 is elided, and then the SenderRank, which is either compressed into 241 one octet or fully inlined as the whole 2 octets. Bits in the 242 RPL_NHC indicate whether the RPLInstanceID is elided and/or the 243 SenderRank is compressed: 245 O, R, and F bits The O, R, and F bits are defined in [RFC6550] 246 section 11.2. 248 NH: 1-bit. The Next Header (NH) bit is defined in [RFC6282] 249 section 4.2, and it is set to indicate that the next header is 250 encoded using LOWPAN_NHC 252 I: 1-bit. If it is set, the Instance ID is elided and the 253 RPLInstanceID is the Global RPLInstanceID 0. If it is not set, 254 the octet immediately following the RPL_NHC contains the 255 RPLInstanceID as specified in [RFC6550] section 5.1. 257 K: 1-bit. If it is set, the SenderRank is be compressed into one 258 octet, and the lowest significant octet is elided. If it is 259 not set, the SenderRank, is fully inlined as 2 octets. 261 In the following case, the RPLInstanceID is the Global RPLInstanceID 262 0, and the MinHopRankIncrease is a multiple of 256 so the least 263 significant octet is all zeroes and can be elided: 265 0 1 266 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 267 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 268 |1|0|1|1|O|R|F|N| SenderRank | 269 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 271 In the following case, the RPLInstanceID is the Global RPLInstanceID 272 0, but both octets of the SenderRank are significant so it can not be 273 compressed: 275 0 1 2 276 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 277 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 278 |1|0|1|0|O|R|F|N| SenderRank | 279 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 281 In the following case, the RPLInstanceID is not the Global 282 RPLInstanceID 0, and the MinHopRankIncrease is a multiple of 256: 284 0 1 2 285 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 286 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 287 |1|0|0|1|O|R|F|N| RPLInstanceID | SenderRank | 288 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 290 In the following case, the RPLInstanceID is not the Global 291 RPLInstanceID 0, and both octets of the SenderRank are significant: 293 0 1 2 3 294 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 295 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 296 |1|0|0|0|O|R|F|N| RPLInstanceID | SenderRank | 297 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 299 Depending on the RPLInstanceID and the MinHopRankIncrease, the 300 proposed format thus squeezes the RPL information in 16 to 32 bits, 301 which compares to 64 bits when using a Hop-by-hop option with the RPL 302 option as specified in [RFC6553]. 304 6. Security Considerations 305 Using a compressed format as opposed to the full inline RPL option is 306 logically equivalent and does not create an opening for a new threat 307 when compared to [RFC6553]. 309 7. IANA Considerations 311 This document updates IANA registry for the LOWPAN_NHC defined in 312 [RFC6282] and assigns the previously unassigned: 314 10IOKRFN: RPL Information [this] 316 Capital letters in bit positions represent class-specific bit 317 assignments. IOKRF represents variables specific to RPL Information 318 compression defined in Section 5. N indicates whether or not 319 additional LOWPAN_NHC encodings follow, as defined in Section 4.2 of 320 [RFC6553]. 322 8. Acknowledgements 324 The author wishes to thank Laurent Toutain and Carsten Bormann for 325 suggesting this work . 327 9. References 329 9.1. Normative References 331 [IEEE802154] 332 IEEE standard for Information Technology, "IEEE std. 333 802.15.4, Part. 15.4: Wireless Medium Access Control 334 (MAC) and Physical Layer (PHY) Specifications for Low-Rate 335 Wireless Personal Area Networks", June 2011. 337 [ISA100.11a] 338 ISA/ANSI, "Wireless Systems for Industrial Automation: 339 Process Control and Related Applications - ISA100.11a-2011 340 - IEC 62734", 2011, . 343 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 344 Requirement Levels", BCP 14, RFC 2119, March 1997. 346 [RFC2460] Deering, S.E. and R.M. Hinden, "Internet Protocol, Version 347 6 (IPv6) Specification", RFC 2460, December 1998. 349 [RFC6282] Hui, J. and P. Thubert, "Compression Format for IPv6 350 Datagrams over IEEE 802.15.4-Based Networks", RFC 6282, 351 September 2011. 353 [RFC6550] Winter, T., Thubert, P., Brandt, A., Hui, J., Kelsey, R., 354 Levis, P., Pister, K., Struik, R., Vasseur, JP. and R. 355 Alexander, "RPL: IPv6 Routing Protocol for Low-Power and 356 Lossy Networks", RFC 6550, March 2012. 358 [RFC6552] Thubert, P., "Objective Function Zero for the Routing 359 Protocol for Low-Power and Lossy Networks (RPL)", RFC 360 6552, March 2012. 362 [RFC6553] Hui, J. and JP. Vasseur, "The Routing Protocol for Low- 363 Power and Lossy Networks (RPL) Option for Carrying RPL 364 Information in Data-Plane Datagrams", RFC 6553, March 365 2012. 367 9.2. Informative References 369 [I-D.ietf-6tisch-architecture] 370 Thubert, P., Watteyne, T. and R. Assimiti, "An 371 Architecture for IPv6 over the TSCH mode of IEEE 372 802.15.4e", Internet-Draft draft-ietf-6tisch- 373 architecture-01, February 2014. 375 [I-D.ietf-6tisch-tsch] 376 Watteyne, T., Palattella, M. and L. Grieco, "Using 377 IEEE802.15.4e TSCH in an LLN context: Overview, Problem 378 Statement and Goals", Internet-Draft draft-ietf-6tisch- 379 tsch-00, November 2013. 381 [I-D.thubert-6lo-forwarding-fragments] 382 Thubert, P. and J. Hui, "LLN Fragment Forwarding and 383 Recovery", Internet-Draft draft-thubert-6lo-forwarding- 384 fragments-01, February 2014. 386 [RFC4944] Montenegro, G., Kushalnagar, N., Hui, J. and D. Culler, 387 "Transmission of IPv6 Packets over IEEE 802.15.4 388 Networks", RFC 4944, September 2007. 390 [RFC7102] Vasseur, JP., "Terms Used in Routing for Low-Power and 391 Lossy Networks", RFC 7102, January 2014. 393 Author's Address 395 Pascal Thubert, editor 396 Cisco Systems 397 Village d'Entreprises Green Side 398 400, Avenue de Roumanille 399 Batiment T3 400 Biot - Sophia Antipolis, 06410 401 FRANCE 403 Phone: +33 4 97 23 26 34 404 Email: pthubert@cisco.com