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 " "> | |||
<!ENTITY zwsp "​"> | ||||
<!ENTITY nbhy "‑"> | ||||
<!ENTITY wj "⁠"> | ||||
]> | ||||
<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 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. |