idnits 2.17.1 draft-ietf-6lo-multicast-registration-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: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- -- The draft header indicates that this document updates RFC9010, but the abstract doesn't seem to directly say this. It does mention RFC9010 though, so this could be OK. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (21 October 2021) is 919 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) No issues found here. Summary: 0 errors (**), 0 flaws (~~), 1 warning (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 6lo P. Thubert, Ed. 3 Internet-Draft Cisco Systems 4 Updates: 6550, 8505, 9010 (if approved) 21 October 2021 5 Intended status: Standards Track 6 Expires: 24 April 2022 8 IPv6 Neighbor Discovery Multicast Address Registration 9 draft-ietf-6lo-multicast-registration-00 11 Abstract 13 This document updates RFC 8505 to enable the address registration of 14 IPv6 anycast and multicast addresses to a 6LR and updates RFC 6550 15 (RPL) add a new Non-Storing multicast mode and support for anycast 16 addresses. This document also extends RFC 9010 to enable the 6LR to 17 inject the anycast and multicast addresses in RPL. 19 Status of This Memo 21 This Internet-Draft is submitted in full conformance with the 22 provisions of BCP 78 and BCP 79. 24 Internet-Drafts are working documents of the Internet Engineering 25 Task Force (IETF). Note that other groups may also distribute 26 working documents as Internet-Drafts. The list of current Internet- 27 Drafts is at https://datatracker.ietf.org/drafts/current/. 29 Internet-Drafts are draft documents valid for a maximum of six months 30 and may be updated, replaced, or obsoleted by other documents at any 31 time. It is inappropriate to use Internet-Drafts as reference 32 material or to cite them other than as "work in progress." 34 This Internet-Draft will expire on 24 April 2022. 36 Copyright Notice 38 Copyright (c) 2021 IETF Trust and the persons identified as the 39 document authors. All rights reserved. 41 This document is subject to BCP 78 and the IETF Trust's Legal 42 Provisions Relating to IETF Documents (https://trustee.ietf.org/ 43 license-info) in effect on the date of publication of this document. 44 Please review these documents carefully, as they describe your rights 45 and restrictions with respect to this document. Code Components 46 extracted from this document must include Simplified BSD License text 47 as described in Section 4.e of the Trust Legal Provisions and are 48 provided without warranty as described in the Simplified BSD License. 50 Table of Contents 52 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 53 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 54 2.1. Requirements Language . . . . . . . . . . . . . . . . . . 4 55 2.2. References . . . . . . . . . . . . . . . . . . . . . . . 4 56 2.3. Glossary . . . . . . . . . . . . . . . . . . . . . . . . 5 57 3. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 5 58 4. Extending RFC 7400 . . . . . . . . . . . . . . . . . . . . . 8 59 5. Updating RFC 6550 . . . . . . . . . . . . . . . . . . . . . . 8 60 5.1. Updating MOP 3 . . . . . . . . . . . . . . . . . . . . . 8 61 5.2. New Non-Storing Multicast MOP . . . . . . . . . . . . . . 9 62 5.3. RPL Anycast Operation . . . . . . . . . . . . . . . . . . 9 63 5.4. New RPL Target Option Flags . . . . . . . . . . . . . . . 10 64 6. Updating RFC 8505 . . . . . . . . . . . . . . . . . . . . . . 11 65 6.1. New EARO flag . . . . . . . . . . . . . . . . . . . . . . 11 66 6.2. Registering Extensions . . . . . . . . . . . . . . . . . 12 67 7. Updating RFC 9010 . . . . . . . . . . . . . . . . . . . . . . 12 68 8. Deployment considerations . . . . . . . . . . . . . . . . . . 13 69 9. Security Considerations . . . . . . . . . . . . . . . . . . . 15 70 10. Backward Compatibility . . . . . . . . . . . . . . . . . . . 15 71 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 72 11.1. New RTO flags . . . . . . . . . . . . . . . . . . . . . 16 73 11.2. New RPL Mode of Operation . . . . . . . . . . . . . . . 16 74 11.3. New EARO flags . . . . . . . . . . . . . . . . . . . . . 16 75 11.4. New 6LoWPAN Capability Bits . . . . . . . . . . . . . . 17 76 12. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 17 77 13. Normative References . . . . . . . . . . . . . . . . . . . . 17 78 14. Informative References . . . . . . . . . . . . . . . . . . . 19 79 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 21 81 1. Introduction 83 The design of Low Power and Lossy Networks (LLNs) is generally 84 focused on saving energy, which is the most constrained resource of 85 all. Other design constraints, such as a limited memory capacity, 86 duty cycling of the LLN devices and low-power lossy transmissions, 87 derive from that primary concern. The radio (both transmitting or 88 simply listening) is a major energy drain and the LLN protocols must 89 be adapted to allow the nodes to remain sleeping with the radio 90 turned off at most times. 92 The "Routing Protocol for Low Power and Lossy Networks" [RFC6550] 93 (RPL) to provide IPv6 [RFC8200] routing services within such 94 constraints. To save signaling and routing state in constrained 95 networks, the RPL routing is only performed along a Destination- 96 Oriented Directed Acyclic Graph (DODAG) that is optimized to reach a 97 Root node, as opposed to along the shortest path between 2 peers, 98 whatever that would mean in each LLN. 100 This trades the quality of peer-to-peer (P2P) paths for a vastly 101 reduced amount of control traffic and routing state that would be 102 required to operate an any-to-any shortest path protocol. 103 Additionally, broken routes may be fixed lazily and on-demand, based 104 on dataplane inconsistency discovery, which avoids wasting energy in 105 the proactive repair of unused paths. 107 Section 12 of [RFC6550] details the "Storing Mode of Operation with 108 multicast support" with source-independent multicast routing in RPL. 110 The classical "IPv6 Neighbor Discovery (IPv6 ND) Protocol" [RFC4861] 111 [RFC4862] was defined for serial links and shared transit media such 112 as Ethernet at a time when broadcast was cheap on those media while 113 memory for neighbor cache was expensive. It was thus designed as a 114 reactive protocol that relies on caching and multicast operations for 115 the Address Discovery (aka Lookup) and Duplicate Address Detection 116 (DAD) of IPv6 unicast addresses. Those multicast operations 117 typically impact every node on-link when at most one is really 118 targeted, which is a waste of energy, and imply that all nodes are 119 awake to hear the request, which is inconsistent with power saving 120 (sleeping) modes. 122 The original 6LoWPAN ND, "Neighbor Discovery Optimizations for 123 6LoWPAN networks" [RFC6775], was introduced to avoid the excessive 124 use of multicast messages and enable IPv6 ND for operations over 125 energy-constrained nodes. [RFC6775] changes the classical IPv6 ND 126 model to proactively establish the Neighbor Cache Entry (NCE) 127 associated to the unicast address of a 6LoWPAN Node (6LN) in the a 128 6LoWPAN Router(s) (6LR) that serves it. To that effect, [RFC6775] 129 defines a new Address Registration Option (ARO) that is placed in 130 unicast Neighbor Solicitation (NS) and Neighbor Advertisement (NA) 131 messages between the 6LN and the 6LR. 133 "Registration Extensions for 6LoWPAN Neighbor Discovery" [RFC8505] 134 updates [RFC6775] into a generic Address Registration mechanism that 135 can be used to access services such as routing and ND proxy and 136 introduces the Extended Address Registration Option (EARO) for that 137 purpose. This provides a routing-agnostic interface for a host to 138 request that the router injects a unicast IPv6 address in the local 139 routing protocol and provide return reachability for that address. 141 "Routing for RPL Leaves" [RFC9010] provides the router counterpart of 142 the mechanism for a host that implements [RFC8505] to inject its 143 unicast Unique Local Addresses (ULAs) and Global Unicast Addresses 144 (GUAs) in RPL. But though RPL also provides multicast routing, 145 6LoWPAN ND supports only the registration of unicast addresses and 146 there is no equivalent of [RFC9010] to specify the 6LR behavior upon 147 the registration of one or more multicast address. 149 The "Multicast Listener Discovery Version 2 (MLDv2) for IPv6" 150 [RFC3810] enables the router to learn which node listens to which 151 multicast address, but as the classical IPv6 ND protocol, MLD relies 152 on multicasting Queries to all nodes, which is unfit for low power 153 operations. As for IPv6 ND, it makes sense to let the 6LNs control 154 when and how they maintain the state associated to their multicast 155 addresses in the 6LR, e.g., during their own wake time. In the case 156 of a constrained node that already implements [RFC8505] for unicast 157 reachability, it makes sense to extend to that support to register 158 the multicast addresses they listen to. 160 This specification extends [RFC8505] and [RFC9010] to add the 161 capability for the 6LN to register multicast addresses and for the 162 6LR to inject them in the RPL multicast support. 164 2. Terminology 166 2.1. Requirements Language 168 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 169 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 170 "OPTIONAL" in this document are to be interpreted as described in BCP 171 14 [RFC2119] [RFC8174] when, and only when, they appear in all 172 capitals, as shown here. 174 2.2. References 176 This document uses terms and concepts that are discussed in: 178 * "Neighbor Discovery for IP version 6" [RFC4861] and "IPv6 179 Stateless address Autoconfiguration" [RFC4862], 181 * Neighbor Discovery Optimization for Low-Power and Lossy Networks 182 [RFC6775], as well as 184 * "Registration Extensions for 6LoWPAN Neighbor Discovery" [RFC8505] 185 and 187 * "Using RPI Option Type, Routing Header for Source Routes, and 188 IPv6-in-IPv6 Encapsulation in the RPL Data Plane" [RFC9008]. 190 2.3. Glossary 192 This document uses the following acronyms: 194 6BBR 6LoWPAN Backbone Router 195 6BBR 6LoWPAN Border Router 196 6LN 6LoWPAN Node 197 6LR 6LoWPAN Router 198 6CIO Capability Indication Option 199 AMC Address Mapping Confirmation 200 AMR Address Mapping Request 201 ARO Address Registration Option 202 DAC Duplicate Address Confirmation 203 DAD Duplicate Address Detection 204 DAR Duplicate Address Request 205 EARO Extended Address Registration Option 206 EDAC Extended Duplicate Address Confirmation 207 EDAR Extended Duplicate Address Request 208 DODAG Destination-Oriented Directed Acyclic Graph 209 LLN Low-Power and Lossy Network 210 NA Neighbor Advertisement 211 NCE Neighbor Cache Entry 212 ND Neighbor Discovery 213 NS Neighbor Solicitation 214 ROVR Registration Ownership Verifier 215 RA Router Advertisement 216 RS Router Solicitation 217 TID Transaction ID 219 3. Overview 221 [RFC8505] is a pre-requisite to this specification. A node that 222 implements this MUST also implement [RFC8505]. This specification 223 does not introduce a new option; it modifies existing options and 224 updates the associated behaviors to enable the Registration for 225 Multicast Addresses with [RFC8505]. 227 This specification also extends [RFC6550] and [RFC9010] in the case 228 of a route-over multilink subnet based on the RPL routing protocol. 229 A 6LR that implements the RPL extensions specified therein MUST also 230 implement [RFC9010]. 232 Figure 1 illustrates the classical situation of an LLN as a single 233 IPv6 Subnet, with a 6LoWPAN Border Router (6LBR) that acts as Root 234 for RPL operations and maintains a registry of the active 235 registrations as an abstract data structure called an Address 236 Registrar for 6LoWPAN ND. 238 The LLN may be a hub-and-spoke access link such as (Low-Power) Wi-Fi 239 [IEEE Std 802.11] and Bluetooth (Low Energy) [IEEE Std 802.15.1], or 240 a Route-Over LLN such as the Wi-SUN mesh [Wi-SUN] that leverages 241 6LoWPAN [RFC4919][RFC6282] and RPL [RFC6550] over [IEEE Std 242 802.15.4]. 244 | 245 ----+-------+------------ 246 | Wire side 247 +------+ 248 | 6LBR | 249 |(Root)| 250 +------+ 251 o o o Wireless side 252 o o o o o o 253 o o o o o o o 254 o o o LLN o +---+ 255 o o o o o |6LR| 256 o o o o o +---+ 257 o o o o o o z 258 o o oo o o +---+ 259 o |6LN| 260 +---+ 262 Figure 1: Wireless Mesh 264 A leaf acting as a 6LN registers its unicast addresses to a RPL 265 router acting as a 6LR, using a unicast NS message with an EARO as 266 specified in [RFC8505]. The registration state is periodically 267 renewed by the Registering Node, before the lifetime indicated in the 268 EARO expires. 270 With this specification, the 6LNs can now register for the multicast 271 addresses they listen to, using a new M flag in the EARO to signal a 272 registration for a multicast address. Multiple 6LN can register for 273 the same multicast address to the same 6LR. Note the use of the term 274 "for", a node registers the unicast addresses that it owns, but 275 registers for multicast addresses that it listens to. 277 If the R flag is set in the registration of one or more 6LNs for the 278 same multicast address, the 6LR injects the multicast address in the 279 RPL multicast support, based on the longest registration lifetime 280 across those 6LNs. 282 In the RPL "Storing Mode of Operation with multicast support", the 283 DAO messages for the multicast address percolate along the RPL 284 preferred parent tree and mark a subtree that becomes the multicast 285 tree for that multicast address, with 6LNs that registered for it as 286 the leaves. 288 As prescribed in section 12 of [RFC6550], the 6LR forward the 289 multicast packets as individual unicast MAC frames to each child that 290 advertised the multicast address in its DAO message. In most LLNs a 291 broadcast is unreliable (no ack) and forces a listener to remain 292 awake, so it is expected that the 6LR also delivers the multicast 293 packet as individual unicast MAC frames to each of the 6LNs that 294 registered for the multicast address. 296 In the new RPL "Non-Storing Mode of Operation with multicast support" 297 that is introduced here, the DAO messages register multicast 298 addresses as Targets, though never as Transit. The multicast 299 distribution is hub-and-spoke from the Root to all the 6LRs that are 300 transit for the multicast address, using the same source-routing 301 header as for unicast targets attached to the 6LR, but for the 302 ultimate entry that is the multicast address. 304 With this specification, the 6LNs can also register for the anycast 305 addresses they listen to, using a new A flag in the EARO to signal a 306 registration for an anycast address. Multiple 6LN can register for 307 the same anycast address to the same 6LR, but the RPL routing ensures 308 that only one of the 6LN gets the particular packet. 310 It is also possible to leverage this specification between the 6LN 311 and the 6LR for the registration of an anycast or a multicast 312 addresses in networks that are not necessarily LLNs, and/or where the 313 routing protocol between the 6LR and above is not necessarily RPL. 315 For instance, it is possible to operate a RPL Instance in the new 316 "Non-Storing Mode of Operation with multicast support" and use 317 "Multicast Protocol for Low-Power and Lossy Networks (MPL)" [RFC7731] 318 for the multicast operation. MPL floods the DODAG with the multicast 319 messages independently of the RPL DODAG topologies. Two variations 320 are possible: 322 * In one possible variation, all the 6LNs set the R flag in the EARO 323 for a multicast target, upon which the 6LR sends a unicast DAO 324 message to the Root; in that case, the Root can filter the 325 multicast messages for which there is no listener and only flood 326 the relevant multicasts. 328 * In a simpler variation, the 6LNs do not set the R flag and the 329 Root floods all the multicast packets over the whole DODAG. 331 4. Extending RFC 7400 333 This specification defines a new capability bit for use in the 6CIO 334 as defined by "6LoWPAN-GHC: Generic Header Compression for IPv6 over 335 Low-Power Wireless Personal Area Networks (6LoWPANs)" [RFC7400] and 336 extended in [RFC8505] for use in IPv6 ND messages. 338 The new "Registration for Multicast Address Supported" (M) flag 339 indicates to the 6LN that the 6LR accepts multicast address 340 registrations as specified in this document and will ensure that 341 packets for the multicast Registered Address will be routed to the 342 6LNs that registered with the R flag set. 344 Figure 2 illustrates the M flag in its suggested position (8, 345 counting 0 to 15 in network order in the 16-bit array), to be 346 confirmed by IANA. 348 0 1 2 3 349 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 350 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 351 | Type | Length = 1 | Reserved |M|A|D|L|B|P|E|G| 352 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 353 | Reserved | 354 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 356 Figure 2: New Capability Bits in the 6CIO 358 New Option Field: 360 M 1-bit flag: "Registration for Multicast and Anycast Addresses 361 Supported" 363 5. Updating RFC 6550 365 5.1. Updating MOP 3 367 RPL supports multicast operations in the "Storing Mode of Operation 368 with multicast support" (MOP 3) which provides source-independent 369 multicast routing in RPL, as prescribed in section 12 of [RFC6550]. 370 MOP 3 is a storing Mode of Operation. This operation builds a 371 multicast tree within the RPL DODAG for each multicast address. This 372 specification provides additional details for the MOP 3 operation. 374 The expectation in MOP 3 is that the unicast traffic also follows the 375 Storing Mode of Operation. But this is rarely the case in LLN 376 deployments of RPL where the "Non-Storing Mode of Operation" (MOP 1) 377 is the norm. Though it is preferred to build separate RPL Instances, 378 one in MOP 1 and one in MOP 3, this specification allows to hybrid 379 the Storing Mode for multicast and Non-Storing Mode for unicast in 380 the same RPL Instance, more in Section 8. 382 5.2. New Non-Storing Multicast MOP 384 This specification adds a "Non-Storing Mode of Operation with 385 multicast support" (MOP to be assigned by IANA) whereby the non- 386 storing Mode DAO to the Root may contain multicast addresses in the 387 RTO, whereas the Transit Information Option (TIO) can not. In that 388 case, the RPL Root copies the multicast packet to each 6LR that is a 389 transit for the multicast target, using the same source routing 390 header as for unicast address of a RPL Unaware Leaf (RUL) attached to 391 that 6LR. 393 For a packet that is generated by the Root, this means that the Root 394 builds a source routing header as discussed in section 8.1.3 of 395 [RFC9008], but for which the last and only the last address is 396 multicast. For a packet that is not generated by the Root,the Root 397 encapsulates the multicast packet as discussed in section 8.2.4 of 398 [RFC9008]. 400 For this new mode as well, this specification allows to enable the 401 operation in a MOP 1 brown field, more in Section 8. 403 5.3. RPL Anycast Operation 405 With multicast, the address has a recognizable format, and a 406 multicast packet is to be delivered to all the registered listeners. 407 In contrast with anycast, the format of the address may not be 408 distinguishable from unicast. In fact, an external destination 409 (address or prefix) that may be injected from multiple border routers 410 MUST be injected as anycast in RPL. 412 For both multicast and anycast, there is no concept of duplication, 413 and there might be multiple registrations from multiple parties, each 414 using a different value of the ROVR field that identifies that 415 registration. The 6LR MUST conserve one registration per value of 416 the ROVR per multicast or anycast address, but inject the route into 417 RPL only once for each address. Since the registrations are 418 considered separate, the check on the TID that acts as registration 419 sequence only applies to the registration with the same ROVR. 421 The 6LRs that inject multicast and anycast routes into RPL may not be 422 synchronized to advertise same value of the Path Sequence in the RPL 423 TIO. It results that the value the Path Sequence is irrelevant when 424 the target is anycast or multicast, and that it MUST be ignored. 425 Like the 6LR, a RPL router in Storing Mode propagates the route to 426 its parent(s) in DAO messages once and only once for each address, 427 but it MUST retain a routing table entry for each of the children 428 that advertised the address. Note that typically the router 429 advertises the multicast and anycast addresses only to its preferred 430 parents, in which case the resulting routes form a tree down the 431 DODAG. 433 When forwarding multicast packets down the DODAG, the RPL router MUST 434 copy all the children that advertised the address in their DAO 435 messages. In contrast, when forwarding anycast packets down the 436 DODAG, the RPL router MUST copy one and only one of the children that 437 advertised the address in their DAO messages. Typically this is done 438 through MAC-Layer unicast which makes the operation more reliable. 440 5.4. New RPL Target Option Flags 442 [RFC6550] recognizes a multicast address by its format (as specified 443 in section 2.7 of [RFC4291]) and applies the specified multicast 444 operation if the address is recognized as multicast. This 445 specification updates [RFC6550] to add the M and A flags to the RTO 446 to indicate that the target address is to be processed as multicast 447 or anycast, respectively. 449 An RTO that has the M flag set is called a multicast RTO. An RTO 450 that has the A flag set is called an anycast RTO. An RTO that has 451 neither M nor A flag set is called a unicast RTO. The M and A flags 452 are mutually exclusive and MUST NOT be both set. 454 The suggested position for the A and M flags are 2 and 3 counting 455 from 0 to 7 in network order as shown in Figure 3, based on figure 4 456 of [RFC9010] which defines the flags in position 0 and 1: 458 0 1 2 3 459 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 460 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 461 | Type = 0x05 | Option Length |F|X|A|M|ROVRsz | Prefix Length | 462 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 463 | | 464 | Target Prefix (Variable Length) | 465 . . 466 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 467 | | 468 ... Registration Ownership Verifier (ROVR) ... 469 | | 470 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 472 Figure 3: Format of the RPL Target Option 474 6. Updating RFC 8505 476 6.1. New EARO flag 478 Section 4.1 of [RFC8505] defines the EARO as an extension to the ARO 479 option defined in [RFC6775]. 481 This specification adds a new M flag to the EARO flags field to 482 signal that the Registered Address is a multicast address. When both 483 the M and the R flags are set, the 6LR that conforms to this 484 specification joins the multicast stream, e.g., by injecting the 485 address in the RPL multicast support which is extended in this 486 specification for Non-Storing Mode. 488 This specification adds a new A flag to the EARO flags field to 489 signal that the Registered Address is an anycast address. When both 490 the A and the R flags are set, the 6LR that conforms to this 491 specification injects the anycast address in the RPL anycast support 492 that is introduced in this specification for both Storing and Non- 493 Storing Modes. 495 Figure 4 illustrates the A and M flags in their suggested positions 496 (2 and 3, respectively, counting 0 to 7 in network order in the 8-bit 497 array), to be confirmed by IANA. 499 0 1 2 3 500 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 501 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 502 | Type | Length | Status | Opaque | 503 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 504 |Rsv|A|M| I |R|T| TID | Registration Lifetime | 505 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 506 | | 507 ... Registration Ownership Verifier ... 508 | | 509 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 511 Figure 4: EARO Option Format 513 New and updated Option Fields: 515 Rsv 2-bit field: reserved, MUST be set to 0 and ignored by the 516 receiver 518 A 1-bit flag: "Registration for Anycast Address" 520 M 1-bit flag: "Registration for Multicast Address" 522 6.2. Registering Extensions 524 With [RFC8505]: 526 * Only unicast addresses can be registered. 528 * The 6LN must register all its ULA and GUA with a NS(EARO). 530 * The 6LN may set the R flag in the EARO to obtain return 531 reachability services by the 6LR, e.g., through ND proxy 532 operations, or by injecting the route in a route-over subnet. 534 * the 6LR maintains a registration state per Registered Address, 535 including an NCE with the Link Layer Address (LLA) of the 536 Registered Node (the 6LN here). 538 This specification adds the following behavior: 540 * Registration for multicast and anycast addresses is now supported. 542 * The 6LN MUST also register all the IPv6 multicast addresses that 543 it listens to and it MUST set the M flag in the EARO for those 544 addresses. 546 * The 6LN MAY set the R flag in the EARO to obtain the delivery of 547 the multicast packets by the 6LR, e.g., by MLD proxy operations, 548 or by injecting the address in a route-over subnet or in the 549 Protocol Independent Multicast [RFC7761] protocol. 551 * The 6LN MUST also register all the IPv6 anycast addresses that it 552 supports and it MUST set the A flag in the EARO for those 553 addresses. 555 * The Registration Ownership Verifier (ROVR) in the EARO identifies 556 uniquely a registration within the namespace of the Registered 557 Address. The 6LR MUST maintain a registration state per tuple 558 (IPv6 address, ROVR) for both anycast and multicast types of 559 address, since multiple 6LNs may register for the same address of 560 these types. 562 7. Updating RFC 9010 564 With [RFC9010]: 566 * The 6LR injects only unicast routes in RPL 568 * upon a registration with the R flag set to 1 in the EARO, the 6LR 569 injects the address in the RPL unicast support. 571 * Upon receiving a packet directed to a unicast address for which it 572 has an active registration, the 6LR delivers the packet as a 573 unicast layer-2 frame to the LLA the nodes that registered the 574 unicast address. 576 This specification adds the following behavior: 578 * Upon a registration with the R and the M flags set to 1 in the 579 EARO, the 6LR injects the address in the RPL multicast support. 581 * Upon receiving a packet directed to a multicast address for which 582 it has at least one registration, the 6LR delivers a copy of the 583 packet as a unicast layer-2 frame to the LLA of each of the nodes 584 that registered to that multicast address. 586 8. Deployment considerations 588 With this specification, a RPL DODAG forms a realm, and multiple RPL 589 DODAGs may federated in a single RPL Instance administratively. This 590 means that a multicast address that needs to span a RPL DODAG MUST 591 use a scope of Realm-Local whereas a multicast address that needs to 592 span a RPL Instance MUST use a scope of Admin-Local as discussed in 593 section 3 of "IPv6 Multicast Address Scopes" [RFC7346]. 595 "IPv6 Addressing of IPv4/IPv6 Translators" [RFC6052] enables to embed 596 IPv4 addresses in IPv6 addresses. The Root of a DODAG may leverage 597 that technique to translate IPv4 traffic in IPv6 and route along the 598 RPL domain. When encapsulating an packet with an IPv4 multicast 599 Destination Address, it MUST use form a multicast address and use the 600 appropriate scope, Realm-Local or Admin-Local. 602 "Unicast-Prefix-based IPv6 Multicast Addresses" [RFC3306] enables to 603 form 2^32 multicast addresses from a single /64 prefix. If an IPv6 604 prefix is associated to an Instance or a RPL DODAG, this provides a 605 namespace that can be used in any desired fashion. It is for 606 instance possible for a standard defining organization to form its 607 own registry and allocate 32-bit values from that namespace to 608 network functions or device types. When used within a RPL deployment 609 that is associated with a /64 prefix the IPv6 multicast addresses can 610 be automatically derived from the prefix and the 32-bit value for 611 either a Realm-Local or an Admin-Local multicast address as needed in 612 the configuration. 614 IN a "green field" deployment where all nodes support this 615 specification, it is possible to deploy a single RPL Instance using a 616 multicast MOP for unicast, multicast and anycast addresses. 618 In a "brown field" where legacy devices that do not support this 619 specification co-exist with upgraded devices, it is RECOMMENDED to 620 deploy one RPL Instance in any Mode of Operation (typically MOP 1) 621 for unicast that legacy nodes can join, and a separate RPL Instance 622 dedicated to multicast and anycast operations using a multicast MOP. 624 To deploy a Storing Mode multicast operation using MOP 3 in a RPL 625 domain, it is required that there is enough density of RPL routers 626 that support MOP 3 to build a DODAG that covers all the potential 627 listeners and include the spanning multicast trees that are needed to 628 distribute the multicast flows. This might not be the case when 629 extending the capabilities of an existing network. 631 In the case of the new Non-Storing multicast MOP, arguably the new 632 support is only needed at the 6LRs that will accept multicast 633 listeners. It is still required that each listener can reach at 634 least one such 6LR, so the upgraded 6LRs must be deployed to cover 635 all the 6LN that need multicast services. 637 Using separate RPL Instances for in the one hand unicast traffic and 638 in the other hand anycast and multicast traffic allows to use 639 different objective function, one favoring the link quality up for 640 unicast collection and one favoring downwards link quality for 641 multicast distribution. 643 But this might be impractical in some use cases where the signaling 644 and the state to be installed in the devices are very constrained, 645 the upgraded devices are too sparse, or the devices do not support 646 more multiple instances. 648 When using a single RPL Instance, MOP 3 expects the Storing Mode of 649 Operation for both unicast and multicast, which is an issue in 650 constrained networks that typically use MOP 1 for unicast. This 651 specification allows a mixed mode that is signaled as MOP 1 in the 652 DIO messages for backward compatibility, where limited multicast and/ 653 or anycast is available, under the following conditions: 655 * There MUST be enough density of 6LRs that support the mixed mode 656 to cover the all the 6LNs that require multicast or anycast 657 services. In Storing Mode, there MUST be enough density or 6LR 658 that support the mixed mode to also form a DODAG to the Root. 660 * The RPL routers that support the mixed mode and are configured to 661 operate in in accordance with the desired operation in the 662 network. 664 * The MOP signaled in the RPL DODAG Information Object (DIO) 665 messages is MOP 1 to enable the legacy nodes to operate as leaves. 667 * The support of multicast and/or anycast in the RPL Instance SHOULD 668 be signaled by the 6LRs to the 6LN using a 6CIO, see Section 4. 670 * Alternatively, the support of multicast in the RPL domain can be 671 globally known by other means such as configuration or external 672 information such as support of a version of an industry standard 673 that mandates it. In that case, all the routers MUST support the 674 mixed mode. 676 9. Security Considerations 678 This specification extends [RFC8505], and the security section of 679 that document also applies to this document. In particular, the link 680 layer SHOULD be sufficiently protected to prevent rogue access. 682 10. Backward Compatibility 684 A legacy 6LN will not register multicast addresses and the service 685 will be the same when the network is upgraded. A legacy 6LR will not 686 set the M flag in the 6CIO and an upgraded 6LN will not register 687 multicast addresses. 689 As detailed in Section 8, it is possible to add multicast on an 690 existing MOP 1 deployment, 692 The combination of a multicast address and the M flag set to 0 in an 693 RTO in a MOP 3 RPL Instance is understood by the receiver that 694 supports this specification (the parent) as an indication that the 695 sender (child) does not support this specification, but the RTO is 696 accepted and processed as if the M flag was set for backward 697 compatibility. 699 When the DODAG is operated in MOP 3, a legacy node will not set the M 700 flag and still expect multicast service as specified in section 12 of 701 [RFC6550]. In MOP 3 an RTO that is received with a target that is 702 multicast and the M bit set to 0 MUST be considered as multicast and 703 MUST be processed as if the M flag is set. 705 11. IANA Considerations 707 Note to RFC Editor, to be removed: please replace "This RFC" 708 throughout this document by the RFC number for this specification 709 once it is allocated. Also, the I Field is defined in RFC 9010 but 710 we failed to insert it in the subregistry and the flags appear as 711 unspecified though they are. 713 IANA is requested to make changes under the "Internet Control Message 714 Protocol version 6 (ICMPv6) Parameters" [IANA.ICMP] and the "Routing 715 Protocol for Low Power and Lossy Networks (RPL)" [IANA.RPL] 716 registries, as follows: 718 11.1. New RTO flags 720 IANA is requested to make additions to the "RPL Target Option Flags" 721 [IANA.RPL.RTO.FLG] subregistry of the "Routing Protocol for Low Power 722 and Lossy Networks (RPL)" registry as indicated in Table 1: 724 +---------------+---------------------------------------+-----------+ 725 | Bit Number | Meaning | Reference | 726 +---------------+---------------------------------------+-----------+ 727 | 2 (suggested) | A flag: Target is an Anycast Address | This RFC | 728 +---------------+---------------------------------------+-----------+ 729 | 3 (suggested) | M flag: Target is a Multicast | This RFC | 730 | | Address | | 731 +---------------+---------------------------------------+-----------+ 733 Table 1: New RTO flags 735 11.2. New RPL Mode of Operation 737 IANA is requested to make an addition to the "Mode of Operation" 738 [IANA.RPL.MOP] subregistry of the "Routing Protocol for Low Power and 739 Lossy Networks (RPL)" registry as indicated in Table 2: 741 +---------------+-------------------------------+-----------+ 742 | Value | Description | Reference | 743 +---------------+-------------------------------+-----------+ 744 | 5 (suggested) | Non-Storing Mode of Operation | This RFC | 745 | | with multicast support | | 746 +---------------+-------------------------------+-----------+ 748 Table 2: New RPL Mode of Operation 750 11.3. New EARO flags 752 IANA is requested to make additions to the "Address Registration 753 Option Flags" [IANA.ICMP.ARO.FLG] of the "Internet Control Message 754 Protocol version 6 (ICMPv6) Parameters" registry as indicated in 755 Table 3: 757 +---------------+-----------------------+-----------+ 758 | ARO flag | Meaning | Reference | 759 +---------------+-----------------------+-----------+ 760 | 2 (suggested) | A flag: Registration | This RFC | 761 | | for Anycast Address | | 762 +---------------+-----------------------+-----------+ 763 | 3 (suggested) | M flag: Registration | This RFC | 764 | | for Multicast Address | | 765 +---------------+-----------------------+-----------+ 766 | 4 and 5 | "I" Field | RFC 8505 | 767 +---------------+-----------------------+-----------+ 769 Table 3: New ARO flags 771 11.4. New 6LoWPAN Capability Bits 773 IANA is requested to make an addition to the "6LoWPAN Capability 774 Bits" [IANA.ICMP.6CIO] subregistry subregistry of the "Internet 775 Control Message Protocol version 6 (ICMPv6) Parameters" registry as 776 indicated in Table 4: 778 +----------------+------------------------------------+-----------+ 779 | Capability Bit | Meaning | Reference | 780 +----------------+------------------------------------+-----------+ 781 | 8 (suggested) | M flag: Registration for Multicast | This RFC | 782 | | and Anycast Addresses Supported | | 783 +----------------+------------------------------------+-----------+ 785 Table 4: New 6LoWPAN Capability Bits 787 12. Acknowledgments 789 13. Normative References 791 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 792 Requirement Levels", BCP 14, RFC 2119, 793 DOI 10.17487/RFC2119, March 1997, 794 . 796 [RFC3306] Haberman, B. and D. Thaler, "Unicast-Prefix-based IPv6 797 Multicast Addresses", RFC 3306, DOI 10.17487/RFC3306, 798 August 2002, . 800 [RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing 801 Architecture", RFC 4291, DOI 10.17487/RFC4291, February 802 2006, . 804 [RFC4861] Narten, T., Nordmark, E., Simpson, W., and H. Soliman, 805 "Neighbor Discovery for IP version 6 (IPv6)", RFC 4861, 806 DOI 10.17487/RFC4861, September 2007, 807 . 809 [RFC4862] Thomson, S., Narten, T., and T. Jinmei, "IPv6 Stateless 810 Address Autoconfiguration", RFC 4862, 811 DOI 10.17487/RFC4862, September 2007, 812 . 814 [RFC6550] Winter, T., Ed., Thubert, P., Ed., Brandt, A., Hui, J., 815 Kelsey, R., Levis, P., Pister, K., Struik, R., Vasseur, 816 JP., and R. Alexander, "RPL: IPv6 Routing Protocol for 817 Low-Power and Lossy Networks", RFC 6550, 818 DOI 10.17487/RFC6550, March 2012, 819 . 821 [RFC6775] Shelby, Z., Ed., Chakrabarti, S., Nordmark, E., and C. 822 Bormann, "Neighbor Discovery Optimization for IPv6 over 823 Low-Power Wireless Personal Area Networks (6LoWPANs)", 824 RFC 6775, DOI 10.17487/RFC6775, November 2012, 825 . 827 [RFC7346] Droms, R., "IPv6 Multicast Address Scopes", RFC 7346, 828 DOI 10.17487/RFC7346, August 2014, 829 . 831 [RFC7400] Bormann, C., "6LoWPAN-GHC: Generic Header Compression for 832 IPv6 over Low-Power Wireless Personal Area Networks 833 (6LoWPANs)", RFC 7400, DOI 10.17487/RFC7400, November 834 2014, . 836 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 837 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 838 May 2017, . 840 [RFC8200] Deering, S. and R. Hinden, "Internet Protocol, Version 6 841 (IPv6) Specification", STD 86, RFC 8200, 842 DOI 10.17487/RFC8200, July 2017, 843 . 845 [RFC8505] Thubert, P., Ed., Nordmark, E., Chakrabarti, S., and C. 846 Perkins, "Registration Extensions for IPv6 over Low-Power 847 Wireless Personal Area Network (6LoWPAN) Neighbor 848 Discovery", RFC 8505, DOI 10.17487/RFC8505, November 2018, 849 . 851 [RFC9010] Thubert, P., Ed. and M. Richardson, "Routing for RPL 852 (Routing Protocol for Low-Power and Lossy Networks) 853 Leaves", RFC 9010, DOI 10.17487/RFC9010, April 2021, 854 . 856 [IANA.ICMP] 857 IANA, "IANA Registry for ICMPv6", IANA, 858 https://www.iana.org/assignments/icmpv6-parameters/ 859 icmpv6-parameters.xhtml. 861 [IANA.ICMP.ARO.FLG] 862 IANA, "IANA Sub-Registry for the ARO Flags", IANA, 863 https://www.iana.org/assignments/icmpv6-parameters/ 864 icmpv6-parameters.xhtml#icmpv6-adress-registration-option- 865 flags. 867 [IANA.ICMP.6CIO] 868 IANA, "IANA Sub-Registry for the 6LoWPAN Capability Bits", 869 IANA, https://www.iana.org/assignments/icmpv6-parameters/ 870 icmpv6-parameters.xhtml#sixlowpan-capability-bits. 872 [IANA.RPL] IANA, "IANA Registry for the RPL", 873 IANA, https://www.iana.org/assignments/rpl/rpl.xhtml. 875 [IANA.RPL.RTO.FLG] 876 IANA, "IANA Sub-Registry for the RTO Flags", IANA, 877 https://www.iana.org/assignments/rpl/rpl.xhtml#rpl-target- 878 option-flags. 880 [IANA.RPL.MOP] 881 IANA, "IANA Sub-Registry for the RPL Mode of Operation", 882 IANA, https://www.iana.org/assignments/rpl/rpl.xhtml#mop. 884 14. Informative References 886 [RFC3810] Vida, R., Ed. and L. Costa, Ed., "Multicast Listener 887 Discovery Version 2 (MLDv2) for IPv6", RFC 3810, 888 DOI 10.17487/RFC3810, June 2004, 889 . 891 [RFC4919] Kushalnagar, N., Montenegro, G., and C. Schumacher, "IPv6 892 over Low-Power Wireless Personal Area Networks (6LoWPANs): 893 Overview, Assumptions, Problem Statement, and Goals", 894 RFC 4919, DOI 10.17487/RFC4919, August 2007, 895 . 897 [RFC6282] Hui, J., Ed. and P. Thubert, "Compression Format for IPv6 898 Datagrams over IEEE 802.15.4-Based Networks", RFC 6282, 899 DOI 10.17487/RFC6282, September 2011, 900 . 902 [RFC7731] Hui, J. and R. Kelsey, "Multicast Protocol for Low-Power 903 and Lossy Networks (MPL)", RFC 7731, DOI 10.17487/RFC7731, 904 February 2016, . 906 [RFC7761] Fenner, B., Handley, M., Holbrook, H., Kouvelas, I., 907 Parekh, R., Zhang, Z., and L. Zheng, "Protocol Independent 908 Multicast - Sparse Mode (PIM-SM): Protocol Specification 909 (Revised)", STD 83, RFC 7761, DOI 10.17487/RFC7761, March 910 2016, . 912 [RFC6052] Bao, C., Huitema, C., Bagnulo, M., Boucadair, M., and X. 913 Li, "IPv6 Addressing of IPv4/IPv6 Translators", RFC 6052, 914 DOI 10.17487/RFC6052, October 2010, 915 . 917 [RFC9008] Robles, M.I., Richardson, M., and P. Thubert, "Using RPI 918 Option Type, Routing Header for Source Routes, and IPv6- 919 in-IPv6 Encapsulation in the RPL Data Plane", RFC 9008, 920 DOI 10.17487/RFC9008, April 2021, 921 . 923 [Wi-SUN] Heile, B., (Remy), B. L., Zhang, M., and C. E. Perkins, 924 "Wi-SUN FAN Overview", Work in Progress, Internet-Draft, 925 draft-heile-lpwan-wisun-overview-00, 3 July 2017, 926 . 929 [IEEE Std 802.15.4] 930 IEEE standard for Information Technology, "IEEE Std 931 802.15.4, Part. 15.4: Wireless Medium Access Control (MAC) 932 and Physical Layer (PHY) Specifications for Low-Rate 933 Wireless Personal Area Networks". 935 [IEEE Std 802.11] 936 IEEE standard for Information Technology, "IEEE Standard 937 802.11 - IEEE Standard for Information Technology - 938 Telecommunications and information exchange between 939 systems Local and metropolitan area networks - Specific 940 requirements - Part 11: Wireless LAN Medium Access Control 941 (MAC) and Physical Layer (PHY) Specifications.", 942 . 944 [IEEE Std 802.15.1] 945 IEEE standard for Information Technology, "IEEE Standard 946 for Information Technology - Telecommunications and 947 Information Exchange Between Systems - Local and 948 Metropolitan Area Networks - Specific Requirements. - Part 949 15.1: Wireless Medium Access Control (MAC) and Physical 950 Layer (PHY) Specifications for Wireless Personal Area 951 Networks (WPANs)". 953 Author's Address 955 Pascal Thubert (editor) 956 Cisco Systems, Inc 957 Building D 958 45 Allee des Ormes - BP1200 959 06254 Mougins - Sophia Antipolis 960 France 962 Phone: +33 497 23 26 34 963 Email: pthubert@cisco.com