Internet-Draft Multicast Address Registration March 2022
Thubert Expires 3 September 2022 [Page]
Workgroup:
6lo
Updates:
6550, 6553, 8505, 9010 (if approved)
Published:
Intended Status:
Standards Track
Expires:
Author:
P. Thubert, Ed.
Cisco Systems

IPv6 Neighbor Discovery Multicast Address Listener Registration

Abstract

This document updates RFC 8505 to enable a listener to register an IPv6 anycast or and subscribe to an IPv6 multicast address; the draft updates RFC 6550 (RPL) to add a new Non-Storing Multicast Mode and a new support for anycast addresses in Storing and Non-Storing Modes. This document extends RFC 9010 to enable the 6LR to inject the anycast and multicast addresses in RPL.

Status of This Memo

This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.

Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.

Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."

This Internet-Draft will expire on 3 September 2022.

Table of Contents

1. Introduction

The design of Low Power and Lossy Networks (LLNs) is generally focused on saving energy, which is the most constrained resource of all. Other design constraints, such as a limited memory capacity, duty cycling of the LLN devices and low-power lossy transmissions, derive from that primary concern. The radio (both transmitting or simply listening) is a major energy drain and the LLN protocols must be adapted to allow the nodes to remain sleeping with the radio turned off at most times.

The "Routing Protocol for Low Power and Lossy Networks" [RFC6550] (RPL) to provide IPv6 [RFC8200] routing services within such constraints. To save signaling and routing state in constrained networks, the RPL routing is only performed along a Destination-Oriented Directed Acyclic Graph (DODAG) that is optimized to reach a Root node, as opposed to along the shortest path between 2 peers, whatever that would mean in each LLN.

This trades the quality of peer-to-peer (P2P) paths for a vastly reduced amount of control traffic and routing state that would be required to operate an any-to-any shortest path protocol. Additionally, broken routes may be fixed lazily and on-demand, based on dataplane inconsistency discovery, which avoids wasting energy in the proactive repair of unused paths.

Section 12 of [RFC6550] details the "Storing Mode of Operation with multicast support" with source-independent multicast routing in RPL.

The classical "IPv6 Neighbor Discovery (IPv6 ND) Protocol" [RFC4861] [RFC4862] was defined for serial links and shared transit media such as Ethernet at a time when broadcast was cheap on those media while memory for neighbor cache was expensive. It was thus designed as a reactive protocol that relies on caching and multicast operations for the Address Discovery (aka Lookup) and Duplicate Address Detection (DAD) of IPv6 unicast addresses. Those multicast operations typically impact every node on-link when at most one is really targeted, which is a waste of energy, and imply that all nodes are awake to hear the request, which is inconsistent with power saving (sleeping) modes.

The original 6LoWPAN ND, "Neighbor Discovery Optimizations for 6LoWPAN networks" [RFC6775], was introduced to avoid the excessive use of multicast messages and enable IPv6 ND for operations over energy-constrained nodes. [RFC6775] changes the classical IPv6 ND model to proactively establish the Neighbor Cache Entry (NCE) associated to the unicast address of a 6LoWPAN Node (6LN) in the a 6LoWPAN Router(s) (6LR) that serves it. To that effect, [RFC6775] defines a new Address Registration Option (ARO) that is placed in unicast Neighbor Solicitation (NS) and Neighbor Advertisement (NA) messages between the 6LN and the 6LR.

"Registration Extensions for 6LoWPAN Neighbor Discovery" [RFC8505] updates [RFC6775] into a generic Address Registration mechanism that can be used to access services such as routing and ND proxy and introduces the Extended Address Registration Option (EARO) for that purpose. This provides a routing-agnostic interface for a host to request that the router injects a unicast IPv6 address in the local routing protocol and provide return reachability for that address.

"Routing for RPL Leaves" [RFC9010] provides the router counterpart of the mechanism for a host that implements [RFC8505] to inject its unicast Unique Local Addresses (ULAs) and Global Unicast Addresses (GUAs) in RPL. But though RPL also provides multicast routing, 6LoWPAN ND supports only the registration of unicast addresses and there is no equivalent of [RFC9010] to specify the 6LR behavior upon the registration of one or more multicast address.

The "Multicast Listener Discovery Version 2 (MLDv2) for IPv6" [RFC3810] enables the router to learn which node listens to which multicast address, but as the classical IPv6 ND protocol, MLD relies on multicasting Queries to all nodes, which is unfit for low power operations. As for IPv6 ND, it makes sense to let the 6LNs control when and how they maintain the state associated to their multicast addresses in the 6LR, e.g., during their own wake time. In the case of a constrained node that already implements [RFC8505] for unicast reachability, it makes sense to extend to that support to register the multicast addresses they listen to.

This specification extends [RFC8505] and [RFC9010] to add the capability for the 6LN to register anycast and multicast addresses and for the 6LR to inject them in RPL.

2. Terminology

2.1. Requirements Language

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.

2.2. References

This document uses terms and concepts that are discussed in:

