Skip to main content

IPv6 Neighbor Discovery Multicast and Anycast Address Listener Subscription
draft-ietf-6lo-multicast-registration-19

Document Type Active Internet-Draft (6lo WG)
Author Pascal Thubert
Last updated 2024-09-05 (Latest revision 2024-05-16)
Replaces draft-thubert-6lo-multicast-registration
RFC stream Internet Engineering Task Force (IETF)
Intended RFC status Proposed Standard
Formats
Reviews
Additional resources GitHub Repository
GitHub Username: pthubert
Mailing list discussion
Stream WG state Submitted to IESG for Publication
Document shepherd Shwetha Bhandari
Shepherd write-up Show Last changed 2023-06-01
IESG IESG state RFC Ed Queue
Action Holders
(None)
Consensus boilerplate Yes
Telechat date (None)
Responsible AD Éric Vyncke
Send notices to shwetha.bhandari@gmail.com
IANA IANA review state IANA OK - Actions Needed
IANA action state RFC-Ed-Ack
RFC Editor RFC Editor state RFC-EDITOR
Details
draft-ietf-6lo-multicast-registration-19
6lo                                                      P. Thubert, Ed.
Internet-Draft                                               16 May 2024
Updates: 4861, 6550, 6553, 8505, 9010 (if                               
         approved)                                                      
Intended status: Standards Track                                        
Expires: 17 November 2024

     IPv6 Neighbor Discovery Multicast and Anycast Address Listener
                              Subscription
                draft-ietf-6lo-multicast-registration-19

Abstract

   This document updates the 6LoWPAN extensions to IPv6 Neighbor
   Discovery (RFC 4861, RFC 8505) to enable a listener to subscribe to
   an IPv6 anycast or multicast address; the document updates the
   Routing Protocol for Low-Power and Lossy Networks (RFC 6550, RFC
   6553) 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 a 6LoWPAN Router 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 17 November 2024.

Copyright Notice

   Copyright (c) 2024 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents (https://trustee.ietf.org/
   license-info) in effect on the date of publication of this document.

Thubert                 Expires 17 November 2024                [Page 1]
Internet-Draft     Multicast and Anycast Subscription           May 2024

   Please review these documents carefully, as they describe your rights
   and restrictions with respect to this document.  Code Components
   extracted from this document must include Revised BSD License text as
   described in Section 4.e of the Trust Legal Provisions and are
   provided without warranty as described in the Revised BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   3
   2.  Terminology . . . . . . . . . . . . . . . . . . . . . . . . .   5
     2.1.  Requirements Language . . . . . . . . . . . . . . . . . .   5
     2.2.  References  . . . . . . . . . . . . . . . . . . . . . . .   5
     2.3.  Glossary  . . . . . . . . . . . . . . . . . . . . . . . .   6
     2.4.  New terms . . . . . . . . . . . . . . . . . . . . . . . .   7
   3.  Overview  . . . . . . . . . . . . . . . . . . . . . . . . . .   7
   4.  Updating RFC 4861 . . . . . . . . . . . . . . . . . . . . . .  13
   5.  Updating RFC 7400 . . . . . . . . . . . . . . . . . . . . . .  13
   6.  Updating RFC 6550 . . . . . . . . . . . . . . . . . . . . . .  13
     6.1.  Mandating the ROVR field  . . . . . . . . . . . . . . . .  14
     6.2.  Updating MOP 3  . . . . . . . . . . . . . . . . . . . . .  15
     6.3.  New Non-Storing Multicast MOP . . . . . . . . . . . . . .  16
     6.4.  RPL Anycast Operation . . . . . . . . . . . . . . . . . .  17
     6.5.  New Registered Address Type Indicator P-Field . . . . . .  18
     6.6.  New RPL Target Option P-Field . . . . . . . . . . . . . .  19
   7.  Updating RFC 8505 . . . . . . . . . . . . . . . . . . . . . .  20
     7.1.  Placing the New P-Field in the EARO . . . . . . . . . . .  20
     7.2.  Placing the New P-Field in the EDAR Message . . . . . . .  21
     7.3.  Registration Extensions . . . . . . . . . . . . . . . . .  22
   8.  Updating RFC 9010 . . . . . . . . . . . . . . . . . . . . . .  25
   9.  Leveraging RFC 8928 . . . . . . . . . . . . . . . . . . . . .  26
   10. Consistent Uptime Option  . . . . . . . . . . . . . . . . . .  27
   11. Operational considerations  . . . . . . . . . . . . . . . . .  29
   12. Security Considerations . . . . . . . . . . . . . . . . . . .  31
   13. Backward Compatibility  . . . . . . . . . . . . . . . . . . .  32
   14. IANA Considerations . . . . . . . . . . . . . . . . . . . . .  32
     14.1.  New P-Field values Registry  . . . . . . . . . . . . . .  33
     14.2.  New EDAR Message Flags Registry  . . . . . . . . . . . .  33
     14.3.  New EARO flags . . . . . . . . . . . . . . . . . . . . .  34
     14.4.  New RTO flags  . . . . . . . . . . . . . . . . . . . . .  34
     14.5.  New RPL Mode of Operation  . . . . . . . . . . . . . . .  34
     14.6.  New 6LoWPAN Capability Bits  . . . . . . . . . . . . . .  35
     14.7.  New Address Registration Option Status Values  . . . . .  35
     14.8.  New IPv6 Neighbor Discovery Option . . . . . . . . . . .  35
   15. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . .  36
   16. Normative References  . . . . . . . . . . . . . . . . . . . .  36
   17. Informative References  . . . . . . . . . . . . . . . . . . .  38
   Author's Address  . . . . . . . . . . . . . . . . . . . . . . . .  41

Thubert                 Expires 17 November 2024                [Page 2]
Internet-Draft     Multicast and Anycast Subscription           May 2024

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) provides 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.

   RPL uses Destination Advertisement Object (DAO) messages to establish
   Downward routes.  DAO messages are an optional feature for
   applications that require point-to-multipoint (P2MP) or point-to-
   point (P2P) traffic.  RPL supports two modes of Downward traffic:
   Storing (fully stateful) or Non-Storing (fully source routed); see
   Section 9 of [RFC6550].  The mode is signaled in the Mode of
   Operation (MOP) field in the DODAG Information Object (DIO) messages
   and applies to the whole RPL Instance.

   Any given RPL Instance is either storing or non-storing.  In both
   cases, P2P packets travel Up toward a DODAG root then Down to the
   final destination (unless the destination is on the Upward route).
   In the Non-Storing case, the packet will travel all the way to a
   DODAG root before traveling Down.  In the Storing case, the packet
   may be directed Down towards the destination by a common ancestor of
   the source and the destination prior to reaching a DODAG root.
   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

Thubert                 Expires 17 November 2024                [Page 3]
Internet-Draft     Multicast and Anycast Subscription           May 2024

   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
   6LoWPAN Router(s) (6LR) that serve(s) 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 subscription of one or more multicast address(es).

   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 subscribe
   the multicast addresses they listen to.

Thubert                 Expires 17 November 2024                [Page 4]
Internet-Draft     Multicast and Anycast Subscription           May 2024

   This specification Extends [RFC8505] and [RFC9010] to add the
   capability for the 6LN to subscribe anycast and multicast addresses
   and for the 6LR to inject them in RPL when appropriate.  Note that
   due to the unreliable propagation of packets in the LLN, it cannot be
   guaranteed that any given packet is delivered once and only once.  If
   a breakage happens along the preferred parent tree that is normally
   used for multicast forwarding, the packet going up may be rerouted to
   an alternate parent, leading to potential failures and duplications,
   whereas a packet going down will not be delivered in the subtree.  It
   is up to the Upper Layer Protocols to cope with both situations.

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.

   In addition, the terms "Extends" and "Amends" are used as a more
   specific term for "Updates" per [I-D.kuehlewind-update-tag] section 3
   as follows:

   Amends/Amended by:  This tag pair is used with an amending RFC that
          changes the amended RFC.  This could include bug fixes,
          behavior changes etc.  This is intended to specify mandatory
          changes to the protocol.  The goal of this tag pair is to
          signal to anyone looking to implement the amended RFC that
          they MUST also implement the amending RFC.
   Extends/Extended by:  This tag pair is used with an extending RFC
          that defines an optional addition to the extended RFC.  This
          can be used by documents that use existing extension points or
          clarifications that do not change existing protocol behavior.
          This signals to implementers and protocol designers that there
          are changes to the extended RFC that they need to consider but
          not necessarily implement.

