rfc9685.original.xml   rfc9685.xml 
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent">
<?rfc toc="yes"?> <!-- pre-edited by ST 05/28/24 -->
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<?rfc authorship="yes"?>
<?rfc tocappendix="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" ipr="trust200902
"
tocInclude="true" indexInclude="true" obsoletes="" consensus="true"
submissionType="IETF" xml:lang="en" version="3" updates="4861, 6550, 6553, 8505
, 9010"
docName="draft-ietf-6lo-multicast-registration-19" >
<front> <!-- draft submitted in xml v3 -->
<title abbrev="Multicast and Anycast Subscription">IPv6 Neighbor Discovery Mu <!DOCTYPE rfc [
lticast and Anycast Address Listener Subscription</title> <!ENTITY nbsp "&#160;">
<!ENTITY zwsp "&#8203;">
<!ENTITY nbhy "&#8209;">
<!ENTITY wj "&#8288;">
]>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" ipr="trust200902"
tocInclude="true" indexInclude="true" obsoletes="" consensus="true" submissionT
ype="IETF" xml:lang="en" version="3" updates="4861, 6550, 6553, 8505, 9010" doc
Name="draft-ietf-6lo-multicast-registration-19" number="9685" symRefs="true" sor
tRefs="true">
<front>
<title abbrev="Multicast and Anycast Subscription">Listener Subscription for
IPv6 Neighbor Discovery Multicast and Anycast Addresses</title>
<seriesInfo name="RFC" value="9685"/>
<author initials='P' surname='Thubert' fullname='Pascal Thubert' role='editor '> <author initials='P' surname='Thubert' fullname='Pascal Thubert' role='editor '>
<address> <address>
<postal> <postal>
<city>Roquefort-les-Pins</city> <city>Roquefort-les-Pins</city>
<code>06330</code> <code>06330</code>
<country>France</country> <country>France</country>
</postal> </postal>
<email>pascal.thubert@gmail.com</email> <email>pascal.thubert@gmail.com</email>
</address> </address>
</author> </author>
<area>Internet</area> <date month="November" year="2024"/>
<area>INT</area>
<workgroup>6lo</workgroup> <workgroup>6lo</workgroup>
<abstract> <abstract>
<t> <t>
This document updates the 6LoWPAN extensions to IPv6 Neighbor Discovery 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 (specified in RFCs 4861 and 8505) to enable a listener to subscribe to an IP
multicast address; the document updates the Routing Protocol for Low-Power v6 anycast
and Lossy Networks (RFC 6550, RFC 6553) to add a or multicast address. This document also updates the Routing Protocol for
new Non-Storing Multicast Mode and a new support for anycast addresses in Low-Power and Lossy Networks (RPL) (specified in RFCs 6550 and 6553) to add
Storing and Non-Storing Modes. a new Non-Storing
This document extends RFC 9010 to enable a 6LoWPAN Router to inject the anyc multicast mode and new support for anycast addresses in Storing and
ast and Non-Storing modes. This document extends RFC 9010 to enable a 6LoWPAN
multicast addresses in RPL. Router (6LR) to inject the anycast and multicast addresses in RPL.
</t> </t>
</abstract> </abstract>
</front> </front>
<middle> <middle>
<!-- **************************************************************** --> <section anchor="introduction">
<!-- **************************************************************** --> <name>Introduction</name>
<!-- **************************************************************** -->
<!-- **************************************************************** -->
<section anchor="introduction"> <name>Introduction</name>
<t>The design of Low Power and Lossy Networks (LLNs) is generally focused on <t>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 saving energy, which is the most constrained resource of all. Other design
constraints, such as a limited memory capacity, duty cycling of the LLN constraints, such as a limited memory capacity, duty cycling of the LLN
devices and low-power lossy transmissions, derive from that primary concern. devices, and low-power lossy transmissions, derive from that primary concern.
The radio (both transmitting or simply listening) is a major energy drain The radio (when 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. and the LLN protocols must be adapted to allow the nodes to remain sleeping
</t><t> with the radio turned off at most times.</t>
The <xref target="RFC6550">"Routing Protocol for Low Power
and Lossy Networks"</xref> (RPL) provides IPv6
<xref target="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.
</t><t>
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.
</t><t>
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 <xref target="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.
</t><t> <t>"RPL: IPv6 Routing Protocol for Low-Power and Lossy Networks" <xref target=
Any given RPL Instance is either storing or non-storing. "RFC6550"/> provides IPv6 <xref target="RFC8200"/> routing
In both cases, P2P packets travel Up toward a DODAG root then Down to services within such constraints. To save signaling and routing state in
the final destination (unless the destination is on the Upward constrained networks, the RPL routing is only performed along a
route). In the Non-Storing case, the packet will travel all the way Destination-Oriented Directed Acyclic Graph (DODAG) that is optimized to
to a DODAG root before traveling Down. In the Storing case, the reach a Root node, as opposed to along the shortest path between two peers,
packet may be directed Down towards the destination by a common which may be a fuzzy concept anyway in a radio LLN.</t>
ancestor of the source and the destination prior to reaching a DODAG
root.
Section 12 of <xref target="RFC6550"/> details the "Storing Mode of
Operation with multicast support" with source-independent multicast
routing in RPL.
</t><t>
The classical "IPv6 Neighbor Discovery (IPv6 ND) Protocol"
<xref target="RFC4861"/> <xref target="RFC4862"/> was defined for serial
links and shared transit media such as Ethernet at a time when broadcast
was cheap on those media while memory for neighbor cache was expensive.
It was thus designed as a reactive protocol that relies on caching and
multicast operations for the Address Discovery (aka Lookup) and Duplicate Add
ress 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.
</t><t>
The original 6LoWPAN ND, <xref target="RFC6775"> "Neighbor Discovery
Optimizations for 6LoWPAN networks"</xref>, was introduced to avoid the
excessive use of multicast messages and enable IPv6 ND for operations over
energy-constrained nodes.
<xref target="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, <xref target="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.
</t><t>
<xref target="RFC8505"> "Registration Extensions for 6LoWPAN Neighbor
Discovery"</xref> updates <xref target="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.
</t><t>
<xref target="RFC9010">"Routing for RPL Leaves"</xref> provides the router
counterpart of the mechanism for a host that implements
<xref target="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
<xref target="RFC9010"/> to specify the 6LR behavior upon the subscription
of one or more multicast address(es).
</t><t>
The <xref target="RFC3810">"Multicast Listener Discovery Version 2 (MLDv2)
for IPv6" </xref> 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 <xref target="RFC8505"/> for unicast reachability, it makes sense
to extend to that support to subscribe the multicast addresses they listen to
.
</t><t>
This specification Extends <xref target="RFC8505"/> and <xref target="RFC9010
"/>
to add the capability for the 6LN to subscribe anycast and multicast addresse
s
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 tha
t
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 potent
ial
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 situa
tions.
</t>
</section> <!-- end section = "Introduction" --> <t>This stretches the routes between RPL nodes inside the DODAG for a vastly r
educed
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 data plane inconsistency
discovery, which avoids wasting energy in the proactive repair of unused
paths.</t>
<section> <name>Terminology</name> <t>RPL uses Destination Advertisement Object (DAO) messages to
<section anchor="bcp"><name>Requirements Language</name> establish Downward routes. DAO messages are an optional feature for
<t> 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 <xref target="RFC6550"
sectionFormat="of" section="9"/>. 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.</t>
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", <t>Any given RPL Instance is either Storing or Non-Storing. In both cases,
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and P2P packets travel Up toward a DODAG root then Down to the final destination
"OPTIONAL" in this document are to be interpreted as described in BCP 14 (unless the destination is on the Upward route). In the Non-Storing case,
<xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, the packet will travel all the way to a DODAG root before traveling Down.
they appear in all capitals, as shown here. 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. <xref target="RFC6550" sectionFormat="of" section="12"/> details
the Storing Mode of Operation with multicast support with
source-independent multicast routing in RPL.</t>
</t> <t>The classical Neighbor Discovery (ND) protocol <xref
target="RFC4861"/> <xref target="RFC4862"/> was defined for serial links and
shared transit media such as Ethernet at a time when broadcast on
those media types was cheap, while memory for neighbor cache was expensive. I
t 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. This is a waste of energy and implies that all nodes are awake to
hear the request, which is inconsistent with power-saving (sleeping)
modes.</t>
<t> <t>The original specification for 6LoWPAN ND, "Neighbor Discovery Optimization
In addition, the terms "Extends" and "Amends" are used as a more specific term for IPv6 over
for "Updates" per Low-Power Wireless Personal Area Networks (6LoWPANs)" <xref
<xref target="I-D.kuehlewind-update-tag" /> section 3 as follows: target="RFC6775"/>, was introduced to avoid the excessive use of multicast
</t> messages and enable IPv6 ND for operations over energy-constrained nodes.
<dl newline="false" indent="7" spacing="compact" > <xref target="RFC6775"/> changes the classical IPv6 ND model to proactively
<dt>Amends/Amended by:</dt> establish the Neighbor Cache Entry (NCE) associated to the unicast address
<dd>This tag pair is used with an amending RFC that chang of a 6LoWPAN Node (6LN) in one or more 6LoWPAN Routers (6LRs) that serve it.
es the amended RFC. This could include bug fixes, behavior changes etc. This is To
intended to specify mandatory changes to the protocol. The goal of this tag pair that effect, <xref target="RFC6775"/> defines a new Address Registration
is to signal to anyone looking to implement the amended RFC that they MUST also Option (ARO) that is placed in unicast Neighbor Solicitation (NS) and
implement the amending RFC. </dd> Neighbor Advertisement (NA) messages between the 6LN and the 6LR.</t>
<dt>Extends/Extended by:</dt>
<dd> This tag pair is used with an extending RFC that def
ines an optional addition to the extended RFC. This can be used by documents tha
t use existing extension points or clarifications that do not change existing pr
otocol behavior. This signals to implementers and protocol designers that there
are changes to the extended RFC that they need to consider but not necessarily i
mplement.</dd>
</dl>
</section> <!-- end section "Requirements Language" --> <t>"Registration Extensions for IPv6 over Low-Power Wireless Personal Area
Network (6LoWPAN) Neighbor Discovery" <xref target="RFC8505"/> updates <xref
target="RFC6775"/> so that a generic Address Registration mechanism 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 provides return
reachability for that address.</t>
<section anchor="lo"><name>References</name> <t>"Routing for RPL (Routing Protocol for Low-Power and Lossy Networks) Leaves
<t> " <xref target="RFC9010"/> provides the
This document uses terms and concepts that are discussed in: router counterpart of the mechanism for a host that implements <xref
</t> target="RFC8505"/> to inject its unicast Unique Local Addresses (ULAs) and
<ul> Global Unicast Addresses (GUAs) in RPL. Although RPL also provides
<li> <xref target="RFC4861">"Neighbor Discovery for IP version 6" multicast routing, 6LoWPAN ND supports only the registration of unicast
</xref> and addresses, and there is no equivalent of <xref target="RFC9010"/> to specify
<xref target="RFC4862">"IPv6 Stateless address Autoconfiguration" the 6LR behavior upon the subscription of one or more multicast addresses.</t>
</xref>,
</li>
<li> <xref target="RFC6550">Routing Protocol for Low-Power
and Lossy Networks</xref>,
</li>
<li> <xref target="RFC6775">Neighbor Discovery Optimization for Low-Power
and Lossy Networks</xref>, as well as
</li>
<li>
<xref target="RFC8505">
"Registration Extensions for 6LoWPAN Neighbor Discovery"</xref> a
nd
</li>
<li>
<xref target="RFC9008">
"Using RPI Option Type, Routing Header for Source Routes,
and IPv6-in-IPv6 Encapsulation in the RPL Data Plane"</xref>.
</li>
</ul>
</section> <!-- end section "References" -->
<section anchor="acronyms"><name>Glossary</name> <t>"Multicast Listener Discovery Version 2 (MLDv2) for IPv6" <xref
<t> This document uses the following acronyms:</t> target="RFC3810"/> enables the router to learn which node listens to which
<dl newline="false" indent="7" spacing="compact" > multicast address, but as the classical IPv6 ND protocol, MLD relies on
<dt>6BBR</dt><dd> 6LoWPAN Backbone Router </dd> multicasting queries to all nodes, which is unfit for low-power operations.
<dt>6CIO</dt><dd> Capability Indication Option </dd> As for IPv6 ND, it makes sense to let the 6LNs control when and how they
<dt>6LBR</dt><dd> 6LoWPAN Border Router </dd> maintain the state associated to their multicast addresses in the 6LR, e.g.,
<dt>6LN</dt><dd> 6LoWPAN Node </dd> during their own wake time. In the case of a constrained node that already
<dt>6LR</dt><dd> 6LoWPAN Router </dd> implements <xref target="RFC8505"/> for unicast reachability, it makes sense
<dt>AMC</dt><dd> Address Mapping Confirmation </dd> to extend that support to subscribe the multicast addresses they listen
<dt>AMR</dt><dd> Address Mapping Request</dd> to.</t>
<dt>ARO</dt><dd> Address Registration Option</dd>
<dt>DAC</dt><dd> Duplicate Address Confirmation </dd>
<dt>DAD</dt><dd> Duplicate Address Detection </dd>
<dt>DAO</dt><dd> Destination Advertisement Object </dd>
<dt>DAR</dt><dd> Duplicate Address Request</dd>
<dt>DIO</dt><dd> DODAG Information Object </dd>
<dt>DMB</dt><dd> Direct MAC Broadcast </dd>
<dt>DODAG</dt><dd> Destination-Oriented Directed Acyclic Graph </dd>
<dt>EARO</dt><dd> Extended Address Registration Option</dd>
<dt>EDAC</dt><dd> Extended Duplicate Address Confirmation </dd>
<dt>EDAR</dt><dd> Extended Duplicate Address Request</dd>
<dt>IR</dt><dd> Ingress Replication </dd>
<dt>LLN</dt><dd> Low-Power and Lossy Network </dd>
<dt>MOP</dt><dd> Mode of Operation </dd>
<dt>NA</dt><dd> Neighbor Advertisement </dd>
<dt>NCE</dt><dd> Neighbor Cache Entry </dd>
<dt>ND</dt><dd> Neighbor Discovery </dd>
<dt>NS</dt><dd> Neighbor Solicitation </dd>
<dt>RA</dt><dd> Router Advertisement </dd>
<dt>ROVR</dt><dd> Registration Ownership Verifier, pronounced "rover" </d
d>
<dt>RPL</dt><dd> Routing Protocol for Low-Power and Lossy Networks, prono
unced "ripple" </dd>
<dt>RS</dt><dd> Router Solicitation </dd>
<dt>RTO</dt><dd> RPL Target Option </dd>
<dt>TID</dt><dd> Transaction ID </dd>
<dt>TIO</dt><dd> Transit Information Option </dd>
</dl>
</section> <!-- end section "Glossary" --> <t>This specification Extends <xref target="RFC8505"/> and <xref
target="RFC9010"/> by adding 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 (ULPs) to cope with both situations.</t>
<section anchor="terms"><name>New terms</name> </section>
<t> This document introduces the following terms:</t> <section>
<name>Terminology</name>
<section anchor="bcp">
<name>Requirements Language</name>
<t>
The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>",
"<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>
",
"<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>",
"<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to
be
interpreted as described in BCP&nbsp;14 <xref target="RFC2119"/> <xref
target="RFC8174"/> when, and only when, they appear in all capitals, as
shown here.
</t>
<dl newline="false" indent="7" spacing="compact" > <t>In addition, "Extends" and "Amends" are used as more
specific terms for "Updates" per Section 3 of <xref
target="I-D.kuehlewind-rswg-updates-tag"/> as
follows:</t>
<dt>Origin</dt><dd> The node that issued an anycast or multicast <dl newline="false" indent="7" spacing="normal">
advertisement, either in the form of an NS(EARO) or as a DAO(TIO, RTO) </ <dt>Amends/Amended by:</dt>
dd> <dd>This tag pair is used with an amending RFC that changes the amended
<dt>Merge/merging</dt><dd> The action of receiving multiple anycast or RFC. This could include bug fixes, behavior changes, etc. This is
multicast advertisements, either internally from self, in the form of intended to specify mandatory changes to the protocol. The goal of this
an NS(EARO), or as a DAO(TIO, RTO), and generating a single DAO(TIO, RTO) tag pair is to signal to anyone looking to implement the amended RFC
. that they <bcp14>MUST</bcp14> also implement the amending RFC. </dd>
The RPL router maintains a state per origin for each advertised address,
and merges the advertisements for all subscriptions for the same <dt>Extends/Extended by:</dt>
address in a single advertisement. <dd>This tag pair is used with an extending RFC that defines an
A RPL router that merges multicast advertisements from different origins optional addition to the extended RFC. This can be used by documents
becomes the origin of the merged advertisement that use existing extension points or clarifications that do not change
and uses its own values for the Path Sequence and Registration Ownership existing protocol behavior. This signals to implementers and protocol
Verifier (ROVR) fields. designers that there are changes to the extended RFC that they need to
</dd> consider but not necessarily implement.</dd>
<dt>Subscribe/subscription</dt><dd> The special form of </dl>
registration that leverages NS(EARO) to register (subscribe to) </section>
a multicast or an anycast address.
</dd> <section anchor="lo">
<name>Terminology from Relevant RFCs</name>
<t>This document uses terms and concepts that are discussed in:</t>
<ul>
<li>"Neighbor Discovery for IP version 6 (IPv6)" <xref target="RFC4861"
/>,</li>
<li>"IPv6 Stateless Address Autoconfiguration" <xref target="RFC4862"/>
,</li>
<li>"RPL: IPv6 Routing Protocol for Low-Power and Lossy Networks" <xref
target="RFC6550"/>,</li>
<li>"Neighbor Discovery Optimization for IPv6 over Low-Power Wireless P
ersonal Area Networks (6LoWPANs)" <xref
target="RFC6775"/>,</li>
<li>"Registration Extensions for IPv6 over Low-Power Wireless Personal
Area Network (6LoWPAN) Neighbor Discovery" <xref
target="RFC8505"/>, and</li>
<li>"Using RPI Option Type, Routing Header for Source Routes, and IPv6-
in-IPv6 Encapsulation in the RPL Data Plane" <xref
target="RFC9008"/>.</li>
</ul>
</section>
<section anchor="abbreviations">
<name>Abbreviations</name>
<t>This document uses the following abbreviations:</t>
<dl newline="false" indent="7" spacing="normal">
<dt>6CIO:</dt><dd>Capability Indication Option</dd>
<dt>6LBR:</dt><dd>6LoWPAN Border Router</dd>
<dt>6LN:</dt><dd>6LoWPAN Node</dd>
<dt>6LR:</dt><dd>6LoWPAN Router</dd>
<dt>ARO:</dt><dd>Address Registration Option</dd>
<dt>DAC:</dt><dd>Duplicate Address Confirmation</dd>
<dt>DAD:</dt><dd>Duplicate Address Detection</dd>
<dt>DAO:</dt><dd>Destination Advertisement Object</dd>
<dt>DAR:</dt><dd>Duplicate Address Request</dd>
<dt>DIO:</dt><dd>DODAG Information Object</dd>
<dt>DMB:</dt><dd>Direct MAC Broadcast</dd>
<dt>DODAG:</dt><dd>Destination-Oriented Directed Acyclic Graph</dd>
<dt>EARO:</dt><dd>Extended Address Registration Option</dd>
<dt>EDAC:</dt><dd>Extended Duplicate Address Confirmation</dd>
<dt>EDAR:</dt><dd>Extended Duplicate Address Request</dd>
<dt>IR:</dt><dd>Ingress Replication</dd>
<dt>LLN:</dt><dd>Low-Power and Lossy Network</dd>
<dt>MLD:</dt><dd>Multicast Listener Discovery</dd>
<dt>MOP:</dt><dd>Mode of Operation </dd>
<dt>NA:</dt><dd>Neighbor Advertisement</dd>
<dt>NCE:</dt><dd>Neighbor Cache Entry</dd>
<dt>ND:</dt><dd>Neighbor Discovery</dd>
<dt>NS:</dt><dd>Neighbor Solicitation</dd>
<dt>RA:</dt><dd>Router Advertisement</dd>
<dt>RAN:</dt><dd>RPL-Aware Node</dd>
<dt>ROVR:</dt><dd>Registration Ownership Verifier (pronounced "rover")</
dd>
<dt>RPL:</dt><dd>Routing Protocol for Low-Power and Lossy Networks (pron
ounced "ripple")</dd>
<dt>RS:</dt><dd>Router Solicitation</dd>
<dt>RTO:</dt><dd>RPL Target Option</dd>
<dt>RUL:</dt><dd>RPL-Unaware Leaf</dd>
<dt>TID:</dt><dd>Transaction ID</dd>
<dt>TIO:</dt><dd>Transit Information Option</dd>
</dl> </dl>
</section>
</section> <!-- end section "New terms" --> <section anchor="terms">
<name>New Terms</name>
<t>This document introduces the following terms:</t>
</section> <!-- end section "Terminology" --> <dl newline="false" indent="7" spacing="normal">
<dt>Origin:</dt>
<dd>The node that issued an anycast or multicast
advertisement, in the form of either an NS(EARO) or a DAO(TIO,
RTO) message.</dd>
<dt>Merge/merging:</dt>
<dd>The action of receiving multiple anycast or multicast
advertisements, either internally from self, in the form of an
NS(EARO) message, or as a DAO(TIO, RTO) message, and generating a single D
AO(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) fi
elds.</dd>
<dt>Subscribe/subscription:</dt>
<dd>The special form of registration that leverages NS(EARO) to
register (or subscribe to) a multicast or an anycast address.</dd>
</dl>
</section>
</section>
<!-- **************************************************************** --> <section anchor="overview">
<!-- **************************************************************** --> <name>Overview</name>
<!-- **************************************************************** -->
<!-- **************************************************************** -->
<!-- **************************************************************** -->
<!-- **************************************************************** -->
<!-- **************************************************************** -->
<!-- **************************************************************** -->
<section anchor="overview"><name>Overview</name> <t>This specification Extends <xref target="RFC8505"/> to provide a registrat
<t> ion method (called "subscription" in this case) for anycast and multicast addres
This specification Extends <xref target="RFC8505"/> and inherits from ses. The specification inherits the proof of ownership defined in <xref target="
<xref target="RFC8928"/> to provide a registration method - called RFC8928"/> that already protects the address registration in <xref target="RFC85
subscription in this case - for anycast and multicast address. 05"/> to also protect the new subscription mechanism. <xref target="RFC8505"/> i
<xref target="RFC8505"/> is agnostic to the routing protocol in which the s agnostic to the routing protocol in which the address may be redistributed.</t
address may be redistributed. >
</t>
<t>
As opposed to unicast addresses, there might be multiple registrations from mul <t>As opposed to unicast addresses, there might be multiple registrations
tiple parties for the same address. The router retains one registration per part from multiple parties for the same address. The router retains one
y per multicast or anycast address, but injects the route into the routing proto registration per party for each multicast or anycast address but injects the
col only once for each address, asynchronously to the registration. On the other route into the routing protocol only once for each address. The injection
hand, the validation exchange with the registrar (6LBR) is still needed if the happens asynchronously to the registration. On the other hand, the validation
router checks the right for the host to listen to the anycast or multicast addr exchange with the
ess. registrar (6LBR) is still needed if the router checks the right for the
</t> host to listen to the anycast or multicast address.</t>
<t> <t><xref target="figSub"/> depicts the registration of an anycast or a
<xref target="figSub"/> depicts the registration of an anycast or a multicas multicast address. As shown, the 6LBR receives and accepts multiple
t address. EDAR messages for the same address, and the address being
As shown, the 6LBR receives and accepts multiple Extended DAR messages fo registered by multiple nodes is not treated as a duplication.</t>
r the same address,
and the address being registered by multiple nodes is not treated as a du <figure anchor='figSub'>
plication. <name>Registration Flow for an Anycast or Multicast Address</name>
</t>
<figure anchor='figSub'><name> Registration Flow for an anycast or multicast Add <artwork><![CDATA[
ress</name>
<artwork><![CDATA[
6LoWPAN Node 6LR 6LBR 6LoWPAN Node 6LR 6LBR
(host1) (router) (registrar) (host1) (router) (registrar)
| | | | | |
| DMB link | | | DMB link | |
| | | | | |
| ND-Classic RS | | | ND-Classic RS | |
|----------------->| | |----------------->| |
|------------> | | |------------> | |
|------------------------> | |------------------------> |
| ND-Classic RA | | | ND-Classic RA | |
|<-----------------| | |<-----------------| |
| | | | | |
| NS(EARO) | | | NS(EARO) | |
|----------------->| | |----------------->| |
| | Extended DAR | | | EDAR |
| |-------------->| | |-------------->|
| | | | | |
| | Extended DAC | | | EDAC |
| |<--------------| | |<--------------|
| NA(EARO) | | NA(EARO) |
|<-----------------|<inject route> -> |<-----------------|<inject route> ->
| | | |
... ...
(host2) (router) 6LBR (host2) (router) 6LBR
| NS(EARO) | | | NS(EARO) | |
|----------------->| | |----------------->| |
| | | | | |
| | Extended DAR | | | EDAR |
| |-------------->| | |-------------->|
| | | | | |
| | Extended DAC | | | EDAC |
| |<--------------| | |<--------------|
| NA(EARO) | | | NA(EARO) | |
|<-----------------| | |<-----------------| |
... ...
(host1) (router) (host1) (router)
| NS(EARO) | | | NS(EARO) | |
|----------------->| | |----------------->| |
| | | | | |
| NA(EARO) | | | NA(EARO) | |
|<-----------------| | |<-----------------| |
skipping to change at line 361 skipping to change at line 344
| NS(EARO) | | | NS(EARO) | |
|----------------->| | |----------------->| |
| | | | | |
| NA(EARO) | | | NA(EARO) | |
|<-----------------| | |<-----------------| |
... ...
| |<maintain route> -> | |<maintain route> ->
... ...
]]></artwork> ]]></artwork>
</figure> </figure>
<t>In classical networks, <xref target="RFC8505"/> may be used for an ND <t>In classical networks, <xref target="RFC8505"/> may be used for an ND
proxy operation as specified in <xref target="RFC8929"/>, or redistributed in proxy operation as specified in <xref target="RFC8929"/> or redistributed
a full-fledged routing protocol such as might be done in BGP for Ethernet in a full-fledged routing protocol such as what might be done in BGP for
VPN <xref target="I-D.thubert-bess-secure-evpn-mac-signaling"/> or in Ethernet VPN <xref target="I-D.thubert-bess-secure-evpn-mac-signaling"/> or
the Routing In Fat Trees (RIFT) protocol in the Routing in Fat Trees (RIFT) protocol <xref
<xref target="I-D.ietf-rift-rift"/>. The device mobility can be target="I-D.ietf-rift-rift"/>. The device mobility can be gracefully
gracefully supported as long as the routers can exchange and make sense of supported as long as the routers can exchange and make sense of the
the sequence counter in the TID field of the EARO. sequence counter in the TID field of the EARO.</t>
</t>
<t> In the case of LLNs, RPL <xref target="RFC6550"/> is the routing protocol
of choice and <xref target="RFC9010"/> specifies how the unicast address
advertised with <xref target="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
<xref target="RFC6550"/>, including loop avoidance and detection, though in
the case of multicast multiple copies might be generated.
</t>
<t><xref target="RFC8505"/> is a pre-requisite to this specification.
A node that implements this MUST also implement <xref target="RFC8505"/>.
This specification modifies existing options and updates the associated
behaviors to enable the Registration for Multicast Addresses as an extension
to <xref target="RFC8505"/>.
As with the unicast address registration, the subscription to anycast and mul
ticast
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 agg
regated
by the router to other routers, though protocol extensions would be needed in
the protocol
when multicast services are not available.
</t>
<t>
This specification also Extends <xref target="RFC6550"/> and
<xref target="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 <xref target="RFC9010"/>.
</t>
<t>
<xref target="figref"/> 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.
</t>
<t> <t>In the case of LLNs, RPL <xref target="RFC6550"/> is the routing
The LLN may be a hub-and-spoke access link such as (Low-Power) Wi-Fi protocol of choice and <xref target="RFC9010"/> specifies how the unicast
<xref target="IEEE80211"/> and Bluetooth (Low Energy) address advertised with <xref target="RFC8505"/> is redistributed in
<xref target="IEEE802151"/>, or a Route-Over LLN such as the Wi-SUN RPL. This specification also provides RPL extensions for anycast and
<xref target="I-D.heile-lpwan-wisun-overview"/> and 6TiSCH multicast address operation and redistribution. In the RPL case, and unless
<xref target="RFC9030"/> meshes that leverages 6LoWPAN specified otherwise, the behavior is the same as it is for unicast for the 6L
<xref target="RFC4919"/> <xref target="RFC6282"/> BR that acts as RPL Root, the intermediate routers Down the RPL graph, the 6LRs
and RPL <xref target="RFC6550"/> over <xref target="IEEE802154"/>. that act as access
</t> routers, and the 6LNs that are the RPL-unaware destinations. In particular, f
orwarding a packet happens as specified in
<xref target="RFC6550" sectionFormat="of" section="11"/>, including loop
avoidance and detection, though in the multicast case, multiple copies
might be generated.</t>
<t><xref target="RFC8505"/> is a prerequisite to this specification. A
node that implements this <bcp14>MUST</bcp14> also implement <xref
target="RFC8505"/>. This specification modifies existing options and
updates the associated behaviors to enable the registration for multicast
addresses as an extension to <xref target="RFC8505"/>. As with the registrat
ion
of a unicast
address, the subscription to anycast and multicast addresses
between a node and its router(s) is agnostic (meaning it is independent) from
the routing protocol in which this information may be
redistributed or aggregated by the router to other routers. However, protocol
extensions would be needed in the protocol when multicast services are not
available.</t>
<t>This specification also Extends <xref target="RFC6550"/> and
<xref target="RFC9010"/> to add multicast ingress replication (IR) in
Non-Storing mode and anycast support in both Storing and Non-Storing modes in
the case of a route-over multilink subnet based
on the RPL routing protocol.
A 6LR that implements the RPL extensions specified herein <bcp14>MUST</bcp14>
also
implement <xref target="RFC9010"/>.</t>
<t><xref target="figref"/> illustrates the typical scenario of an LLN as
a single IPv6 subnet, with a 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.</t>
<t>The LLN may be a hub-and-spoke access link such as (Low-Power) Wi-Fi
<xref target="IEEE80211"/> and (Low-Energy) Bluetooth <xref
target="IEEE802151"/> or a Route-Over LLN such as the Wi-SUN <xref
target="I-D.heile-lpwan-wisun-overview"/> and IPv6 over the TSCH mode of IEE
E 802.15.4 (6TiSCH) <xref
target="RFC9030"/> meshes that leverage 6LoWPAN <xref target="RFC4919"/>
<xref target="RFC6282"/> and RPL <xref target="RFC6550"/> over IEEE 802.15.4
<xref
target="IEEE802154"/>.</t>
<figure anchor="figref" align="center"><name>Wireless Mesh</name> <figure anchor="figref" align="center"><name>Wireless Mesh</name>
<artwork><![CDATA[ <artwork><![CDATA[
| |
----+-------+------------ ----+-------+------------
| Wire side | Wire side
+------+ +------+
| 6LBR | | 6LBR |
|(Root)| |(Root)|
+------+ +------+
o o o Wireless side o o o Wireless side
o o o o o o o o o o o o
o o o o o o o o o o o o o o
o o o LLN o +---+ o o o LLN o +---+
o o o o o |6LR| o o o o o |6LR|
o o o o o +---+ o o o o o +---+
o o o o o o z o o o o o o z
o o oo o o +---+ o o oo o o +---+
o |6LN| o |6LN|
+---+ +---+
]]></artwork></figure> ]]></artwork></figure>
<t> <t>A leaf acting as a 6LN registers its unicast addresses to a RPL
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
router acting as a 6LR, using a layer-2 unicast NS message with an EARO as
specified in <xref target="RFC8505"/>. specified in <xref target="RFC8505"/>.
The registration state is periodically renewed by the Registering Node, The registration state is periodically renewed by the Registering Node
before the lifetime indicated in the EARO expires. As for unicast IPv6 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 addresses, the 6LR uses an EDAR and then an EDAC exchange with the 6LBR to no
6LBR of the presence of the listeners. tify the
</t><t> 6LBR of the presence of the listeners.</t>
This specification updates the EARO with a new two-bit field, the P-Field,
as detailed in <xref target="R8505E"/>. <t>This specification updates the EARO with a new 2-bit field, the P-Field,
The existing R flag that requests reachability for the registered address as detailed in <xref target="R8505E"/>. The existing R flag that requests
gets new behavior. reachability for the Registered Address gets new behavior. With this
With this extension the 6LNs can now subscribe to the anycast and multicast extension, the 6LNs can now subscribe to the anycast and multicast addresses
addresses they listen to, using a new P-Field in the EARO to signal that the 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 registration is for a multicast address. Multiple 6LNs may subscribe the
the same multicast address to the same 6LR. Note the use of the term same multicast address to the same 6LR. Note the use of the term
"subscribe": using the EARO registration mechanism, a node registers the "subscribe": this means that when using the EARO registration mechanism, a no
unicast addresses that it owns, but subscribes to the multicast addresses de registers the
that it listens to. unicast addresses that it owns but subscribes to the multicast addresses
</t><t> that it listens to.</t>
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 <t>With this specification, the 6LNs can also subscribe the anycast
is for an anycast address. As for multicast, multiple 6LNs may subscribe the addresses they accept using a new P-Field in the EARO to signal that the
same anycast address to the same 6LR. registration is for an anycast address. For multicast addresses, multiple 6LN
</t><t> s may
If the R flag is set in the subscription of one or more 6LNs for the same subscribe the same anycast address to the same 6LR.</t>
address, the 6LR injects the anycast addresses and multicast addresses of a
scope larger than link-scope in RPL, based on the longest subscription <t>If the R flag is set in the subscription of one or more 6LNs for the
lifetime across the active subscriptions for the address. same address, the 6LR injects the anycast addresses and multicast addresses
</t><t> of a scope larger than the link-scope in RPL, based on the longest subscripti
In the RPL "Storing Mode of Operation with multicast support", the DAO on
messages for the multicast address percolate along the RPL preferred parent lifetime across the active subscriptions for the address.</t>
<t>In the RPL Storing Mode of Operation with multicast support (<xref target=
"RFC6550" sectionFormat="of" section="12"/>), 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 tree and mark a subtree that becomes the multicast tree for that multicast
address, with 6LNs that subscribed to the address as the leaves. address, with 6LNs that subscribed to the address as the leaves. As
As prescribed in section 12 of <xref target="RFC6550"/>, the 6LR forwards a prescribed in <xref target="RFC6550" sectionFormat="of" section="12"/>, the 6
multicast packet as an individual unicast MAC frame to each peer along the LR forwards a
multicast tree, except to the node it received the packet from. multicast packet as an individual unicast Medium Access Control (MAC) frame t
</t><t> o each peer along the
In the new RPL "Non-Storing Mode of Operation with multicast support" that is multicast tree, except to the node it received the packet from.</t>
introduced here, the DAO messages announce the multicast addresses as Targets
though never as Transit. The multicast distribution is an ingress replication <t>In the new RPL Non-Storing Mode of Operation with ingress replication mult
whereby the Root encapsulates the multicast packets to all the 6LRs that are icast support
transit for the multicast address, using the same source-routing header as that is introduced here, the DAO messages announce the multicast addresses
for unicast targets attached to the respective 6LRs. as Targets, and never as Transits. The multicast distribution is an
</t><t> IR whereby the Root encapsulates the multicast packets to
LLN links are typically Direct MAC Broadcast (DMB) all the 6LRs that are transit for the multicast address, using the same
(more in <xref target="I-D.ietf-6man-ipv6-over-wireless" />) with no source-routing header as for unicast targets attached to the respective
emulation to increase range (over multiple radio hops) or reliability. 6LRs.</t>
In such links, broadcasting is unreliable and asynchronous transmissions forc
e a listener <t>LLN links are typically Direct MAC Broadcast (DMB) (see more in <xref
target="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. to remain awake, so asynchronous broadcasting is generally inefficient.
The expectation is thus that whenever possible, the 6LRs deliver the Thus, the expectation is that whenever possible, the 6LRs deliver the
multicast packets as individual unicast MAC multicast packets as individual unicast MAC frames to each of the 6LNs that
frames to each of the 6LNs that subscribed to the multicast address. subscribed to the multicast address. On the other hand, in a network where
On the other hand, in a network where nodes do not sleep, asynchronous nodes do not sleep, asynchronous broadcasting may still help recovering
broadcasting may still help recovering faster when state is lost. faster when state is lost.</t>
</t><t>
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.
</t>
<t> <t>With this specification, anycast addresses can be injected in RPL in
Operationally speaking, deploying a new MOP means that one cannot update a li both Storing and Non-Storing modes. In Storing mode, the RPL router accepts
ve network. The network administrator must create a new instance DAO messages from multiple children for the same anycast address, but it only
with MOP 5 and migrate nodes to that instance by allowing them to join it. forwards
</t> a packet to one of the children. In Non-Storing mode, the Root maintains
<t>For backward compatibility, this specification allows to build a single the list of all the RPL nodes that announced the anycast address as Target,
DODAG signaled as MOP 1, that conveys anycast, unicast, and multicast packet but it forwards a given packet to only one of them.</t>
s
using the same source routing mechanism; more in <xref target="deploy"/>.
</t>
<t>
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 <xref target="I-D.thubert-bess-secure-evpn-mac-signaling"/>
and forwarding with <xref target="I-D.ietf-bess-evpn-optimized-ir"/>. </t>
<t>
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 <xref target="RFC7731">"Multicast Protocol
for Low-Power and Lossy Networks (MPL)"</xref> for the multicast operation.
MPL floods the DODAG with the multicast messages independently of the RPL
DODAG topologies. Two variations are possible:
</t>
<ul>
<li>
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.
</li>
<li>
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.
</li> <t>Operationally speaking, deploying a new MOP means that one cannot update
</ul> a live network. The network administrator must create a new instance with
<t> MOP 5 and migrate nodes to that instance by allowing them to join it.</t>
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.
</t>
</section> <!-- end section "Overview" --> <t>For backward compatibility, this specification allows building a single
DODAG signaled as MOP 1 that conveys anycast, unicast, and multicast
packets using the same source-routing mechanism; see more in <xref
target="deploy"/>.</t>
<!-- Target Address is not a multicast address. --> <t>It is also possible to leverage this specification between the 6LN and
<section anchor="tgt4861"><name>Updating RFC 4861</name> the 6LR for the registration of unicast, anycast, and multicast IPv6
<t> addresses in networks that are not necessarily LLNs and/or where the
Section 7.1 of <xref target="RFC4861"/> requires to silently discard NS and routing protocol between the 6LR and its peer routers is not necessarily RPL.
NA packets when the Target Address is a multicast address. This specification In that
Amends <xref target="RFC4861"/> by allowing to advertise multicast and anycas case, the distribution of packets between the 6LR and the 6LNs may
t effectively rely on a broadcast or multicast support at the lower layer
addresses in the Target Address field when the NS message is used for a (e.g., using this specification as a replacement to MLD in an Ethernet-bridge
registration, per section 5.5 of <xref target="RFC8505"/>. d domain and still using either a plain MAC-layer broadcast or snooping of
</t> this protocol to control the flooding). It may also rely on overlay services
</section ><!-- Updating RFC 4861 --> to optimize the impact of Broadcast, Unknown, and Multicast (BUM) traffic ove
<section anchor="CIO"><name>Updating RFC 7400</name> r a
fabric, e.g., registering with <xref
target="I-D.thubert-bess-secure-evpn-mac-signaling"/> and forwarding with
<xref target="RFC9574"/>.</t>
<t>For instance, it is possible to operate a RPL Instance in the new
Non-Storing Mode of Operation with ingress replication multicast support (whi
le possibly
signaling a MOP of 1) and use "Multicast Protocol for Low-Power and Lossy
Networks (MPL)" <xref target="RFC7731"/> for the multicast operation. MPL
floods the DODAG with the multicast messages independently of the RPL DODAG
topologies. Two variations are possible:</t>
<ul>
<li>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 a listener exists.</li>
<li>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 a
configuration mechanism, it is also possible to control the behavior of the
6LR to
ignore the R flag. It can be configured to either always or never send the
DAO message and/or to control the Root and specify which groups it should flood
or not
flood.</li>
</ul>
<t>Note that if the configuration instructs the 6LR not to send the DAO messa
ge,
then MPL can be used in conjunction with the RPL Storing mode as
well.</t>
</section>
<section anchor="tgt4861"><name>Amending RFC 4861</name>
<t><xref target="RFC4861" sectionFormat="of" section="7.1"/> requires silentl
y discarding NS and NA packets when the Target Address is a multicast
address. This specification Amends <xref target="RFC4861"/> by allowing the a
dvertisement of multicast and anycast addresses in the Target Address field when
the NS message is used for a registration, per <xref target="RFC8505"
sectionFormat="of" section="5.5"/>.</t>
</section>
<section anchor="CIO"><name>Extending RFC 7400</name>
<t>This specification Extends "6LoWPAN-GHC: Generic Header Compression for I
Pv6 over Low-Power Wireless Personal Area Networks (6LoWPANs)" <xref target="RFC
7400"/> by defining a new capability bit for use in
the 6CIO. <xref target="RFC7400"/> was already extended by <xref
target="RFC8505"/> for use in IPv6 ND messages.</t>
<t>The new "Registration for Unicast, Multicast, and Anycast
Addresses 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.</t>
<t><xref target="fig6CIO"/> illustrates the X flag in its
position (8, counting 0 to 15 in network order in the 16-bit array); see
<xref target="New_Cap_Bits"/> for the IANA registration of capability bits.<
/t>
<t>
This specification Extends <xref target="RFC7400"> "6LoWPAN-GHC: Generic
Header Compression for IPv6 over Low-Power Wireless Personal Area Networks
(6LoWPANs)"</xref> by defining a new capability bit for use in the
6CIO. <xref target="RFC7400"/> was already extended by <xref target="RFC8505
"/> for use in IPv6 ND messages.
</t>
<t>
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.
</t>
<t>
<xref target="fig6CIO"/> illustrates the X flag in its suggested position
(8, counting 0 to 15 in network order in the 16-bit array), to be confirmed b
y IANA.
</t>
<figure anchor="fig6CIO"><name>New Capability Bits in the 6CIO</name> <figure anchor="fig6CIO"><name>New Capability Bits in the 6CIO</name>
<artwork> <artwork>
<![CDATA[ <![CDATA[
0 1 2 3 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 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| | Type | Length = 1 | Reserved |X|A|D|L|B|P|E|G|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved | | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork> ]]></artwork>
</figure> </figure>
<t> New Option Field: </t> <t>New Option Field:</t>
<dl> <dl>
<dt>X</dt><dd> 1-bit flag: "Registration for Unicast, Multicast, and Anyc <dt>X:</dt>
ast <dd>This is a 1-bit flag for "Registration for Unicast, Multicast, and
Addresses Supported" </dd> Anycast
Addresses Supported".</dd>
</dl> </dl>
</section>
</section> <!-- end section "Extending RFC 7400" --> <section anchor="coex">
<name>Amending RFC 6550</name>
<section anchor="coex"><name>Updating RFC 6550</name> <t>This specification Amends <xref target="RFC6550"/> to mandate the use of
<t> the ROVR field as the indication of the origin of a Target advertisement in
This specification Amends <xref target="RFC6550"/> to mandate the use RPL DAO messages, as specified as an option in <xref
of the ROVR field as the indication of the origin of a Target target="RFC9010" sectionFormat="of" section="6.1"/>.</t>
advertisement in the RPL DAO messages, as specified as an option
in section 6.1 of <xref target="RFC9010"/>.
</t><t> <t>This specification Extends <xref target="RFC6550"/> with a new P-Field in
This specification Extends <xref target="RFC6550"/> with a new P-Field in the the RPL Target Option (RTO).</t>
RPL Target Option.
</t><t>
The specification also Amends the behaviors of the Modes of Operation
MOP 1 and MOP 3, and Extends <xref target="RFC6550"/> with a new MOP 5.
</t> <t>The specification also Amends the behaviors of the Modes of Operation
<section anchor="mrovr"><name>Mandating the ROVR field</name> MOP 1 and MOP 3 and Extends <xref target="RFC6550"/> with a new MOP 5.</t>
<t>
For anycast and multicast advertisements (in NS or DAO messages), multiple <section anchor="mrovr">
origins may subscribe to the same address, in which case the multiple <name>Mandating the ROVR Field</name>
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.
</t><t> <t>For anycast and multicast advertisements (in NS or DAO messages),
<xref target="RFC6550"/> uses the Path Sequence in the Transit Information multiple origins may subscribe to the same address, in which case the
Option (TIO) to retain only the freshest unicast route and remove stale ones, multiple advertisements from the different or unknown origins are merged by
e.g., in the case of mobility. <xref target="RFC9010"/> copies the TID from the common parent; in that case, the common parent becomes the origin of
the EARO into the Path Sequence, and the ROVR field into the associated RPL the merged advertisements and uses its own ROVR value. On the other hand, a
Target Option (RTO). parent that propagates an advertisement from a single origin uses the
This way, it is possible to identify both the registering node and the original ROVR in the propagated RTO, as it does for unicast address
order of registration in RPL for each individual advertisement, so the advertisements, so the origin is recognized across multiple hops.</t>
most recent path and lifetime values are used.
</t><t> <t><xref target="RFC6550"/> uses the Path Sequence in the Transit
This specification Extends <xref target="RFC6550"/> to require that, Information Option (TIO) to retain only the freshest unicast route and
for anycast and multicast advertisements, the Path Sequence is used remove the stale ones, e.g., in the case of mobility. <xref target="RFC9010"/
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 adver copies the Transaction ID (TID) from the EARO into the Path Sequence and the
tisement is retained. But the freshness comparison cannot apply if the ROVR field
origin is not determined (i.e., the origin did not support this specification into the associated RTO. This way, it is possible to
). identify both the Registering Node and the order of registration in RPL for
</t><t> each individual advertisement, so the most recent path and lifetime values
<xref target="RFC6550"/> uses the Path Lifetime in the TIO to indicate the are used.</t>
remaining time for which the advertisement is valid for unicast route
<t>This specification Extends <xref target="RFC6550"/> for anycast and
multicast advertisements to require that the Path Sequence be 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).</t>
<t><xref target="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. determination, and a Path Lifetime value of 0 invalidates that route.
<xref target="RFC9010"/> maps the Address Registration lifetime in the EARO <xref target="RFC9010"/> maps the Address Registration lifetime in the EARO
and the Path Lifetime in the TIO so they are comparable when both forms of and the Path Lifetime in the TIO so they are comparable when both forms of
advertisements are received. advertisements are received.</t>
</t><t>
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.
</t><t>
Note that the Registration Lifetime, TID and ROVR fields are also placed in <t>The RPL router that merges multiple advertisements for the same anycast
the EDAR message so the state created by EDAR is also comparable with that cr or multicast addresses <bcp14>MUST</bcp14> use and advertise the longest
eated upon an NS(EARO) or a DAO message. For simplicity the text below remaining lifetime across all the origins of the advertisements for that
mentions only NS(EARO) but applies also to EDAR. address. When the lifetime expires, the router sends a no-path DAO message (
</t> i.e.,
</section><!--Mandating the ROVR field--> the lifetime is 0) using the same value for the ROVR value as for the previou
s
advertisements. This value refers to either the single descendant that
advertised the Target if there is only one or the router itself if there is m
ore than one.</t>
<t>Note that the Registration Lifetime, TID, and ROVR fields are also placed
in the EDAR message so the state created by the 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 it also applies to EDAR.</t>
</section>
<section anchor="mop3"><name>Updating MOP 3</name> <section anchor="mop3"><name>Updating MOP 3</name>
<t>
RPL supports multicast operations in the "Storing Mode of Operation with <t>RPL supports multicast operations in the Storing Mode of Operation with
multicast support" (MOP 3) which provides source-independent multicast multicast support (MOP 3), which provides source-independent multicast
routing in RPL, as prescribed in section 12 of <xref target="RFC6550"/>. routing in RPL, as prescribed in <xref target="RFC6550" sectionFormat="of" se
MOP 3 is a storing Mode of Operation. This operation builds a multicast ction="12"/>.
MOP 3 is a Storing Mode of Operation. This operation builds a multicast
tree within the RPL DODAG for each multicast address. This specification tree within the RPL DODAG for each multicast address. This specification
provides additional details for the MOP 3 operation. provides additional details for the MOP 3.</t>
</t> <t>
The expectation in MOP 3 is that the unicast traffic also follows the <t>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 Storing Mode of Operation. However, this is rarely the case in LLN deployment
of RPL where the "Non-Storing Mode of Operation" (MOP 1) is the norm. s
Though it is preferred to build separate RPL Instances, one in MOP 1 and one of RPL where the Non-Storing Mode of Operation (MOP 1) is the norm.
in MOP 3, this specification allows hybrid use of the Storing Mode for multic Though it is preferred to build separate RPL Instances, one in MOP 1 and
ast one in MOP 3, this specification allows hybrid use of the Storing mode for
and Non-Storing Mode for unicast in the same RPL Instance, as is elaborated i multicast and the Non-Storing mode for unicast in the same RPL Instance, as i
n more detail in s
<xref target="deploy"/>. elaborated in more detail in <xref target="deploy"/>.</t>
</t><t>
For anycast and multicast advertisements, including MOP 3, the ROVR field <t>For anycast and multicast advertisements, including MOP 3, the ROVR
is placed in the RPL Target Option as specified in <xref target= field is placed in the RTO as specified in <xref
"RFC9010"/> for both MOP 3 and MOP 5 as it is for unicast advertisements. target="RFC9010"/> for both MOP 3 and MOP 5 as it is for unicast
</t> <t> advertisements.</t>
Though it was implicit with <xref target="RFC6550"/>, this specification
<t>Though it was implicit with <xref target="RFC6550"/>, this specification
clarifies that the freshness comparison based on the Path Sequence is not clarifies that the freshness comparison based on the Path Sequence is not
used when the origin cannot be determined, which is the case there. used when the origin cannot be determined, which occurs in the case of multip
The comparison is to be used only between advertisements from the same le subscriptions of a multicast or unicast address. The
origin, which is either an individual subscriber, or a descendant that comparison is to be used only between advertisements from the same origin,
merged multiple advertisements. which is either an individual subscriber or a descendant that merged
</t> <t> multiple advertisements.</t>
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 <t>A RPL router maintains a remaining Path Lifetime for each DAO message that
it
receives for a multicast target and sends its own DAO message for that target
with
the longest remaining lifetime across its listening children. If the router the longest remaining lifetime across its listening children. If the router
has only one descendant listening, it propagates the TID and ROVR as has only one descendant listening, it propagates the TID and ROVR as
received. Conversely, if the router merges multiple advertisements received. Conversely, if the router merges multiple advertisements
(including possibly one for itself as a listener), the router uses (possibly including one for itself as a listener), the router uses its own
its own ROVR and TID values. This implies a possible transition of ROVR and TID values. This implies a possible transition of ROVR and TID
ROVR and TID values when the number of listening children changes values when the number of listening children changes from one to more or
from one to more or back to one, which should not be considered as an back to one, which should not be considered as an error or a change of
error or a change of ownership by the parents above. ownership by the parents above.</t>
</section>
</t>
</section> <!-- end section "Updating MOP 3" -->
<section anchor="mop5"><name>New Non-Storing Multicast MOP</name> <section anchor="mop5"><name>New Non-Storing Multicast MOP</name>
<t> <t>This specification adds a Non-Storing Mode of Operation with ingress
This specification adds a "Non-Storing Mode of Operation with ingress replication multicast support RPL (as assigned by IANA; see <xref target="RPL_Mo
replication multicast support" (MOP to be assigned by IANA) whereby the de_Op"/>) whereby the
non-storing Mode DAO to Non-Storing Mode DAO to the Root may advertise a multicast address in the RTO, w
the Root may advertise a multicast address in the RPL Target Option (RTO), hereas the TIO cannot.</t>
whereas the Transit Information Option (TIO) cannot.
</t> <t> <t>In that mode, the RPL Root performs an IR operation
In that mode, the RPL Root performs an ingress replication (IR) operation on on the multicast packets. This means that it transmits one copy of each multicas
the multicast packets, meaning that it transmits one copy of each multicast t
packet to each 6LR that is a transit for the multicast target, using the same 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 source-routing header and encapsulation as it would for a unicast packet for a
a RPL Unaware Leaf (RUL) attached to that 6LR. RPL-Unaware Leaf (RUL) attached to that 6LR.</t>
</t> <t>
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.
</t> <t>
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 <xref target="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 <xref target="RFC9008"/>. In that
case, the outer header is purely unicast, and the encapsulated packet is
purely multicast.
</t><t>
For anycast and multicast advertisements in NA (at the 6LR) and DAO (at the R
oot) messages, as discussed in <xref target="mop3"/>, 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.
</t><t>
The Root maintains a remaining Path Lifetime for each advertisement it receiv
es,
and the 6LRs generate the DAO for multicast addresses with the longest
remaining lifetime across its registered 6LNs, using its own ROVR and TID whe
n multiple 6LNs subscribed, or if this 6LR is one of the subscribers.
</t> <t>
For this new mode as well, this specification allows to enable the operation
in a MOP 1 brown field, more in <xref target="deploy"/>.
</t>
</section> <!-- end section "New Non-Storing Multicast MOP" --> <t>For the intermediate routers, the packet appears as any source-routed
unicast packet. The difference shows only at the 6LR, which terminates the
source-routed path and forwards the multicast packet to all 6LNs that
registered for the multicast address.</t>
<t>For a packet that is generated by the Root, the Root builds
a source-routing header as shown in <xref target="RFC9008" sectionFormat="of"
section="8.1.3"/>, 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 <xref target="RFC9008"
sectionFormat="of" section="8.2.4"/>. In that case, the outer header is purely
unicast, and the encapsulated packet is purely multicast.</t>
<t>For anycast and multicast advertisements in NA messages (at the 6LR) and DAO
messages (at the
Root), as discussed in <xref target="mop3"/>, 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.</t>
<t>The Root maintains a remaining Path Lifetime for each advertisement it
receives, and a 6LR generates the DAO message for multicast addresses with the
longest remaining lifetime across its registered 6LNs, using its own ROVR and
TID when multiple 6LNs have subscribed or when the 6LR is a subscriber.</t>
<t>This specification allows enabling the
operation in a MOP 1 brown field for this new mode as well; see more in <xref ta
rget="deploy"/>.</t>
</section>
<section anchor="anic"><name>RPL Anycast Operation</name> <section anchor="anic"><name>RPL Anycast Operation</name>
<t> <t>With multicast, the address has a recognizable format, and a multicast
With multicast, the address has a recognizable format, and a multicast packet packet is to be delivered to all the active subscribers. In contrast, the
is to be delivered to all the active subscribers. format of an anycast address is not distinguishable from that of a unicast ad
In contrast, the format of an anycast address is not distinguishable dress. A
from that of unicast. A legacy node may issue a DAO message without setting legacy node may issue a DAO message without setting the P-Field to 2; the
the P-Field to 2, the unicast behavior may apply to anycast traffic within unicast behavior may apply to anycast traffic within a portion of the
a portion of the network, but the packets will still be delivered. network, but the packets will still be delivered. That message will be
That message will be undistinguishable from a unicast advertisement and the undistinguishable from a unicast advertisement, and the anycast behavior in
anycast behavior in the dataplane can only happen if all the nodes that the data plane can only happen if all the nodes that advertise the same
advertise the same anycast address are synchronized with the same TID. That anycast address are synchronized with the same TID. That way, the multiple
way, the multiple paths can remain in the RPL DODAG. paths can remain in the RPL DODAG.</t>
</t> <t>
With the P-Field set to 2, this specification alleviates the issue of synchro <t>With the P-Field set to 2, this specification alleviates the issue of
nizing synchronizing the TIDs and ROVR fields. As for multicast, the freshness
the TIDs and ROVR fields. As for multicast, the freshness comparison based comparison based on the TID (in the EARO) and the Path Sequence (in the TIO)
on the TID (in EARO) and the Path Sequence (in TIO) is ignored unless the is
messages have the same origin, as inferred by the same ROVR in RTO and/or ignored unless the messages have the same origin; this is inferred by the sam
EARO, and the latest value of the lifetime is retained for each origin. e
</t> ROVR in the RTO and/or the EARO, and the latest value of the lifetime is reta
<t> ined
A RPL router that propagates an advertisement from a single origin uses for each origin.</t>
the ROVR and Path Sequence from that origin, whereas a router that merges
multiple subscriptions uses its own ROVR and Path Sequence and the <t>A RPL router that propagates an advertisement from a single origin uses th
longest lifetime over the different advertisements. e
A target is routed as anycast by a parent (or the Root) that received at ROVR and Path Sequence from that origin, whereas a router that merges
least one DAO message for that target with the P-Field set to 2. multiple subscriptions uses its own ROVR and Path Sequence and the longest
</t> <t> lifetime over the different advertisements. A target is routed as anycast
As opposed to multicast, the anycast operation described therein applies to by a parent (or the Root) that received at least one DAO message for that
both addresses and prefixes, and the P-Field can be set to 2 for both. target with the P-Field set to 2.</t>
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 <t>As opposed to multicast, the anycast operation described herein applies
enable load balancing. A mobile target that is multihomed should in contrast to both addresses and prefixes, and the P-Field can be set to 2 for both.
be advertised as unicast over the multiple interfaces to favor the TID An external destination (such as an address or prefix) that may be injected a
comparison and vs. the multipath load balancing. s a RPL
</t> <t> Target from multiple border routers should be injected as anycast in RPL to
For either multicast and anycast, there can be multiple subscriptions from enable load balancing. In contrast, a mobile target that is multihomed should
multiple origins, each using a different value of the ROVR field that be advertised as unicast over the multiple interfaces to favor the
identifies the individual subscription. The 6LR maintains a subscription TID comparison instead of multipath load balancing.</t>
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 <t>For either multicast or anycast, there can be multiple subscriptions
multicast address, only if its scope is larger than link-scope (3 or more). 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 for each multicast or anycast address, but it inj
ects
the route into RPL only once for each address. In the case of a
multicast address, this occurs only if its scope is larger than the link-scop
e (three or more).
Since the subscriptions are considered separate, the check on the TID that Since the subscriptions are considered separate, the check on the TID that
acts as subscription sequence only applies to the subscription with the acts as the subscription sequence only applies to the subscription with the
same ROVR. same ROVR.</t>
</t> <t>
Like the 6LR, a RPL router in Storing Mode propagates the merged advertisemen <t>Like the 6LR, a RPL router in Storing mode propagates the merged
t to its parent(s) in DAO messages once and only once advertisement to its parent(s) in DAO messages once and only once for each
for each address, but it retains a routing table entry for each of the address, but it retains a routing table entry for each of the children that
children that advertised the address. advertised the address.</t>
</t> <t>
When forwarding multicast packets down the DODAG, the RPL router copies <t>When forwarding multicast packets Down the DODAG, the RPL router copies
all the children that advertised the address in their DAO messages. In all the children that advertised the address in their DAO messages. In
contrast, when forwarding anycast packets down the DODAG, the RPL router 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 <bcp14>MUST</bcp14> copy one and only one of the children that advertised
their DAO messages, and forward to one parent if there is no such child. the address in their DAO messages and forward it to one parent if there is no
</t> such child.</t>
</section>
</section> <!-- end section "RPL Anycast Operation" --> <section anchor="newpf">
<name>New Registered Address Type Indicator P-Field</name>
<section anchor="newpf"><name>New Registered Address Type Indicator P-Field</nam <t>The new Registered Address Type Indicator (RATInd) is created for use in th
e> e
<t> The new Registered Address Type Indicator (RATInd) is created for use in RPL RTO, the EARO, and the header of EDAR messages. The RATInd
Target Option, the EARO, and the header of EDAR messages. indicates whether an address is unicast, multicast, or anycast. The new
The RATInd indicates whether an address is unicast, multicast, or anycast. 2-bit P-Field is defined to transport the RATInd in different protocols.</t>
The new 2-bit P-Field is defined to transport the RATInd in different
protocols. <t>The P-Field can take the values shown in <xref target="AM2"/>.</t>
</t>
<t> <!-- Note: deleted Table 1 (pointing to Table 3 instead).
The P-Field can take the following values:
</t> <table anchor="pVALS"><name>P-Field Values</name>
<table anchor="pVALS" ><name>P-Field Values</name>
<thead> <thead>
<tr><td>P-Field Value</td><td>Registered Address Type</td></tr> <tr>
</thead><tbody> <td>Value</td>
<tr><td>0</td><td>Registration for a Unicast Address or prefix</td></tr> <td>Registered Address Type Indicator</td>
</tr>
</thead>
<tbody>
<tr><td>0</td><td>Registration for a Unicast Address</td></tr>
<tr><td>1</td><td>Registration for a Multicast Address</td></tr> <tr><td>1</td><td>Registration for a Multicast Address</td></tr>
<tr><td>2</td><td>Registration for an Anycast Address</td></tr> <tr><td>2</td><td>Registration for an Anycast Address</td></tr>
<tr><td>3</td><td>Reserved, MUST NOT be used by the sender.</td></tr> <tr><td>3</td><td>Reserved; <bcp14>MUST NOT</bcp14> be used by the sender< /td></tr>
</tbody> </tbody>
</table>
-->
</table> <!-- end table "P-Field values" --> <t>The intent for the value of 3 is a prefix registration (see <xref
target="I-D.ietf-6lo-prefix-registration"/>), which is expected to be
published after this specification. At the time of this writing,
RPL already advertises prefixes, and treats unicast addresses as
prefixes with a length of 128, so it does not need that new
value. On the other hand, 6LoWPAN ND does not, so the value of 3
(meaning prefix registration) will not be processed adequately. As a
result:</t>
<t>
The intent for the value of 3 is a prefix registration (see <xref target
="I-D.ietf-6lo-prefix-registration"/>, which is expected to be published soon af
ter this specification. At the time of this writing, RPL already advertises pref
ixes, and treated unicast addresses as prefgixes with a length of 128, so it doe
s not really need that new value. On the other hand, 6LoWPAN ND does not, and th
e value of 3 meaning prefix registration will not be processed adequately.
As a result:
</t>
<ul> <ul>
<li> <li>When the value of 3 is received in an RTO (see <xref
When the value of 3 is received in an RTO (see <xref target="newrtoflg"/ target="newrtoflg"/>), this value <bcp14>MUST</bcp14> be ignored by
>), this value MUST be ignored by the receiver, meaning, treated as a value of 0 the receiver (meaning it is treated as a value of 0) but the message i
, but the message is processed normally (as per <xref target="RFC6550"/> and <xr s
ef target="RFC9010"/>). processed normally (as per <xref target="RFC6550"/> and <xref
</li> target="RFC9010"/>).</li>
<li> <li>In the case of an EARO (see <xref target="R8505E"/>) or an EDAR
In the case of an EARO (see <xref target="R8505E"/>) or an EDAR (see <xr (see <xref target="R8505D"/>), the message <bcp14>MUST</bcp14> be
ef target="R8505D"/>), the message MUST be dropped, and the receiving node MAY e dropped, and the receiving node <bcp14>MAY</bcp14> either reply
ither reply with a status of 12 "Invalid Registration" or remain silent. with a status of 12 "Invalid Registration" or remain silent.</li>
</li>
</ul> </ul>
</section><!-- New P-Field -->
</section>
<section anchor="newrtoflg"><name>New RPL Target Option P-Field</name> <section anchor="newrtoflg"><name>New RPL Target Option P-Field</name>
<t>
<xref target="RFC6550"/> recognizes a multicast address by its format
(as specified in section 2.7 of <xref target="RFC4291"/>) and applies the
specified multicast operation if the address is recognized as multicast.
This specification updates <xref target="RFC6550"/> to add the 2-bit P-Field
(see <xref target="newpf"/>) to the RTO to indicate that the target address
is to be processed as unicast, multicast or anycast.
</t> <ul>
<li>An RTO that has the P-Field set to 0 is called a unicast RTO.</li>
<li>An RTO that has the P-Field set to 1 is called a multicast RTO.</li>
<li>An RTO that has the P-Field set to 2 is called an anycast RTO.</li>
</ul> <t> <t><xref target="RFC6550"/> recognizes a multicast address by its format (as
The suggested position for the P-Field is 2 counting from 0 to specified in <xref target="RFC4291" sectionFormat="of" section="2.7"/>) and
7 in network order as shown in <xref target="rto-fmt"/>, based on figure 4 applies the specified multicast operation if the address is recognized as
of <xref target="RFC9010"/> which defines the flags in position 0 and 1: multicast. This specification updates <xref target="RFC6550"/> to add the
</t> 2-bit P-Field (see <xref target="newpf"/>) to the RTO to indicate that the
<figure anchor="rto-fmt"><name>Format of the RPL Target Option</name> Target Address is to be processed as unicast, multicast, or anycast.</t>
<artwork align="center">
<ul>
<li>An RTO that has the P-Field set to 0 is called a unicast RTO.</li>
<li>An RTO that has the P-Field set to 1 is called a multicast RTO.</li>
<li>An RTO that has the P-Field set to 2 is called an anycast RTO.</li>
</ul>
<t>The suggested position for the P-Field is 2 counting from 0 to 7 in network
order as shown in <xref target="rto-fmt"/>, based on Figure 4 of <xref
target="RFC9010"/>, which defines the flags in positions 0 and 1:</t>
<figure anchor="rto-fmt">
<name>Format of the RPL Target Option (RTO)</name>
<artwork align="center">
0 1 2 3 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 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 | | Type = 0x05 | Option Length |F|X| P |ROVRsz | Prefix Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
| Target Prefix (Variable Length) | | Target Prefix (Variable Length) |
. . . .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
... Registration Ownership Verifier (ROVR) ... ... Registration Ownership Verifier (ROVR) ...
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork> </artwork>
</figure> </figure>
<t> New and updated Option Fields: </t>
<t>New and updated Option Field:</t>
<dl> <dl>
<dt>P:</dt><dd>2-bit field; see <xref target="newpf"/></dd> <dt>P:</dt>
<dd>This is a 2-bit field; see <xref target="newpf"/>.</dd>
</dl> </dl>
</section> <!-- end section "New RPL Target Option Flags" --> </section>
</section> <!-- end section "Updating RFC 6550" --> </section>
<section anchor="updating"><name>Updating RFC 8505</name> <section anchor="updating">
<name>Extending RFC 8505</name>
<t> <t>This specification Extends <xref target="RFC8505"/> by adding the concept
This specification Extends <xref target="RFC8505"/> by adding the of a subscription for anycast and multicast addresses and creating a new field
concept of subscription for anycast and multicast addresses and called the P-Field in the EARO and in the EDAR and EDAC messages to signal the t
creating a new field called the P-Field in the EARO and the EDAR/EDAC ype
messages ti signal the type of registration. of registration.</t>
</t>
<section anchor="R8505E"><name>Placing the New P-Field in the EARO</name> <section anchor="R8505E">
<name>Placing the New P-Field in the EARO</name>
<t> <t><xref target="RFC8505" sectionFormat="of" section="4.1"/> defines the EARO
Section 4.1 of <xref target="RFC8505"/> defines the EARO as an extension to as an extension to the ARO defined in <xref target="RFC6775"/>. This
the ARO option defined in <xref target="RFC6775"/>. specification adds a new P-Field that is placed in the EARO flags and is set as
This specification adds a new P-Field placed in the EARO flags that is set as follows:</t>
follows:
</t>
<ul> <ul>
<li> <li>The P-Field is set to 1 to signal that the Registered Address is a
The P-Field is set to 1 to signal that the multicast address. When the P-Field is 1 and the R flag is set to 1 as well,
Registered Address is a multicast address. When the P-Field is 1 and the R fl the 6LR that conforms to this specification joins the multicast stream
ag (e.g., by injecting the address in the RPL multicast support that is extended
is set to 1 as well, the 6LR that in this specification for the Non-Storing mode).</li>
conforms to this specification joins the multicast stream, e.g., by <li>The P-Field is set to 2 to signal that the Registered Address is an
injecting the address in the RPL multicast support that is extended in this anycast address. When the P-Field is 2 and the R flag is 1, the 6LR that
specification for Non-Storing Mode. conforms to this specification injects the anycast address in the routing
</li> protocol(s) that it participates in (e.g., in the RPL anycast support that
<li> is introduced in this specification for both the Storing and Non-Storing
The P-Field is set to 2 to signal that the Registered Address is modes).</li>
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.
</li>
</ul> </ul>
<t> <t><xref target="EARO"/> illustrates the P-Field in its position
<xref target="EARO"/> illustrates the P-Field in its suggested (2, counting 0 to 7 in network order in the 8-bit array); see <xref target="PF"/
positions (2, counting 0 to 7 in network order in the > for the IANA registration of P-Field values.</t>
8-bit array), to be confirmed by IANA.
</t> <figure anchor="EARO"><name>Extended Address Registration Option (EARO) Format<
<figure anchor="EARO"><name>EARO Option Format</name> /name>
<artwork align="center"> <artwork align="center">
0 1 2 3 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 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 | | Type | Length | Status | Opaque |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Rsv| P | I |R|T| TID | Registration Lifetime | |Rsv| P | I |R|T| TID | Registration Lifetime |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
... Registration Ownership Verifier ... ... Registration Ownership Verifier (ROVR) ...
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork> </artwork>
</figure><!-- end figure "EARO Option Format" --> </figure>
<t> New and updated Option Fields: </t> <t>New and updated Option Fields:</t>
<dl> <dl>
<dt>Rsv:</dt><dd> 2-bit field; reserved, MUST be set to 0 and ignored by <dt>Rsv:</dt>
the receiver</dd> <dd>This is a 2-bit field. It is reserved and <bcp14>MUST</bcp14> be
<dt>P:</dt><dd>2-bit P-Field; see <xref target="newpf"/></dd> set to 0 and ignored by the receiver.</dd>
<dt>P:</dt>
<dd>This is a 2-bit P-Field; see <xref target="newpf"/>.</dd>
</dl> </dl>
</section> <!-- end section "Placing the New P-Field in the EARO" --> </section>
<section anchor="R8505D">
<name>Placing the New P-Field in the EDAR Message</name>
<section anchor="R8505D"><name>Placing the New P-Field in the EDAR Message</name <t><xref target="RFC6775" sectionFormat="of" section="4"/> 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 0 in DAR messages. <xref target="RFC8505"/>
extends the DAC message as an EDAC but does not change the Status field in
the EDAR.</t>
<t> <t>This specification repurposes the Status field in the EDAR as a Flags
Section 4 of <xref target="RFC6775"/> provides the same format for DAR and field. It adds a new P-Field to the EDAR flags field to match the P-Field in
DAC messages but the status field is only used in DAC messages and has to be the EARO and signal the new types of registration. The EDAC message is not
set to zero in DAR messages. <xref target="RFC8505"/> extends the DAC message modified.</t>
as an EDAC but does not change the status field in the EDAR.
</t> <t><xref target="EDAR"/> illustrates the P-Field in its position (0,
<t> counting 0 to 7 in network order in the 8-bit array); see <xref target="EDAR_M
This specification repurposes the status field in the EDAR as a Flags field. essage_Flags"/> for the IANA registration of EDAR message flags.</t>
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 <figure anchor="EDAR"><name>Extended Duplicate Address Request (EDAR) Message F
modified. ormat</name>
</t>
<t>
<xref target="EDAR"/> 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.
</t>
<figure anchor="EDAR"><name>Extended Duplicate Address Request Message Format</
name>
<artwork align="center"> <artwork align="center">
0 1 2 3 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 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 | | Type |CodePfx|CodeSfx| Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| P | Reserved | TID | Registration Lifetime | | P | Reserved | TID | Registration Lifetime |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
... Registration Ownership Verifier (ROVR) ... ... Registration Ownership Verifier (ROVR) ...
skipping to change at line 997 skipping to change at line 969
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
+ + + +
| | | |
+ Registered Address + + Registered Address +
| | | |
+ + + +
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork> </artwork>
</figure><!-- end figure "EDAR Message Format" --> </figure>
<t> New and updated Option Fields: </t> <t>New and updated Option Fields:</t>
<dl> <dl>
<dt>Reserved</dt><dd> 6-bit field: reserved, MUST be set to 0 and ignored <dt>Reserved:</dt><dd>This is a 6-bit field. It is reserved and <bcp14>MU
by the receiver</dd> ST</bcp14> be set to 0 and ignored by the receiver.</dd>
<dt>P:</dt><dd>2-bit field; see <xref target="newpf"/></dd> <dt>P:</dt><dd>This is a 2-bit field; see <xref target="newpf"/>.</dd>
</dl> </dl>
</section>
</section> <!-- end section "Placing the New P-Field in the EDAR Message" --> <section anchor="multireg">
<name>Registration Extensions</name>
<t><xref target="RFC8505"/> specifies the following behaviors:</t>
<section anchor="multireg"><name>Registration Extensions</name>
<t>
<xref target="RFC8505"/> specifies the following behaviours:
</t>
<ul> <ul>
<li> <li>A router that expects to reboot may send a final RA message, upon which
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
nodes should subscribe elsewhere or redo the subscription to the same router router upon reboot. In all other cases, a node reboot is silent. When the
upon reboot. node comes back to life, existing registration state might be lost if it
In all other cases, a node reboot is silent. was not persisted, e.g., in persistent memory.</li>
When the node comes back to life, existing registration <li>The registration method is specified only for unicast addresses.</li>
state might be lost if it was not persisted, e.g., in persistent memory. <li>The 6LN must register all its ULAs and GUAs with an NS(EARO) message.</li
</li> >
<li> <li>The 6LN may set the R flag in the EARO to obtain return reachability
The registration method is specified only for unicast addresses. services by the 6LR, e.g., through ND proxy operations or by injecting the
</li> route in a route-over subnet.</li>
<li> <li>the 6LR maintains a registration state per Registered Address, including
The 6LN must register all its ULA and GUA with an NS(EARO). an
</li> NCE with the Link-Layer Address (LLA) of the Registered Node (the 6LN here).<
<li> /li>
The 6LN may set the R flag in the EARO to obtain return reachability services </ul>
by the 6LR, e.g., through ND proxy operations, or by injecting the route in a r
oute-over subnet.
</li>
<li>
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).
</li>
</ul>
<t> <t>This specification Amends the above behaviors and Extends them with the
This specification Amends une above behavior and Extends it with the followin following behaviors:</t>
g behavior:
</t>
<ul> <ul>
<li>The concept of subscription is introduced for anycast and multicast <li>The concept of subscription is introduced for anycast and multicast
addresses as an extension to the unicast address registration. addresses as an extension to the registration of a unicast address. The
The respective operations are similar from the perspective of the 6LN, but respective operations are similar from the perspective of the 6LN, but
show important differences on the router side, which maintains a separate they show important differences on the router side, which maintains a separ
state for each origin and merges them in its own advertisements. ate
</li> state for each origin and merges them in its own advertisements.</li>
<li>
<t>
New ARO Statuses are introduced to indicate a "Registration Refresh Request"
and an "Invalid Registration" (see <xref target="AROstat"/>).
</t>
<t>
The former status is used in asynchronous NA(EARO) messages to indicate to pe
er 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 Addres
s
in NS(EARO) and EDAR messages.
</t>
<t>
A router that wishes to refresh its state, e.g., upon reboot or in any situat
ion where it may have
missed a registration or lost a registration state, SHOULD send an asynchrono
us 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 l
ost 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.
</t>
<t>
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 <xref target="RFC8505"/>, which points at
section 7.2 of <xref target="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.
</t> <li>
<!-- <t>New ARO Statuses are introduced to indicate a "Registration Refresh
In an unreliable environment, the asynchronous multicast NA(EARO) message MAY Request" and an "Invalid Registration" (see <xref
be resent in a fast sequence for reliability, in which case the TID MUST be target="AROstat"/>).</t>
incremented each time.
The multicast NA(EARO) SHOULD be resent enough times for the TID to be issued <t>The former status is used in asynchronous NA(EARO) messages to
with the value of 255 so the next NA(EARO) after the initial series is indicate to peer 6LNs that they are requested to reregister all
outside the lollipop and not confused with a reboot. addresses that were previously registered to the originating node. The
A 6LN that has recently processed the multicast NA(EARO) indicating NA message may be sent to a unicast or a multicast link-scope address
"Registration Refresh Request" ignores the next multicast NA(EARO) with and should be contained within the L2 range where nodes may have
the same status and a newer TID received within the duration of the initial effectively registered or, respectively, subscribed to this router (e.g.,
series. a radio
--> broadcast domain). The latter is generic to any error in the EARO and
<t> is used, for example, to report that the P-Field is not consistent with t
he
Registered Address in NS(EARO) and EDAR messages.</t>
The asynchronous multicast NA(EARO) indicating a "Registration Refresh Reques <t>A router that wishes to refresh its state (e.g., upon reboot or in
t" any situation where it may have missed a registration or lost a
MAY be reissued a few times within a short period, to increase the registration state) <bcp14>SHOULD</bcp14> send an asynchronous NA(EARO)
chances that the message is received by all registered nodes despite with this new status value. Failure to do so will delay the recovery of
the unreliable transmissions within the LLN; the TID MUST be the network until the next periodic registration by the attached 6LNs
incremented each time. and packets may be lost until then. That asynchronous multicast
The receiver 6LN MUST consider that multiple NA(EARO) messages NA(EARO) <bcp14>MUST</bcp14> be sent to the all-nodes link-scope
indicating a "Registration Refresh Request" from the same 6LR multicast address (ff02::1), and the Target <bcp14>MUST</bcp14> be set to
received within that short period with comparable (their absolute the link-local address that was exposed previously by this node to
difference is less than SEQUENCE_WINDOW, see section 7.2 of accept registrations.</t>
<xref target="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.
</t> <t>The TID field in the multicast NA(EARO) message is the one associated
<t> to the
The multicast NA(EARO) SHOULD be resent enough times for the TID to be issued Target and follows the same rules as the TID in the NS(EARO) message for
with the value of 255 so the next NA(EARO) after the initial series is the
outside the lollipop and not confused with a reboot. same Target; see <xref target="RFC8505" sectionFormat="of"
By default the TID initial setting after boot is 252, the SEQUENCE_WINDOW is section="5.2"/>, which points to <xref target="RFC6550"
4, sectionFormat="of" section="7.2"/> for the lollipop mechanism used in
the duration of the short period is 10 seconds, the interval the TID operation. It is incremented by the sender each time it sends a
between retries is 1 second, and the number of retries is 3. To reach 255 new series of NS and/or NA messages with the EARO about the Target. The
at boot time, the sender MAY either issue at least 4 NA messages, skip a TID TID
value, indicates a reboot when it is in the "straight" part of the lollipop,
or start with a value that is more than 252. between the initial value and 255. After that, the TID remains below 128
The best values for the short period, the number of retries, and the TID init as long as the device is alive. An asynchronous multicast NA(EARO) with
ial a TID below 128 <bcp14>MUST NOT</bcp14> be considered as indicating a
setting depend on the environment and SHOULD be configurable. reboot.</t>
</t>
<t>The asynchronous multicast NA(EARO) indicating a "Registration Refresh
Request" <bcp14>MAY</bcp14> 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 <bcp14>MUST</bcp14> be incremented each time. The receiver 6LN
<bcp14>MUST</bcp14> consider that multiple NA(EARO) messages indicating a
"Registration Refresh Request" from the same 6LR received within that
short period with comparable and increasing TID values (i.e., their absolut
e difference is less than the
SEQUENCE_WINDOW; see <xref target="RFC6550" sectionFormat="of"
section="7.2"/>) are in fact indicative of the same request. The 6LN <bcp1
4>MUST</bcp14> 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
<bcp14>MUST</bcp14> be processed.</t>
<t>The multicast NA(EARO) <bcp14>SHOULD</bcp14> 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 is 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 <bcp14>MAY</bcp14> 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
<bcp14>SHOULD</bcp14> be configurable.</t>
</li> </li>
<li> <li>
<t> <t>A new IPv6 ND Consistent Uptime Option (CUO) is introduced to be
A new IPv6 ND Consistent Uptime option (CUO) is introduced to be placed in IP placed in IPv6 ND messages. The CUO allows figuring out the state
v6 ND consistency between the sender and the receiver. For instance, a node
messages. The CUO allows to figure the state consistency between the sender a that rebooted needs to reset its uptime to 0. A router that changed
nd the information like a prefix information option has to advertise an
receiver. For instance, a node that rebooted needs to reset its uptime to 0. incremented state sequence. To that effect, the CUO carries a Node State
A Router that changed information like a prefix information option has to adv Sequence Information (NSSI) and a Consistent Uptime. See <xref
ertise an target="CUO"/> for the option details.</t>
incremented state sequence. To that effect, the CUO carries a Node State
Sequence Information (NSSI) and a Consistent Uptime. <t>A node that receives the CUO checks whether it is indicative of a
See <xref target="CUO"/> for the option details. desynchronization between peers. A peer that discovers that a router has
</t> changed should reassess which addresses it formed based on the new PIOs
<t> from that router and resync the state that it installed in the router
A node that receives the CUO checks whether it is indicative of a desynchroni (e.g., the registration state for its addresses). In the process, the peer
zation may attempt to:</t>
between peers. A peer that discovers that a router has changed should reasses <ul>
s which <li>form new addresses and register them,</li>
addresses it formed based on the new PIOs from that router, and resync the st <li>deprecate old addresses and deregister them using a Lifetime of 0, an
ate that d</li>
it installed in the router, e.g., the registration state for its addresses. <li>reform any potentially lost state (e.g., by registering again an
In the process, the peer may attempt to form new addresses and register them, existing address that it will keep using).</li>
deprecate </ul>
old addresses and deregister them using a Lifetime of 0, and reform any poten
tially lost state, <t>A loss of state is inferred if the Consistent Uptime of the peer is
e.g., by registering again an existing address that it will keep using. A los less than the time since the state was installed, or if the NSSI is
s of state is incremented for a Consistent Uptime.</t>
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.
</t>
</li> </li>
<li> <li>
<t> <t>Registration for multicast and anycast addresses is now supported. The
Registration for multicast and anycast addresses is now supported. The P-Fiel P-Field is added to the EARO to signal when the Registered Address is
d is added to the EARO to signal when the registered address is anycast anycast or multicast. The value of the P-Field is not consistent with
or multicast. If the value of the P-Field is not consistent with the Register the Registered Address if:</t>
ed Address, that is if
</t>
<ul> <ul>
<li> <li>the Registered Address is a multicast address (<xref target="RFC4291"
the Registered Address is a multicast address (section 2.4 of <xref target="R sectionFormat="of" section="2.4"/>) and the P-Field indicates a value
FC4291"/>) and the P-Field indicates a value that is not 1, or that is not 1, or</li>
</li><li>the Registered Address is not a multicast address and the P-Field in <li>the Registered Address is not a multicast address and the P-Field
dicates a value that is 1. indicates a value that is 1.</li>
</li>
</ul> </ul>
<t>
then the message, NS(EARO) or EDAR, MUST be dropped, and the receiving node M
AY either reply with a status of 12 "Invalid Registration" or remain silent.
</t>
</li> <t>If this occurs, then the message, NS(EARO) or EDAR, <bcp14>MUST</bcp14> be
<li> dropped, and
The Status field in the EDAR message that was reserved and not used in RFC 85 the receiving node <bcp14>MAY</bcp14> either reply with a status of 12
05 is repurposed to transport the flags to signal multicast and anycast. "Invalid Registration" or remain silent.</t>
</li> </li>
<li>
The 6LN MUST also subscribe all the IPv6 multicast addresses that it listens <li>The Status field in the EDAR message that was reserved and not used in
to, and it MUST set the P-Field to 1 in the EARO for those addresses. <xref target="RFC8505"/> is repurposed to transport the flags to signal
The one exception is the all-nodes link-scope multicast address ff02::1 multicast and anycast.</li>
<xref target="RFC4291"/> which is implicitly registered by all nodes,
meaning that all nodes are expected to accept messages sent to ff02::1 but <li>The 6LN <bcp14>MUST</bcp14> also subscribe all the IPv6 multicast
are not expected to register it. addresses that it listens to, and it <bcp14>MUST</bcp14> set the P-Field to
</li> 1 in the EARO for those addresses. The one exception is the all-nodes
<li> link-scope multicast address ff02::1 <xref target="RFC4291"/>, which is
The 6LN MAY set the R flag in the EARO to obtain the delivery of the implicitly registered by all nodes, meaning that all nodes are expected to
multicast packets by the 6LR, e.g., by MLD proxy operations, or by injecting accept messages sent to ff02::1 but are not expected to register it.</li>
the address in a route-over subnet or in the Protocol Independent Multicast
<xref target="RFC7761"/> protocol. <li>The 6LN <bcp14>MAY</bcp14> set the R flag in the EARO to obtain the
</li> delivery of the multicast packets by the 6LR (e.g., by MLD proxy
<li> operations, or by injecting the address in a route-over subnet or in the
The 6LN MUST also subscribe all the IPv6 anycast addresses that it supports Protocol Independent Multicast <xref target="RFC7761"/> protocol).</li>
and it MUST set the P-Field in the EARO to 2 for those addresses.
</li> <li>The 6LN <bcp14>MUST</bcp14> also subscribe all the IPv6 anycast
<li> addresses that it supports, and it <bcp14>MUST</bcp14> set the P-Field in
The 6LR and the 6LBR are extended to accept more than one subscription for the EARO to 2 for those addresses.</li>
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 <li>The 6LR and the 6LBR are extended to accept more than one subscription
Registration Ownership Verifier (ROVR) in the EARO identifies uniquely for the same address when it is anycast or multicast, since multiple 6LNs
a registration within the namespace of the Registered Address. may subscribe to the same address of these types. In both cases, the ROVR
</li> in the EARO uniquely identifies a registration within the namespace of the
<li> Registered Address.</li>
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 <!--[rfced] Section 7.3. We are having trouble parsing this
all nodes link-scope sentence. Is the intended meaning that all the nodes that
multicast address ff02::1 <xref target="RFC4291"/>. registered an address to the 6LR also registered the link-scope
</li> multicast address ff02::1 to all the nodes? Please clarify.
<li>
The 6LR MUST maintain a subscription state per tuple (IPv6 address, ROVR) Original:
for both anycast and multicast types of address. It SHOULD notify the 6LBR The 6LR MUST also consider that all the nodes that registered an
with an EDAR message, unless it determined that the 6LBR is legacy and does address to it (as known by the Source Link-Layer Address Option
not support this specification. In turn, the 6LBR MUST maintain a (SLLAO)) also registered to the all nodes link-scope multicast
subscription state per tuple (IPv6 address, ROVR) for both anycast and address ff02::1 [RFC4291].
multicast types of address.
</li> Perhaps:
The 6LR MUST also consider that all the nodes that registered an
address to it (as known by the Source Link-Layer Address Option
(SLLAO)) also registered the link-scope multicast address ff02::1
[RFC4291] to all the nodes.
-->
<!-- [Pascal]: no: ff02::1 is the "all nodes" link-scope multicast address-->
<li>The 6LR <bcp14>MUST</bcp14> also consider that all the nodes that
registered an address to it (as known by the Source Link-Layer Address
Option (SLLAO)) also registered ff02::1 <xref target="RFC4291"/> to the all-n
odes link-scope multicast address.</li>
<li>The 6LR <bcp14>MUST</bcp14> maintain a subscription state per tuple
(IPv6 address, ROVR) for both anycast and multicast types of addresses. It
<bcp14>SHOULD</bcp14> 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 <bcp14>MUST</bcp14> maintain a
subscription state per tuple (IPv6 address, ROVR) for both anycast and
multicast types of address.</li>
</ul> </ul>
</section> <!-- end section "Registering Extensions"--> </section>
</section> <!-- end section "Updating RFC 8505"--> </section>
<section anchor="updating2"><name>Updating RFC 9010</name> <section anchor="updating2">
<t> <name>Extending RFC 9010</name>
<xref target="RFC9010"/> specifies the following behaviours:
</t> <t><xref target="RFC9010"/> specifies the following behaviors:</t>
<ul> <ul>
<li> <li>The 6LR has no specified procedure to inject multicast and anycast rout
The 6LR has no specified procedure to inject multicast and anycast routes in es in RPL even though RPL supports multicast.</li>
RPL though RPL supports multicast. <li>Upon a registration with the R flag set to 1 in the EARO, the 6LR injec
</li> ts the address in the RPL unicast support.</li>
<li> <li>Upon receiving a packet directed to a unicast address for which it has
Upon a registration with the R flag set to 1 in the EARO, the 6LR injects the an
address in the RPL unicast support. active registration, the 6LR delivers the packet as a unicast Layer 2 frame
</li><li> to the LLA of the node that registered the unicast address.</li>
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.
</li>
</ul> </ul>
<t>
This specification Extends <xref target="RFC9010"/> by adding the following b <t>This specification Extends <xref target="RFC9010"/> by adding the followin
ehavior: g behavior:</t>
</t>
<ul> <ul>
<li> <li>Upon a subscription with the R flag and the P-Field both set to 1 in th
Upon a subscription with the R flag and the P-Field both set to 1 in the EARO e EARO,
, if the scope of the multicast address is above link-scope <xref target="RFC
if the scope of the multicast address is above link-scope <xref target="RFC73 7346"/>,
46"/>, then the 6LR injects the address in the RPL multicast support and sets the
then the 6LR injects the address in the RPL multicast support and sets the P P-Field in the RTO to 1 as well.</li>
field in the RTO to 1 as well. <li>Upon a subscription with the R flag set to 1 and the P-Field set to 2 i
</li><li> n the EARO,
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-F
the 6LR injects the address in the new RPL anycast support and sets the P-Fie ield
ld to 2 in the RTO.</li>
to 2 in the RTO. <li>Upon receiving a packet directed to a multicast address for which it ha
</li><li> s at
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
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
layer-2 frame to the LLA of each of the nodes that registered to that multicast address.</li>
multicast address. <li>Upon receiving a packet directed to an anycast address for which it has
</li><li> at
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
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 tha
layer-2 frame to the LLA of exactly one of the nodes that registered to that t
multicast address. multicast address.</li>
</li>
</ul> </ul>
</section>
</section> <!-- end section "Updating RFC 9010"--> <section anchor="sec8928">
<name>Leveraging RFC 8928</name>
<section anchor="sec8928"><name>Leveraging RFC 8928</name> <t>"Address-Protected Neighbor Discovery for Low-Power
<t> and Lossy Networks" <xref target="RFC8928"/> was defined to protect the owners
<xref target="RFC8928"> Address-Protected Neighbor Discovery for hip of unicast
Low-Power and Lossy Networks </xref> was defined to protect the ownership of IPv6 addresses that are registered with <xref target="RFC8505"/>.</t>
unicast IPv6 addresses that are registered with
<xref target="RFC8505"/>.
</t> <t>With <xref target="RFC8928"/>, it is possible for a node to autoconfigure a
<t> pair of public and private keys and use them to sign the registration of
With <xref target="RFC8928"/>, it is possible for a node to autoconfigure a addresses that are either autoconfigured or obtained through other
pair of public and private keys and use them to sign the registration of methods.</t>
addresses that are either autoconfigured or obtained through other methods.
</t> <t>The first hop router (the 6LR) may then validate a registration and perform
<t> source address validation on packets coming from the sender node (the 6LN).</t
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).
</t> <t>Anycast and multicast addresses are not owned by one node. Multiple nodes
<t> may subscribe to the same address. In that context, the method specified in
Anycast and multicast addresses are not owned by one node. Multiple nodes <xref target="RFC8928"/> cannot be used with autoconfigured key pairs to
may subscribe to the same address. protect a single ownership.</t>
In that context, the method specified in <xref target="RFC8928"/>
cannot be used with autoconfigured keypairs to protect a single ownership
.
</t>
<t>
For an anycast or a multicast address, it is still possible to leverage
<xref target="RFC8928"/> to enforce the right to subscribe.
If <xref target="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 <xref target="RFC8928"/>.
The address and the ROVR MUST then be installed in the 6LBR so it can recogn
ize the address and compare the ROVR on the first subscription.
</t>
<t>
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 <xref target="RFC8928"/> to subscribe to the address.
</t>
</section> <!-- Leveraging RFC 8929 -->
<section anchor="CUO"><name>Consistent Uptime Option </name> <t>For an anycast or a multicast address, it is still possible to leverage
<t>This specification introduces a new option that characterizes the <xref target="RFC8928"/> to enforce the right to subscribe. If <xref
uptime of the sender. The option may be used by routers in RA messages and target="RFC8928"/> is used, a key pair <bcp14>MUST</bcp14> be associated with
by any node in NS, NA, and RS messages. It is used by the receiver to infer the address before it is deployed, and a ROVR <bcp14>MUST</bcp14> be generated
whether some state synchronization might be lost, e.g., due to reboot. from that key pair as specified in <xref target="RFC8928"/>. The address and
</t> the ROVR <bcp14>MUST</bcp14> then be installed in the 6LBR so it can recognize
<figure anchor="CUOF"><name>Consistent Uptime Option Format</name> the address and compare the ROVR on the first subscription.</t>
<t>The key pair <bcp14>MUST</bcp14> then be provisioned in each node that need
s
to subscribe to the anycast or multicast address, so the node can follow the
steps in <xref target="RFC8928"/> to subscribe to the address.</t>
</section>
<section anchor="CUO">
<name>Consistent Uptime Option </name>
<t>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).</t>
<figure anchor="CUOF">
<name>Consistent Uptime Option (CUO) Format</name>
<artwork align="center"> <artwork align="center">
0 1 2 3 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 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 | | Type | Length | Exponent | Uptime Mantissa |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|S|U| flags | NSSI | Peer NSSI | |S|U| flags | NSSI | Peer NSSI |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork> </artwork>
</figure><!-- end figure "Consistent Uptime Option Format" --> </figure>
<dl> <dl>
<dt> Type: </dt> <dt>Type:</dt>
<dd>To be assigned by IANA, see <xref target="NDOpt"/> </dd> <dd>Assigned by IANA; see <xref target="NDOpt"/>.</dd>
<dt> Length: </dt> <dt>Length:</dt><dd>1</dd>
<dd> 1 </dd> <dt>Uptime Exponent:</dt>
<dt> Uptime Exponent: </dt> <dd>A 6-bit unsigned integer and the Exponent to the base 2 of the uptime unit
<dd>6-bit unsigned integer: The Exponent to the base 2 of the uptime unit </ .</dd>
dd> <dt>Uptime Mantissa:</dt>
<dt> Uptime Mantissa: </dt> <dd>A 10-bit unsigned integer and the mantissa of the uptime value.</dd>
<dd>10-bit unsigned integer: The mantissa of the uptime value </dd> <dt>S:</dt>
<dt>S:</dt> <dd>A 1-bit flag set to 1 to indicate that the sender is low-power
<dd> 1-bit flag, set to 1 to indicate that the sender is low-power and may s and may sleep.</dd>
leep.</dd> <dt>U:</dt>
<dt>U:</dt> <dd>A 1-bit flag set to 1 to indicate that the Peer NSSI field is
<dd> 1-bit flag, set to 1 to indicate that the Peer NSSI field is valid; it valid; it <bcp14>MUST</bcp14> be set to 0 when the message is not unicast and
MUST be set <bcp14>MUST</bcp14> be set to 1 when the message is unicast and the sender has
to 0 when the message is not unicast and MUST be set to 1 when the message i an NSSI state for the intended receiver.</dd>
s unicast <dt>flags:</dt>
and the sender has an NSSI state for the intended receiver.</dd> <dd>6-bit flags that are reserved and that <bcp14>MUST</bcp14> be
<dt>flags:</dt> set to 0 by the sender and ignored by the receiver.</dd>
<dd> 6-bit, reserved. MUST be set to 0 by the sender and ignored by the rece <dt>NSSI:</dt>
iver.</dd> <dd>A 12-bit unsigned integer that represents the Node State Sequence Informat
<dt> NSSI: </dt> ion (NSSI). It
<dd>12-bit unsigned integer: The Node State Sequence Information, MUST be <bcp14>MUST</bcp14> be stored by the receiver if it has a dependency on
stored by the receiver if it has a dependency on information advertised or information advertised or stored at the sender.</dd>
stored at the sender.</dd> <dt>Peer NSSI:</dt>
<dt> Peer NSSI: </dt> <dd>A 12-bit unsigned integer that echoes the last known NSSI from the peer.</
<dd>12-bit unsigned integer: Echoes the last known NSSI from the peer.</dd> dd>
</dl> </dl>
<t>The Consistent Uptime indicates how long the sender has been continuously up <t>The Consistent Uptime indicates how long the sender has been continuously
and up and running (though possibly sleeping) without loss of state. It is
running (though possibly sleeping) without loss of state. expressed by the Uptime Mantissa in units of 2 to the power of the Uptime
It is expressed by the Uptime Mantissa in units Exponent in milliseconds. The receiver derives the boot time of the sender as th
of 2 to the power of the Uptime Exponent milliseconds. The receiver derives e
the boot time of the sender as the current time minus the sender's Consistent current time minus the sender's Consistent Uptime.</t>
Uptime.
</t><t> <t>If the boot time of the sender is updated to a newer time, any state that
If the boot time of the sender is updated to a newer time, any state that the the receiver installed in the sender before the reboot is probably lost. The
receiver receiver <bcp14>MUST</bcp14> reassess all the state it installed in the server
installed in the sender before the reboot is probably lost. The receiver MUST (e.g., any registration) and reinstall if it is still needed.</t>
reassess all the state it installed in the server (e.g., any registration)
and reinstall if it is still needed.
</t><t> <t>The U flag not set in a unicast message indicates that
the sender has lost all state from this node. If the U flag is set, then the Pe
er NSSI
field can be used to assess which changes the sender missed. For the other way
around, any state that was installed in the receiver from information by the
sender before it rebooted <bcp14>MUST</bcp14> be removed and may or may not be
reinstalled later.</t>
The U flag not set in a unicast message from the sender indicates that it has <t>The value of the uptime is reset to 0 at some point of the sender's reboot
lost all state from this node. sequence, but it may not still be 0 when the first message is sent, so the
If the U flag is set, then the Peer NSSI field can be used to assess which ch receiver must not expect a value of 0 as the signal of a reboot.</t>
anges 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.
</t>
<t>
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.
</t>
<table anchor="timex" ><name>Consistent Uptime Rough Values</name>
<thead>
<tr><td>Mantissa</td><td>Exponent</td><td>Resolution</td><td>Uptime</td></
tr>
</thead><tbody>
<tr><td>1</td><td>0</td><td>1ms</td><td>1ms</td></tr>
<tr><td>5</td><td>10</td><td>1s</td><td>5 seconds</td></tr>
<tr><td>2</td><td>15</td><td>30s</td><td>1mn</td></tr>
<tr><td>2</td><td>21</td><td>33mn</td><td>1 hour</td></tr>
</tbody>
</table> <!-- end table "Consistent Uptime Example Values" +-->
<t> <table anchor="timex">
The NSSI SHOULD be stored in persistent memory by the <name>Consistent Uptime Rough Values</name>
sender and incremented when it may have missed or lost state about a peer, <thead>
or has updated some state in a fashion that will impact a peer, e.g., <tr>
a host formed a new address or a router advertises a new prefix. <td>Mantissa</td>
When persisting is not possible, then the NSSI is randomly generated. <td>Exponent</td>
</t><t> <td>Resolution</td>
As long as the NSSI remains constant, the cross-dependent state (such <td>Uptime</td>
as addresses in a host that depend on a prefix in a router) can remain </tr>
stable, meaning less checks in the receiver. </thead>
Any change in the value of the NSSI is an indication that the sender <tbody>
updated some state and that the dependent state in the receiver should <tr>
be reassessed, e.g., addresses that were formed based on an RA with a <td>1</td>
previous NSSI should be checked, or new addresses may be formed and <td>0</td>
registered. <td>1 ms</td>
</t><t> <td>1 ms</td>
</tr>
<tr>
<td>5</td>
<td>10</td>
<td>1 s</td>
<td>5 seconds</td>
</tr>
<tr>
<td>2</td>
<td>15</td>
<td>30 s</td>
<td>1 mn</td>
</tr>
<tr>
<td>2</td>
<td>21</td>
<td>33 mn</td>
<td>1 hour</td>
</tr>
</tbody>
</table>
</t> <t>The NSSI <bcp14>SHOULD</bcp14> be stored in persistent memory by the sender
and incremented when it may have missed or lost state about a peer, or when it h
as
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.</t>
</section><!-- Consistent Uptime Option --> <t>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).</t>
<section anchor="deploy"><name>Operational considerations</name> </section>
<t>
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 <xref
target="RFC7346">"IPv6 Multicast Address Scopes"</xref>.
</t>
<t>
<xref target="RFC6052">"IPv6 Addressing of IPv4/IPv6 Translators"</xref>
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.
</t>
<t><xref target="RFC3306">"Unicast-Prefix-based IPv6 Multicast Addresses"</xref>
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.
</t> <section anchor="deploy">
<t> <name>Operational Considerations</name>
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.
</t> <t>With this specification, a RPL DODAG forms a realm, and multiple RPL
<t> DODAGs may be federated in a single RPL Instance administratively. This
In a "green field" deployment where all nodes support this means that a multicast address that needs to span a RPL DODAG
specification, it is possible to deploy a single RPL Instance using a <bcp14>MUST</bcp14> use a scope of Realm-Local whereas a multicast address
multicast MOP for unicast, multicast, and anycast addresses. that needs to span a RPL Instance <bcp14>MUST</bcp14> use a scope of
</t><t> Admin-Local as discussed in <xref target="RFC7346" sectionFormat="of"
In a "brown field" where legacy devices that do not support section="3"/>, "IPv6 Multicast Address Scopes".</t>
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.
</t><t>
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.
</t><t>
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.
</t><t>
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.
</t><t>
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
.
</t><t>
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:
</t>
<ul> <t>"IPv6 Addressing of IPv4/IPv6 Translators" <xref target="RFC6052"/>
<li> enables embedding IPv4 addresses in IPv6 addresses. The Root of a DODAG may
There MUST be enough density of 6LRs that support the mixed mode to leverage that technique to translate IPv4 traffic in IPv6 and route along
cover all the 6LNs that require multicast or anycast services. the RPL domain. When encapsulating a packet with an IPv4 multicast
In Storing Mode, there MUST be enough density of 6LRs that support the mixed Destination Address, it <bcp14>MUST</bcp14> use a multicast address with the
mode appropriate scope, Realm-Local or Admin-Local.</t>
to also form a DODAG to the Root.
</li> <li>
The RPL routers that support the mixed mode are configured to operate
in accordance with the desired operation in the network.
</li> <li>
The MOP signaled in the RPL DIO messages is MOP 1
to enable the legacy nodes to operate as leaves.
</li> <li>
The support of multicast and/or anycast in the RPL Instance SHOULD be
signaled by the 6LRs to the 6LN using a 6CIO, see <xref target="CIO"/>.
</li> <li>
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.
</li>
</ul>
</section> <!-- end section "Operational considerations" --> <t>"Unicast-Prefix-based IPv6 Multicast Addresses" <xref target="RFC3306"/>
enables forming 2<sup>32</sup> 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. For instance, it is
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.</t>
<section anchor="sec"><name>Security Considerations</name> <t>This specification introduces the new RPL MOP 5. Operationally speaking,
<t> deploying a new RPL MOP means that one cannot update a live network. The
This specification Extends <xref target="RFC8505"/> and <xref target="RFC901 network administrator must create a new instance with MOP 5 and migrate
0"/>, and leverages <xref target="RFC9008"/>. nodes to that instance by allowing them to join it.</t>
The security section in these documents also apply to this document.
In particular, the link layer SHOULD be sufficiently
protected to prevent rogue access.
</t><t>
<xref target="RFC6550"> RPL </xref> already supports routing on multicast ad
dresses,
whereby the endpoint that subscribes to the group and to do so injects th
e 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 <xref target="RFC9010"/>, this provides a better security pos
ture 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 n
odes 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 no
w obtain the service in a RPL domain while not being allowed to inject RPL messa
ges.
</t>
<t>
</t> <t>In a "green field" deployment where all nodes support this specification,
<t> Compared to <xref target="RFC6550"/>, this draft enables to track the origin it is possible to deploy a single RPL Instance using a multicast MOP for
of the multicast subscription inside the RPL network. unicast, multicast, and anycast addresses.</t>
This is a first step to enable a form of Route Ownership Validation (ROV) (se
e <xref target="RFC6811"/>) in RPL using the ROVR field in the EARO as proof of
ownership.
</t>
<t>
<xref target="sec8928"/> leverages <xref target="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.
</t>
<t>
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 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.
</t>
</section> <!-- end section "Security Considerations" -->
<section anchor="back"><name>Backward Compatibility</name> <t>In a "brown field" where legacy devices that do not support this
<t> specification coexist with upgraded devices, it is
A legacy 6LN will not subscribe multicast addresses and the service will be <bcp14>RECOMMENDED</bcp14> to deploy one RPL Instance in any MOP
the same when the network is upgraded. A legacy 6LR will not set the X flag (typically MOP 1) for unicast that legacy nodes can join and a
in the 6CIO and an upgraded 6LN will not subscribe multicast addresses. separate RPL Instance dedicated to multicast and anycast operations using a
</t> multicast MOP.</t>
<t>
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.
</t>
<t>
As detailed in <xref target="deploy"/>, it is possible to add multicast on
an existing MOP 1 deployment.
</t>
<t> <t>To deploy a Storing mode multicast operation using MOP 3 in a RPL domain,
The combination of a multicast address and the P-Field set to 0 in an RTO in it is required that the RPL routers that support MOP 3 have enough density
a MOP 3 RPL Instance is understood by the receiver that supports this to build a DODAG that covers all the potential listeners and includes the
specification (the parent) as an indication that the sender (child) does spanning multicast trees that are needed to distribute the multicast flows.
not support this specification, but the RTO is accepted and processed as if This might not be the case when extending the capabilities of an existing
the P-Field was set to 1 for backward compatibility. network.</t>
</t>
<t> <t>In the case of the new Non-Storing multicast MOP, arguably the new
When the DODAG is operated in MOP 3, a legacy node will not set the P-Field support is only needed at the 6LRs that will accept multicast listeners. It
and still expect multicast service as specified in section 12 of <xref is still required that each listener be able to reach at least one such 6LR, s
target="RFC6550"/>. o the
In MOP 3 an RTO that is received with a target that is multicast and the P-Fi upgraded 6LRs must be deployed to cover all the 6LNs that need multicast
eld set to 0 MUST be considered as multicast and MUST be processed as if the P-F services.</t>
ield is set to 1.
</t>
</section> <!-- end section "Backward Compatibility" -->
<section ><name>IANA Considerations</name> <t>Using separate RPL Instances for unicast traffic on the one hand and for
<t> anycast and multicast traffic on the other hand allows for the use of differen
Note to RFC Editor, to be removed: please replace "This RFC" throughout this t
document by the RFC number for this specification once it is allocated; objective functions; one favors the link quality Up for unicast collection
also, requests to IANA must be edited to reflect the IANA actions once and the other favors Downwards link quality for multicast distribution.</t>
performed.
</t>
<t>
Note to IANA, to be removed: the I Field is defined in
<xref target="RFC9010"/> but is missing from the registry, so the bit
positions must be added for completeness in conformance with the RFC.
</t>
<t>
IANA is requested to make changes under the "Internet Control Message
Protocol version 6 (ICMPv6) Parameters" <xref target="IANA.ICMP"/> and the
"Routing Protocol for Low Power and Lossy Networks (RPL)" <xref target="IANA
.RPL"/>
registry groupings, as follows:
</t>
<section anchor="PF"><name>New P-Field values Registry</name> <t>However, this might be impractical in some use cases where the signaling an
d
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.</t>
<t> <t>When using a single RPL Instance, MOP 3 expects the Storing Mode of
IANA is requested to create a new "P-Field values" registry under the Operation for both unicast and multicast, which is an issue in constrained
heading "Internet Control Message Protocol version 6 (ICMPv6) Parameters" to networks that typically use MOP 1 for unicast. This specification allows a
store the mixed mode that is signaled as MOP 1 in the DIO messages for backward
expression of the Registered Address Type Indicator as a P-Field. compatibility, where limited multicast and/or anycast is available, under
</t> the following conditions:</t>
<t> Registration procedure is "Standards Action" <xref target='RFC8126'/>. The <ul>
initial allocation is as indicated in <xref target="AM2"/>: <li>There <bcp14>MUST</bcp14> be enough density of the 6LRs that support the
</t> mixed mode to cover all the 6LNs that require multicast or anycast
services. In Storing mode, there <bcp14>MUST</bcp14> be enough density of
the 6LRs that support the mixed mode to also form a DODAG to the Root.</li>
<li>The RPL routers that support the mixed mode are configured to operate
in accordance with the desired operation in the network.</li>
<li>The MOP signaled in the RPL DIO messages is MOP 1 to enable the legacy
nodes to operate as leaves.</li>
<li>The support of multicast and/or anycast in the RPL Instance
<bcp14>SHOULD</bcp14> be signaled by the 6LRs to the 6LN using a 6CIO; see
<xref target="CIO"/>.</li>
<li>Alternatively, the support of multicast in the RPL domain can be
globally known by other means including configuration or external informatio
n such as
support of a version of an industry standard that mandates it. In
that case, all the routers <bcp14>MUST</bcp14> support the mixed mode.</li>
</ul>
<table anchor="AM2" ><name>P-Field values</name> </section>
<thead>
<tr><td>Value</td><td>Registered Address Type Indicator</td><td>Reference<
/td></tr>
</thead><tbody>
<tr><td>0</td><td>Registration for a Unicast Address</td> <td>This RFC</td
></tr>
<tr><td>1</td><td>Registration for a Multicast Address</td> <td>This RFC</
td></tr>
<tr><td>2</td><td>Registration for an Anycast Address</td> <td>This RFC</t
d></tr>
<tr><td>3</td><td>Unassigned</td><td>This RFC</td></tr>
</tbody>
</table> <!-- end table "P-Field values" -->
</section><!-- New P-Field Registry --> <section anchor="sec">
<name>Security Considerations</name>
<section><name>New EDAR Message Flags Registry</name> <t>This specification Extends <xref target="RFC8505"/> and <xref
<t> target="RFC9010"/> and leverages <xref target="RFC9008"/>. The security
IANA is requested to create a new "EDAR Message Flags" registry under the sections in these documents also apply to this document. In particular, the
heading "Internet Control Message Protocol version 6 (ICMPv6) Parameters". link layer <bcp14>SHOULD</bcp14> be sufficiently protected to prevent rogue
</t> access.</t>
<t> Registration procedure is "IETF Review" or "IESG Approval" <t><xref target="RFC6550"> RPL </xref> already supports routing on multicast
<xref target='RFC8126'/>. The initial allocation is as indicated addresses, whereby the endpoint that subscribes to the group by injecting
in <xref target="EDARflags"/>: the multicast address participates as a RPL-Aware Node (RAN) in the RPL.
</t> Using an extension of <xref target="RFC8505"/> as opposed to RPL to
<table anchor="EDARflags" ><name>EDAR Message flags</name> subscribe the address allows a RPL-Unaware Leaf (RUL) to subscribe as well.
<thead> As noted in <xref target="RFC9010"/>, this provides a better security
<tr><td>Bit Number</td><td>Meaning</td><td>Reference</td></tr> posture for the RPL network, since the nodes that do not really need to
</thead><tbody> speak RPL, or are not trusted enough to inject RPL messages, can be
<tr><td>0..1 (suggested)</td><td> P-Field (2 bits), see <xref target="PF"/ forbidden from doing so, which bars a number of attack vectors from within
> RPL. Acting as an RUL, those nodes may still leverage the RPL network through
</td><td>This RFC</td></tr> the capabilities that are opened via ND operations. With this specification, a
<tr><td>2..7</td><td>Unassigned </td><td></td></tr> node
</tbody> that needs multicast delivery can now obtain the service in a RPL domain
</table> <!-- end table "EDAR Message flags" +--> while not being allowed to inject RPL messages.</t>
</section> <!-- end section "New EDAR Message flags Registry --> <t>Compared to <xref target="RFC6550"/>, this specification enables tracking t
he
origin of the multicast subscription inside the RPL network. This is a
first step to enable a form of Route Ownership Validation (ROV) (see <xref
target="RFC6811"/>) in RPL using the ROVR field in the EARO as proof of
ownership.</t>
<section><name>New EARO flags</name> <t><xref target="sec8928"/> leverages <xref target="RFC8928"/> to prevent a
<t> IANA is requested to make additions to the "Address Registration Opti rogue node from registering a unicast address that it does not own. The
on mechanism could be extended to anycast and multicast addresses if the values
Flags" <xref target="IANA.ICMP.ARO.FLG"/> registry under the heading of the ROVR they use are known in advance, but how this is done is not in
"Internet Control Message Protocol version 6 (ICMPv6) Parameters" as scope for this specification. One way would be to authorize the
indicated in <xref target="AROflags"/>: ROVR of the valid users in advance. A less preferred way would be to synchron
</t> ize the
ROVR and TID values across the valid subscribers as preshared key
material.</t>
<table anchor="AROflags" ><name>New ARO flags</name> <t>In the latter case, it could be possible to update the keys associated to
<thead> an address in all the 6LNs, but the flow is not clearly documented and may
<tr><td>ARO flag</td><td>Meaning</td><td>Reference</td></tr> not complete in due time for all nodes in LLN use cases. It may be simpler
</thead><tbody> to install an all-new address with new keys over a period of time, and
<tr><td>2..3 (suggested)</td><td> P-Field (2 bits), see <xref target="PF"/ switch the traffic to that address when the migration is complete.</t>
></td><td>This RFC</td></tr> </section>
</tbody>
</table> <!-- end table "New ARO flag" +-->
</section> <!-- end section "New ARO flag -->
<section><name>New RTO flags</name> <section anchor="back">
<t> IANA is requested to make additions to the "RPL Target Option Flags" <name>Backward Compatibility</name>
<xref target="IANA.RPL.RTO.FLG"/> registry under the heading "Routing Protocol
for Low Power and Lossy Networks (RPL)"
as indicated in <xref target="RTOflags"/>:
</t>
<table anchor="RTOflags" ><name>New RTO flags</name> <t>A legacy 6LN will not subscribe multicast addresses, and the service will
<thead> be the same when the network is upgraded. A legacy 6LR will not set the X
<tr><td>Bit Number</td><td>Meaning</td><td>Reference</td></tr> flag in the 6CIO, and an upgraded 6LN will not subscribe multicast
</thead><tbody> addresses.</t>
<tr><td>2..3 (suggested)</td><td> P-Field (2 bits), see <xref target="PF"/
></td><td>This RFC</td></tr>
</tbody>
</table> <!-- end table "New RTO flags" +-->
</section> <!-- end section "New RTO flags -->
<section><name>New RPL Mode of Operation</name> <t>Upon receiving an EDAR message, a legacy 6LBR may not realize that the addr
<t> IANA is requested to make an addition to the "Mode of Operation" <xre ess
f target="IANA.RPL.MOP"/> registry under the heading "Routing Protocol for Low P being registered is anycast or multicast and will return that it is a duplicat
ower and Lossy Networks (RPL)" e in
as indicated in <xref target="RMOP"/>: the EDAC status. The 6LR <bcp14>MUST</bcp14> ignore a duplicate status in
</t> the EDAC for anycast and multicast addresses.</t>
<table anchor="RMOP" ><name>New RPL Mode of Operation</name> <t>As detailed in <xref target="deploy"/>, it is possible to add multicast on
<thead> an existing MOP 1 deployment.</t>
<tr><td>Value</td><td>Description</td><td>Reference</td></tr>
</thead><tbody>
<tr><td>5 (suggested)</td><td>Non-Storing Mode of Operation with ingress
replication multicast support</td><td>This RFC</td></tr>
</tbody>
</table> <!-- end table "New RTO flags" +-->
</section> <!-- end section "New RTO flags -->
<section title="New 6LoWPAN Capability Bits"> <t>The combination of a multicast address and the P-Field set to 0 in an RTO
<t> in a MOP 3 RPL Instance is an indication to the receiver that supports this
IANA is requested to make an addition to the specification (the parent) that the sender (child) does not support this speci
"6LoWPAN Capability Bits" <xref target="IANA.ICMP.6CIO"/> registry under the fication.
heading "Internet Control Message Protocol version 6 (ICMPv6) Parameters" However, the RTO is accepted and processed as if the P-Field was set to 1 for
as indicated in <xref target="CIOdat"/>: backward compatibility.
</t> </t>
<table anchor="CIOdat" ><name>New 6LoWPAN Capability Bits</name> <t>When the DODAG is operated in MOP 3, a legacy node will not set the P-Field
<thead> and still expect multicast service as specified in <xref target="RFC6550"
<tr><td>Capability Bit</td><td>Meaning</td><td>Reference</td></tr> sectionFormat="of" section="12"/>. In MOP 3, an RTO that is received with a
</thead><tbody> target that is multicast and the P-Field set to 0 <bcp14>MUST</bcp14> be
<tr><td>8 (suggested)</td><td>X flag: Registration for Unicast, Multicast, considered as multicast and <bcp14>MUST</bcp14> be processed as if the P-Field
and Anycast Addresses Supported</td><td>This RFC</td></tr> is set to 1.</t>
</section>
</tbody> <section>
</table> <!-- end table "New 6LoWPAN Capability Bits" --> <name>IANA Considerations</name>
</section> <!-- end section "New 6LoWPAN Capability Bits" -->
<section title="New Address Registration Option Status Values"> <t>IANA has made changes under the "Internet Control Message
<t> Protocol version 6 (ICMPv6) Parameters" <xref target="IANA.ICMP"/> and
IANA is requested to make additions to the "Address Registration Option Statu "Routing Protocol for Low Power and Lossy Networks (RPL)" <xref
s target="IANA.RPL"/> registry groupings; see details in the subsections that fo
Values" <xref target="IANA.ICMP.ARO.STAT"/> registry under the heading "Inter llow.</t>
net Control Message
Protocol version 6 (ICMPv6) Parameters", as follows:
</t>
<table anchor="AROstat" ><name>New Address Registration Option Status Val <section anchor="PF">
ues"</name> <name>New P-Field Values Registry</name>
<thead>
<tr><td>Value </td><td>Description</td><td>Reference</td></tr>
</thead><tbody>
<tr><td>11 (suggested)</td><td>Registration Refresh Request</td><td>This R
FC</td></tr>
<tr><td>12 (suggested)</td><td>Invalid Registration</td><td>This RFC</td><
/tr>
</tbody> <t>IANA has created a new "P-Field Values" registry under the
</table> <!-- end table "New Address Registration Option Status Va "Internet Control Message Protocol version 6 (ICMPv6)
lues" --> Parameters" registry group to store the expression of the RATInd as a P-Fi
</section> <!-- end section "New Address Registration Option Status Values" eld.</t>
-->
<section title="New IPv6 Neighbor Discovery Option"> <t>The registration procedure is Standards Action <xref
<t> target='RFC8126'/>. The initial allocations are as indicated in <xref
IANA is requested to make additions to the "IPv6 Neighbor Discovery Option Fo target="AM2"/>:</t>
rmats"
registry under the heading "Internet Control Message
Protocol version 6 (ICMPv6) Parameters", as follows:
</t>
<table anchor="NDOpt" ><name>New IPv6 Neighbor Discovery Option"</name> <table anchor="AM2">
<thead> <name>P-Field Values Registry</name>
<tr><td>Value </td><td>Description</td><td>Reference</td></tr> <thead>
</thead><tbody> <tr>
<tr><td>42 (suggested)</td><td>Consistent Uptime Option</td><td>This RFC</ <td>Value</td>
td></tr> <td>Registered Address Type Indicator</td>
<td>Reference</td>
</tr>
</thead>
<tbody>
<tr>
<td>0</td>
<td>Registration for a Unicast Address</td>
<td>RFC 9685</td>
</tr>
<tr>
<td>1</td>
<td>Registration for a Multicast Address</td>
<td>RFC 9685</td>
</tr>
<tr>
<td>2</td>
<td>Registration for an Anycast Address</td>
<td>RFC 9685</td>
</tr>
<tr>
<td>3</td>
<td>Unassigned</td>
<td>RFC 9685</td>
</tr>
</tbody>
</table>
</section>
</tbody> <section anchor="EDAR_Message_Flags">
</table> <!-- end table "IPv6 Neighbor Discovery Option" --> <name>New EDAR Message Flags Registry</name>
</section> <!-- end section "IPv6 Neighbor Discovery Option" -->
</section> <!-- end section "IANA Considerations" --> <t>IANA has created a new "EDAR Message Flags" registry under
the "Internet Control Message Protocol version 6 (ICMPv6)
Parameters" registry group.</t>
<section title="Acknowledgments"> <t>The registration procedure is IETF Review or IESG Approval <xref
<t> target='RFC8126'/>. The initial allocations are as indicated in <xref
This work is a production of an effective collaboration between the IETF 6lo target="EDARflags"/>:</t>
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, <table anchor="EDARflags">
Klaus Hueske, Adnan Rashid, Rahul Jadhav, Gene Falendysz, Don Sturek, <name>EDAR Message Flags Registry</name>
Dario Tedeschi, Saurabh Jain, and Chris Hett, with special thanks <thead>
to Esko Dijk for his useful WGLC reviews and proposed changes. <tr>
Also many thanks to Eric Vyncke, Sandy Ginoza, Zaheduzzaman Sarker, <td>Bit Number</td>
Paul Wouters, Roman Danyliw, John Scudder, Dirk Von Hugo, Murray Kucherawy, <td>Meaning</td>
Kyle Rose, Scott Kelly, and Dan Romascanu for their suggestions and comments <td>Reference</td>
during </tr>
the IETF last call and IESG review cycle. </thead>
</t> <tbody>
</section> <!-- title="Acknowledgments" --> <tr>
<td>0-1</td>
<td>P-Field (2 bits)</td>
<td>RFC 9685, <xref target="PF"/></td>
</tr>
<tr>
<td>2-7</td>
<td>Unassigned</td>
<td></td>
</tr>
</tbody>
</table>
</section>
<section>
<name>New Address Registration Option Flags</name>
<t>IANA has made an addition to the "Address Registration
Option Flags" registry <xref target="IANA.ICMP.ARO.FLG"/> under the
"Internet Control Message Protocol version 6 (ICMPv6)
Parameters" registry group as indicated in <xref target="AROflags"/>:</t>
<table anchor="AROflags"><name>New Address Registration Option Flags</name
>
<thead>
<tr>
<td>Bit Number</td>
<td>Description</td>
<td>Reference</td>
</tr>
</thead>
<tbody>
<tr>
<td>2-3</td>
<td>P-Field (2 bits)</td>
<td>RFC 9685, <xref target="PF"/></td>
</tr>
</tbody>
</table>
</section>
<section>
<name>New RPL Target Option Flags</name>
<t>IANA has made an addition to the "RPL Target Option Flags"
registry <xref target="IANA.RPL.RTO.FLG"/> under the "Routing
Protocol for Low Power and Lossy Networks (RPL)" registry group as indicat
ed in <xref
target="RTOflags"/>:</t>
<table anchor="RTOflags"><name>New RPL Target Option Flags</name>
<thead>
<tr>
<td>Bit Number</td>
<td>Capability Description</td>
<td>Reference</td>
</tr>
</thead>
<tbody>
<tr>
<td>2-3</td>
<td>P-Field (2 bits)</td>
<td>RFC 9685, <xref target="PF"/></td>
</tr>
</tbody>
</table>
</section>
<section anchor="RPL_Mode_Op">
<name>New RPL Mode of Operation</name>
<t>IANA has made an addition to the "Mode of Operation"
registry <xref target="IANA.RPL.MOP"/> under the "Routing Protocol for
Low Power and Lossy Networks (RPL)" registry group as indicated in <xref tar
get="RMOP"/>:</t>
<table anchor="RMOP"><name>New RPL Mode of Operation</name>
<thead>
<tr>
<td>Value</td>
<td>Description</td>
<td>Reference</td>
</tr>
</thead>
<tbody>
<tr>
<td>5</td>
<td>Non-Storing Mode of Operation with ingress
replication multicast support</td>
<td>RFC 9685</td>
</tr>
</tbody>
</table>
</section>
<section anchor="New_Cap_Bits">
<name>New 6LoWPAN Capability Bit</name>
<t>IANA has made an addition to the "6LoWPAN Capability
Bits" registry <xref target="IANA.ICMP.6CIO"/> under the
"Internet Control Message Protocol version 6 (ICMPv6) Parameters" registry
group as
indicated in <xref target="CIOdat"/>:</t>
<table anchor="CIOdat"><name>New 6LoWPAN Capability Bit</name>
<thead>
<tr>
<td>Bit</td>
<td>Description</td>
<td>Reference</td>
</tr>
</thead>
<tbody>
<tr>
<td>8</td>
<td>X flag: Registration for Unicast, Multicast, and Anycast Addresses
Supported</td>
<td>RFC 9685</td>
</tr>
</tbody>
</table>
</section>
<section>
<name>New Address Registration Option Status Values</name>
<t>IANA has made additions to the "Address Registration
Option Status Values" registry <xref target="IANA.ICMP.ARO.STAT"/> under
the "Internet Control Message Protocol version 6 (ICMPv6)
Parameters" registry group as indicated in <xref target="AROstat"/>:</t>
<table anchor="AROstat"><name>New Address Registration Option Status Value
s</name>
<thead>
<tr>
<td>Value</td>
<td>Description</td>
<td>Reference</td>
</tr>
</thead>
<tbody>
<tr>
<td>11</td>
<td>Registration Refresh Request</td>
<td>RFC 9685</td>
</tr>
<tr>
<td>12</td>
<td>Invalid Registration</td>
<td>RFC 9685</td>
</tr>
</tbody>
</table>
</section>
<section>
<name>New IPv6 Neighbor Discovery Option Format</name>
<t>IANA has made an addition to the "IPv6 Neighbor Discovery
Option Formats" registry under the "Internet Control Message
Protocol version 6 (ICMPv6) Parameters" registry group as indicated in <x
ref target="NDOpt"/>:</t>
<table anchor="NDOpt">
<name>New IPv6 Neighbor Discovery Option Format</name>
<thead>
<tr>
<td>Type</td>
<td>Description</td>
<td>Reference</td>
</tr>
</thead>
<tbody>
<tr>
<td>42</td>
<td>Consistent Uptime Option</td>
<td>RFC 9685</td>
</tr>
</tbody>
</table>
</section>
</section>
</middle> </middle>
<back> <back>
<displayreference target="IEEE802154" to="IEEE Std 802.15.4"/> <displayreference target="IEEE802154" to="IEEE-802.15.4"/>
<displayreference target="IEEE802151" to="IEEE Std 802.15.1"/> <displayreference target="IEEE802151" to="IEEE-802.15.1"/>
<displayreference target="IEEE80211" to="IEEE Std 802.11"/> <displayreference target="IEEE80211" to="IEEE-802.11"/>
<displayreference target="I-D.heile-lpwan-wisun-overview" to="Wi-SUN"/>
<references title="Normative References">
<!-- RFC -->
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refere <displayreference target="I-D.kuehlewind-rswg-updates-tag" to="UPDATES-TAG"/>
nce.RFC.2119.xml"/> <displayreference target="I-D.ietf-rift-rift" to="RIFT"/>
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference <displayreference target="I-D.ietf-6lo-prefix-registration" to="REGISTRATION"/>
.RFC.3306.xml"/> <displayreference target="I-D.ietf-6man-ipv6-over-wireless" to="IPv6-OVER-WIRELE
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference SS"/>
.RFC.4291.xml"/> <displayreference target="I-D.thubert-bess-secure-evpn-mac-signaling" to="MAC-SI
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refere GNALING"/>
nce.RFC.4861.xml"/> <displayreference target="I-D.heile-lpwan-wisun-overview" to="Wi-SUN"/>
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refere
nce.RFC.4862.xml"/>
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refere
nce.RFC.6550.xml"/>
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refere
nce.RFC.6775.xml"/>
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refere
nce.RFC.7346.xml"/>
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refere
nce.RFC.7400.xml"/>
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refere
nce.RFC.8126.xml"/>
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refere
nce.RFC.8174.xml"/>
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refere
nce.RFC.8200.xml"/>
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refere
nce.RFC.8505.xml"/>
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference <references>
.RFC.8928.xml"/> <name>References</name>
<references>
<name>Normative References</name>
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.21
.RFC.9010.xml"/> 19.xml"/>
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.33
.RFC.9030.xml"/> 06.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.42
91.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.48
61.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.48
62.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.65
50.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.67
75.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.73
46.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.74
00.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.81
26.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.81
74.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.82
00.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.85
05.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.89
28.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.90
10.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.90
30.xml"/>
<reference anchor="IANA.ICMP"> <reference anchor="IANA.ICMP" target="https://www.iana.org/assignments
<front> /icmpv6-parameters">
<title>IANA Registry for ICMPv6</title> <front>
<author> <title>Internet Control Message Protocol version 6 (ICMPv6) Parame
<organization> ters</title>
IANA <author>
</organization> <organization>IANA</organization>
</author> </author>
<date year=""></date> </front>
</front>
<seriesInfo name="IANA," value="https://www.iana.org/assignments/
icmpv6-parameters/icmpv6-parameters.xhtml"></seriesInfo>
</reference> </reference>
<reference anchor="IANA.ICMP.ARO.FLG"> <reference anchor="IANA.ICMP.ARO.FLG" target="https://www.iana.org/assign
<front> ments/icmpv6-parameters">
<title>IANA Registry for the Address Registration Option <front>
Flags</title> <title>Address Registration Option Flags</title>
<author> <author>
<organization> <organization>IANA</organization>
IANA </author>
</organization> </front>
</author> </reference>
<date year=""></date>
</front>
<seriesInfo name="IANA," value="https://www.iana.org/assignments/
icmpv6-parameters/icmpv6-parameters.xhtml#icmpv6-adress-registration-option-flag
s"></seriesInfo>
</reference>
<reference anchor="IANA.ICMP.ARO.STAT"> <reference anchor="IANA.ICMP.ARO.STAT" target="https://www.iana.org/assig
<front> nments/icmpv6-parameters">
<title>IANA Registry for the Address Registration Option <front>
Status Value</title> <title>Address Registration Option Status Values</title>
<author> <author>
<organization> <organization>IANA</organization>
IANA </author>
</organization> </front>
</author> </reference>
<date year=""></date>
</front>
<seriesInfo name="IANA," value=
"https://www.iana.org/assignments/icmpv6-parameters/icmpv6-parame
ters.xhtml#address-registration"></seriesInfo>
</reference>
<reference anchor="IANA.ICMP.6CIO"> <reference anchor="IANA.ICMP.6CIO" target="https://www.iana.org/assignmen
<front> ts/icmpv6-parameters">
<title>IANA Registry for the 6LoWPAN Capability Bits</tit <front>
le> <title>6LoWPAN Capability Bits</title>
<author> <author>
<organization> <organization>IANA</organization>
IANA </author>
</organization> </front>
</author> </reference>
<date year=""></date>
</front>
<seriesInfo name="IANA," value="https://www.iana.org/assignments/
icmpv6-parameters/icmpv6-parameters.xhtml#sixlowpan-capability-bits"></seriesInf
o>
</reference>
<reference anchor="IANA.RPL"> <reference anchor="IANA.RPL" target="https://www.iana.org/assignments/rpl">
<front> <front>
<title>IANA Registry for the RPL</title> <title>Routing Protocol for Low Power and Lossy Networks (RPL)</title>
<author> <author>
<organization> <organization>IANA</organization>
IANA </author>
</organization> </front>
</author> </reference>
<date year=""></date>
</front>
<seriesInfo name="IANA," value="https://www.iana.org/assignments/
rpl/rpl.xhtml"></seriesInfo>
</reference>
<reference anchor="IANA.RPL.RTO.FLG"> <reference anchor="IANA.RPL.RTO.FLG" target="https://www.iana.org/assignments
<front> /rpl">
<title> IANA Sub-Registry for the RTO Flags</title> <front>
<author> <title>RPL Target Option Flags</title>
<organization> <author>
IANA <organization>IANA</organization>
</organization> </author>
</author> </front>
<date year=""></date> </reference>
</front>
<seriesInfo name="IANA," value="https://www.iana.org/assignments/
rpl/rpl.xhtml#rpl-target-option-flags"></seriesInfo>
</reference>
<reference anchor="IANA.RPL.MOP"> <reference anchor="IANA.RPL.MOP" target="https://www.iana.org/assignments/rpl
<front> ">
<title> IANA Sub-Registry for the RPL Mode of Operation</ <front>
title> <title>Mode of Operation</title>
<author> <author>
<organization> <organization>IANA</organization>
IANA </author>
</organization> </front>
</author> </reference>
<date year=""></date>
</front>
<seriesInfo name="IANA," value="https://www.iana.org/assignments/
rpl/rpl.xhtml#MOP"></seriesInfo>
</reference>
</references> </references>
<references title="Informative References"> <references>
<!-- RFC --> <name>Informative References</name>
<!-- I-D --> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3810.
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference xml"/>
.RFC.3810.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4919.
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference xml"/>
.RFC.4919.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6282.
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference xml"/>
.RFC.6282.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7731.
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference xml"/>
.RFC.7731.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6811.
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference xml"/>
.RFC.6811.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7761.
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referenc xml"/>
e.RFC.7761.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6052.
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference xml"/>
.RFC.6052.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8929.
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference xml"/>
.RFC.8929.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9008.
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference xml"/>
.RFC.9008.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9574.
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/referenc xml"/>
e.I-D.ietf-bess-evpn-optimized-ir.xml"/>
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/referenc
e.I-D.ietf-rift-rift.xml"/>
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/referenc
e.I-D.ietf-6lo-prefix-registration.xml"/>
<xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/refere <!--[draft-kuehlewind-rswg-updates-tag] Editorial state/stream-->
nce.I-D.ietf-6man-ipv6-over-wireless.xml'/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.kuehlewi
<xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/refere nd-rswg-updates-tag.xml"/>
nce.I-D.kuehlewind-update-tag.xml'/>
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/referenc <!--[draft-heile-lpwan-wisun-overview] Expired. Entered the long way to get the
e.I-D.heile-lpwan-wisun-overview.xml"/><xi:include href="https://xml2rfc.tools.i correct initials.-->
etf.org/public/rfc/bibxml3/reference.I-D.thubert-bess-secure-evpn-mac-signaling. <reference anchor="I-D.heile-lpwan-wisun-overview" target="https://datatracker.i
xml"/> etf.org/doc/html/draft-heile-lpwan-wisun-overview-00">
<reference anchor="IEEE802154"> <front>
<title>Wi-SUN FAN Overview</title>
<author fullname="ROBERT HEILE" initials="H." surname="Robert">
<organization>Wi-SUN Alliance</organization>
</author>
<author fullname="Bing (Remy) Liu" initials="B." surname="Liu">
<organization>Huawei Technologies</organization>
</author>
<author fullname="Mingui Zhang" initials="M." surname="Zhang">
<organization>Huawei Technologies</organization>
</author>
<author fullname="Charles E. Perkins" initials="C." surname="Perkins">
<organization>Futurewei</organization>
</author>
<date day="3" month="July" year="2017"/>
</front>
<seriesInfo name="Internet-Draft" value="draft-heile-lpwan-wisun-overview-00"/
>
</reference>
<!--[draft-thubert-bess-secure-evpn-mac-signaling] Expired. Long way to get edit
or role.-->
<reference anchor="I-D.thubert-bess-secure-evpn-mac-signaling" target="https://d
atatracker.ietf.org/doc/html/draft-thubert-bess-secure-evpn-mac-signaling-04">
<front>
<title>Secure EVPN MAC Signaling</title>
<author fullname="Pascal Thubert" initials="P." surname="Thubert" role="edit
or"/>
<author fullname="Tony Przygienda" initials="T." surname="Przygienda">
<organization>Juniper Networks, Inc</organization>
</author>
<author fullname="Jeff Tantsura" initials="J." surname="Tantsura">
<organization>Microsoft</organization>
</author>
<date day="13" month="September" year="2023"/>
</front>
<seriesInfo name="Internet-Draft" value="draft-thubert-bess-secure-evpn-mac-si
gnaling-04"/>
</reference>
<!--[draft-ietf-6man-ipv6-over-wireles] IESG state: I-D exists. Long way to get
editor role.-->
<reference anchor="I-D.ietf-6man-ipv6-over-wireless" target="https://datatracker
.ietf.org/doc/html/draft-ietf-6man-ipv6-over-wireless-06">
<front>
<title>Architecture and Framework for IPv6 over Non-Broadcast Access</title>
<author fullname="Pascal Thubert" initials="P." surname="Thubert" role="edit
or"/>
<author fullname="Michael Richardson" initials="M." surname="Richardson">
<organization>Sandelman Software Works</organization>
</author>
<date day="23" month="May" year="2024"/>
</front>
<seriesInfo name="Internet-Draft" value="draft-ietf-6man-ipv6-over-wireless-06
"/>
</reference>
<!--[draft-ietf-6lo-prefix-registration] IESG state: I-D exists. Long way to get
editor role.-->
<reference anchor="I-D.ietf-6lo-prefix-registration" target="https://datatracker
.ietf.org/doc/html/draft-ietf-6lo-prefix-registration-05">
<front>
<title>IPv6 Neighbor Discovery Prefix Registration</title>
<author fullname="Pascal Thubert" initials="P." surname="Thubert" role="edit
or"/>
<date day="5" month="November" year="2024"/>
</front>
<seriesInfo name="Internet-Draft" value="draft-ietf-6lo-prefix-registration-05
"/>
</reference>
<!--[draft-ietf-rift-rift-24] in RFC Editor state. Long way to get editor roles.
-->
<reference anchor="I-D.ietf-rift-rift" target="https://datatracker.ietf.org/doc/
html/draft-ietf-rift-rift-24">
<front>
<title>RIFT: Routing in Fat Trees</title>
<author fullname="Tony Przygienda" initials="T." surname="Przygienda">
<organization>Juniper Networks</organization>
</author>
<author fullname="Jordan Head" initials="J." surname="Head" role="editor">
<organization>Juniper Networks</organization>
</author>
<author fullname="Alankar Sharma" initials="A." surname="Sharma" role="edito
r">
<organization>Hudson River Trading</organization>
</author>
<author fullname="Pascal Thubert" initials="P." surname="Thubert">
<organization>Individual</organization>
</author>
<author fullname="Bruno Rijsman" initials="B." surname="Rijsman">
<organization>Individual</organization>
</author>
<author fullname="Dmitry Afanasiev" initials="D." surname="Afanasiev">
<organization>Yandex</organization>
</author>
<date day="23" month="May" year="2024"/>
</front>
<seriesInfo name="Internet-Draft" value="draft-ietf-rift-rift-24"/>
</reference>
<reference anchor="IEEE802154" target="https://ieeexplore.ieee.org/documen
t/9144691">
<front> <front>
<title>IEEE Std 802.15.4, Part. 15.4: Wireless Medium Access <title>IEEE Standard for Low-Rate Wireless Networks</title>
Control (MAC) and Physical Layer (PHY) Specifications for Low-Rate
Wireless Personal Area Networks
</title>
<author> <author>
<organization>IEEE standard for Information Technology</organizat ion> <organization>IEEE</organization>
</author> </author>
<date/>
</front> </front>
<seriesInfo name="DOI" value="10.1109/IEEESTD.2020.9144691"/>
<seriesInfo name="IEEE Std" value="802.15.4-2020"/>
</reference> </reference>
<reference anchor="IEEE80211" <reference anchor="IEEE80211" target="https://ieeexplore.ieee.org/document
target="https://ieeexplore.ieee.org/document/9363693" > /9363693">
<front> <front>
<title> <title>IEEE Standard for Information Technology--Telecommunications
IEEE Standard 802.11 - IEEE Standard for Information and Information Exchange between Systems - Local and Metropolitan
Technology - Telecommunications and information exchange Area Networks--Specific Requirements - Part 11: Wireless LAN Medium
between systems Local and metropolitan area networks - Access Control (MAC) and Physical Layer (PHY) Specifications</title>
Specific requirements - Part 11: Wireless LAN Medium
Access Control (MAC) and Physical Layer (PHY)
Specifications.
</title>
<author> <author>
<organization>IEEE standard for Information Technology</organizat ion> <organization>IEEE</organization>
</author> </author>
<date/>
</front> </front>
<seriesInfo name="DOI" value="10.1109/IEEESTD.2021.9363693"/>
<seriesInfo name="IEEE Std" value="802.11-2020"/>
</reference> </reference>
<reference anchor="IEEE802151"> <reference anchor="IEEE802151" target="https://ieeexplore.ieee.org/documen t/1490827">
<front> <front>
<title> IEEE Standard for Information Technology - <title>IEEE Standard for Information technology - Local and
Telecommunications and Information Exchange Between Systems - metropolitan area networks - Specific requirements - Part 15.1a:
Local and Metropolitan Area Networks - Specific Requirements. - Wireless Medium Access Control (MAC) and Physical Layer (PHY)
Part 15.1: Wireless Medium Access Control (MAC) and Physical specifications for Wireless Personal Area Networks (WPAN)</title>
Layer (PHY) Specifications for Wireless Personal Area Networks
(WPANs)
</title>
<author> <author>
<organization> IEEE standard for Information Technology <organization>IEEE</organization>
</organization>
</author> </author>
<date/>
</front> </front>
<seriesInfo name="IEEE Std" value="802.15.1-2005"/>
<seriesInfo name="DOI" value="10.1109/IEEESTD.2005.96290"/>
</reference> </reference>
</references> </references>
</references>
<section numbered="false">
<name>Acknowledgments</name>
<t>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: <contact
fullname="Carsten Bormann"/>, <contact fullname="Paul Duffy, Klaus
Hueske"/>, <contact fullname="Adnan Rashid"/>, <contact fullname="Rahul
Jadhav"/>, <contact fullname="Gene Falendysz"/>, <contact fullname="Don
Sturek"/>, <contact fullname="Dario Tedeschi"/>, <contact fullname="Saurabh
Jain"/>, <contact fullname="and Chris Hett"/>, with special thanks to
<contact fullname="Esko Dijk"/> for his useful WGLC reviews and proposed
changes. Also many thanks to <contact fullname="Éric Vyncke"/>, <contact
fullname="Sandy Ginoza"/>, <contact fullname="Zaheduzzaman Sarker"/>,
<contact fullname="Paul Wouters"/>, <contact fullname="Roman Danyliw"/>,
<contact fullname="John Scudder"/>, <contact fullname="Dirk Von Hugo"/>,
<contact fullname="Murray Kucherawy"/>, <contact fullname="Kyle Rose"/>,
<contact fullname="Scott Kelly"/>, and <contact fullname="Dan Romascanu"/>
for their suggestions and comments during the IETF last call and IESG review
cycle.</t>
</section>
</back> </back>
<!--[rfced] Terminology
a) We note inconsistent capitalization for the following terms. Please
review and let us know how to update for consistency.
Lifetime vs. lifetime: depends if it's the lifetime field in the EARO (upper)
or the duration of the life of a thing (lower)
Target vs. target: uppercase when dealing with the RPL Target Option else lowe
rcase
Transit vs. transit: same (regarding the RPL Transit Option)
Up / Upward / Down vs. up / down / downward (those are defined and used upperc
ase in RFC 6550 that define them, let us retain all uppercase)
Original (capitalized):
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...
Original (not capitalized):
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...
-->
<!--[rfced] Please review the following questions and changes regarding the
abbreviations used in this document.
a) In the Introduction, P2P is expanded as both "peer-to-peer (P2P)" and
"point-to-point (P2P)" - is this correct? If so, how may we clarify what
expansion "P2P" refers to in the text below?
Original:
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).
[Pascal]: let us retain P2P for point to point on both links and paths and forge
t about peer to peer. Peer-to-peer is used only once in RFC 9010 and only once h
ere. I applied the following Proposal:
This trades the quality of peer-to-peer (P2P) paths for a vastly
->
This stretches the routes between RPL nodes inside the DODAG for a vastly
Does that work for you?
NOTE
[RFC Editor]: This update will need AD approval
d) The terms "DAO", "NS", and "NA" mostly appear in this document as "DAO
messages", "NS messages", etc. For consistency, should standalone instances of
these terms be updated? See some examples below (not an exhaustive list):
Original:
In Storing Mode the RPL router accepts DAO from multiple children...
It is incremented by the sender each time it sends a new series of NS
and/or NA with the EARO about the Target.
Perhaps:
In Storing mode, the RPL router accepts DAO messages from multiple children..
.
It is incremented by the sender each time it sends
a new series of NS and/or NA messages with the EARO about the Target.
[Pascal]: yes to all cases, please
-->
</rfc> </rfc>
 End of changes. 210 change blocks. 
1799 lines changed or deleted 1986 lines changed or added

This html diff was produced by rfcdiff 1.48.