2.3. Glossary

This document uses the following acronyms:

6BBR
6LoWPAN Backbone Router
6BBR
6LoWPAN Border Router
6LN
6LoWPAN Node
6LR
6LoWPAN Router
6CIO
Capability Indication Option
AMC
Address Mapping Confirmation
AMR
Address Mapping Request
ARO
Address Registration Option
DAC
Duplicate Address Confirmation
DAD
Duplicate Address Detection
DAR
Duplicate Address Request
EARO
Extended Address Registration Option
EDAC
Extended Duplicate Address Confirmation
EDAR
Extended Duplicate Address Request
DODAG
Destination-Oriented Directed Acyclic Graph
IR
Ingress Replication
LLN
Low-Power and Lossy Network
NA
Neighbor Advertisement
NCE
Neighbor Cache Entry
ND
Neighbor Discovery
NS
Neighbor Solicitation
ROVR
Registration Ownership Verifier
RTO
RPL Target Option
RA
Router Advertisement
RS
Router Solicitation
TID
Transaction ID
TIO
Transit Information Option

3. Overview

This specification inherits from [RFC6550], [RFC8505], and [RFC8505] to provide additional capabilities for anycast and multicast. Unless specified otherwise therein, the behavior of the 6LBR that acts as RPL Root, of the intermediate routers down the RPL graph, of the 6LR that act as access routers and of the 6LNs that are the RFC-unaware destinations, is the same as for unicast. In particular, forwarding a packet happens as specified in section 11 of [RFC6550], including loop avoidance and detection, though in the case of multicast multiple copies might be generated.

[RFC8505] is a pre-requisite to this specification. A node that implements this MUST also implement [RFC8505]. This specification does not introduce a new option; it modifies existing options and updates the associated behaviors to enable the Registration for Multicast Addresses as an extension to [RFC8505].

This specification also extends [RFC6550] and [RFC9010] in the case of a route-over multilink subnet based on the RPL routing protocol, to add multicast ingress replication in Non-Storing Mode and anycast support in both Storing and Non-Storing modes. A 6LR that implements the RPL extensions specified therein MUST also implement [RFC9010].

Figure 1 illustrates the classical situation of an LLN as a single IPv6 Subnet, with a 6LoWPAN Border Router (6LBR) that acts as Root for RPL operations and maintains a registry of the active registrations as an abstract data structure called an Address Registrar for 6LoWPAN ND.

The LLN may be a hub-and-spoke access link such as (Low-Power) Wi-Fi [IEEE Std 802.11] and Bluetooth (Low Energy) [IEEE Std 802.15.1], or a Route-Over LLN such as the Wi-SUN mesh [Wi-SUN] that leverages 6LoWPAN [RFC4919][RFC6282] and RPL [RFC6550] over [IEEE Std 802.15.4].

                  |
      ----+-------+------------
          |     Wire side
       +------+
       | 6LBR |
       |(Root)|
       +------+
       o  o  o  Wireless side
   o   o o   o  o o
  o  o  o o   o  o  o
 o  o  o   LLN  o   +---+
   o  o   o  o   o  |6LR|
   o o  o o   o     +---+
    o   o   o o o  o    z
   o  o oo o  o        +---+
          o            |6LN|
                       +---+
Figure 1: Wireless Mesh

A leaf acting as a 6LN registers its unicast and anycast addresses a RPL router acting as a 6LR, using a layer-2 unicast NS message with an EARO as specified in [RFC8505]. The registration state is periodically renewed by the Registering Node, before the lifetime indicated in the EARO expires. As for unicast IPv6 addresses, the 6LR uses an EDAR/EDAR exchange with the 6LBR to notify the 6LBR of the presence of the listeners.

With this specification, the 6LNs can now subscribe to the multicast addresses they listen to, using a new M flag in the EARO to signal that the registration is for a multicast address. Multiple 6LN may subscribe to the same multicast address to the same 6LR. Note the use of the term "subscribe": using the EARO registration mechanism, a node registers the unicast addresses that it owns, but subscribes to the multicast addresses that it listens to.

With this specification, the 6LNs can also register the anycast addresses they accept, using a new A flag in the EARO to signal that the registration is for an anycast address. As for multicast, multiple 6LN may register the same anycast address to the same 6LR.

If the R flag is set in the registration of one or more 6LNs for the same address, the 6LR injects the anycast and multicast addresses in RPL, based on the longest registration lifetime across the active registrations for the address.

In the RPL "Storing Mode of Operation with multicast support", the DAO messages for the multicast address percolate along the RPL preferred parent tree and mark a subtree that becomes the multicast tree for that multicast address, with 6LNs that subscribed to the address as the leaves. As prescribed in section 12 of [RFC6550], the 6LR forwards a multicast packet as an individual unicast MAC frame to each peer along the multicast tree, excepting to the node it received the packet from.