2.2.  References

   This document uses terms and concepts that are discussed in:

   *  "Neighbor Discovery for IP version 6" [RFC4861] and "IPv6
      Stateless address Autoconfiguration" [RFC4862],

   *  Routing Protocol for Low-Power and Lossy Networks [RFC6550],

Thubert                 Expires 17 November 2024                [Page 5]
Internet-Draft     Multicast and Anycast Subscription           May 2024

   *  Neighbor Discovery Optimization for Low-Power and Lossy Networks
      [RFC6775], as well as

   *  "Registration Extensions for 6LoWPAN Neighbor Discovery" [RFC8505]
      and

   *  "Using RPI Option Type, Routing Header for Source Routes, and
      IPv6-in-IPv6 Encapsulation in the RPL Data Plane" [RFC9008].

2.3.  Glossary

   This document uses the following acronyms:

   6BBR   6LoWPAN Backbone Router
   6CIO   Capability Indication Option
   6LBR   6LoWPAN Border Router
   6LN    6LoWPAN Node
   6LR    6LoWPAN Router
   AMC    Address Mapping Confirmation
   AMR    Address Mapping Request
   ARO    Address Registration Option
   DAC    Duplicate Address Confirmation
   DAD    Duplicate Address Detection
   DAO    Destination Advertisement Object
   DAR    Duplicate Address Request
   DIO    DODAG Information Object
   DMB    Direct MAC Broadcast
   DODAG  Destination-Oriented Directed Acyclic Graph
   EARO   Extended Address Registration Option
   EDAC   Extended Duplicate Address Confirmation
   EDAR   Extended Duplicate Address Request
   IR     Ingress Replication
   LLN    Low-Power and Lossy Network
   MOP    Mode of Operation
   NA     Neighbor Advertisement
   NCE    Neighbor Cache Entry
   ND     Neighbor Discovery
   NS     Neighbor Solicitation
   RA     Router Advertisement
   ROVR   Registration Ownership Verifier, pronounced "rover"
   RPL    Routing Protocol for Low-Power and Lossy Networks, pronounced
          "ripple"
   RS     Router Solicitation
   RTO    RPL Target Option
   TID    Transaction ID
   TIO    Transit Information Option

Thubert                 Expires 17 November 2024                [Page 6]
Internet-Draft     Multicast and Anycast Subscription           May 2024

2.4.  New terms

   This document introduces the following terms:

   Origin  The node that issued an anycast or multicast advertisement,
          either in the form of an NS(EARO) or as a DAO(TIO, RTO)
   Merge/merging  The action of receiving multiple anycast or multicast
          advertisements, either internally from self, in the form of an
          NS(EARO), or as a DAO(TIO, RTO), and generating a single
          DAO(TIO, RTO).  The RPL router maintains a state per origin
          for each advertised address, and merges the advertisements for
          all subscriptions for the same address in a single
          advertisement.  A RPL router that merges multicast
          advertisements from different origins becomes the origin of
          the merged advertisement and uses its own values for the Path
          Sequence and Registration Ownership Verifier (ROVR) fields.
   Subscribe/subscription  The special form of registration that
          leverages NS(EARO) to register (subscribe to) a multicast or
          an anycast address.

3.  Overview

   This specification Extends [RFC8505] and inherits from [RFC8928] to
   provide a registration method - called subscription in this case -
   for anycast and multicast address.  [RFC8505] is agnostic to the
   routing protocol in which the address may be redistributed.

   As opposed to unicast addresses, there might be multiple
   registrations from multiple parties for the same address.  The router
   retains one registration per party per multicast or anycast address,
   but injects the route into the routing protocol only once for each
   address, asynchronously to the registration.  On the other hand, the
   validation exchange with the registrar (6LBR) is still needed if the
   router checks the right for the host to listen to the anycast or
   multicast address.

   Figure 1 depicts the registration of an anycast or a multicast
   address.  As shown, the 6LBR receives and accepts multiple Extended
   DAR messages for the same address, and the address being registered
   by multiple nodes is not treated as a duplication.

Thubert                 Expires 17 November 2024                [Page 7]
Internet-Draft     Multicast and Anycast Subscription           May 2024

       6LoWPAN Node           6LR             6LBR
         (host1)           (router)        (registrar)
            |                  |               |
            |   DMB link       |               |
            |                  |               |
            |  ND-Classic RS   |               |
            |----------------->|               |
            |------------>     |               |
            |------------------------>         |
            |  ND-Classic RA   |               |
            |<-----------------|               |
            |                  |               |
            |  NS(EARO)        |               |
            |----------------->|               |
            |                  | Extended DAR  |
            |                  |-------------->|
            |                  |               |
            |                  | Extended DAC  |
            |                  |<--------------|
            |        NA(EARO)  |
            |<-----------------|<inject route> ->
            |                  |
                      ...
         (host2)           (router)           6LBR
            |  NS(EARO)        |               |
            |----------------->|               |
            |                  |               |
            |                  | Extended DAR  |
            |                  |-------------->|
            |                  |               |
            |                  | Extended DAC  |
            |                  |<--------------|
            |        NA(EARO)  |               |
            |<-----------------|               |
                      ...
         (host1)           (router)
            |  NS(EARO)        |               |
            |----------------->|               |
            |                  |               |
            |        NA(EARO)  |               |
            |<-----------------|               |
                      ...
            |                  |<maintain route> ->
                      ...

      Figure 1: Registration Flow for an anycast or multicast Address

Thubert                 Expires 17 November 2024                [Page 8]
Internet-Draft     Multicast and Anycast Subscription           May 2024

   In classical networks, [RFC8505] may be used for an ND proxy
   operation as specified in [RFC8929], or redistributed in a full-
   fledged routing protocol such as might be done in BGP for Ethernet
   VPN [I-D.thubert-bess-secure-evpn-mac-signaling] or in the Routing In
   Fat Trees (RIFT) protocol [I-D.ietf-rift-rift].  The device mobility
   can be gracefully supported as long as the routers can exchange and
   make sense of the sequence counter in the TID field of the EARO.

   In the case of LLNs, RPL [RFC6550] is the routing protocol of choice
   and [RFC9010] specifies how the unicast address advertised with
   [RFC8505] is redistributed in RPL.  This specification also provides
   RPL extensions for anycast and multicast address operation and
   redistribution.  In the RPL case and unless specified otherwise, 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 RPL-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
   modifies existing options and updates the associated behaviors to
   enable the Registration for Multicast Addresses as an extension to
   [RFC8505].  As with the unicast address registration, the
   subscription to anycast and multicast addresses between a node and
   its router(s) is agnostic (meaning, independent, unaware of) to the
   routing protocol in which this information may be redistributed or
   aggregated by the router to other routers, though protocol extensions
   would be needed in the protocol when multicast services are not
   available.

   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 herein MUST also implement [RFC9010].

   Figure 2 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.

