idnits 2.17.1 draft-ietf-6lo-multicast-registration-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: ---------------------------------------------------------------------------- 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 (22 October 2021) is 914 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) 22 October 2021 5 Intended status: Standards Track 6 Expires: 25 April 2022 8 IPv6 Neighbor Discovery Multicast Address Listener Registration 9 draft-ietf-6lo-multicast-registration-01 11 Abstract 13 This document updates RFC 8505 to enable a listener to subscribe to 14 an IPv6 anycast or multicast address; the draft updates RFC 6550 15 (RPL) to 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 25 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 . . . . . . . . . . . . . . . . . . . . . . 9 60 5.1. Updating MOP 3 . . . . . . . . . . . . . . . . . . . . . 9 61 5.2. New Non-Storing Multicast MOP . . . . . . . . . . . . . . 9 62 5.3. RPL Anycast Operation . . . . . . . . . . . . . . . . . . 10 63 5.4. New RPL Target Option Flags . . . . . . . . . . . . . . . 11 64 6. Updating RFC 8505 . . . . . . . . . . . . . . . . . . . . . . 11 65 6.1. New EARO flag . . . . . . . . . . . . . . . . . . . . . . 11 66 6.2. Registering Extensions . . . . . . . . . . . . . . . . . 12 67 7. Updating RFC 9010 . . . . . . . . . . . . . . . . . . . . . . 13 68 8. Deployment considerations . . . . . . . . . . . . . . . . . . 14 69 9. Security Considerations . . . . . . . . . . . . . . . . . . . 16 70 10. Backward Compatibility . . . . . . . . . . . . . . . . . . . 16 71 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16 72 11.1. New RTO flags . . . . . . . . . . . . . . . . . . . . . 17 73 11.2. New RPL Mode of Operation . . . . . . . . . . . . . . . 17 74 11.3. New EARO flags . . . . . . . . . . . . . . . . . . . . . 17 75 11.4. New 6LoWPAN Capability Bits . . . . . . . . . . . . . . 18 76 12. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 18 77 13. Normative References . . . . . . . . . . . . . . . . . . . . 18 78 14. Informative References . . . . . . . . . . . . . . . . . . . 20 79 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 22 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 IR Ingress Replication 210 LLN Low-Power and Lossy Network 211 NA Neighbor Advertisement 212 NCE Neighbor Cache Entry 213 ND Neighbor Discovery 214 NS Neighbor Solicitation 215 ROVR Registration Ownership Verifier 216 RTO RPL Target Option 217 RA Router Advertisement 218 RS Router Solicitation 219 TID Transaction ID 220 TIO Transit Information Option 222 3. Overview 224 [RFC8505] is a pre-requisite to this specification. A node that 225 implements this MUST also implement [RFC8505]. This specification 226 does not introduce a new option; it modifies existing options and 227 updates the associated behaviors to enable the Registration for 228 Multicast Addresses as an extension to [RFC8505]. 230 This specification also extends [RFC6550] and [RFC9010] in the case 231 of a route-over multilink subnet based on the RPL routing protocol, 232 to add multicast ingress replication in Non-Storing Mode and anycast 233 support in both Storing and Non-Storing modes. A 6LR that implements 234 the RPL extensions specified therein MUST also implement [RFC9010]. 236 Figure 1 illustrates the classical situation of an LLN as a single 237 IPv6 Subnet, with a 6LoWPAN Border Router (6LBR) that acts as Root 238 for RPL operations and maintains a registry of the active 239 registrations as an abstract data structure called an Address 240 Registrar for 6LoWPAN ND. 242 The LLN may be a hub-and-spoke access link such as (Low-Power) Wi-Fi 243 [IEEE Std 802.11] and Bluetooth (Low Energy) [IEEE Std 802.15.1], or 244 a Route-Over LLN such as the Wi-SUN mesh [Wi-SUN] that leverages 245 6LoWPAN [RFC4919][RFC6282] and RPL [RFC6550] over [IEEE Std 246 802.15.4]. 248 | 249 ----+-------+------------ 250 | Wire side 251 +------+ 252 | 6LBR | 253 |(Root)| 254 +------+ 255 o o o Wireless side 256 o o o o o o 257 o o o o o o o 258 o o o LLN o +---+ 259 o o o o o |6LR| 260 o o o o o +---+ 261 o o o o o o z 262 o o oo o o +---+ 263 o |6LN| 264 +---+ 266 Figure 1: Wireless Mesh 268 A leaf acting as a 6LN registers its unicast addresses to a RPL 269 router acting as a 6LR, using a unicast NS message with an EARO as 270 specified in [RFC8505]. The registration state is periodically 271 renewed by the Registering Node, before the lifetime indicated in the 272 EARO expires. 274 With this specification, the 6LNs can now subscribe to the multicast 275 addresses they listen to, using a new M flag in the EARO to signal 276 that the registration is for a multicast address. Multiple 6LN may 277 subscribe to the same multicast address to the same 6LR. Note the 278 use of the term "subscribe": using the EARO registration mechanism, a 279 node registers the unicast addresses that it owns, but subscribes to 280 the multicast addresses that it listens to. 282 With this specification, the 6LNs can also resgister the anycast 283 addresses they accept, using a new A flag in the EARO to signal that 284 the registration is for an anycast address. As for multicast, 285 multiple 6LN may register the same anycast address to the same 6LR. 287 If the R flag is set in the registration of one or more 6LNs for the 288 same address, the 6LR injects the anycast and multicast addresses in 289 RPL, based on the longest registration lifetime across the active 290 registrations for the address. 292 In the RPL "Storing Mode of Operation with multicast support", the 293 DAO messages for the multicast address percolate along the RPL 294 preferred parent tree and mark a subtree that becomes the multicast 295 tree for that multicast address, with 6LNs that subscribed to the 296 address as the leaves. As prescribed in section 12 of [RFC6550], the 297 6LR forwards a multicast packet as an individual unicast MAC frame to 298 each peer along the multicast tree, excepting to the node it received 299 the packet from. 301 In the new RPL "Non-Storing Mode of Operation with multicast support" 302 that is introduced here, the DAO messages announce the multicast 303 addresses as Targets though never as Transit. The multicast 304 distribution is an ingress replication whereby the Root encapsulates 305 the multicast packets to all the 6LRs that are transit for the 306 multicast address, using the same source-routing header as for 307 unicast targets attached to the respective 6LRs. 309 Broadcasting is typically unreliable in LLNs (no ack) and forces a 310 listener to remain awake, so it generally discouraged. The 311 expectation is thus that in either mode, the 6LRs deliver the 312 multicast packets as individual unicast MAC frames to each of the 313 6LNs that subscribed to the multicast address. 315 With this specification, anycast addresses can be injected in RPL in 316 both Storing and Non-Storing modes. In Storing Mode the RPL router 317 accepts DAO from multiple children for the same anycast address, but 318 only forwards a packet to one of the children. In Non-Storing Mode, 319 the Root maintains the list of all the RPL nodes that announced the 320 anycast address as Target, but forwards a given packet to only one of 321 them. 323 For backward compatibility, this specification allows to build a 324 single DODAG signaled as MOP 1, that conveys anycast, unicast and 325 multicast packets using the same source routing mechanism, more in 326 Section 8. 328 It is also possible to leverage this specification between the 6LN 329 and the 6LR for the registration of unicast, anycast and multicast 330 IPv6 addresses in networks that are not necessarily LLNs, and/or 331 where the routing protocol between the 6LR and above is not 332 necessarily RPL. In that case, the distribution of packets between 333 the 6LR and the 6LNs may effectively rely on a broadcast or multicast 334 support at the lower layer. 336 For instance, it is possible to operate a RPL Instance in the new 337 "Non-Storing Mode of Operation with multicast support" (while 338 possibly signaling a MOP of 1) and use "Multicast Protocol for 339 Low-Power and Lossy Networks (MPL)" [RFC7731] for the multicast 340 operation. MPL floods the DODAG with the multicast messages 341 independently of the RPL DODAG topologies. Two variations are 342 possible: 344 * In one possible variation, all the 6LNs set the R flag in the EARO 345 for a multicast target, upon which the 6LRs send a unicast DAO 346 message to the Root; the Root filters out the multicast messages 347 for which there is no listener and only floods when there is. 349 * In a simpler variation, the 6LNs do not set the R flag and the 350 Root floods all the multicast packets over the whole DODAG. Using 351 configuration, it is also possible to control the behavior of the 352 6LR to ignore the R flag and either always or never send the DAO 353 message, and/or to control the Root and specify which groups it 354 should flood or not flood. 356 Note that if the configuration instructs the 6LR not to send the DAO, 357 then MPL can really by used in conjunction with RPL Storing Mode as 358 well. 360 4. Extending RFC 7400 362 This specification defines a new capability bit for use in the 6CIO 363 as defined by "6LoWPAN-GHC: Generic Header Compression for IPv6 over 364 Low-Power Wireless Personal Area Networks (6LoWPANs)" [RFC7400] and 365 extended in [RFC8505] for use in IPv6 ND messages. 367 The new "Registration for Multicast Address Supported" (M) flag 368 indicates to the 6LN that the 6LR accepts multicast address 369 registrations as specified in this document and will ensure that 370 packets for the multicast Registered Address will be routed to the 371 6LNs that registered with the R flag set. 373 Figure 2 illustrates the M flag in its suggested position (8, 374 counting 0 to 15 in network order in the 16-bit array), to be 375 confirmed by IANA. 377 0 1 2 3 378 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 379 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 380 | Type | Length = 1 | Reserved |M|A|D|L|B|P|E|G| 381 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 382 | Reserved | 383 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 385 Figure 2: New Capability Bits in the 6CIO 387 New Option Field: 389 M 1-bit flag: "Registration for Multicast and Anycast Addresses 390 Supported" 392 5. Updating RFC 6550 394 5.1. Updating MOP 3 396 RPL supports multicast operations in the "Storing Mode of Operation 397 with multicast support" (MOP 3) which provides source-independent 398 multicast routing in RPL, as prescribed in section 12 of [RFC6550]. 399 MOP 3 is a storing Mode of Operation. This operation builds a 400 multicast tree within the RPL DODAG for each multicast address. This 401 specification provides additional details for the MOP 3 operation. 403 The expectation in MOP 3 is that the unicast traffic also follows the 404 Storing Mode of Operation. But this is rarely the case in LLN 405 deployments of RPL where the "Non-Storing Mode of Operation" (MOP 1) 406 is the norm. Though it is preferred to build separate RPL Instances, 407 one in MOP 1 and one in MOP 3, this specification allows to hybrid 408 the Storing Mode for multicast and Non-Storing Mode for unicast in 409 the same RPL Instance, more in Section 8. 411 5.2. New Non-Storing Multicast MOP 413 This specification adds a "Non-Storing Mode of Operation with 414 multicast support" (MOP to be assigned by IANA) whereby the non- 415 storing Mode DAO to the Root may contain multicast addresses in the 416 RPL Target Option (RTO), whereas the Transit Information Option (TIO) 417 can not. 419 In that mode, the RPL Root performs an ingress replication (IR) 420 operation on the multicast packets, meaning that it transmits one 421 copy of each multicast packet to each 6LR that is a transit for the 422 multicast target, using the same source routing header and 423 encapsulation as it would for a unicast packet for a RPL Unaware Leaf 424 (RUL) attached to that 6LR.. 426 For the intermediate routers, the packet appears as any source routed 427 unicast packet. The difference shows only at the 6LR, that 428 terminates the source routed path and forwards the multicast packet 429 to all 6LNs that registered for the muticast address. 431 For a packet that is generated by the Root, this means that the Root 432 builds a source routing header as shown in section 8.1.3 of 433 [RFC9008], but for which the last and only the last address is 434 multicast. For a packet that is not generated by the Root,the Root 435 encapsulates the multicast packet as per section 8.2.4 of [RFC9008]. 436 In that case, the outer header is purely unicast, and the 437 encapsulated packet is purely multicast. 439 For this new mode as well, this specification allows to enable the 440 operation in a MOP 1 brown field, more in Section 8. 442 5.3. RPL Anycast Operation 444 With multicast, the address has a recognizable format, and a 445 multicast packet is to be delivered to all the active subscribers. 446 In contrast with anycast, the format of the address is not 447 distinguishable from that of unicast. In fact, an external 448 destination (address or prefix) that may be injected from multiple 449 border routers MUST be injected as anycast in RPL. 451 For either multicast and anycast, there can be multiple registrations 452 from multiple parties, each using a different value of the ROVR field 453 that identifies the individual registration. The 6LR MUST maintain a 454 registration state per value of the ROVR per multicast or anycast 455 address, but inject the route into RPL only once for each address. 456 Since the registrations are considered separate, the check on the TID 457 that acts as registration sequence only applies to the registration 458 with the same ROVR. 460 The 6LRs that inject multicast and anycast routes into RPL may not be 461 synchronized to advertise same value of the Path Sequence in the RPL 462 TIO. It results that the value the Path Sequence is irrelevant when 463 the target is anycast or multicast, and that it MUST be ignored. 465 Like the 6LR, a RPL router in Storing Mode propagates the route to 466 its parent(s) in DAO messages once and only once for each address, 467 but it MUST retain a routing table entry for each of the children 468 that advertised the address. 470 When forwarding multicast packets down the DODAG, the RPL router 471 copies all the children that advertised the address in their DAO 472 messages. In contrast, when forwarding anycast packets down the 473 DODAG, the RPL router MUST copy one and only one of the children that 474 advertised the address in their DAO messages, and forward to one 475 parent if there is no such child. 477 5.4. New RPL Target Option Flags 479 [RFC6550] recognizes a multicast address by its format (as specified 480 in section 2.7 of [RFC4291]) and applies the specified multicast 481 operation if the address is recognized as multicast. This 482 specification updates [RFC6550] to add the M and A flags to the RTO 483 to indicate that the target address is to be processed as multicast 484 or anycast, respectively. 486 An RTO that has the M flag set is called a multicast RTO. An RTO 487 that has the A flag set is called an anycast RTO. An RTO that has 488 neither M nor A flag set is called a unicast RTO. The M and A flags 489 are mutually exclusive and MUST NOT be both set. 491 The suggested position for the A and M flags are 2 and 3 counting 492 from 0 to 7 in network order as shown in Figure 3, based on figure 4 493 of [RFC9010] which defines the flags in position 0 and 1: 495 0 1 2 3 496 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 497 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 498 | Type = 0x05 | Option Length |F|X|A|M|ROVRsz | Prefix Length | 499 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 500 | | 501 | Target Prefix (Variable Length) | 502 . . 503 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 504 | | 505 ... Registration Ownership Verifier (ROVR) ... 506 | | 507 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 509 Figure 3: Format of the RPL Target Option 511 6. Updating RFC 8505 513 6.1. New EARO flag 515 Section 4.1 of [RFC8505] defines the EARO as an extension to the ARO 516 option defined in [RFC6775]. 518 This specification adds a new M flag to the EARO flags field to 519 signal that the Registered Address is a multicast address. When both 520 the M and the R flags are set, the 6LR that conforms to this 521 specification joins the multicast stream, e.g., by injecting the 522 address in the RPL multicast support which is extended in this 523 specification for Non-Storing Mode. 525 This specification adds a new A flag to the EARO flags field to 526 signal that the Registered Address is an anycast address. When both 527 the A and the R flags are set, the 6LR that conforms to this 528 specification injects the anycast address in the RPL anycast support 529 that is introduced in this specification for both Storing and Non- 530 Storing Modes. 532 Figure 4 illustrates the A and M flags in their suggested positions 533 (2 and 3, respectively, counting 0 to 7 in network order in the 8-bit 534 array), to be confirmed by IANA. 536 0 1 2 3 537 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 538 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 539 | Type | Length | Status | Opaque | 540 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 541 |Rsv|A|M| I |R|T| TID | Registration Lifetime | 542 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 543 | | 544 ... Registration Ownership Verifier ... 545 | | 546 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 548 Figure 4: EARO Option Format 550 New and updated Option Fields: 552 Rsv 2-bit field: reserved, MUST be set to 0 and ignored by the 553 receiver 555 A 1-bit flag: "Registration for Anycast Address" 557 M 1-bit flag: "Registration for Multicast Address" 559 6.2. Registering Extensions 561 With [RFC8505]: 563 * Only unicast addresses can be registered. 565 * The 6LN must register all its ULA and GUA with a NS(EARO). 567 * The 6LN may set the R flag in the EARO to obtain return 568 reachability services by the 6LR, e.g., through ND proxy 569 operations, or by injecting the route in a route-over subnet. 571 * the 6LR maintains a registration state per Registered Address, 572 including an NCE with the Link Layer Address (LLA) of the 573 Registered Node (the 6LN here). 575 This specification adds the following behavior: 577 * Registration for multicast and anycast addresses is now supported. 579 * The 6LN MUST also register all the IPv6 multicast addresses that 580 it listens to and it MUST set the M flag in the EARO for those 581 addresses. 583 * The 6LN MAY set the R flag in the EARO to obtain the delivery of 584 the multicast packets by the 6LR, e.g., by MLD proxy operations, 585 or by injecting the address in a route-over subnet or in the 586 Protocol Independent Multicast [RFC7761] protocol. 588 * The 6LN MUST also register all the IPv6 anycast addresses that it 589 supports and it MUST set the A flag in the EARO for those 590 addresses. 592 * The Registration Ownership Verifier (ROVR) in the EARO identifies 593 uniquely a registration within the namespace of the Registered 594 Address. The 6LR MUST maintain a registration state per tuple 595 (IPv6 address, ROVR) for both anycast and multicast types of 596 address, since multiple 6LNs may subscribe to the same address of 597 these types. 599 7. Updating RFC 9010 601 With [RFC9010]: 603 * The 6LR injects only unicast routes in RPL 605 * upon a registration with the R flag set to 1 in the EARO, the 6LR 606 injects the address in the RPL unicast support. 608 * Upon receiving a packet directed to a unicast address for which it 609 has an active registration, the 6LR delivers the packet as a 610 unicast layer-2 frame to the LLA the nodes that registered the 611 unicast address. 613 This specification adds the following behavior: 615 * Upon a registration with the R and the M flags set to 1 in the 616 EARO, the 6LR injects the address in the RPL multicast support. 618 * Upon receiving a packet directed to a multicast address for which 619 it has at least one registration, the 6LR delivers a copy of the 620 packet as a unicast layer-2 frame to the LLA of each of the nodes 621 that registered to that multicast address. 623 8. Deployment considerations 625 With this specification, a RPL DODAG forms a realm, and multiple RPL 626 DODAGs may federated in a single RPL Instance administratively. This 627 means that a multicast address that needs to span a RPL DODAG MUST 628 use a scope of Realm-Local whereas a multicast address that needs to 629 span a RPL Instance MUST use a scope of Admin-Local as discussed in 630 section 3 of "IPv6 Multicast Address Scopes" [RFC7346]. 632 "IPv6 Addressing of IPv4/IPv6 Translators" [RFC6052] enables to embed 633 IPv4 addresses in IPv6 addresses. The Root of a DODAG may leverage 634 that technique to translate IPv4 traffic in IPv6 and route along the 635 RPL domain. When encapsulating an packet with an IPv4 multicast 636 Destination Address, it MUST use form a multicast address and use the 637 appropriate scope, Realm-Local or Admin-Local. 639 "Unicast-Prefix-based IPv6 Multicast Addresses" [RFC3306] enables to 640 form 2^32 multicast addresses from a single /64 prefix. If an IPv6 641 prefix is associated to an Instance or a RPL DODAG, this provides a 642 namespace that can be used in any desired fashion. It is for 643 instance possible for a standard defining organization to form its 644 own registry and allocate 32-bit values from that namespace to 645 network functions or device types. When used within a RPL deployment 646 that is associated with a /64 prefix the IPv6 multicast addresses can 647 be automatically derived from the prefix and the 32-bit value for 648 either a Realm-Local or an Admin-Local multicast address as needed in 649 the configuration. 651 IN a "green field" deployment where all nodes support this 652 specification, it is possible to deploy a single RPL Instance using a 653 multicast MOP for unicast, multicast and anycast addresses. 655 In a "brown field" where legacy devices that do not support this 656 specification co-exist with upgraded devices, it is RECOMMENDED to 657 deploy one RPL Instance in any Mode of Operation (typically MOP 1) 658 for unicast that legacy nodes can join, and a separate RPL Instance 659 dedicated to multicast and anycast operations using a multicast MOP. 661 To deploy a Storing Mode multicast operation using MOP 3 in a RPL 662 domain, it is required that there is enough density of RPL routers 663 that support MOP 3 to build a DODAG that covers all the potential 664 listeners and include the spanning multicast trees that are needed to 665 distribute the multicast flows. This might not be the case when 666 extending the capabilities of an existing network. 668 In the case of the new Non-Storing multicast MOP, arguably the new 669 support is only needed at the 6LRs that will accept multicast 670 listeners. It is still required that each listener can reach at 671 least one such 6LR, so the upgraded 6LRs must be deployed to cover 672 all the 6LN that need multicast services. 674 Using separate RPL Instances for in the one hand unicast traffic and 675 in the other hand anycast and multicast traffic allows to use 676 different objective function, one favoring the link quality up for 677 unicast collection and one favoring downwards link quality for 678 multicast distribution. 680 But this might be impractical in some use cases where the signaling 681 and the state to be installed in the devices are very constrained, 682 the upgraded devices are too sparse, or the devices do not support 683 more multiple instances. 685 When using a single RPL Instance, MOP 3 expects the Storing Mode of 686 Operation for both unicast and multicast, which is an issue in 687 constrained networks that typically use MOP 1 for unicast. This 688 specification allows a mixed mode that is signaled as MOP 1 in the 689 DIO messages for backward compatibility, where limited multicast and/ 690 or anycast is available, under the following conditions: 692 * There MUST be enough density of 6LRs that support the mixed mode 693 to cover the all the 6LNs that require multicast or anycast 694 services. In Storing Mode, there MUST be enough density or 6LR 695 that support the mixed mode to also form a DODAG to the Root. 697 * The RPL routers that support the mixed mode and are configured to 698 operate in in accordance with the desired operation in the 699 network. 701 * The MOP signaled in the RPL DODAG Information Object (DIO) 702 messages is MOP 1 to enable the legacy nodes to operate as leaves. 704 * The support of multicast and/or anycast in the RPL Instance SHOULD 705 be signaled by the 6LRs to the 6LN using a 6CIO, see Section 4. 707 * Alternatively, the support of multicast in the RPL domain can be 708 globally known by other means such as configuration or external 709 information such as support of a version of an industry standard 710 that mandates it. In that case, all the routers MUST support the 711 mixed mode. 713 9. Security Considerations 715 This specification extends [RFC8505], and the security section of 716 that document also applies to this document. In particular, the link 717 layer SHOULD be sufficiently protected to prevent rogue access. 719 10. Backward Compatibility 721 A legacy 6LN will not register multicast addresses and the service 722 will be the same when the network is upgraded. A legacy 6LR will not 723 set the M flag in the 6CIO and an upgraded 6LN will not register 724 multicast addresses. 726 As detailed in Section 8, it is possible to add multicast on an 727 existing MOP 1 deployment, 729 The combination of a multicast address and the M flag set to 0 in an 730 RTO in a MOP 3 RPL Instance is understood by the receiver that 731 supports this specification (the parent) as an indication that the 732 sender (child) does not support this specification, but the RTO is 733 accepted and processed as if the M flag was set for backward 734 compatibility. 736 When the DODAG is operated in MOP 3, a legacy node will not set the M 737 flag and still expect multicast service as specified in section 12 of 738 [RFC6550]. In MOP 3 an RTO that is received with a target that is 739 multicast and the M bit set to 0 MUST be considered as multicast and 740 MUST be processed as if the M flag is set. 742 11. IANA Considerations 744 Note to RFC Editor, to be removed: please replace "This RFC" 745 throughout this document by the RFC number for this specification 746 once it is allocated. Also, the I Field is defined in RFC 9010 but 747 we failed to insert it in the subregistry and the flags appear as 748 unspecified though they are. 750 IANA is requested to make changes under the "Internet Control Message 751 Protocol version 6 (ICMPv6) Parameters" [IANA.ICMP] and the "Routing 752 Protocol for Low Power and Lossy Networks (RPL)" [IANA.RPL] 753 registries, as follows: 755 11.1. New RTO flags 757 IANA is requested to make additions to the "RPL Target Option Flags" 758 [IANA.RPL.RTO.FLG] subregistry of the "Routing Protocol for Low Power 759 and Lossy Networks (RPL)" registry as indicated in Table 1: 761 +---------------+---------------------------------------+-----------+ 762 | Bit Number | Meaning | Reference | 763 +---------------+---------------------------------------+-----------+ 764 | 2 (suggested) | A flag: Target is an Anycast Address | This RFC | 765 +---------------+---------------------------------------+-----------+ 766 | 3 (suggested) | M flag: Target is a Multicast | This RFC | 767 | | Address | | 768 +---------------+---------------------------------------+-----------+ 770 Table 1: New RTO flags 772 11.2. New RPL Mode of Operation 774 IANA is requested to make an addition to the "Mode of Operation" 775 [IANA.RPL.MOP] subregistry of the "Routing Protocol for Low Power and 776 Lossy Networks (RPL)" registry as indicated in Table 2: 778 +---------------+-------------------------------+-----------+ 779 | Value | Description | Reference | 780 +---------------+-------------------------------+-----------+ 781 | 5 (suggested) | Non-Storing Mode of Operation | This RFC | 782 | | with multicast support | | 783 +---------------+-------------------------------+-----------+ 785 Table 2: New RPL Mode of Operation 787 11.3. New EARO flags 789 IANA is requested to make additions to the "Address Registration 790 Option Flags" [IANA.ICMP.ARO.FLG] of the "Internet Control Message 791 Protocol version 6 (ICMPv6) Parameters" registry as indicated in 792 Table 3: 794 +---------------+-----------------------+-----------+ 795 | ARO flag | Meaning | Reference | 796 +---------------+-----------------------+-----------+ 797 | 2 (suggested) | A flag: Registration | This RFC | 798 | | for Anycast Address | | 799 +---------------+-----------------------+-----------+ 800 | 3 (suggested) | M flag: Registration | This RFC | 801 | | for Multicast Address | | 802 +---------------+-----------------------+-----------+ 803 | 4 and 5 | "I" Field | RFC 8505 | 804 +---------------+-----------------------+-----------+ 806 Table 3: New ARO flags 808 11.4. New 6LoWPAN Capability Bits 810 IANA is requested to make an addition to the "6LoWPAN Capability 811 Bits" [IANA.ICMP.6CIO] subregistry subregistry of the "Internet 812 Control Message Protocol version 6 (ICMPv6) Parameters" registry as 813 indicated in Table 4: 815 +----------------+------------------------------------+-----------+ 816 | Capability Bit | Meaning | Reference | 817 +----------------+------------------------------------+-----------+ 818 | 8 (suggested) | M flag: Registration for Multicast | This RFC | 819 | | and Anycast Addresses Supported | | 820 +----------------+------------------------------------+-----------+ 822 Table 4: New 6LoWPAN Capability Bits 824 12. Acknowledgments 826 13. Normative References 828 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 829 Requirement Levels", BCP 14, RFC 2119, 830 DOI 10.17487/RFC2119, March 1997, 831 . 833 [RFC3306] Haberman, B. and D. Thaler, "Unicast-Prefix-based IPv6 834 Multicast Addresses", RFC 3306, DOI 10.17487/RFC3306, 835 August 2002, . 837 [RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing 838 Architecture", RFC 4291, DOI 10.17487/RFC4291, February 839 2006, . 841 [RFC4861] Narten, T., Nordmark, E., Simpson, W., and H. Soliman, 842 "Neighbor Discovery for IP version 6 (IPv6)", RFC 4861, 843 DOI 10.17487/RFC4861, September 2007, 844 . 846 [RFC4862] Thomson, S., Narten, T., and T. Jinmei, "IPv6 Stateless 847 Address Autoconfiguration", RFC 4862, 848 DOI 10.17487/RFC4862, September 2007, 849 . 851 [RFC6550] Winter, T., Ed., Thubert, P., Ed., Brandt, A., Hui, J., 852 Kelsey, R., Levis, P., Pister, K., Struik, R., Vasseur, 853 JP., and R. Alexander, "RPL: IPv6 Routing Protocol for 854 Low-Power and Lossy Networks", RFC 6550, 855 DOI 10.17487/RFC6550, March 2012, 856 . 858 [RFC6775] Shelby, Z., Ed., Chakrabarti, S., Nordmark, E., and C. 859 Bormann, "Neighbor Discovery Optimization for IPv6 over 860 Low-Power Wireless Personal Area Networks (6LoWPANs)", 861 RFC 6775, DOI 10.17487/RFC6775, November 2012, 862 . 864 [RFC7346] Droms, R., "IPv6 Multicast Address Scopes", RFC 7346, 865 DOI 10.17487/RFC7346, August 2014, 866 . 868 [RFC7400] Bormann, C., "6LoWPAN-GHC: Generic Header Compression for 869 IPv6 over Low-Power Wireless Personal Area Networks 870 (6LoWPANs)", RFC 7400, DOI 10.17487/RFC7400, November 871 2014, . 873 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 874 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 875 May 2017, . 877 [RFC8200] Deering, S. and R. Hinden, "Internet Protocol, Version 6 878 (IPv6) Specification", STD 86, RFC 8200, 879 DOI 10.17487/RFC8200, July 2017, 880 . 882 [RFC8505] Thubert, P., Ed., Nordmark, E., Chakrabarti, S., and C. 883 Perkins, "Registration Extensions for IPv6 over Low-Power 884 Wireless Personal Area Network (6LoWPAN) Neighbor 885 Discovery", RFC 8505, DOI 10.17487/RFC8505, November 2018, 886 . 888 [RFC9010] Thubert, P., Ed. and M. Richardson, "Routing for RPL 889 (Routing Protocol for Low-Power and Lossy Networks) 890 Leaves", RFC 9010, DOI 10.17487/RFC9010, April 2021, 891 . 893 [IANA.ICMP] 894 IANA, "IANA Registry for ICMPv6", IANA, 895 https://www.iana.org/assignments/icmpv6-parameters/ 896 icmpv6-parameters.xhtml. 898 [IANA.ICMP.ARO.FLG] 899 IANA, "IANA Sub-Registry for the ARO Flags", IANA, 900 https://www.iana.org/assignments/icmpv6-parameters/ 901 icmpv6-parameters.xhtml#icmpv6-adress-registration-option- 902 flags. 904 [IANA.ICMP.6CIO] 905 IANA, "IANA Sub-Registry for the 6LoWPAN Capability Bits", 906 IANA, https://www.iana.org/assignments/icmpv6-parameters/ 907 icmpv6-parameters.xhtml#sixlowpan-capability-bits. 909 [IANA.RPL] IANA, "IANA Registry for the RPL", 910 IANA, https://www.iana.org/assignments/rpl/rpl.xhtml. 912 [IANA.RPL.RTO.FLG] 913 IANA, "IANA Sub-Registry for the RTO Flags", IANA, 914 https://www.iana.org/assignments/rpl/rpl.xhtml#rpl-target- 915 option-flags. 917 [IANA.RPL.MOP] 918 IANA, "IANA Sub-Registry for the RPL Mode of Operation", 919 IANA, https://www.iana.org/assignments/rpl/rpl.xhtml#mop. 921 14. Informative References 923 [RFC3810] Vida, R., Ed. and L. Costa, Ed., "Multicast Listener 924 Discovery Version 2 (MLDv2) for IPv6", RFC 3810, 925 DOI 10.17487/RFC3810, June 2004, 926 . 928 [RFC4919] Kushalnagar, N., Montenegro, G., and C. Schumacher, "IPv6 929 over Low-Power Wireless Personal Area Networks (6LoWPANs): 930 Overview, Assumptions, Problem Statement, and Goals", 931 RFC 4919, DOI 10.17487/RFC4919, August 2007, 932 . 934 [RFC6282] Hui, J., Ed. and P. Thubert, "Compression Format for IPv6 935 Datagrams over IEEE 802.15.4-Based Networks", RFC 6282, 936 DOI 10.17487/RFC6282, September 2011, 937 . 939 [RFC7731] Hui, J. and R. Kelsey, "Multicast Protocol for Low-Power 940 and Lossy Networks (MPL)", RFC 7731, DOI 10.17487/RFC7731, 941 February 2016, . 943 [RFC7761] Fenner, B., Handley, M., Holbrook, H., Kouvelas, I., 944 Parekh, R., Zhang, Z., and L. Zheng, "Protocol Independent 945 Multicast - Sparse Mode (PIM-SM): Protocol Specification 946 (Revised)", STD 83, RFC 7761, DOI 10.17487/RFC7761, March 947 2016, . 949 [RFC6052] Bao, C., Huitema, C., Bagnulo, M., Boucadair, M., and X. 950 Li, "IPv6 Addressing of IPv4/IPv6 Translators", RFC 6052, 951 DOI 10.17487/RFC6052, October 2010, 952 . 954 [RFC9008] Robles, M.I., Richardson, M., and P. Thubert, "Using RPI 955 Option Type, Routing Header for Source Routes, and IPv6- 956 in-IPv6 Encapsulation in the RPL Data Plane", RFC 9008, 957 DOI 10.17487/RFC9008, April 2021, 958 . 960 [Wi-SUN] Heile, B., (Remy), B. L., Zhang, M., and C. E. Perkins, 961 "Wi-SUN FAN Overview", Work in Progress, Internet-Draft, 962 draft-heile-lpwan-wisun-overview-00, 3 July 2017, 963 . 966 [IEEE Std 802.15.4] 967 IEEE standard for Information Technology, "IEEE Std 968 802.15.4, Part. 15.4: Wireless Medium Access Control (MAC) 969 and Physical Layer (PHY) Specifications for Low-Rate 970 Wireless Personal Area Networks". 972 [IEEE Std 802.11] 973 IEEE standard for Information Technology, "IEEE Standard 974 802.11 - IEEE Standard for Information Technology - 975 Telecommunications and information exchange between 976 systems Local and metropolitan area networks - Specific 977 requirements - Part 11: Wireless LAN Medium Access Control 978 (MAC) and Physical Layer (PHY) Specifications.", 979 . 981 [IEEE Std 802.15.1] 982 IEEE standard for Information Technology, "IEEE Standard 983 for Information Technology - Telecommunications and 984 Information Exchange Between Systems - Local and 985 Metropolitan Area Networks - Specific Requirements. - Part 986 15.1: Wireless Medium Access Control (MAC) and Physical 987 Layer (PHY) Specifications for Wireless Personal Area 988 Networks (WPANs)". 990 Author's Address 992 Pascal Thubert (editor) 993 Cisco Systems, Inc 994 Building D 995 45 Allee des Ormes - BP1200 996 06254 Mougins - Sophia Antipolis 997 France 999 Phone: +33 497 23 26 34 1000 Email: pthubert@cisco.com