In the new RPL "Non-Storing Mode of Operation with multicast support" that is introduced here, the DAO messages announce the multicast addresses as Targets though never as Transit. The multicast distribution is an ingress replication whereby the Root encapsulates the multicast packets to all the 6LRs that are transit for the multicast address, using the same source-routing header as for unicast targets attached to the respective 6LRs.

Broadcasting is typically unreliable in LLNs (no ack) and forces a listener to remain awake, so it generally discouraged. The expectation is thus that in either mode, the 6LRs deliver the multicast packets as individual unicast MAC frames to each of the 6LNs that subscribed to the multicast address.

With this specification, anycast addresses can be injected in RPL in both Storing and Non-Storing modes. In Storing Mode the RPL router accepts DAO from multiple children for the same anycast address, but only forwards a packet to one of the children. In Non-Storing Mode, the Root maintains the list of all the RPL nodes that announced the anycast address as Target, but forwards a given packet to only one of them.

For backward compatibility, this specification allows to build a single DODAG signaled as MOP 1, that conveys anycast, unicast and multicast packets using the same source routing mechanism, more in Section 9.

It is also possible to leverage this specification between the 6LN and the 6LR for the registration of unicast, anycast and multicast IPv6 addresses in networks that are not necessarily LLNs, and/or where the routing protocol between the 6LR and above is not necessarily RPL. In that case, the distribution of packets between the 6LR and the 6LNs may effectively rely on a broadcast or multicast support at the lower layer.

For instance, it is possible to operate a RPL Instance in the new "Non-Storing Mode of Operation with multicast support" (while possibly signaling a MOP of 1) and use "Multicast Protocol for Low-Power and Lossy Networks (MPL)" [RFC7731] for the multicast operation. MPL floods the DODAG with the multicast messages independently of the RPL DODAG topologies. Two variations are possible:

Note that if the configuration instructs the 6LR not to send the DAO, then MPL can really by used in conjunction with RPL Storing Mode as well.

4. Extending RFC 7400

This specification defines a new capability bit for use in the 6CIO as defined by "6LoWPAN-GHC: Generic Header Compression for IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs)" [RFC7400] and extended in [RFC8505] for use in IPv6 ND messages.

The new "Registration for Multicast Address Supported" (M) flag indicates to the 6LN that the 6LR accepts multicast address registrations as specified in this document and will ensure that packets for the multicast Registered Address will be routed to the 6LNs that registered with the R flag set.

Figure 2 illustrates the M flag in its suggested position (8, counting 0 to 15 in network order in the 16-bit array), to be confirmed by IANA.


    0                   1                   2                   3
    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Type      |   Length = 1  |    Reserved   |M|A|D|L|B|P|E|G|
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           Reserved                            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 2: New Capability Bits in the 6CIO

New Option Field:

M
1-bit flag: "Registration for Multicast and Anycast Addresses Supported"

5. Updating RFC 6550

5.1. Updating MOP 3

RPL supports multicast operations in the "Storing Mode of Operation with multicast support" (MOP 3) which provides source-independent multicast routing in RPL, as prescribed in section 12 of [RFC6550]. MOP 3 is a storing Mode of Operation. This operation builds a multicast tree within the RPL DODAG for each multicast address. This specification provides additional details for the MOP 3 operation.

The expectation in MOP 3 is that the unicast traffic also follows the Storing Mode of Operation. But this is rarely the case in LLN deployments of RPL where the "Non-Storing Mode of Operation" (MOP 1) is the norm. Though it is preferred to build separate RPL Instances, one in MOP 1 and one in MOP 3, this specification allows to hybrid the Storing Mode for multicast and Non-Storing Mode for unicast in the same RPL Instance, more in Section 9.

5.2. New Non-Storing Multicast MOP

This specification adds a "Non-Storing Mode of Operation with multicast support" (MOP to be assigned by IANA) whereby the non-storing Mode DAO to the Root may contain multicast addresses in the RPL Target Option (RTO), whereas the Transit Information Option (TIO) cannot.

In that mode, the RPL Root performs an ingress replication (IR) operation on the multicast packets, meaning that it transmits one copy of each multicast packet to each 6LR that is a transit for the multicast target, using the same source routing header and encapsulation as it would for a unicast packet for a RPL Unaware Leaf (RUL) attached to that 6LR.

For the intermediate routers, the packet appears as any source routed unicast packet. The difference shows only at the 6LR, that terminates the source routed path and forwards the multicast packet to all 6LNs that registered for the multicast address.

For a packet that is generated by the Root, this means that the Root builds a source routing header as shown in section 8.1.3 of [RFC9008], but for which the last and only the last address is multicast. For a packet that is not generated by the Root, the Root encapsulates the multicast packet as per section 8.2.4 of [RFC9008]. In that case, the outer header is purely unicast, and the encapsulated packet is purely multicast.

For this new mode as well, this specification allows to enable the operation in a MOP 1 brown field, more in Section 9.

5.3. RPL Anycast Operation