Thubert                 Expires 17 November 2024                [Page 9]
Internet-Draft     Multicast and Anycast Subscription           May 2024

   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 [Wi-SUN] and 6TiSCH [RFC9030]
   meshes 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 2: Wireless Mesh

   A leaf acting as a 6LN registers its unicast addresses to 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/EDAC exchange with the 6LBR to notify the 6LBR of
   the presence of the listeners.

   This specification updates the EARO with a new two-bit field, the
   P-Field, as detailed in Section 7.1.  The existing R flag that
   requests reachability for the registered address gets new behavior.
   With this extension the 6LNs can now subscribe to the anycast and
   multicast addresses they listen to, using a new P-Field in the EARO
   to signal that the registration is for a multicast address.  Multiple
   6LNs may subscribe 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.

Thubert                 Expires 17 November 2024               [Page 10]
Internet-Draft     Multicast and Anycast Subscription           May 2024

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

   If the R flag is set in the subscription of one or more 6LNs for the
   same address, the 6LR injects the anycast addresses and multicast
   addresses of a scope larger than link-scope in RPL, based on the
   longest subscription lifetime across the active subscriptions 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, except 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.

   LLN links are typically Direct MAC Broadcast (DMB) (more in
   [I-D.ietf-6man-ipv6-over-wireless]) with no emulation to increase
   range (over multiple radio hops) or reliability.  In such links,
   broadcasting is unreliable and asynchronous transmissions force a
   listener to remain awake, so asynchronous broadcasting is generally
   inefficient.  The expectation is thus that whenever possible, the
   6LRs deliver the multicast packets as individual unicast MAC frames
   to each of the 6LNs that subscribed to the multicast address.  On the
   other hand, in a network where nodes do not sleep, asynchronous
   broadcasting may still help recovering faster when state is lost.

   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.

Thubert                 Expires 17 November 2024               [Page 11]
Internet-Draft     Multicast and Anycast Subscription           May 2024

   Operationally speaking, deploying a new MOP means that one cannot
   update a live network.  The network administrator must create a new
   instance with MOP 5 and migrate nodes to that instance by allowing
   them to join it.

   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 11.

   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, e.g., using this specification as a
   replacement to MLD in an Ethernet bridged domain and still using
   either plain MAC-layer broadcast or snooping this protocol to control
   the flooding.  It may also rely on overlay services to optimize the
   impact of Broadcast, Unknown, and Multicast (BUM) over a fabric, e.g.
   registering with [I-D.thubert-bess-secure-evpn-mac-signaling] and
   forwarding with [I-D.ietf-bess-evpn-optimized-ir].

   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:

   *  In one possible variation, all the 6LNs set the R flag in the EARO
      for a multicast target, upon which the 6LRs send a unicast DAO
      message to the Root; the Root filters out the multicast messages
      for which there is no listener and only floods when there is.

   *  In a simpler variation, the 6LNs do not set the R flag and the
      Root floods all the multicast packets over the whole DODAG.  Using
      configuration, it is also possible to control the behavior of the
      6LR to ignore the R flag and either always or never send the DAO
      message, and/or to control the Root and specify which groups it
      should flood or not flood.

   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.

Thubert                 Expires 17 November 2024               [Page 12]
Internet-Draft     Multicast and Anycast Subscription           May 2024

4.  Updating RFC 4861

   Section 7.1 of [RFC4861] requires to silently discard NS and NA
   packets when the Target Address is a multicast address.  This
   specification Amends [RFC4861] by allowing to advertise multicast and
   anycast addresses in the Target Address field when the NS message is
   used for a registration, per section 5.5 of [RFC8505].

5.  Updating RFC 7400

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

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

   Figure 3 illustrates the X 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   |X|A|D|L|B|P|E|G|
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                           Reserved                            |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                 Figure 3: New Capability Bits in the 6CIO

   New Option Field:

   X  1-bit flag: "Registration for Unicast, Multicast, and Anycast
      Addresses Supported"

6.  Updating RFC 6550

   This specification Amends [RFC6550] to mandate the use of the ROVR
   field as the indication of the origin of a Target advertisement in
   the RPL DAO messages, as specified as an option in section 6.1 of
   [RFC9010].

Thubert                 Expires 17 November 2024               [Page 13]
Internet-Draft     Multicast and Anycast Subscription           May 2024

   This specification Extends [RFC6550] with a new P-Field in the RPL
   Target Option.

   The specification also Amends the behaviors of the Modes of Operation
   MOP 1 and MOP 3, and Extends [RFC6550] with a new MOP 5.

6.1.  Mandating the ROVR field

   For anycast and multicast advertisements (in NS or DAO messages),
   multiple origins may subscribe to the same address, in which case the
   multiple advertisements from the different or unknown origins are
   merged by the common parent; in that case, the common parent becomes
   the origin of the merged advertisements and uses its own ROVR value.
   On the other hand, a parent that propagates an advertisement from a
   single origin uses the original ROVR in the propagated RTO, as it
   does for unicast address advertisements, so the origin is recognised
   across multiple hops.

   [RFC6550] uses the Path Sequence in the Transit Information Option
   (TIO) to retain only the freshest unicast route and remove stale
   ones, e.g., in the case of mobility.  [RFC9010] copies the TID from
   the EARO into the Path Sequence, and the ROVR field into the
   associated RPL Target Option (RTO).  This way, it is possible to
   identify both the registering node and the order of registration in
   RPL for each individual advertisement, so the most recent path and
   lifetime values are used.

   This specification Extends [RFC6550] to require that, for anycast and
   multicast advertisements, the Path Sequence is used between and only
   between advertisements for the same Target and from the same origin
   (i.e, with the same ROVR value); in that case, only the freshest
   advertisement is retained.  But the freshness comparison cannot apply
   if the origin is not determined (i.e., the origin did not support
   this specification).

   [RFC6550] uses the Path Lifetime in the TIO to indicate the remaining
   time for which the advertisement is valid for unicast route
   determination, and a Path Lifetime value of 0 invalidates that route.
   [RFC9010] maps the Address Registration lifetime in the EARO and the
   Path Lifetime in the TIO so they are comparable when both forms of
   advertisements are received.

Thubert                 Expires 17 November 2024               [Page 14]
Internet-Draft     Multicast and Anycast Subscription           May 2024

   The RPL router that merges multiple advertisements for the same
   anycast or multicast addresses MUST use and advertise the longest
   remaining lifetime across all the origins of the advertisements for
   that address.  When the lifetime expires, the router sends a no-path
   DAO (i.e., the lifetime is 0) using the same value for ROVR value as
   for the previous advertisements, that is either self or the single
   descendant that advertised the Target.

   Note that the Registration Lifetime, TID and ROVR fields are also
   placed in the EDAR message so the state created by EDAR is also
   comparable with that created upon an NS(EARO) or a DAO message.  For
   simplicity the text below mentions only NS(EARO) but applies also to
   EDAR.

6.2.  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 hybrid use
   of the Storing Mode for multicast and Non-Storing Mode for unicast in
   the same RPL Instance, as is elaborated in more detail in Section 11.

   For anycast and multicast advertisements, including MOP 3, the ROVR
   field is placed in the RPL Target Option as specified in [RFC9010]
   for both MOP 3 and MOP 5 as it is for unicast advertisements.

   Though it was implicit with [RFC6550], this specification clarifies
   that the freshness comparison based on the Path Sequence is not used
   when the origin cannot be determined, which is the case there.  The
   comparison is to be used only between advertisements from the same
   origin, which is either an individual subscriber, or a descendant
   that merged multiple advertisements.

   A RPL router maintains a remaining Path Lifetime for each DAO that it
   receives for a multicast target, and sends its own DAO for that
   target with the longest remaining lifetime across its listening
   children.  If the router has only one descendant listening, it
   propagates the TID and ROVR as received.  Conversely, if the router
   merges multiple advertisements (including possibly one for itself as

Thubert                 Expires 17 November 2024               [Page 15]
Internet-Draft     Multicast and Anycast Subscription           May 2024

   a listener), the router uses its own ROVR and TID values.  This
   implies a possible transition of ROVR and TID values when the number
   of listening children changes from one to more or back to one, which
   should not be considered as an error or a change of ownership by the
   parents above.

