| < draft-ietf-6lo-multicast-registration-01.txt | draft-ietf-6lo-multicast-registration-02.txt > | |||
|---|---|---|---|---|
| 6lo P. Thubert, Ed. | 6lo P. Thubert, Ed. | |||
| Internet-Draft Cisco Systems | Internet-Draft Cisco Systems | |||
| Updates: 6550, 8505, 9010 (if approved) 22 October 2021 | Updates: 6550, 6553, 8505, 9010 (if approved) 8 November 2021 | |||
| Intended status: Standards Track | Intended status: Standards Track | |||
| Expires: 25 April 2022 | Expires: 12 May 2022 | |||
| IPv6 Neighbor Discovery Multicast Address Listener Registration | IPv6 Neighbor Discovery Multicast Address Listener Registration | |||
| draft-ietf-6lo-multicast-registration-01 | draft-ietf-6lo-multicast-registration-02 | |||
| Abstract | Abstract | |||
| This document updates RFC 8505 to enable a listener to subscribe to | This document updates RFC 8505 to enable a listener to register an | |||
| an IPv6 anycast or multicast address; the draft updates RFC 6550 | IPv6 anycast or and subscribe to an IPv6 multicast address; the draft | |||
| (RPL) to add a new Non-Storing multicast mode and support for anycast | updates RFC 6550 (RPL) to add a new Non-Storing Multicast Mode and a | |||
| addresses. This document also extends RFC 9010 to enable the 6LR to | new support for anycast addresses in Storing and Non-Storing Modes. | |||
| inject the anycast and multicast addresses in RPL. | This document extends RFC 9010 to enable the 6LR to inject the | |||
| anycast and multicast addresses in RPL. | ||||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on 25 April 2022. | This Internet-Draft will expire on 12 May 2022. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2021 IETF Trust and the persons identified as the | Copyright (c) 2021 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents (https://trustee.ietf.org/ | |||
| license-info) in effect on the date of publication of this document. | license-info) in effect on the date of publication of this document. | |||
| Please review these documents carefully, as they describe your rights | Please review these documents carefully, as they describe your rights | |||
| and restrictions with respect to this document. Code Components | and restrictions with respect to this document. Code Components | |||
| extracted from this document must include Simplified BSD License text | extracted from this document must include Simplified BSD License text | |||
| as described in Section 4.e of the Trust Legal Provisions and are | as described in Section 4.e of the Trust Legal Provisions and are | |||
| provided without warranty as described in the Simplified BSD License. | provided without warranty as described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 2.1. Requirements Language . . . . . . . . . . . . . . . . . . 4 | 2.1. Requirements Language . . . . . . . . . . . . . . . . . . 4 | |||
| 2.2. References . . . . . . . . . . . . . . . . . . . . . . . 4 | 2.2. References . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 2.3. Glossary . . . . . . . . . . . . . . . . . . . . . . . . 5 | 2.3. Glossary . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 3. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 3. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 4. Extending RFC 7400 . . . . . . . . . . . . . . . . . . . . . 8 | 4. Extending RFC 7400 . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 5. Updating RFC 6550 . . . . . . . . . . . . . . . . . . . . . . 9 | 5. Updating RFC 6550 . . . . . . . . . . . . . . . . . . . . . . 10 | |||
| 5.1. Updating MOP 3 . . . . . . . . . . . . . . . . . . . . . 9 | 5.1. Updating MOP 3 . . . . . . . . . . . . . . . . . . . . . 10 | |||
| 5.2. New Non-Storing Multicast MOP . . . . . . . . . . . . . . 9 | 5.2. New Non-Storing Multicast MOP . . . . . . . . . . . . . . 10 | |||
| 5.3. RPL Anycast Operation . . . . . . . . . . . . . . . . . . 10 | 5.3. RPL Anycast Operation . . . . . . . . . . . . . . . . . . 11 | |||
| 5.4. New RPL Target Option Flags . . . . . . . . . . . . . . . 11 | 5.4. New RPL Target Option Flags . . . . . . . . . . . . . . . 12 | |||
| 6. Updating RFC 8505 . . . . . . . . . . . . . . . . . . . . . . 11 | 6. Updating RFC 8505 . . . . . . . . . . . . . . . . . . . . . . 12 | |||
| 6.1. New EARO flag . . . . . . . . . . . . . . . . . . . . . . 11 | 6.1. New EARO flag . . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 6.2. Registering Extensions . . . . . . . . . . . . . . . . . 12 | 6.2. New EDAR Message Flag field . . . . . . . . . . . . . . . 14 | |||
| 7. Updating RFC 9010 . . . . . . . . . . . . . . . . . . . . . . 13 | 6.3. Registering Extensions . . . . . . . . . . . . . . . . . 15 | |||
| 8. Deployment considerations . . . . . . . . . . . . . . . . . . 14 | 7. Updating RFC 9010 . . . . . . . . . . . . . . . . . . . . . . 16 | |||
| 9. Security Considerations . . . . . . . . . . . . . . . . . . . 16 | 8. Deployment considerations . . . . . . . . . . . . . . . . . . 17 | |||
| 10. Backward Compatibility . . . . . . . . . . . . . . . . . . . 16 | 9. Security Considerations . . . . . . . . . . . . . . . . . . . 19 | |||
| 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16 | 10. Backward Compatibility . . . . . . . . . . . . . . . . . . . 19 | |||
| 11.1. New RTO flags . . . . . . . . . . . . . . . . . . . . . 17 | 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 19 | |||
| 11.2. New RPL Mode of Operation . . . . . . . . . . . . . . . 17 | 11.1. New EDAR Message Flags Subregistry . . . . . . . . . . . 20 | |||
| 11.3. New EARO flags . . . . . . . . . . . . . . . . . . . . . 17 | 11.2. New EARO flags . . . . . . . . . . . . . . . . . . . . . 20 | |||
| 11.4. New 6LoWPAN Capability Bits . . . . . . . . . . . . . . 18 | 11.3. New RTO flags . . . . . . . . . . . . . . . . . . . . . 20 | |||
| 12. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 18 | 11.4. New RPL Mode of Operation . . . . . . . . . . . . . . . 21 | |||
| 13. Normative References . . . . . . . . . . . . . . . . . . . . 18 | 11.5. New 6LoWPAN Capability Bits . . . . . . . . . . . . . . 21 | |||
| 14. Informative References . . . . . . . . . . . . . . . . . . . 20 | 12. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 21 | |||
| Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 22 | 13. Normative References . . . . . . . . . . . . . . . . . . . . 21 | |||
| 14. Informative References . . . . . . . . . . . . . . . . . . . 23 | ||||
| Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 25 | ||||
| 1. Introduction | 1. Introduction | |||
| The design of Low Power and Lossy Networks (LLNs) is generally | The design of Low Power and Lossy Networks (LLNs) is generally | |||
| focused on saving energy, which is the most constrained resource of | focused on saving energy, which is the most constrained resource of | |||
| all. Other design constraints, such as a limited memory capacity, | all. Other design constraints, such as a limited memory capacity, | |||
| duty cycling of the LLN devices and low-power lossy transmissions, | duty cycling of the LLN devices and low-power lossy transmissions, | |||
| derive from that primary concern. The radio (both transmitting or | derive from that primary concern. The radio (both transmitting or | |||
| simply listening) is a major energy drain and the LLN protocols must | simply listening) is a major energy drain and the LLN protocols must | |||
| be adapted to allow the nodes to remain sleeping with the radio | be adapted to allow the nodes to remain sleeping with the radio | |||
| skipping to change at page 4, line 25 ¶ | skipping to change at page 4, line 36 ¶ | |||
| multicast address, but as the classical IPv6 ND protocol, MLD relies | multicast address, but as the classical IPv6 ND protocol, MLD relies | |||
| on multicasting Queries to all nodes, which is unfit for low power | 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 | operations. As for IPv6 ND, it makes sense to let the 6LNs control | |||
| when and how they maintain the state associated to their multicast | 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 | addresses in the 6LR, e.g., during their own wake time. In the case | |||
| of a constrained node that already implements [RFC8505] for unicast | of a constrained node that already implements [RFC8505] for unicast | |||
| reachability, it makes sense to extend to that support to register | reachability, it makes sense to extend to that support to register | |||
| the multicast addresses they listen to. | the multicast addresses they listen to. | |||
| This specification extends [RFC8505] and [RFC9010] to add the | This specification extends [RFC8505] and [RFC9010] to add the | |||
| capability for the 6LN to register multicast addresses and for the | capability for the 6LN to register anycast and multicast addresses | |||
| 6LR to inject them in the RPL multicast support. | and for the 6LR to inject them in RPL. | |||
| 2. Terminology | 2. Terminology | |||
| 2.1. Requirements Language | 2.1. Requirements Language | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
| "OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in BCP | |||
| 14 [RFC2119] [RFC8174] when, and only when, they appear in all | 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
| capitals, as shown here. | capitals, as shown here. | |||
| skipping to change at page 5, line 39 ¶ | skipping to change at page 6, line 7 ¶ | |||
| NS Neighbor Solicitation | NS Neighbor Solicitation | |||
| ROVR Registration Ownership Verifier | ROVR Registration Ownership Verifier | |||
| RTO RPL Target Option | RTO RPL Target Option | |||
| RA Router Advertisement | RA Router Advertisement | |||
| RS Router Solicitation | RS Router Solicitation | |||
| TID Transaction ID | TID Transaction ID | |||
| TIO Transit Information Option | TIO Transit Information Option | |||
| 3. Overview | 3. Overview | |||
| This specification inherits from [RFC6550], [RFC8505], and [RFC8505] | ||||
| to provide additional capabilities for anycast and multicast. Unless | ||||
| specified otherwise therein, the behavior of the 6LBR that acts as | ||||
| RPL Root, of the intermediate routers down the RPL graph, of the 6LR | ||||
| that act as access routers and of the 6LNs that are the RFC-unaware | ||||
| destinations, is the same as for unicast. In particular, forwarding | ||||
| a packet happens as specified in section 11 of [RFC6550], including | ||||
| loop avoidance and detection, though in the case of multicast | ||||
| multiple copies might be generated. | ||||
| [RFC8505] is a pre-requisite to this specification. A node that | [RFC8505] is a pre-requisite to this specification. A node that | |||
| implements this MUST also implement [RFC8505]. This specification | implements this MUST also implement [RFC8505]. This specification | |||
| does not introduce a new option; it modifies existing options and | does not introduce a new option; it modifies existing options and | |||
| updates the associated behaviors to enable the Registration for | updates the associated behaviors to enable the Registration for | |||
| Multicast Addresses as an extension to [RFC8505]. | Multicast Addresses as an extension to [RFC8505]. | |||
| This specification also extends [RFC6550] and [RFC9010] in the case | This specification also extends [RFC6550] and [RFC9010] in the case | |||
| of a route-over multilink subnet based on the RPL routing protocol, | of a route-over multilink subnet based on the RPL routing protocol, | |||
| to add multicast ingress replication in Non-Storing Mode and anycast | to add multicast ingress replication in Non-Storing Mode and anycast | |||
| support in both Storing and Non-Storing modes. A 6LR that implements | support in both Storing and Non-Storing modes. A 6LR that implements | |||
| skipping to change at page 6, line 37 ¶ | skipping to change at page 7, line 25 ¶ | |||
| 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| | |||
| +---+ | +---+ | |||
| Figure 1: Wireless Mesh | Figure 1: Wireless Mesh | |||
| A leaf acting as a 6LN registers its unicast addresses to a RPL | A leaf acting as a 6LN registers its unicast and anycast addresses a | |||
| router acting as a 6LR, using a unicast NS message with an EARO as | RPL router acting as a 6LR, using a layer-2 unicast NS message with | |||
| specified in [RFC8505]. The registration state is periodically | an EARO as specified in [RFC8505]. The registration state is | |||
| renewed by the Registering Node, before the lifetime indicated in the | periodically renewed by the Registering Node, before the lifetime | |||
| EARO expires. | indicated in the EARO expires. As for unicast IPv6 addresses, the | |||
| 6LR uses an EDAR/EDAR exchange with the 6LBR to notify the 6LBR of | ||||
| the presence of the listeners. | ||||
| With this specification, the 6LNs can now subscribe to the multicast | With this specification, the 6LNs can now subscribe to the multicast | |||
| addresses they listen to, using a new M flag in the EARO to signal | addresses they listen to, using a new M flag in the EARO to signal | |||
| that the registration is for a multicast address. Multiple 6LN may | that the registration is for a multicast address. Multiple 6LN may | |||
| subscribe to the same multicast address to the same 6LR. Note the | subscribe to the same multicast address to the same 6LR. Note the | |||
| use of the term "subscribe": using the EARO registration mechanism, a | use of the term "subscribe": using the EARO registration mechanism, a | |||
| node registers the unicast addresses that it owns, but subscribes to | node registers the unicast addresses that it owns, but subscribes to | |||
| the multicast addresses that it listens to. | the multicast addresses that it listens to. | |||
| With this specification, the 6LNs can also resgister the anycast | With this specification, the 6LNs can also register the anycast | |||
| addresses they accept, using a new A flag in the EARO to signal that | addresses they accept, using a new A flag in the EARO to signal that | |||
| the registration is for an anycast address. As for multicast, | the registration is for an anycast address. As for multicast, | |||
| multiple 6LN may register the same anycast address to the same 6LR. | multiple 6LN may register the same anycast address to the same 6LR. | |||
| If the R flag is set in the registration of one or more 6LNs for the | If the R flag is set in the registration of one or more 6LNs for the | |||
| same address, the 6LR injects the anycast and multicast addresses in | same address, the 6LR injects the anycast and multicast addresses in | |||
| RPL, based on the longest registration lifetime across the active | RPL, based on the longest registration lifetime across the active | |||
| registrations for the address. | registrations for the address. | |||
| In the RPL "Storing Mode of Operation with multicast support", the | In the RPL "Storing Mode of Operation with multicast support", the | |||
| skipping to change at page 9, line 45 ¶ | skipping to change at page 10, line 35 ¶ | |||
| one in MOP 1 and one in MOP 3, this specification allows to hybrid | one in MOP 1 and one in MOP 3, this specification allows to hybrid | |||
| the Storing Mode for multicast and Non-Storing Mode for unicast in | the Storing Mode for multicast and Non-Storing Mode for unicast in | |||
| the same RPL Instance, more in Section 8. | the same RPL Instance, more in Section 8. | |||
| 5.2. New Non-Storing Multicast MOP | 5.2. New Non-Storing Multicast MOP | |||
| This specification adds a "Non-Storing Mode of Operation with | This specification adds a "Non-Storing Mode of Operation with | |||
| multicast support" (MOP to be assigned by IANA) whereby the non- | multicast support" (MOP to be assigned by IANA) whereby the non- | |||
| storing Mode DAO to the Root may contain multicast addresses in the | storing Mode DAO to the Root may contain multicast addresses in the | |||
| RPL Target Option (RTO), whereas the Transit Information Option (TIO) | RPL Target Option (RTO), whereas the Transit Information Option (TIO) | |||
| can not. | cannot. | |||
| In that mode, the RPL Root performs an ingress replication (IR) | In that mode, the RPL Root performs an ingress replication (IR) | |||
| operation on the multicast packets, meaning that it transmits one | operation on the multicast packets, meaning that it transmits one | |||
| copy of each multicast packet to each 6LR that is a transit for the | copy of each multicast packet to each 6LR that is a transit for the | |||
| multicast target, using the same source routing header and | multicast target, using the same source routing header and | |||
| encapsulation as it would for a unicast packet for a RPL Unaware Leaf | encapsulation as it would for a unicast packet for a RPL Unaware Leaf | |||
| (RUL) attached to that 6LR.. | (RUL) attached to that 6LR. | |||
| For the intermediate routers, the packet appears as any source routed | For the intermediate routers, the packet appears as any source routed | |||
| unicast packet. The difference shows only at the 6LR, that | unicast packet. The difference shows only at the 6LR, that | |||
| terminates the source routed path and forwards the multicast packet | terminates the source routed path and forwards the multicast packet | |||
| to all 6LNs that registered for the muticast address. | to all 6LNs that registered for the multicast address. | |||
| For a packet that is generated by the Root, this means that the Root | 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 | builds a source routing header as shown in section 8.1.3 of | |||
| [RFC9008], but for which the last and only the last address is | [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 | multicast. For a packet that is not generated by the Root, the Root | |||
| encapsulates the multicast packet as per section 8.2.4 of [RFC9008]. | encapsulates the multicast packet as per section 8.2.4 of [RFC9008]. | |||
| In that case, the outer header is purely unicast, and the | In that case, the outer header is purely unicast, and the | |||
| encapsulated packet is purely multicast. | encapsulated packet is purely multicast. | |||
| For this new mode as well, this specification allows to enable the | For this new mode as well, this specification allows to enable the | |||
| operation in a MOP 1 brown field, more in Section 8. | operation in a MOP 1 brown field, more in Section 8. | |||
| 5.3. RPL Anycast Operation | 5.3. RPL Anycast Operation | |||
| With multicast, the address has a recognizable format, and a | With multicast, the address has a recognizable format, and a | |||
| multicast packet is to be delivered to all the active subscribers. | multicast packet is to be delivered to all the active subscribers. | |||
| In contrast with anycast, the format of the address is not | In contrast with anycast, the format of the address is not | |||
| distinguishable from that of unicast. In fact, an external | distinguishable from that of unicast. A legacy node may issue a DAO | |||
| destination (address or prefix) that may be injected from multiple | message without setting the A flag, the unicast behaviour may apply | |||
| border routers MUST be injected as anycast in RPL. | to anycast traffic in a subDAGs. A target is routed as anycast by a | |||
| parent (or the Root) that received at least one DAO message for that | ||||
| target with the A flag set to 1. As for multicast, the freshness | ||||
| comparison cannot apply to an anycast target, and the TID field is | ||||
| ignored. | ||||
| As opposed to multicast, the anycast operation described therein | ||||
| applies to both addresses and prefixes, and the A flag can be set for | ||||
| both. An external destination (address or prefix) that may be | ||||
| injected as a RPL target from multiple border routers SHOULD be | ||||
| injected as anycast in RPL to enable load balancing. A mobile target | ||||
| that is multihomed SHOULD in contrast be advertised as unicast over | ||||
| the multiple interfaces to favor the TID comparision and vs. the | ||||
| multipath load balancing. | ||||
| For either multicast and anycast, there can be multiple registrations | For either multicast and anycast, there can be multiple registrations | |||
| from multiple parties, each using a different value of the ROVR field | from multiple parties, each using a different value of the ROVR field | |||
| that identifies the individual registration. The 6LR MUST maintain a | that identifies the individual registration. The 6LR MUST maintain a | |||
| registration state per value of the ROVR per multicast or anycast | registration state per value of the ROVR per multicast or anycast | |||
| address, but inject the route into RPL only once for each address. | address, but inject the route into RPL only once for each address. | |||
| Since the registrations are considered separate, the check on the TID | Since the registrations are considered separate, the check on the TID | |||
| that acts as registration sequence only applies to the registration | that acts as registration sequence only applies to the registration | |||
| with the same ROVR. | with the same ROVR. | |||
| skipping to change at page 11, line 21 ¶ | skipping to change at page 12, line 21 ¶ | |||
| 5.4. New RPL Target Option Flags | 5.4. New RPL Target Option Flags | |||
| [RFC6550] recognizes a multicast address by its format (as specified | [RFC6550] recognizes a multicast address by its format (as specified | |||
| in section 2.7 of [RFC4291]) and applies the specified multicast | in section 2.7 of [RFC4291]) and applies the specified multicast | |||
| operation if the address is recognized as multicast. This | operation if the address is recognized as multicast. This | |||
| specification updates [RFC6550] to add the M and A flags to the RTO | specification updates [RFC6550] to add the M and A flags to the RTO | |||
| to indicate that the target address is to be processed as multicast | to indicate that the target address is to be processed as multicast | |||
| or anycast, respectively. | or anycast, respectively. | |||
| An RTO that has the M flag set is called a multicast RTO. An RTO | An RTO that has the M flag set to 1 is called a multicast RTO. An | |||
| that has the A flag set is called an anycast RTO. An RTO that has | RTO that has the A flag set to 1 is called an anycast RTO. An RTO | |||
| neither M nor A flag set is called a unicast RTO. The M and A flags | that has both the A and the M flags set to 0 is called an unicast | |||
| are mutually exclusive and MUST NOT be both set. | RTO. With this specification, the M and A flags are mutually | |||
| exclusive and MUST NOT be both set to 1. The capability to set both | ||||
| flags is reserved and an RTO that is received with both flags set | ||||
| MUST be ignored. | ||||
| The suggested position for the A and M flags are 2 and 3 counting | The suggested position for the A and M flags are 2 and 3 counting | |||
| from 0 to 7 in network order as shown in Figure 3, based on figure 4 | from 0 to 7 in network order as shown in Figure 3, based on figure 4 | |||
| of [RFC9010] which defines the flags in position 0 and 1: | of [RFC9010] which defines the flags in position 0 and 1: | |||
| 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|A|M|ROVRsz | Prefix Length | | | Type = 0x05 | Option Length |F|X|A|M|ROVRsz | Prefix Length | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| skipping to change at page 12, line 46 ¶ | skipping to change at page 14, line 5 ¶ | |||
| New and updated Option Fields: | New and updated Option Fields: | |||
| Rsv 2-bit field: reserved, MUST be set to 0 and ignored by the | Rsv 2-bit field: reserved, MUST be set to 0 and ignored by the | |||
| receiver | receiver | |||
| A 1-bit flag: "Registration for Anycast Address" | A 1-bit flag: "Registration for Anycast Address" | |||
| M 1-bit flag: "Registration for Multicast Address" | M 1-bit flag: "Registration for Multicast Address" | |||
| 6.2. Registering Extensions | 6.2. New EDAR Message Flag field | |||
| Section 4 of [RFC6775] provides the same format for DAR and DAC | ||||
| messages by but the status field is only used in DAC message and has | ||||
| to set to zero in DAC messages. [RFC8505] extends the DAC message as | ||||
| an EDAC but does not change the status field in the EDAR. | ||||
| This specification repurposes the status field in the EDAR and a | ||||
| Flags field. It adds a new M flag to the EDAR flags field to signal | ||||
| that the Registered Address is a multicast address and a new A flag | ||||
| to signal that the Registered Address is an anycast address. As for | ||||
| EARO, the flags are mutually exclusive. | ||||
| Figure 5 illustrates the A and M flags in their suggested positions | ||||
| (0 and 1, respectively, counting 0 to 7 in network order in the 8-bit | ||||
| array), to be confirmed by IANA. | ||||
| 0 1 2 3 | ||||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Type |CodePfx|CodeSfx| Checksum | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| |A|M| Reserved | TID | Registration Lifetime | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | | | ||||
| ... Registration Ownership Verifier (ROVR) ... | ||||
| | | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | | | ||||
| + + | ||||
| | | | ||||
| + Registered Address + | ||||
| | | | ||||
| + + | ||||
| | | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Figure 5: Extended Duplicate Address Message Format | ||||
| New and updated Option Fields: | ||||
| Reserved 6-bit field: reserved, MUST be set to 0 and ignored by the | ||||
| receiver | ||||
| A 1-bit flag: "Registration for Anycast Address" | ||||
| M 1-bit flag: "Registration for Multicast Address" | ||||
| 6.3. Registering Extensions | ||||
| With [RFC8505]: | With [RFC8505]: | |||
| * Only unicast addresses can be registered. | * Only unicast addresses can be registered. | |||
| * The 6LN must register all its ULA and GUA with a NS(EARO). | * The 6LN must register all its ULA and GUA with a NS(EARO). | |||
| * The 6LN may set the R flag in the EARO to obtain return | * The 6LN may set the R flag in the EARO to obtain return | |||
| reachability services by the 6LR, e.g., through ND proxy | reachability services by the 6LR, e.g., through ND proxy | |||
| operations, or by injecting the route in a route-over subnet. | operations, or by injecting the route in a route-over subnet. | |||
| * the 6LR maintains a registration state per Registered Address, | * the 6LR maintains a registration state per Registered Address, | |||
| including an NCE with the Link Layer Address (LLA) of the | including an NCE with the Link Layer Address (LLA) of the | |||
| Registered Node (the 6LN here). | Registered Node (the 6LN here). | |||
| This specification adds the following behavior: | This specification adds the following behavior: | |||
| * Registration for multicast and anycast addresses is now supported. | * Registration for multicast and anycast addresses is now supported. | |||
| New flags are added to the EARO to signal when the registered | ||||
| address is anycast or multicast. | ||||
| * The Status field in the EDAR message that was reserved and not | ||||
| used in RFC 8505 is repurposed to transport the flags to signal | ||||
| multicast and anycast. | ||||
| * The 6LN MUST also register all the IPv6 multicast addresses that | * The 6LN MUST also register all the IPv6 multicast addresses that | |||
| it listens to and it MUST set the M flag in the EARO for those | it listens to and it MUST set the M flag in the EARO for those | |||
| addresses. | addresses. | |||
| * The 6LN MAY set the R flag in the EARO to obtain the delivery of | * The 6LN MAY set the R flag in the EARO to obtain the delivery of | |||
| the multicast packets by the 6LR, e.g., by MLD proxy operations, | the multicast packets by the 6LR, e.g., by MLD proxy operations, | |||
| or by injecting the address in a route-over subnet or in the | or by injecting the address in a route-over subnet or in the | |||
| Protocol Independent Multicast [RFC7761] protocol. | Protocol Independent Multicast [RFC7761] protocol. | |||
| * The 6LN MUST also register all the IPv6 anycast addresses that it | * The 6LN MUST also register all the IPv6 anycast addresses that it | |||
| supports and it MUST set the A flag in the EARO for those | supports and it MUST set the A flag in the EARO for those | |||
| addresses. | addresses. | |||
| * The Registration Ownership Verifier (ROVR) in the EARO identifies | * The 6LR and the 6LBR are extended to accept more than one | |||
| uniquely a registration within the namespace of the Registered | registration for the same address when it is anycast or multicast, | |||
| Address. The 6LR MUST maintain a registration state per tuple | since multiple 6LNs may subscribe to the same address of these | |||
| (IPv6 address, ROVR) for both anycast and multicast types of | types. In both cases, the Registration Ownership Verifier (ROVR) | |||
| address, since multiple 6LNs may subscribe to the same address of | in the EARO identifies uniquely a registration within the | |||
| these types. | namespace of the Registered Address. | |||
| * The 6LR MUST maintain a registration state per tuple (IPv6 | ||||
| address, ROVR) for both anycast and multicast types of address. | ||||
| It SHOULD notify the 6LBR with an EDAR message, unless it | ||||
| determined that the 6LBR is legacy and does not support this | ||||
| specification. In turn, the 6LBR MUST maintain a registration | ||||
| state per tuple (IPv6 address, ROVR) for both anycast and | ||||
| multicast types of address. | ||||
| 7. Updating RFC 9010 | 7. Updating RFC 9010 | |||
| With [RFC9010]: | With [RFC9010]: | |||
| * The 6LR injects only unicast routes in RPL | * The 6LR injects only unicast routes in RPL | |||
| * upon a registration with the R flag set to 1 in the EARO, the 6LR | * Upon a registration with the R flag set to 1 in the EARO, the 6LR | |||
| injects the address in the RPL unicast support. | injects the address in the RPL unicast support. | |||
| * Upon receiving a packet directed to a unicast address for which it | * Upon receiving a packet directed to a unicast address for which it | |||
| has an active registration, the 6LR delivers the packet as a | has an active registration, the 6LR delivers the packet as a | |||
| unicast layer-2 frame to the LLA the nodes that registered the | unicast layer-2 frame to the LLA the nodes that registered the | |||
| unicast address. | unicast address. | |||
| This specification adds the following behavior: | This specification adds the following behavior: | |||
| * Upon a registration with the R and the M flags set to 1 in the | * Upon a registration with the R and the M flags set to 1 in the | |||
| EARO, the 6LR injects the address in the RPL multicast support. | EARO, the 6LR injects the address in the RPL multicast support and | |||
| sets the M flag in the RTO. | ||||
| * Upon a registration with the R and the A flags set to 1 in the | ||||
| EARO, the 6LR injects the address in the new RPL anycast support | ||||
| and sets the A flag in the RTO. | ||||
| * Upon receiving a packet directed to a multicast address for which | * Upon receiving a packet directed to a multicast address for which | |||
| it has at least one registration, the 6LR delivers a copy of the | it has at least one registration, the 6LR delivers a copy of the | |||
| packet as a unicast layer-2 frame to the LLA of each of the nodes | packet as a unicast layer-2 frame to the LLA of each of the nodes | |||
| that registered to that multicast address. | that registered to that multicast address. | |||
| * Upon receiving a packet directed to a multicast address for which | ||||
| it has at least one registration, the 6LR delivers a copy of the | ||||
| packet as a unicast layer-2 frame to the LLA of exactly one of the | ||||
| nodes that registered to that multicast address. | ||||
| 8. Deployment considerations | 8. Deployment considerations | |||
| With this specification, a RPL DODAG forms a realm, and multiple RPL | With this specification, a RPL DODAG forms a realm, and multiple RPL | |||
| DODAGs may federated in a single RPL Instance administratively. This | DODAGs may federated in a single RPL Instance administratively. This | |||
| means that a multicast address that needs to span a RPL DODAG MUST | 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 | 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 | span a RPL Instance MUST use a scope of Admin-Local as discussed in | |||
| section 3 of "IPv6 Multicast Address Scopes" [RFC7346]. | section 3 of "IPv6 Multicast Address Scopes" [RFC7346]. | |||
| "IPv6 Addressing of IPv4/IPv6 Translators" [RFC6052] enables to embed | "IPv6 Addressing of IPv4/IPv6 Translators" [RFC6052] enables to embed | |||
| skipping to change at page 16, line 24 ¶ | skipping to change at page 19, line 18 ¶ | |||
| that document also applies to this document. In particular, the link | that document also applies to this document. In particular, the link | |||
| layer SHOULD be sufficiently protected to prevent rogue access. | layer SHOULD be sufficiently protected to prevent rogue access. | |||
| 10. Backward Compatibility | 10. Backward Compatibility | |||
| A legacy 6LN will not register multicast addresses and the service | A legacy 6LN will not register multicast addresses and the service | |||
| will be the same when the network is upgraded. A legacy 6LR will not | will be the same when the network is upgraded. A legacy 6LR will not | |||
| set the M flag in the 6CIO and an upgraded 6LN will not register | set the M flag in the 6CIO and an upgraded 6LN will not register | |||
| multicast addresses. | multicast addresses. | |||
| Upon an EDAR message, a legacy 6LBR may not realize that the address | ||||
| being registered is anycast or multicast, and return that it is | ||||
| duplicate in the EDAC status. The 6LR MUST ignore a duplicate status | ||||
| in the EDAR for anycast and multicast addresses. | ||||
| As detailed in Section 8, it is possible to add multicast on an | As detailed in Section 8, it is possible to add multicast on an | |||
| existing MOP 1 deployment, | existing MOP 1 deployment. | |||
| The combination of a multicast address and the M flag set to 0 in an | The combination of a multicast address and the M flag set to 0 in an | |||
| RTO in a MOP 3 RPL Instance is understood by the receiver that | RTO in a MOP 3 RPL Instance is understood by the receiver that | |||
| supports this specification (the parent) as an indication that the | supports this specification (the parent) as an indication that the | |||
| sender (child) does not support this specification, but the RTO is | sender (child) does not support this specification, but the RTO is | |||
| accepted and processed as if the M flag was set for backward | accepted and processed as if the M flag was set for backward | |||
| compatibility. | compatibility. | |||
| When the DODAG is operated in MOP 3, a legacy node will not set the M | When the DODAG is operated in MOP 3, a legacy node will not set the M | |||
| flag and still expect multicast service as specified in section 12 of | flag and still expect multicast service as specified in section 12 of | |||
| [RFC6550]. In MOP 3 an RTO that is received with a target that is | [RFC6550]. In MOP 3 an RTO that is received with a target that is | |||
| multicast and the M bit set to 0 MUST be considered as multicast and | multicast and the M bit set to 0 MUST be considered as multicast and | |||
| MUST be processed as if the M flag is set. | MUST be processed as if the M flag is set. | |||
| 11. IANA Considerations | 11. IANA Considerations | |||
| Note to RFC Editor, to be removed: please replace "This RFC" | Note to RFC Editor, to be removed: please replace "This RFC" | |||
| throughout this document by the RFC number for this specification | throughout this document by the RFC number for this specification | |||
| once it is allocated. Also, the I Field is defined in RFC 9010 but | once it is allocated. Also, the I Field is defined in [RFC9010] but | |||
| we failed to insert it in the subregistry and the flags appear as | is missing from the subregistry, so the bit positions must be added | |||
| unspecified though they are. | for completeness. | |||
| IANA is requested to make changes under the "Internet Control Message | IANA is requested to make changes under the "Internet Control Message | |||
| Protocol version 6 (ICMPv6) Parameters" [IANA.ICMP] and the "Routing | Protocol version 6 (ICMPv6) Parameters" [IANA.ICMP] and the "Routing | |||
| Protocol for Low Power and Lossy Networks (RPL)" [IANA.RPL] | Protocol for Low Power and Lossy Networks (RPL)" [IANA.RPL] | |||
| registries, as follows: | registries, as follows: | |||
| 11.1. New RTO flags | 11.1. New EDAR Message Flags Subregistry | |||
| IANA is requested to make additions to the "RPL Target Option Flags" | IANA is requested to create a new "EDAR Message Flags" subregistry of | |||
| [IANA.RPL.RTO.FLG] subregistry of the "Routing Protocol for Low Power | the "Internet Control Message Protocol version 6 (ICMPv6) Parameters" | |||
| and Lossy Networks (RPL)" registry as indicated in Table 1: | registry as indicated in Table 1: | |||
| +---------------+---------------------------------------+-----------+ | +---------------+---------------------------------------+-----------+ | |||
| | Bit Number | Meaning | Reference | | | Bit Number | Meaning | Reference | | |||
| +---------------+---------------------------------------+-----------+ | +---------------+---------------------------------------+-----------+ | |||
| | 2 (suggested) | A flag: Target is an Anycast Address | This RFC | | | 0 (suggested) | A flag: Registered | This RFC | | |||
| | | Address is Anycast | | | ||||
| +---------------+---------------------------------------+-----------+ | +---------------+---------------------------------------+-----------+ | |||
| | 3 (suggested) | M flag: Target is a Multicast | This RFC | | | 1 (suggested) | M flag: Registered | This RFC | | |||
| | | Address | | | | | Address is Multicast | | | |||
| +---------------+---------------------------------------+-----------+ | +---------------+---------------------------------------+-----------+ | |||
| Table 1: New RTO flags | Table 1: EDAR Message flags | |||
| 11.2. New RPL Mode of Operation | ||||
| IANA is requested to make an addition to the "Mode of Operation" | ||||
| [IANA.RPL.MOP] subregistry of the "Routing Protocol for Low Power and | ||||
| Lossy Networks (RPL)" registry as indicated in Table 2: | ||||
| +---------------+-------------------------------+-----------+ | ||||
| | Value | Description | Reference | | ||||
| +---------------+-------------------------------+-----------+ | ||||
| | 5 (suggested) | Non-Storing Mode of Operation | This RFC | | ||||
| | | with multicast support | | | ||||
| +---------------+-------------------------------+-----------+ | ||||
| Table 2: New RPL Mode of Operation | ||||
| 11.3. New EARO flags | 11.2. New EARO flags | |||
| IANA is requested to make additions to the "Address Registration | IANA is requested to make additions to the "Address Registration | |||
| Option Flags" [IANA.ICMP.ARO.FLG] of the "Internet Control Message | Option Flags" [IANA.ICMP.ARO.FLG] of the "Internet Control Message | |||
| Protocol version 6 (ICMPv6) Parameters" registry as indicated in | Protocol version 6 (ICMPv6) Parameters" registry as indicated in | |||
| Table 3: | Table 2: | |||
| +---------------+-----------------------+-----------+ | +---------------+-----------------------+-----------+ | |||
| | ARO flag | Meaning | Reference | | | ARO flag | Meaning | Reference | | |||
| +---------------+-----------------------+-----------+ | +---------------+-----------------------+-----------+ | |||
| | 2 (suggested) | A flag: Registration | This RFC | | | 2 (suggested) | A flag: Registration | This RFC | | |||
| | | for Anycast Address | | | | | for Anycast Address | | | |||
| +---------------+-----------------------+-----------+ | +---------------+-----------------------+-----------+ | |||
| | 3 (suggested) | M flag: Registration | This RFC | | | 3 (suggested) | M flag: Registration | This RFC | | |||
| | | for Multicast Address | | | | | for Multicast Address | | | |||
| +---------------+-----------------------+-----------+ | +---------------+-----------------------+-----------+ | |||
| | 4 and 5 | "I" Field | RFC 8505 | | | 4 and 5 | "I" Field | RFC 8505 | | |||
| +---------------+-----------------------+-----------+ | +---------------+-----------------------+-----------+ | |||
| Table 3: New ARO flags | Table 2: New ARO flags | |||
| 11.4. New 6LoWPAN Capability Bits | 11.3. New RTO flags | |||
| IANA is requested to make additions to the "RPL Target Option Flags" | ||||
| [IANA.RPL.RTO.FLG] subregistry of the "Routing Protocol for Low Power | ||||
| and Lossy Networks (RPL)" registry as indicated in Table 3: | ||||
| +---------------+---------------------------------------+-----------+ | ||||
| | Bit Number | Meaning | Reference | | ||||
| +---------------+---------------------------------------+-----------+ | ||||
| | 2 (suggested) | A flag: Registered | This RFC | | ||||
| | | Address is Anycast | | | ||||
| +---------------+---------------------------------------+-----------+ | ||||
| | 3 (suggested) | M flag: Registered | This RFC | | ||||
| | | Address is Multicast | | | ||||
| +---------------+---------------------------------------+-----------+ | ||||
| Table 3: New RTO flags | ||||
| 11.4. New RPL Mode of Operation | ||||
| IANA is requested to make an addition to the "Mode of Operation" | ||||
| [IANA.RPL.MOP] subregistry of the "Routing Protocol for Low Power and | ||||
| Lossy Networks (RPL)" registry as indicated in Table 4: | ||||
| +---------------+-------------------------------+-----------+ | ||||
| | Value | Description | Reference | | ||||
| +---------------+-------------------------------+-----------+ | ||||
| | 5 (suggested) | Non-Storing Mode of Operation | This RFC | | ||||
| | | with multicast support | | | ||||
| +---------------+-------------------------------+-----------+ | ||||
| Table 4: New RPL Mode of Operation | ||||
| 11.5. New 6LoWPAN Capability Bits | ||||
| IANA is requested to make an addition to the "6LoWPAN Capability | IANA is requested to make an addition to the "6LoWPAN Capability | |||
| Bits" [IANA.ICMP.6CIO] subregistry subregistry of the "Internet | Bits" [IANA.ICMP.6CIO] subregistry subregistry of the "Internet | |||
| Control Message Protocol version 6 (ICMPv6) Parameters" registry as | Control Message Protocol version 6 (ICMPv6) Parameters" registry as | |||
| indicated in Table 4: | indicated in Table 5: | |||
| +----------------+------------------------------------+-----------+ | +----------------+------------------------------------+-----------+ | |||
| | Capability Bit | Meaning | Reference | | | Capability Bit | Meaning | Reference | | |||
| +----------------+------------------------------------+-----------+ | +----------------+------------------------------------+-----------+ | |||
| | 8 (suggested) | M flag: Registration for Multicast | This RFC | | | 8 (suggested) | M flag: Registration for Multicast | This RFC | | |||
| | | and Anycast Addresses Supported | | | | | and Anycast Addresses Supported | | | |||
| +----------------+------------------------------------+-----------+ | +----------------+------------------------------------+-----------+ | |||
| Table 4: New 6LoWPAN Capability Bits | Table 5: New 6LoWPAN Capability Bits | |||
| 12. Acknowledgments | 12. Acknowledgments | |||
| 13. Normative References | 13. Normative References | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
| End of changes. 38 change blocks. | ||||
| 95 lines changed or deleted | 222 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||