With multicast, the address has a recognizable format, and a multicast packet is to be delivered to all the active subscribers. In contrast with anycast, the format of the address is not distinguishable from that of unicast. A legacy node may issue a DAO message without setting the A flag, the unicast behaviour may apply to anycast traffic in a subDAGs. A target is routed as anycast by a parent (or the Root) that received at least one DAO message for that target with the A flag set to 1. As for multicast, the freshness comparison cannot apply to an anycast target, and the TID field is ignored.

As opposed to multicast, the anycast operation described therein applies to both addresses and prefixes, and the A flag can be set for both. An external destination (address or prefix) that may be injected as a RPL target from multiple border routers SHOULD be injected as anycast in RPL to enable load balancing. A mobile target that is multihomed SHOULD in contrast be advertised as unicast over the multiple interfaces to favor the TID comparision and vs. the multipath load balancing.

For either multicast and anycast, there can be multiple registrations from multiple parties, each using a different value of the ROVR field that identifies the individual registration. The 6LR MUST maintain a registration state per value of the ROVR per multicast or anycast address, but inject the route into RPL only once for each address. Since the registrations are considered separate, the check on the TID that acts as registration sequence only applies to the registration with the same ROVR.

The 6LRs that inject multicast and anycast routes into RPL may not be synchronized to advertise same value of the Path Sequence in the RPL TIO. It results that the value the Path Sequence is irrelevant when the target is anycast or multicast, and that it MUST be ignored.

Like the 6LR, a RPL router in Storing Mode propagates the route to its parent(s) in DAO messages once and only once for each address, but it MUST retain a routing table entry for each of the children that advertised the address.

When forwarding multicast packets down the DODAG, the RPL router copies all the children that advertised the address in their DAO messages. In contrast, when forwarding anycast packets down the DODAG, the RPL router MUST copy one and only one of the children that advertised the address in their DAO messages, and forward to one parent if there is no such child.

5.4. New RPL Target Option Flags

[RFC6550] recognizes a multicast address by its format (as specified in section 2.7 of [RFC4291]) and applies the specified multicast operation if the address is recognized as multicast. This specification updates [RFC6550] to add the M and A flags to the RTO to indicate that the target address is to be processed as multicast or anycast, respectively.

An RTO that has the M flag set to 1 is called a multicast RTO. An RTO that has the A flag set to 1 is called an anycast RTO. An RTO that has both the A and the M flags set to 0 is called an unicast RTO. With this specification, the M and A flags are mutually exclusive and MUST NOT be both set to 1. The capability to set both flags is reserved and an RTO that is received with both flags set MUST be ignored.

The suggested position for the A and M flags are 2 and 3 counting from 0 to 7 in network order as shown in Figure 3, based on figure 4 of [RFC9010] which defines the flags in position 0 and 1:

   0                   1                   2                   3
   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
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |   Type = 0x05 | Option Length |F|X|A|M|ROVRsz | Prefix Length |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                                                               |
  |                Target Prefix (Variable Length)                |
  .                                                               .
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                                                               |
 ...            Registration Ownership Verifier (ROVR)           ...
  |                                                               |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 3: Format of the RPL Target Option

6. Updating RFC 8505

6.1. New EARO flag

Section 4.1 of [RFC8505] defines the EARO as an extension to the ARO option defined in [RFC6775].

This specification adds a new M flag to the EARO flags field to signal that the Registered Address is a multicast address. When both the M and the R flags are set, the 6LR that conforms to this specification joins the multicast stream, e.g., by injecting the address in the RPL multicast support which is extended in this specification for Non-Storing Mode.

This specification adds a new A flag to the EARO flags field to signal that the Registered Address is an anycast address. When both the A and the R flags are set, the 6LR that conforms to this specification injects the anycast address in the RPL anycast support that is introduced in this specification for both Storing and Non-Storing Modes.

Figure 4 illustrates the A and M flags in their suggested positions (2 and 3, respectively, counting 0 to 7 in network order in the 8-bit array), to be confirmed by IANA.

   0                   1                   2                   3
   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
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |     Type      |     Length    |    Status     |    Opaque     |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |Rsv|A|M| I |R|T|     TID       |     Registration Lifetime     |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                                                               |
 ...             Registration Ownership Verifier                 ...
  |                                                               |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 4: EARO Option Format

New and updated Option Fields:

Rsv
2-bit field: reserved, MUST be set to 0 and ignored by the receiver
A
1-bit flag: "Registration for Anycast Address"
M
1-bit flag: "Registration for Multicast Address"

6.2. New EDAR Message Flag field

Section 4 of [RFC6775] provides the same format for DAR and DAC messages by but the status field is only used in DAC message and has to set to zero in DAC messages. [RFC8505] extends the DAC message as an EDAC but does not change the status field in the EDAR.

This specification repurposes the status field in the EDAR and a Flags field. It adds a new M flag to the EDAR flags field to signal that the Registered Address is a multicast address and a new A flag to signal that the Registered Address is an anycast address. As for EARO, the flags are mutually exclusive.