6.3.  New Non-Storing Multicast MOP

   This specification adds a "Non-Storing Mode of Operation with ingress
   replication multicast support" (MOP to be assigned by IANA) whereby
   the non-storing Mode DAO to the Root may advertise a multicast
   address 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 anycast and multicast advertisements in NA (at the 6LR) and DAO
   (at the Root) messages, as discussed in Section 6.2, the freshness
   comparison based on the TID field is applied only between messages
   from the same origin, as determined by the same value in the ROVR
   field.

   The Root maintains a remaining Path Lifetime for each advertisement
   it receives, and the 6LRs generate the DAO for multicast addresses
   with the longest remaining lifetime across its registered 6LNs, using
   its own ROVR and TID when multiple 6LNs subscribed, or if this 6LR is
   one of the subscribers.

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

Thubert                 Expires 17 November 2024               [Page 16]
Internet-Draft     Multicast and Anycast Subscription           May 2024

6.4.  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, the format of an anycast address is not distinguishable
   from that of unicast.  A legacy node may issue a DAO message without
   setting the P-Field to 2, the unicast behavior may apply to anycast
   traffic within a portion of the network, but the packets will still
   be delivered.  That message will be undistinguishable from a unicast
   advertisement and the anycast behavior in the dataplane can only
   happen if all the nodes that advertise the same anycast address are
   synchronized with the same TID.  That way, the multiple paths can
   remain in the RPL DODAG.

   With the P-Field set to 2, this specification alleviates the issue of
   synchronizing the TIDs and ROVR fields.  As for multicast, the
   freshness comparison based on the TID (in EARO) and the Path Sequence
   (in TIO) is ignored unless the messages have the same origin, as
   inferred by the same ROVR in RTO and/or EARO, and the latest value of
   the lifetime is retained for each origin.

   A RPL router that propagates an advertisement from a single origin
   uses the ROVR and Path Sequence from that origin, whereas a router
   that merges multiple subscriptions uses its own ROVR and Path
   Sequence and the longest lifetime over the different advertisements.
   A target is routed as anycast by a parent (or the Root) that received
   at least one DAO message for that target with the P-Field set to 2.

   As opposed to multicast, the anycast operation described therein
   applies to both addresses and prefixes, and the P-Field can be set to
   2 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 comparison and vs. the
   multipath load balancing.

   For either multicast and anycast, there can be multiple subscriptions
   from multiple origins, each using a different value of the ROVR field
   that identifies the individual subscription.  The 6LR maintains a
   subscription state per value of the ROVR per multicast or anycast
   address, but injects the route into RPL only once for each address,
   and in the case of a multicast address, only if its scope is larger
   than link-scope (3 or more).  Since the subscriptions are considered
   separate, the check on the TID that acts as subscription sequence
   only applies to the subscription with the same ROVR.

Thubert                 Expires 17 November 2024               [Page 17]
Internet-Draft     Multicast and Anycast Subscription           May 2024

   Like the 6LR, a RPL router in Storing Mode propagates the merged
   advertisement to its parent(s) in DAO messages once and only once for
   each address, but it retains 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.