Figure 5 illustrates the A and M flags in their suggested positions (0 and 1, respectively, counting 0 to 7 in network order in the 8-bit array), to be confirmed by IANA.

  0                   1                   2                   3
  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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |     Type      |CodePfx|CodeSfx|          Checksum             |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |A|M| Reserved  |     TID       |     Registration Lifetime     |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                                                               |
...            Registration Ownership Verifier (ROVR)           ...
 |                                                               |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                                                               |
 +                                                               +
 |                                                               |
 +                       Registered Address                      +
 |                                                               |
 +                                                               +
 |                                                               |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 5: Extended Duplicate Address Message Format

New and updated Option Fields:

Reserved
6-bit field: reserved, MUST be set to 0 and ignored by the receiver
A
1-bit flag: "Registration for Anycast Address"
M
1-bit flag: "Registration for Multicast Address"

6.3. Registering Extensions

With [RFC8505]:

  • Only unicast addresses can be registered.
  • The 6LN must register all its ULA and GUA with a NS(EARO).
  • The 6LN may set the R flag in the EARO to obtain return reachability services by the 6LR, e.g., through ND proxy operations, or by injecting the route in a route-over subnet.
  • the 6LR maintains a registration state per Registered Address, including an NCE with the Link Layer Address (LLA) of the Registered Node (the 6LN here).

This specification adds the following behavior:

  • Registration for multicast and anycast addresses is now supported. New flags are added to the EARO to signal when the registered address is anycast or multicast.
  • The Status field in the EDAR message that was reserved and not used in RFC 8505 is repurposed to transport the flags to signal multicast and anycast.
  • The 6LN MUST also register all the IPv6 multicast addresses that it listens to but the all_nodes link-scope multicast address FF02::1 [RFC4291] which is implicitly registered, and it MUST set the M flag in the EARO for those addresses.
  • The 6LN MAY set the R flag in the EARO to obtain the delivery of the multicast packets by the 6LR, e.g., by MLD proxy operations, or by injecting the address in a route-over subnet or in the Protocol Independent Multicast [RFC7761] protocol.
  • The 6LN MUST also register all the IPv6 anycast addresses that it supports and it MUST set the A flag in the EARO for those addresses.
  • The 6LR and the 6LBR are extended to accept more than one registration for the same address when it is anycast or multicast, since multiple 6LNs may subscribe to the same address of these types. In both cases, the Registration Ownership Verifier (ROVR) in the EARO identifies uniquely a registration within the namespace of the Registered Address.
  • The 6LR MUST also consider that all the nodes that registered an address to it (as known by the SLLAO) also registered to the all nodes link-scope multicast address FF02::1 [RFC4291].
  • The 6LR MUST maintain a registration state per tuple (IPv6 address, ROVR) for both anycast and multicast types of address. It SHOULD notify the 6LBR with an EDAR message, unless it determined that the 6LBR is legacy and does not support this specification. In turn, the 6LBR MUST maintain a registration state per tuple (IPv6 address, ROVR) for both anycast and multicast types of address.

7. Updating RFC 9010

With [RFC9010]:

This specification adds the following behavior:

8. Leveraging RFC 8929

Address-Protected Neighbor Discovery for Low-Power and Lossy Networks [RFC8928] was defined to protect the ownership of unicast IPv6 addresses that are registered with [RFC8505].

With [RFC8928], it is possible for a node to autoconfigure a pair of public and private keys and use them to sign the registration of addresses that are either autoconfigured or obtained through other methods.

The first hop router (the 6LR) may then validate a registration and perform source address validation on packets coming from the sender node (the 6LN).

Anycast and multicast addresses are not owned by one node. Multiple nodes may subscribe to the same address. Also, anycast and multicast addresses are not used to source traffic. In that context, the method specified in [RFC8928] cannot be used with autoconfigured keypairs to protect a single ownership.

For an anycast or a multicast address, it is still possible to leverage [RFC8928] to enforce the right to subscribe. A keypair MUST be associated with the address before it is deployed, and a ROVR MUST be generated from that keypair as specified in [RFC8928]. The address and the ROVR MUST then be installed in the 6LBR so it can recognize the address and compare the ROVR on the first registration.

The keypair MUST then be provisioned in each node that needs to subscribe to the anycast or multicast address, so the node can follow the steps in [RFC8928] to register the address.

9. Deployment considerations

With this specification, a RPL DODAG forms a realm, and multiple RPL DODAGs may federated in a single RPL Instance administratively. This means that a multicast address that needs to span a RPL DODAG MUST use a scope of Realm-Local whereas a multicast address that needs to span a RPL Instance MUST use a scope of Admin-Local as discussed in section 3 of "IPv6 Multicast Address Scopes" [RFC7346].

"IPv6 Addressing of IPv4/IPv6 Translators" [RFC6052] enables to embed IPv4 addresses in IPv6 addresses. The Root of a DODAG may leverage that technique to translate IPv4 traffic in IPv6 and route along the RPL domain. When encapsulating an packet with an IPv4 multicast Destination Address, it MUST use form a multicast address and use the appropriate scope, Realm-Local or Admin-Local.

"Unicast-Prefix-based IPv6 Multicast Addresses" [RFC3306] enables to form 2^32 multicast addresses from a single /64 prefix. If an IPv6 prefix is associated to an Instance or a RPL DODAG, this provides a namespace that can be used in any desired fashion. It is for instance possible for a standard defining organization to form its own registry and allocate 32-bit values from that namespace to network functions or device types. When used within a RPL deployment that is associated with a /64 prefix the IPv6 multicast addresses can be automatically derived from the prefix and the 32-bit value for either a Realm-Local or an Admin-Local multicast address as needed in the configuration.

IN a "green field" deployment where all nodes support this specification, it is possible to deploy a single RPL Instance using a multicast MOP for unicast, multicast and anycast addresses.

In a "brown field" where legacy devices that do not support this specification co-exist with upgraded devices, it is RECOMMENDED to deploy one RPL Instance in any Mode of Operation (typically MOP 1) for unicast that legacy nodes can join, and a separate RPL Instance dedicated to multicast and anycast operations using a multicast MOP.

To deploy a Storing Mode multicast operation using MOP 3 in a RPL domain, it is required that there is enough density of RPL routers that support MOP 3 to build a DODAG that covers all the potential listeners and include the spanning multicast trees that are needed to distribute the multicast flows. This might not be the case when extending the capabilities of an existing network.

In the case of the new Non-Storing multicast MOP, arguably the new support is only needed at the 6LRs that will accept multicast listeners. It is still required that each listener can reach at least one such 6LR, so the upgraded 6LRs must be deployed to cover all the 6LN that need multicast services.

Using separate RPL Instances for in the one hand unicast traffic and in the other hand anycast and multicast traffic allows to use different objective function, one favoring the link quality up for unicast collection and one favoring downwards link quality for multicast distribution.

But this might be impractical in some use cases where the signaling and the state to be installed in the devices are very constrained, the upgraded devices are too sparse, or the devices do not support more multiple instances.

When using a single RPL Instance, MOP 3 expects the Storing Mode of Operation for both unicast and multicast, which is an issue in constrained networks that typically use MOP 1 for unicast. This specification allows a mixed mode that is signaled as MOP 1 in the DIO messages for backward compatibility, where limited multicast and/or anycast is available, under the following conditions:

10. Security Considerations

This specification extends [RFC8505], and the security section of that document also applies to this document. In particular, the link layer SHOULD be sufficiently protected to prevent rogue access.

Section 8 leverages [RFC8928] to prevent an unwanted subscriber to register for an anycast of a multicast address. This mechanism comes with a keypair that is shared between all subscribers. A shared key is prone to be stolen and the level of protection can only go down with time.

It is possible to update the keys associated to an address in all the 6LNs, but the flow is not clearly documented and may not complete in due time for all nodes in LLN use cases. It may be simpler to install a all-new address with new keys over a period of time, and switch the traffic to that address when the migreaiton is complete.

11. Backward Compatibility

A legacy 6LN will not register multicast addresses and the service will be the same when the network is upgraded. A legacy 6LR will not set the M flag in the 6CIO and an upgraded 6LN will not register multicast addresses.

Upon an EDAR message, a legacy 6LBR may not realize that the address being registered is anycast or multicast, and return that it is duplicate in the EDAC status. The 6LR MUST ignore a duplicate status in the EDAR for anycast and multicast addresses.

As detailed in Section 9, it is possible to add multicast on an existing MOP 1 deployment.

The combination of a multicast address and the M flag set to 0 in an RTO in a MOP 3 RPL Instance is understood by the receiver that supports this specification (the parent) as an indication that the sender (child) does not support this specification, but the RTO is accepted and processed as if the M flag was set for backward compatibility.

When the DODAG is operated in MOP 3, a legacy node will not set the M flag and still expect multicast service as specified in section 12 of [RFC6550]. In MOP 3 an RTO that is received with a target that is multicast and the M bit set to 0 MUST be considered as multicast and MUST be processed as if the M flag is set.

12. IANA Considerations

Note to RFC Editor, to be removed: please replace "This RFC" throughout this document by the RFC number for this specification once it is allocated. Also, the I Field is defined in [RFC9010] but is missing from the subregistry, so the bit positions must be added for completeness.

IANA is requested to make changes under the "Internet Control Message Protocol version 6 (ICMPv6) Parameters" [IANA.ICMP] and the "Routing Protocol for Low Power and Lossy Networks (RPL)" [IANA.RPL] registries, as follows:

12.1. New EDAR Message Flags Subregistry

IANA is requested to create a new "EDAR Message Flags" subregistry of the "Internet Control Message Protocol version 6 (ICMPv6) Parameters" registry as indicated in Table 1:

Table 1: EDAR Message flags
Bit Number Meaning Reference
0 (suggested) A flag: Registered Address is Anycast This RFC
1 (suggested) M flag: Registered Address is Multicast This RFC

12.2. New EARO flags