6.5.  New Registered Address Type Indicator P-Field

   The new Registered Address Type Indicator (RATInd) is created for use
   in RPL Target Option, the EARO, and the header of EDAR messages.  The
   RATInd indicates whether an address is unicast, multicast, or
   anycast.  The new 2-bit P-Field is defined to transport the RATInd in
   different protocols.

   The P-Field can take the following values:

     +---------------+----------------------------------------------+
     | P-Field Value | Registered Address Type                      |
     +---------------+----------------------------------------------+
     | 0             | Registration for a Unicast Address or prefix |
     +---------------+----------------------------------------------+
     | 1             | Registration for a Multicast Address         |
     +---------------+----------------------------------------------+
     | 2             | Registration for an Anycast Address          |
     +---------------+----------------------------------------------+
     | 3             | Reserved, MUST NOT be used by the sender.    |
     +---------------+----------------------------------------------+

                         Table 1: P-Field Values

   The intent for the value of 3 is a prefix registration (see
   [I-D.ietf-6lo-prefix-registration], which is expected to be published
   soon after this specification.  At the time of this writing, RPL
   already advertises prefixes, and treated unicast addresses as
   prefgixes with a length of 128, so it does not really need that new
   value.  On the other hand, 6LoWPAN ND does not, and the value of 3
   meaning prefix registration will not be processed adequately.  As a
   result:

Thubert                 Expires 17 November 2024               [Page 18]
Internet-Draft     Multicast and Anycast Subscription           May 2024

   *  When the value of 3 is received in an RTO (see Section 6.6), this
      value MUST be ignored by the receiver, meaning, treated as a value
      of 0, but the message is processed normally (as per [RFC6550] and
      [RFC9010]).

   *  In the case of an EARO (see Section 7.1) or an EDAR (see
      Section 7.2), the message MUST be dropped, and the receiving node
      MAY either reply with a status of 12 "Invalid Registration" or
      remain silent.

6.6.  New RPL Target Option P-Field

   [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 2-bit P-Field (see
   Section 6.5) to the RTO to indicate that the target address is to be
   processed as unicast, multicast or anycast.

   *  An RTO that has the P-Field set to 0 is called a unicast RTO.

   *  An RTO that has the P-Field set to 1 is called a multicast RTO.

   *  An RTO that has the P-Field set to 2 is called an anycast RTO.

   The suggested position for the P-Field is 2 counting from 0 to 7 in
   network order as shown in Figure 4, 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| P |ROVRsz | Prefix Length |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                                                               |
     |                Target Prefix (Variable Length)                |
     .                                                               .
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                                                               |
    ...            Registration Ownership Verifier (ROVR)           ...
     |                                                               |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                 Figure 4: Format of the RPL Target Option

   New and updated Option Fields:

   P:  2-bit field; see Section 6.5

Thubert                 Expires 17 November 2024               [Page 19]
Internet-Draft     Multicast and Anycast Subscription           May 2024

7.  Updating RFC 8505

   This specification Extends [RFC8505] by adding the concept of
   subscription for anycast and multicast addresses and creating a new
   field called the P-Field in the EARO and the EDAR/EDAC messages ti
   signal the type of registration.

7.1.  Placing the New P-Field in the EARO

   Section 4.1 of [RFC8505] defines the EARO as an extension to the ARO
   option defined in [RFC6775].  This specification adds a new P-Field
   placed in the EARO flags that is set as follows:

   *  The P-Field is set to 1 to signal that the Registered Address is a
      multicast address.  When the P-Field is 1 and the R flag is set to
      1 as well, the 6LR that conforms to this specification joins the
      multicast stream, e.g., by injecting the address in the RPL
      multicast support that is extended in this specification for Non-
      Storing Mode.

   *  The P-Field is set to 2 to signal that the Registered Address is
      an anycast address.  When the P-Field is 2 and the R flag is 1,
      the 6LR that conforms to this specification injects the anycast
      address in the routing protocol(s) that it participates to, e.g.,
      in the RPL anycast support that is introduced in this
      specification for both Storing and Non-Storing Modes.

   Figure 5 illustrates the P-Field in its suggested positions (2,
   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| P | I |R|T|     TID       |     Registration Lifetime     |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                                                               |
    ...             Registration Ownership Verifier                 ...
     |                                                               |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                        Figure 5: EARO Option Format

   New and updated Option Fields:

   Rsv:  2-bit field; reserved, MUST be set to 0 and ignored by the

Thubert                 Expires 17 November 2024               [Page 20]
Internet-Draft     Multicast and Anycast Subscription           May 2024

      receiver

   P:  2-bit P-Field; see Section 6.5

7.2.  Placing the New P-Field in the EDAR Message

   Section 4 of [RFC6775] provides the same format for DAR and DAC
   messages but the status field is only used in DAC messages and has to
   be set to zero in DAR 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 as a Flags
   field.  It adds a new P-Field to the EDAR flags field to match the
   P-Field in the EARO and signal the new types of registration.  The
   EDAC message is not modified.

   Figure 6 illustrates the P-Field in its suggested position (0,
   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             |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     | P | Reserved  |     TID       |     Registration Lifetime     |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                                                               |
    ...            Registration Ownership Verifier (ROVR)           ...
     |                                                               |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                                                               |
     +                                                               +
     |                                                               |
     +                       Registered Address                      +
     |                                                               |
     +                                                               +
     |                                                               |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

        Figure 6: Extended Duplicate Address Request Message Format

   New and updated Option Fields:

   Reserved  6-bit field: reserved, MUST be set to 0 and ignored by the
      receiver

   P:  2-bit field; see Section 6.5

Thubert                 Expires 17 November 2024               [Page 21]
Internet-Draft     Multicast and Anycast Subscription           May 2024

7.3.  Registration Extensions

   [RFC8505] specifies the following behaviours:

   *  A router that expects to reboot may send a final RA message, upon
      which nodes should subscribe elsewhere or redo the subscription to
      the same router upon reboot.  In all other cases, a node reboot is
      silent.  When the node comes back to life, existing registration
      state might be lost if it was not persisted, e.g., in persistent
      memory.

   *  The registration method is specified only for unicast addresses.

   *  The 6LN must register all its ULA and GUA with an 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 Amends une above behavior and Extends it with the
   following behavior:

   *  The concept of subscription is introduced for anycast and
      multicast addresses as an extension to the unicast address
      registration.  The respective operations are similar from the
      perspective of the 6LN, but show important differences on the
      router side, which maintains a separate state for each origin and
      merges them in its own advertisements.

   *  New ARO Statuses are introduced to indicate a "Registration
      Refresh Request" and an "Invalid Registration" (see Table 9).

      The former status is used in asynchronous NA(EARO) messages to
      indicate to peer 6LNs that they are requested to reregister all
      addresses that were previously registered to the originating node.
      The NA message may be sent to a unicast or a multicast link-scope
      address and should be contained within the L2 range where nodes
      may effectively have registered/subscribed to this router, e.g., a
      radio broadcast domain.  The latter is generic to any error in the
      EARO, and is used e.g., to report that the P-Field is not
      consistent with the Registered Address in NS(EARO) and EDAR
      messages.

Thubert                 Expires 17 November 2024               [Page 22]
Internet-Draft     Multicast and Anycast Subscription           May 2024

      A router that wishes to refresh its state, e.g., upon reboot or in
      any situation where it may have missed a registration or lost a
      registration state, SHOULD send an asynchronous NA(EARO) with this
      new status value.  Failure to do so will delay the recovery of the
      network till the next periodic registration by the attached 6LNs
      and packets may be lost till then.  That asynchronous multicast
      NA(EARO) MUST be sent to the all-nodes link scope multicast
      address (ff02::1) and Target MUST be set to the link local address
      that was exposed previously by this node to accept registrations.

      The TID field in the multicast NA(EARO) is the one associated to
      the Target and follows the same rules as the TID in the NS(EARO)
      for the same Target, see section 5.2 of [RFC8505], which points at
      section 7.2 of [RFC6550] for the lollipop mechanism used in the
      TID operation.  It is incremented by the sender each time it sends
      a new series of NS and/or NA with the EARO about the Target.  The
      TID indicates a reboot when it is in the "straight" part of the
      lollipop, between the initial value and 255.  After that the TID
      remains below 128 as long as the device is alive.  An asynchronous
      multicast NA(EARO) with a TID below 128 MUST NOT be considered as
      indicating a reboot.

      The asynchronous multicast NA(EARO) indicating a "Registration
      Refresh Request" MAY be reissued a few times within a short
      period, to increase the chances that the message is received by
      all registered nodes despite the unreliable transmissions within
      the LLN; the TID MUST be incremented each time.  The receiver 6LN
      MUST consider that multiple NA(EARO) messages indicating a
      "Registration Refresh Request" from the same 6LR received within
      that short period with comparable (their absolute difference is
      less than SEQUENCE_WINDOW, see section 7.2 of [RFC6550]) and
      increasing TID values are in fact indicative of the same request;
      the 6LN MUST process one and only one of the series of messages.
      If the TIDs are desynchronized (not comparable), or decreased,
      then the NA(EARO) is considered as a new request and it MUST be
      processed.

      The multicast NA(EARO) SHOULD be resent enough times for the TID
      to be issued with the value of 255 so the next NA(EARO) after the
      initial series is outside the lollipop and not confused with a
      reboot.  By default the TID initial setting after boot is 252, the
      SEQUENCE_WINDOW is 4, the duration of the short period is 10
      seconds, the interval between retries is 1 second, and the number
      of retries is 3.  To reach 255 at boot time, the sender MAY either
      issue at least 4 NA messages, skip a TID value, or start with a
      value that is more than 252.  The best values for the short
      period, the number of retries, and the TID initial setting depend
      on the environment and SHOULD be configurable.

Thubert                 Expires 17 November 2024               [Page 23]
Internet-Draft     Multicast and Anycast Subscription           May 2024

   *  A new IPv6 ND Consistent Uptime option (CUO) is introduced to be
      placed in IPv6 ND messages.  The CUO allows to figure the state
      consistency between the sender and the receiver.  For instance, a
      node that rebooted needs to reset its uptime to 0.  A Router that
      changed information like a prefix information option has to
      advertise an incremented state sequence.  To that effect, the CUO
      carries a Node State Sequence Information (NSSI) and a Consistent
      Uptime.  See Section 10 for the option details.

      A node that receives the CUO checks whether it is indicative of a
      desynchronization between peers.  A peer that discovers that a
      router has changed should reassess which addresses it formed based
      on the new PIOs from that router, and resync the state that it
      installed in the router, e.g., the registration state for its
      addresses.  In the process, the peer may attempt to form new
      addresses and register them, deprecate old addresses and
      deregister them using a Lifetime of 0, and reform any potentially
      lost state, e.g., by registering again an existing address that it
      will keep using.  A loss of state is inferred if the Consistent
      Uptime of the peer is less than the time since the state was
      installed, or the NSSI is incremented for a consistent uptime.

   *  Registration for multicast and anycast addresses is now supported.
      The P-Field is added to the EARO to signal when the registered
      address is anycast or multicast.  If the value of the P-Field is
      not consistent with the Registered Address, that is if

      -  the Registered Address is a multicast address (section 2.4 of
         [RFC4291]) and the P-Field indicates a value that is not 1, or

      -  the Registered Address is not a multicast address and the
         P-Field indicates a value that is 1.

      then the message, NS(EARO) or EDAR, MUST be dropped, and the
      receiving node MAY either reply with a status of 12 "Invalid
      Registration" or remain silent.

   *  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 subscribe all the IPv6 multicast addresses that
      it listens to, and it MUST set the P-Field to 1 in the EARO for
      those addresses.  The one exception is the all-nodes link-scope
      multicast address ff02::1 [RFC4291] which is implicitly registered
      by all nodes, meaning that all nodes are expected to accept
      messages sent to ff02::1 but are not expected to register it.

Thubert                 Expires 17 November 2024               [Page 24]
Internet-Draft     Multicast and Anycast Subscription           May 2024

   *  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 subscribe all the IPv6 anycast addresses that it
      supports and it MUST set the P-Field in the EARO to 2 for those
      addresses.

   *  The 6LR and the 6LBR are extended to accept more than one
      subscription 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 Source Link-Layer Address Option)
      also registered to the all nodes link-scope multicast address
      ff02::1 [RFC4291].

   *  The 6LR MUST maintain a subscription 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 subscription
      state per tuple (IPv6 address, ROVR) for both anycast and
      multicast types of address.

8.  Updating RFC 9010

   [RFC9010] specifies the following behaviours:

   *  The 6LR has no specified procedure to inject multicast and anycast
      routes in RPL though RPL supports multicast.

   *  Upon a registration with the R flag set to 1 in the EARO, the 6LR
      injects the address in the RPL unicast support.

   *  Upon receiving a packet directed to a unicast address for which it
      has an active registration, the 6LR delivers the packet as a
      unicast layer-2 frame to the LLA of the node that registered the
      unicast address.

   This specification Extends [RFC9010] by adding the following
   behavior:

Thubert                 Expires 17 November 2024               [Page 25]
Internet-Draft     Multicast and Anycast Subscription           May 2024

   *  Upon a subscription with the R flag and the P-Field both set to 1
      in the EARO, if the scope of the multicast address is above link-
      scope [RFC7346], then the 6LR injects the address in the RPL
      multicast support and sets the P field in the RTO to 1 as well.

   *  Upon a subscription with the R set to 1 and the P-Field set to 2
      in the EARO, the 6LR injects the address in the new RPL anycast
      support and sets the P-Field to 2 in the RTO.

   *  Upon receiving a packet directed to a multicast address for which
      it has at least one subscription, the 6LR delivers a copy of the
      packet as a unicast layer-2 frame to the LLA of each of the nodes
      that registered to that multicast address.

   *  Upon receiving a packet directed to an anycast address for which
      it has at least one subscription, the 6LR delivers a copy of the
      packet as a unicast layer-2 frame to the LLA of exactly one of the
      nodes that registered to that multicast address.

9.  Leveraging RFC 8928

   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.  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.  If [RFC8928]
   is used, 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 subscription.

Thubert                 Expires 17 November 2024               [Page 26]
Internet-Draft     Multicast and Anycast Subscription           May 2024

   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 subscribe to the address.

10.  Consistent Uptime Option

   This specification introduces a new option that characterizes the
   uptime of the sender.  The option may be used by routers in RA
   messages and by any node in NS, NA, and RS messages.  It is used by
   the receiver to infer whether some state synchronization might be
   lost, e.g., due to reboot.

      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    | Exponent  |  Uptime Mantissa  |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |S|U|   flags   |          NSSI         |     Peer NSSI         |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                 Figure 7: Consistent Uptime Option Format

   Type:  To be assigned by IANA, see Table 10

   Length:  1

   Uptime Exponent:  6-bit unsigned integer: The Exponent to the base 2
      of the uptime unit

   Uptime Mantissa:  10-bit unsigned integer: The mantissa of the uptime
      value

   S:  1-bit flag, set to 1 to indicate that the sender is low-power and
      may sleep.

   U:  1-bit flag, set to 1 to indicate that the Peer NSSI field is
      valid; it MUST be set to 0 when the message is not unicast and
      MUST be set to 1 when the message is unicast and the sender has an
      NSSI state for the intended receiver.

   flags:  6-bit, reserved.  MUST be set to 0 by the sender and ignored
      by the receiver.

   NSSI:  12-bit unsigned integer: The Node State Sequence Information,
      MUST be stored by the receiver if it has a dependency on
      information advertised or stored at the sender.

   Peer NSSI:  12-bit unsigned integer: Echoes the last known NSSI from

Thubert                 Expires 17 November 2024               [Page 27]
Internet-Draft     Multicast and Anycast Subscription           May 2024

      the peer.

   The Consistent Uptime indicates how long the sender has been
   continuously up and running (though possibly sleeping) without loss
   of state.  It is expressed by the Uptime Mantissa in units of 2 to
   the power of the Uptime Exponent milliseconds.  The receiver derives
   the boot time of the sender as the current time minus the sender's
   Consistent Uptime.

   If the boot time of the sender is updated to a newer time, any state
   that the receiver installed in the sender before the reboot is
   probably lost.  The receiver MUST reassess all the state it installed
   in the server (e.g., any registration) and reinstall if it is still
   needed.

   The U flag not set in a unicast message from the sender indicates
   that it has lost all state from this node.  If the U flag is set,
   then the Peer NSSI field can be used to assess which changes the
   sender missed.  The other way around, any state that was installed in
   the receiver from information by the sender before it rebooted MUST
   be removed and may or may not be reinstalled later.

   The value of the uptime is reset to 0 at some point of the sender's
   reboot sequence, but may not be still 0 when the first message is
   sent, so the receiver must not expect a value of 0 as the signal of a
   reboot.

             +----------+----------+------------+-----------+
             | Mantissa | Exponent | Resolution | Uptime    |
             +----------+----------+------------+-----------+
             | 1        | 0        | 1ms        | 1ms       |
             +----------+----------+------------+-----------+
             | 5        | 10       | 1s         | 5 seconds |
             +----------+----------+------------+-----------+
             | 2        | 15       | 30s        | 1mn       |
             +----------+----------+------------+-----------+
             | 2        | 21       | 33mn       | 1 hour    |
             +----------+----------+------------+-----------+

                 Table 2: Consistent Uptime Rough Values

   The NSSI SHOULD be stored in persistent memory by the sender and
   incremented when it may have missed or lost state about a peer, or
   has updated some state in a fashion that will impact a peer, e.g., a
   host formed a new address or a router advertises a new prefix.  When
   persisting is not possible, then the NSSI is randomly generated.

Thubert                 Expires 17 November 2024               [Page 28]
Internet-Draft     Multicast and Anycast Subscription           May 2024

   As long as the NSSI remains constant, the cross-dependent state (such
   as addresses in a host that depend on a prefix in a router) can
   remain stable, meaning less checks in the receiver.  Any change in
   the value of the NSSI is an indication that the sender updated some
   state and that the dependent state in the receiver should be
   reassessed, e.g., addresses that were formed based on an RA with a
   previous NSSI should be checked, or new addresses may be formed and
   registered.

11.  Operational considerations

   With this specification, a RPL DODAG forms a realm, and multiple RPL
   DODAGs may be 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 a packet with an IPv4 multicast
   Destination Address, it MUST use a multicast address with 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.

   This specification introduces the new RPL MOP 5.  Operationally
   speaking, deploying a new RPL MOP means that one cannot update a live
   network.  The network administrator must create a new instance with
   MOP 5 and migrate nodes to that instance by allowing them to join it.

   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.

Thubert                 Expires 17 November 2024               [Page 29]
Internet-Draft     Multicast and Anycast Subscription           May 2024

   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:

   *  There MUST be enough density of 6LRs that support the mixed mode
      to cover all the 6LNs that require multicast or anycast services.
      In Storing Mode, there MUST be enough density of 6LRs that support
      the mixed mode to also form a DODAG to the Root.

   *  The RPL routers that support the mixed mode are configured to
      operate in accordance with the desired operation in the network.

   *  The MOP signaled in the RPL DIO messages is MOP 1 to enable the
      legacy nodes to operate as leaves.

Thubert                 Expires 17 November 2024               [Page 30]
Internet-Draft     Multicast and Anycast Subscription           May 2024

   *  The support of multicast and/or anycast in the RPL Instance SHOULD
      be signaled by the 6LRs to the 6LN using a 6CIO, see Section 5.

   *  Alternatively, the support of multicast in the RPL domain can be
      globally known by other means such as configuration or external
      information such as support of a version of an industry standard
      that mandates it.  In that case, all the routers MUST support the
      mixed mode.

12.  Security Considerations

   This specification Extends [RFC8505] and [RFC9010], and leverages
   [RFC9008].  The security section in these documents also apply to
   this document.  In particular, the link layer SHOULD be sufficiently
   protected to prevent rogue access.

   RPL [RFC6550] already supports routing on multicast addresses,
   whereby the endpoint that subscribes to the group and to do so
   injects the multicast address participates to RPL as a RPL aware node
   (RAN).  Using an extension of RFC 8505 as opposed to RPL to subscribe
   the address allows a RPL unaware leaf (RUL) to subscribe as well.  As
   noted in [RFC9010], this provides a better security posture for the
   RPL network, since the nodes that do not really need to speak RPL, or
   are not trusted enough to inject RPL messages, can be forbidden from
   doing so, which bars a number of attacks vectors from within RPL.
   Acting as RUL, those nodes may still leverage the RPL network through
   the capabilities that are opened via ND operations.  With this draft,
   a node that needs multicast delivery can now obtain the service in a
   RPL domain while not being allowed to inject RPL messages.

   Compared to [RFC6550], this draft enables to track the origin of the
   multicast subscription inside the RPL network.  This is a first step
   to enable a form of Route Ownership Validation (ROV) (see [RFC6811])
   in RPL using the ROVR field in the EARO as proof of ownership.

   Section 9 leverages [RFC8928] to prevent a rogue node to register a
   unicast address that it does not own.  The mechanism could be
   extended to anycast and multicast addresses if the values of the ROVR
   they use is known in advance, but how this is done is not in scope
   for this specification.  One way would be to authorize in advance the
   ROVR of the valid users.  A less preferred way could be to
   synchronize the ROVR and TID values across the valid subscribers as a
   preshared key material.

   In the latter case, it could be 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

Thubert                 Expires 17 November 2024               [Page 31]
Internet-Draft     Multicast and Anycast Subscription           May 2024

   cases.  It may be simpler to install an all-new address with new keys
   over a period of time, and switch the traffic to that address when
   the migration is complete.

13.  Backward Compatibility

   A legacy 6LN will not subscribe multicast addresses and the service
   will be the same when the network is upgraded.  A legacy 6LR will not
   set the X flag in the 6CIO and an upgraded 6LN will not subscribe
   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 EDAC for anycast and multicast addresses.

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

   The combination of a multicast address and the P-Field 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 P-Field was set to 1 for backward
   compatibility.

   When the DODAG is operated in MOP 3, a legacy node will not set the
   P-Field 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 P-Field set to 0 MUST be considered as multicast
   and MUST be processed as if the P-Field is set to 1.

14.  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, requests to IANA must be edited to
   reflect the IANA actions once performed.

   Note to IANA, to be removed: the I Field is defined in [RFC9010] but
   is missing from the registry, so the bit positions must be added for
   completeness in conformance with the RFC.

   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] registry
   groupings, as follows:

Thubert                 Expires 17 November 2024               [Page 32]
Internet-Draft     Multicast and Anycast Subscription           May 2024

14.1.  New P-Field values Registry

   IANA is requested to create a new "P-Field values" registry under the
   heading "Internet Control Message Protocol version 6 (ICMPv6)
   Parameters" to store the expression of the Registered Address Type
   Indicator as a P-Field.

   Registration procedure is "Standards Action" [RFC8126].  The initial
   allocation is as indicated in Table 3:

       +-------+--------------------------------------+-----------+
       | Value | Registered Address Type Indicator    | Reference |
       +-------+--------------------------------------+-----------+
       | 0     | Registration for a Unicast Address   | This RFC  |
       +-------+--------------------------------------+-----------+
       | 1     | Registration for a Multicast Address | This RFC  |
       +-------+--------------------------------------+-----------+
       | 2     | Registration for an Anycast Address  | This RFC  |
       +-------+--------------------------------------+-----------+
       | 3     | Unassigned                           | This RFC  |
       +-------+--------------------------------------+-----------+

                         Table 3: P-Field values

14.2.  New EDAR Message Flags Registry

   IANA is requested to create a new "EDAR Message Flags" registry under
   the heading "Internet Control Message Protocol version 6 (ICMPv6)
   Parameters".

   Registration procedure is "IETF Review" or "IESG Approval" [RFC8126].
   The initial allocation is as indicated in Table 4:

   +------------------+------------------------------------+-----------+
   | Bit Number       | Meaning                            | Reference |
   +------------------+------------------------------------+-----------+
   | 0..1 (suggested) | P-Field (2 bits),                  | This RFC  |
   |                  | see Section 14.1                   |           |
   +------------------+------------------------------------+-----------+
   | 2..7             | Unassigned                         |           |
   +------------------+------------------------------------+-----------+

                        Table 4: EDAR Message flags

Thubert                 Expires 17 November 2024               [Page 33]
Internet-Draft     Multicast and Anycast Subscription           May 2024

14.3.  New EARO flags

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

   +------------------+------------------------------------+-----------+
   | ARO flag         | Meaning                            | Reference |
   +------------------+------------------------------------+-----------+
   | 2..3 (suggested) | P-Field (2 bits),                  | This RFC  |
   |                  | see Section 14.1                   |           |
   +------------------+------------------------------------+-----------+

                           Table 5: New ARO flags

14.4.  New RTO flags

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

   +------------------+------------------------------------+-----------+
   | Bit Number       | Meaning                            | Reference |
   +------------------+------------------------------------+-----------+
   | 2..3 (suggested) | P-Field (2 bits),                  | This RFC  |
   |                  | see Section 14.1                   |           |
   +------------------+------------------------------------+-----------+

                           Table 6: New RTO flags

14.5.  New RPL Mode of Operation

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

   +---------------+---------------------------------------+-----------+
   | Value         | Description                           | Reference |
   +---------------+---------------------------------------+-----------+
   | 5             | Non-Storing Mode of Operation with    | This RFC  |
   | (suggested)   | ingress replication multicast support |           |
   +---------------+---------------------------------------+-----------+

                     Table 7: New RPL Mode of Operation

Thubert                 Expires 17 November 2024               [Page 34]
Internet-Draft     Multicast and Anycast Subscription           May 2024

14.6.  New 6LoWPAN Capability Bits

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

         +-------------+-----------------------------+-----------+
         | Capability  | Meaning                     | Reference |
         | Bit         |                             |           |
         +-------------+-----------------------------+-----------+
         | 8           | X flag: Registration for    | This RFC  |
         | (suggested) | Unicast, Multicast, and     |           |
         |             | Anycast Addresses Supported |           |
         +-------------+-----------------------------+-----------+

                    Table 8: New 6LoWPAN Capability Bits

14.7.  New Address Registration Option Status Values

   IANA is requested to make additions to the "Address Registration
   Option Status Values" [IANA.ICMP.ARO.STAT] registry under the heading
   "Internet Control Message Protocol version 6 (ICMPv6) Parameters", as
   follows:

       +----------------+------------------------------+-----------+
       | Value          | Description                  | Reference |
       +----------------+------------------------------+-----------+
       | 11 (suggested) | Registration Refresh Request | This RFC  |
       +----------------+------------------------------+-----------+
       | 12 (suggested) | Invalid Registration         | This RFC  |
       +----------------+------------------------------+-----------+

          Table 9: New Address Registration Option Status Values"

14.8.  New IPv6 Neighbor Discovery Option

   IANA is requested to make additions to the "IPv6 Neighbor Discovery
   Option Formats" registry under the heading "Internet Control Message
   Protocol version 6 (ICMPv6) Parameters", as follows:

         +----------------+--------------------------+-----------+
         | Value          | Description              | Reference |
         +----------------+--------------------------+-----------+
         | 42 (suggested) | Consistent Uptime Option | This RFC  |
         +----------------+--------------------------+-----------+

               Table 10: New IPv6 Neighbor Discovery Option"

Thubert                 Expires 17 November 2024               [Page 35]
Internet-Draft     Multicast and Anycast Subscription           May 2024

15.  Acknowledgments

   This work is a production of an effective collaboration between the
   IETF 6lo WG and the Wi-Sun FAN WG.  Thanks to all in both WGs who
   contributed reviews and productive suggestions, in particular Carsten
   Bormann, Paul Duffy, Klaus Hueske, Adnan Rashid, Rahul Jadhav, Gene
   Falendysz, Don Sturek, Dario Tedeschi, Saurabh Jain, and Chris Hett,
   with special thanks to Esko Dijk for his useful WGLC reviews and
   proposed changes.  Also many thanks to Eric Vyncke, Sandy Ginoza,
   Zaheduzzaman Sarker, Paul Wouters, Roman Danyliw, John Scudder, Dirk
   Von Hugo, Murray Kucherawy, Kyle Rose, Scott Kelly, and Dan Romascanu
   for their suggestions and comments during the IETF last call and IESG
   review cycle.

16.  Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <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,
              August 2002, <https://www.rfc-editor.org/info/rfc3306>.

   [RFC4291]  Hinden, R. and S. Deering, "IP Version 6 Addressing
              Architecture", RFC 4291, DOI 10.17487/RFC4291, February
              2006, <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, September 2007,
              <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, September 2007,
              <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, March 2012,
              <https://www.rfc-editor.org/info/rfc6550>.

Thubert                 Expires 17 November 2024               [Page 36]
Internet-Draft     Multicast and Anycast Subscription           May 2024

   [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, November 2012,
              <https://www.rfc-editor.org/info/rfc6775>.

   [RFC7346]  Droms, R., "IPv6 Multicast Address Scopes", RFC 7346,
              DOI 10.17487/RFC7346, August 2014,
              <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, November
              2014, <https://www.rfc-editor.org/info/rfc7400>.

   [RFC8126]  Cotton, M., Leiba, B., and T. Narten, "Guidelines for
              Writing an IANA Considerations Section in RFCs", BCP 26,
              RFC 8126, DOI 10.17487/RFC8126, June 2017,
              <https://www.rfc-editor.org/info/rfc8126>.

   [RFC8174]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
              2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
              May 2017, <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, July 2017,
              <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, November 2018,
              <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, November
              2020, <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, April 2021,
              <https://www.rfc-editor.org/info/rfc9010>.

Thubert                 Expires 17 November 2024               [Page 37]
Internet-Draft     Multicast and Anycast Subscription           May 2024

   [RFC9030]  Thubert, P., Ed., "An Architecture for IPv6 over the Time-
              Slotted Channel Hopping Mode of IEEE 802.15.4 (6TiSCH)",
              RFC 9030, DOI 10.17487/RFC9030, May 2021,
              <https://www.rfc-editor.org/info/rfc9030>.

   [IANA.ICMP]
              IANA, "IANA Registry for ICMPv6", IANA,
              https://www.iana.org/assignments/icmpv6-parameters/
              icmpv6-parameters.xhtml.

   [IANA.ICMP.ARO.FLG]
              IANA, "IANA Registry for the Address Registration Option
              Flags", IANA, https://www.iana.org/assignments/icmpv6-
              parameters/icmpv6-parameters.xhtml#icmpv6-adress-
              registration-option-flags.

   [IANA.ICMP.ARO.STAT]
              IANA, "IANA Registry for the Address Registration Option
              Status Value", IANA, https://www.iana.org/assignments/
              icmpv6-parameters/icmpv6-parameters.xhtml#address-
              registration.

   [IANA.ICMP.6CIO]
              IANA, "IANA 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.

17.  Informative References

   [RFC3810]  Vida, R., Ed. and L. Costa, Ed., "Multicast Listener
              Discovery Version 2 (MLDv2) for IPv6", RFC 3810,
              DOI 10.17487/RFC3810, June 2004,
              <https://www.rfc-editor.org/info/rfc3810>.

Thubert                 Expires 17 November 2024               [Page 38]
Internet-Draft     Multicast and Anycast Subscription           May 2024

   [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, August 2007,
              <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, September 2011,
              <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,
              February 2016, <https://www.rfc-editor.org/info/rfc7731>.

   [RFC6811]  Mohapatra, P., Scudder, J., Ward, D., Bush, R., and R.
              Austein, "BGP Prefix Origin Validation", RFC 6811,
              DOI 10.17487/RFC6811, January 2013,
              <https://www.rfc-editor.org/info/rfc6811>.

   [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, March
              2016, <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, October 2010,
              <https://www.rfc-editor.org/info/rfc6052>.

   [RFC8929]  Thubert, P., Ed., Perkins, C.E., and E. Levy-Abegnoli,
              "IPv6 Backbone Router", RFC 8929, DOI 10.17487/RFC8929,
              November 2020, <https://www.rfc-editor.org/info/rfc8929>.

   [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, April 2021,
              <https://www.rfc-editor.org/info/rfc9008>.

   [I-D.ietf-bess-evpn-optimized-ir]
              Rabadan, J., Sathappan, S., Lin, W., Katiyar, M., and A.
              Sajassi, "Optimized Ingress Replication Solution for
              Ethernet VPN (EVPN)", Work in Progress, Internet-Draft,
              draft-ietf-bess-evpn-optimized-ir-12, 25 January 2022,
              <https://datatracker.ietf.org/doc/html/draft-ietf-bess-
              evpn-optimized-ir-12>.

Thubert                 Expires 17 November 2024               [Page 39]
Internet-Draft     Multicast and Anycast Subscription           May 2024

   [I-D.ietf-rift-rift]
              Przygienda, T., Head, J., Sharma, A., Thubert, P.,
              Rijsman, B., and D. Afanasiev, "RIFT: Routing in Fat
              Trees", Work in Progress, Internet-Draft, draft-ietf-rift-
              rift-23, 1 May 2024,
              <https://datatracker.ietf.org/doc/html/draft-ietf-rift-
              rift-23>.

   [I-D.ietf-6lo-prefix-registration]
              Thubert, P., "IPv6 Neighbor Discovery Prefix
              Registration", Work in Progress, Internet-Draft, draft-
              ietf-6lo-prefix-registration-02, 13 February 2024,
              <https://datatracker.ietf.org/doc/html/draft-ietf-6lo-
              prefix-registration-02>.

   [I-D.ietf-6man-ipv6-over-wireless]
              Thubert, P. and M. Richardson, "Architecture and Framework
              for IPv6 over Non-Broadcast Access", Work in Progress,
              Internet-Draft, draft-ietf-6man-ipv6-over-wireless-05, 20
              November 2023, <https://datatracker.ietf.org/doc/html/
              draft-ietf-6man-ipv6-over-wireless-05>.

   [I-D.kuehlewind-update-tag]
              Kühlewind, M. and S. Krishnan, "Definition of new tags for
              relations between RFCs", Work in Progress, Internet-Draft,
              draft-kuehlewind-update-tag-04, 12 July 2021,
              <https://datatracker.ietf.org/doc/html/draft-kuehlewind-
              update-tag-04>.

   [Wi-SUN]   Robert, H., Liu, B. R., Zhang, M., and C. E. Perkins, "Wi-
              SUN FAN Overview", Work in Progress, Internet-Draft,
              draft-heile-lpwan-wisun-overview-00, 3 July 2017,
              <https://datatracker.ietf.org/doc/html/draft-heile-lpwan-
              wisun-overview-00>.

   [I-D.thubert-bess-secure-evpn-mac-signaling]
              Thubert, P., Przygienda, T., and J. Tantsura, "Secure EVPN
              MAC Signaling", Work in Progress, Internet-Draft, draft-
              thubert-bess-secure-evpn-mac-signaling-04, 13 September
              2023, <https://datatracker.ietf.org/doc/html/draft-
              thubert-bess-secure-evpn-mac-signaling-04>.

   [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".

Thubert                 Expires 17 November 2024               [Page 40]
Internet-Draft     Multicast and Anycast Subscription           May 2024

   [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)
   06330 Roquefort-les-Pins
   France
   Email: pascal.thubert@gmail.com

Thubert                 Expires 17 November 2024               [Page 41]