IANA is requested to make additions to the "Address Registration Option Flags" [IANA.ICMP.ARO.FLG] of the "Internet Control Message Protocol version 6 (ICMPv6) Parameters" registry as indicated in Table 2:

Table 2: New ARO flags
ARO flag Meaning Reference
2 (suggested) A flag: Registration for Anycast Address This RFC
3 (suggested) M flag: Registration for Multicast Address This RFC
4 and 5 "I" Field RFC 8505

12.3. New RTO flags

IANA is requested to make additions to the "RPL Target Option Flags" [IANA.RPL.RTO.FLG] subregistry of the "Routing Protocol for Low Power and Lossy Networks (RPL)" registry as indicated in Table 3:

Table 3: New RTO flags
Bit Number Meaning Reference
2 (suggested) A flag: Registered Address is Anycast This RFC
3 (suggested) M flag: Registered Address is Multicast This RFC

12.4. New RPL Mode of Operation

IANA is requested to make an addition to the "Mode of Operation" [IANA.RPL.MOP] subregistry of the "Routing Protocol for Low Power and Lossy Networks (RPL)" registry as indicated in Table 4:

Table 4: New RPL Mode of Operation
Value Description Reference
5 (suggested) Non-Storing Mode of Operation with multicast support This RFC

12.5. New 6LoWPAN Capability Bits

IANA is requested to make an addition to the "6LoWPAN Capability Bits" [IANA.ICMP.6CIO] subregistry subregistry of the "Internet Control Message Protocol version 6 (ICMPv6) Parameters" registry as indicated in Table 5:

Table 5: New 6LoWPAN Capability Bits
Capability Bit Meaning Reference
8 (suggested) M flag: Registration for Multicast and Anycast Addresses Supported This RFC

13. Acknowledgments

14. Normative References

[RFC2119]
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, , <https://www.rfc-editor.org/info/rfc2119>.
[RFC3306]
Haberman, B. and D. Thaler, "Unicast-Prefix-based IPv6 Multicast Addresses", RFC 3306, DOI 10.17487/RFC3306, , <https://www.rfc-editor.org/info/rfc3306>.
[RFC4291]
Hinden, R. and S. Deering, "IP Version 6 Addressing Architecture", RFC 4291, DOI 10.17487/RFC4291, , <https://www.rfc-editor.org/info/rfc4291>.
[RFC4861]
Narten, T., Nordmark, E., Simpson, W., and H. Soliman, "Neighbor Discovery for IP version 6 (IPv6)", RFC 4861, DOI 10.17487/RFC4861, , <https://www.rfc-editor.org/info/rfc4861>.
[RFC4862]
Thomson, S., Narten, T., and T. Jinmei, "IPv6 Stateless Address Autoconfiguration", RFC 4862, DOI 10.17487/RFC4862, , <https://www.rfc-editor.org/info/rfc4862>.
[RFC6550]
Winter, T., Ed., Thubert, P., Ed., Brandt, A., Hui, J., Kelsey, R., Levis, P., Pister, K., Struik, R., Vasseur, JP., and R. Alexander, "RPL: IPv6 Routing Protocol for Low-Power and Lossy Networks", RFC 6550, DOI 10.17487/RFC6550, , <https://www.rfc-editor.org/info/rfc6550>.
[RFC6775]
Shelby, Z., Ed., Chakrabarti, S., Nordmark, E., and C. Bormann, "Neighbor Discovery Optimization for IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs)", RFC 6775, DOI 10.17487/RFC6775, , <https://www.rfc-editor.org/info/rfc6775>.
[RFC7346]
Droms, R., "IPv6 Multicast Address Scopes", RFC 7346, DOI 10.17487/RFC7346, , <https://www.rfc-editor.org/info/rfc7346>.
[RFC7400]
Bormann, C., "6LoWPAN-GHC: Generic Header Compression for IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs)", RFC 7400, DOI 10.17487/RFC7400, , <https://www.rfc-editor.org/info/rfc7400>.
[RFC8174]
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, , <https://www.rfc-editor.org/info/rfc8174>.
[RFC8200]
Deering, S. and R. Hinden, "Internet Protocol, Version 6 (IPv6) Specification", STD 86, RFC 8200, DOI 10.17487/RFC8200, , <https://www.rfc-editor.org/info/rfc8200>.
[RFC8505]
Thubert, P., Ed., Nordmark, E., Chakrabarti, S., and C. Perkins, "Registration Extensions for IPv6 over Low-Power Wireless Personal Area Network (6LoWPAN) Neighbor Discovery", RFC 8505, DOI 10.17487/RFC8505, , <https://www.rfc-editor.org/info/rfc8505>.
[RFC8928]
Thubert, P., Ed., Sarikaya, B., Sethi, M., and R. Struik, "Address-Protected Neighbor Discovery for Low-Power and Lossy Networks", RFC 8928, DOI 10.17487/RFC8928, , <https://www.rfc-editor.org/info/rfc8928>.
[RFC9010]
Thubert, P., Ed. and M. Richardson, "Routing for RPL (Routing Protocol for Low-Power and Lossy Networks) Leaves", RFC 9010, DOI 10.17487/RFC9010, , <https://www.rfc-editor.org/info/rfc9010>.
[IANA.ICMP]
IANA, "IANA Registry for ICMPv6", IANA, https://www.iana.org/assignments/icmpv6-parameters/icmpv6-parameters.xhtml.
[IANA.ICMP.ARO.FLG]
IANA, "IANA Sub-Registry for the ARO Flags", IANA, https://www.iana.org/assignments/icmpv6-parameters/icmpv6-parameters.xhtml#icmpv6-adress-registration-option-flags.
[IANA.ICMP.6CIO]
IANA, "IANA Sub-Registry for the 6LoWPAN Capability Bits", IANA, https://www.iana.org/assignments/icmpv6-parameters/icmpv6-parameters.xhtml#sixlowpan-capability-bits.
[IANA.RPL]
IANA, "IANA Registry for the RPL", IANA, https://www.iana.org/assignments/rpl/rpl.xhtml.
[IANA.RPL.RTO.FLG]
IANA, "IANA Sub-Registry for the RTO Flags", IANA, https://www.iana.org/assignments/rpl/rpl.xhtml#rpl-target-option-flags.
[IANA.RPL.MOP]
IANA, "IANA Sub-Registry for the RPL Mode of Operation", IANA, https://www.iana.org/assignments/rpl/rpl.xhtml#mop.

15. Informative References

[RFC3810]
Vida, R., Ed. and L. Costa, Ed., "Multicast Listener Discovery Version 2 (MLDv2) for IPv6", RFC 3810, DOI 10.17487/RFC3810, , <https://www.rfc-editor.org/info/rfc3810>.
[RFC4919]
Kushalnagar, N., Montenegro, G., and C. Schumacher, "IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs): Overview, Assumptions, Problem Statement, and Goals", RFC 4919, DOI 10.17487/RFC4919, , <https://www.rfc-editor.org/info/rfc4919>.
[RFC6282]
Hui, J., Ed. and P. Thubert, "Compression Format for IPv6 Datagrams over IEEE 802.15.4-Based Networks", RFC 6282, DOI 10.17487/RFC6282, , <https://www.rfc-editor.org/info/rfc6282>.
[RFC7731]
Hui, J. and R. Kelsey, "Multicast Protocol for Low-Power and Lossy Networks (MPL)", RFC 7731, DOI 10.17487/RFC7731, , <https://www.rfc-editor.org/info/rfc7731>.
[RFC7761]
Fenner, B., Handley, M., Holbrook, H., Kouvelas, I., Parekh, R., Zhang, Z., and L. Zheng, "Protocol Independent Multicast - Sparse Mode (PIM-SM): Protocol Specification (Revised)", STD 83, RFC 7761, DOI 10.17487/RFC7761, , <https://www.rfc-editor.org/info/rfc7761>.
[RFC6052]
Bao, C., Huitema, C., Bagnulo, M., Boucadair, M., and X. Li, "IPv6 Addressing of IPv4/IPv6 Translators", RFC 6052, DOI 10.17487/RFC6052, , <https://www.rfc-editor.org/info/rfc6052>.
[RFC9008]
Robles, M.I., Richardson, M., and P. Thubert, "Using RPI Option Type, Routing Header for Source Routes, and IPv6-in-IPv6 Encapsulation in the RPL Data Plane", RFC 9008, DOI 10.17487/RFC9008, , <https://www.rfc-editor.org/info/rfc9008>.
[Wi-SUN]
Heile, B., (Remy), B. L., Zhang, M., and C. E. Perkins, "Wi-SUN FAN Overview", Work in Progress, Internet-Draft, draft-heile-lpwan-wisun-overview-00, , <https://datatracker.ietf.org/doc/html/draft-heile-lpwan-wisun-overview-00>.
[IEEE Std 802.15.4]
IEEE standard for Information Technology, "IEEE Std 802.15.4, Part. 15.4: Wireless Medium Access Control (MAC) and Physical Layer (PHY) Specifications for Low-Rate Wireless Personal Area Networks".
[IEEE Std 802.11]
IEEE standard for Information Technology, "IEEE Standard 802.11 - IEEE Standard for Information Technology - Telecommunications and information exchange between systems Local and metropolitan area networks - Specific requirements - Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications.", <https://ieeexplore.ieee.org/document/9363693>.
[IEEE Std 802.15.1]
IEEE standard for Information Technology, "IEEE Standard for Information Technology - Telecommunications and Information Exchange Between Systems - Local and Metropolitan Area Networks - Specific Requirements. - Part 15.1: Wireless Medium Access Control (MAC) and Physical Layer (PHY) Specifications for Wireless Personal Area Networks (WPANs)".

Author's Address

Pascal Thubert (editor)
Cisco Systems, Inc
Building D
45 Allee des Ormes - BP1200
06254 Mougins - Sophia Antipolis
France