rfc9159.original | rfc9159.txt | |||
---|---|---|---|---|
6Lo Working Group C. Gomez | Internet Engineering Task Force (IETF) C. Gomez | |||
Internet-Draft S. Darroudi | Request for Comments: 9159 S.M. Darroudi | |||
Intended status: Standards Track Universitat Politecnica de Catalunya | Category: Standards Track Universitat Politecnica de Catalunya | |||
Expires: October 24, 2021 T. Savolainen | ISSN: 2070-1721 T. Savolainen | |||
Unaffiliated | Unaffiliated | |||
M. Spoerk | M. Spoerk | |||
Graz University of Technology | Graz University of Technology | |||
April 22, 2021 | November 2021 | |||
IPv6 Mesh over BLUETOOTH(R) Low Energy using IPSP | IPv6 Mesh over BLUETOOTH(R) Low Energy Using the Internet Protocol | |||
draft-ietf-6lo-blemesh-10 | Support Profile (IPSP) | |||
Abstract | Abstract | |||
RFC 7668 describes the adaptation of 6LoWPAN techniques to enable | RFC 7668 describes the adaptation of IPv6 over Low-Power Wireless | |||
IPv6 over Bluetooth low energy networks that follow the star | Personal Area Network (6LoWPAN) techniques to enable IPv6 over | |||
Bluetooth Low Energy (Bluetooth LE) networks that follow the star | ||||
topology. However, recent Bluetooth specifications allow the | topology. However, recent Bluetooth specifications allow the | |||
formation of extended topologies as well. This document specifies | formation of extended topologies as well. This document specifies | |||
mechanisms that are needed to enable IPv6 mesh over Bluetooth Low | mechanisms that are needed to enable IPv6 mesh over Bluetooth LE | |||
Energy links established by using the Bluetooth Internet Protocol | links established by using the Bluetooth Internet Protocol Support | |||
Support Profile. This document does not specify the routing protocol | Profile (IPSP). This document does not specify the routing protocol | |||
to be used in an IPv6 mesh over Bluetooth LE links. | to be used in an IPv6 mesh over Bluetooth LE links. | |||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
provisions of BCP 78 and BCP 79. | ||||
Internet-Drafts are working documents of the Internet Engineering | ||||
Task Force (IETF). Note that other groups may also distribute | ||||
working documents as Internet-Drafts. The list of current Internet- | ||||
Drafts is at https://datatracker.ietf.org/drafts/current/. | ||||
Internet-Drafts are draft documents valid for a maximum of six months | This document is a product of the Internet Engineering Task Force | |||
and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Further information on | |||
Internet Standards is available in Section 2 of RFC 7841. | ||||
This Internet-Draft will expire on October 24, 2021. | Information about the current status of this document, any errata, | |||
and how to provide feedback on it may be obtained at | ||||
https://www.rfc-editor.org/info/rfc9159. | ||||
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 | Provisions Relating to IETF Documents | |||
(https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
include Simplified BSD License text as described in Section 4.e of | include Revised BSD License text as described in Section 4.e of the | |||
the Trust Legal Provisions and are provided without warranty as | Trust Legal Provisions and are provided without warranty as described | |||
described in the Simplified BSD License. | in the Revised BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction | |||
1.1. Terminology and Requirements Language . . . . . . . . . . 3 | 1.1. Terminology and Requirements Language | |||
2. Bluetooth LE Networks and the IPSP . . . . . . . . . . . . . 3 | 2. Bluetooth LE Networks and the IPSP | |||
3. Specification of IPv6 mesh over Bluetooth LE links . . . . . 4 | 3. Specification of IPv6 Mesh over Bluetooth LE Links | |||
3.1. Protocol stack . . . . . . . . . . . . . . . . . . . . . 4 | 3.1. Protocol Stack | |||
3.2. Subnet model . . . . . . . . . . . . . . . . . . . . . . 5 | 3.2. Subnet Model | |||
3.3. Link model . . . . . . . . . . . . . . . . . . . . . . . 6 | 3.3. Link Model | |||
3.3.1. Stateless address autoconfiguration . . . . . . . . . 6 | 3.3.1. Stateless Address Autoconfiguration | |||
3.3.2. Neighbor Discovery . . . . . . . . . . . . . . . . . 6 | 3.3.2. Neighbor Discovery | |||
3.3.3. Header compression . . . . . . . . . . . . . . . . . 8 | 3.3.3. Header Compression | |||
3.3.4. Unicast and multicast mapping . . . . . . . . . . . . 9 | 3.3.4. Unicast and Multicast Mapping | |||
4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 | 4. IANA Considerations | |||
5. Security Considerations . . . . . . . . . . . . . . . . . . . 9 | 5. Security Considerations | |||
6. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 10 | 6. References | |||
7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 10 | 6.1. Normative References | |||
8. Appendix A: Bluetooth LE connection establishment example . . 10 | 6.2. Informative References | |||
9. Appendix B: Node joining procedure . . . . . . . . . . . . . 13 | Appendix A. Bluetooth LE Connection Establishment Example | |||
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 14 | Appendix B. Node-Joining Procedure | |||
10.1. Normative References . . . . . . . . . . . . . . . . . . 14 | Acknowledgements | |||
10.2. Informative References . . . . . . . . . . . . . . . . . 15 | Contributors | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 16 | Authors' Addresses | |||
1. Introduction | 1. Introduction | |||
Bluetooth Low Energy (hereinafter, Bluetooth LE) was first introduced | Bluetooth Low Energy (hereinafter, Bluetooth LE) was first introduced | |||
in the Bluetooth 4.0 specification. Bluetooth LE (which has been | in the Bluetooth 4.0 specification. Bluetooth LE (which has been | |||
marketed as Bluetooth Smart) is a low-power wireless technology | marketed as Bluetooth Smart) is a low-power wireless technology | |||
designed for short-range control and monitoring applications. | designed for short-range control and monitoring applications. | |||
Bluetooth LE is currently implemented in a wide range of consumer | Bluetooth LE is currently implemented in a wide range of consumer | |||
electronics devices, such as smartphones and wearable devices. Given | electronics devices, such as smartphones and wearable devices. Given | |||
the high potential of this technology for the Internet of Things, the | the high potential of this technology for the Internet of Things, the | |||
Bluetooth Special Interest Group (Bluetooth SIG) and the IETF have | Bluetooth Special Interest Group (Bluetooth SIG) and the IETF have | |||
produced specifications in order to enable IPv6 over Bluetooth LE, | produced specifications in order to enable IPv6 over Bluetooth LE, | |||
such as the Internet Protocol Support Profile (IPSP) [IPSP], and RFC | such as the Internet Protocol Support Profile (IPSP) [IPSP] and RFC | |||
7668 [RFC7668], respectively. Bluetooth 4.0 only supports Bluetooth | 7668 [RFC7668], respectively. Bluetooth 4.0 only supports Bluetooth | |||
LE networks that follow the star topology. As a consequence, RFC | LE networks that follow the star topology. As a consequence, RFC | |||
7668 [RFC7668] was specifically developed and optimized for that type | 7668 [RFC7668] was specifically developed and optimized for that type | |||
of network topology. However, the functionality described in RFC | of network topology. However, the functionality described in RFC | |||
7668 [RFC7668] is not sufficient and would fail to enable an IPv6 | 7668 [RFC7668] is not sufficient and would fail to enable an IPv6 | |||
mesh over Bluetooth LE links. This document specifies mechanisms | mesh over Bluetooth LE links. This document specifies mechanisms | |||
that are needed to enable IPv6 mesh over Bluetooth LE links. This | that are needed to enable IPv6 mesh over Bluetooth LE links. This | |||
document does not specify the routing protocol to be used in an IPv6 | document does not specify the routing protocol to be used in an IPv6 | |||
mesh over Bluetooth LE links. | mesh over Bluetooth LE links. | |||
1.1. Terminology and Requirements Language | 1.1. Terminology and 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 | "OPTIONAL" in this document are to be interpreted as described in | |||
BCP14 RFC 2119 [RFC2119], RFC 8174 [RFC8174], when, and only when, | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
they appear in all capitals, as shown here. | capitals, as shown here. | |||
The terms 6LoWPAN Node (6LN), 6LoWPAN Router (6LR) and 6LoWPAN Border | The terms "6LoWPAN Node" (6LN), "6LoWPAN Router" (6LR), and "6LoWPAN | |||
Router (6LBR) are defined as in [RFC6775], with an addition that | Border Router" (6LBR) are defined as in [RFC6775], with an addition | |||
Bluetooth LE central and Bluetooth LE peripheral (see Section 2) can | that Bluetooth LE central and Bluetooth LE peripheral (see Section 2) | |||
both be adopted by a 6LN, a 6LR or a 6LBR. | can both be adopted by a 6LN, a 6LR, or a 6LBR. | |||
2. Bluetooth LE Networks and the IPSP | 2. Bluetooth LE Networks and the IPSP | |||
Bluetooth LE defines two Generic Access Profile (GAP) roles of | Bluetooth LE defines two Generic Access Profile (GAP) roles of | |||
relevance herein: the Bluetooth LE central role and the Bluetooth LE | relevance herein: the Bluetooth LE central role and the Bluetooth LE | |||
peripheral role. A device in the central role, which is called | peripheral role. In Bluetooth 4.0, a device in the central role, | |||
central from now on, has traditionally been able to manage multiple | which is called "central" from now on, was able to manage multiple | |||
simultaneous connections with a number of devices in the peripheral | simultaneous connections with a number of devices in the peripheral | |||
role, called peripherals hereinafter. Bluetooth 4.1 (now deprecated) | role, called "peripherals" hereinafter. Bluetooth 4.1 (now | |||
introduced the possibility for a peripheral to be connected to more | deprecated) introduced the possibility for a peripheral to be | |||
than one central simultaneously, therefore allowing extended | connected to more than one central simultaneously, therefore allowing | |||
topologies beyond the star topology for a Bluetooth LE network. In | extended topologies beyond the star topology for a Bluetooth LE | |||
addition, a device may simultaneously be a central in a set of link | network [BTCorev4.1]. In addition, a device may simultaneously be a | |||
layer connections, as well as a peripheral in others. | central in a set of link-layer connections, as well as a peripheral | |||
in others. | ||||
On the other hand, the IPSP enables discovery of IP-enabled devices | On the other hand, the IPSP enables discovery of IP-enabled devices | |||
and the establishment of a link layer connection for transporting | and the establishment of a link-layer connection for transporting | |||
IPv6 packets. The IPSP defines the Node and Router roles for devices | IPv6 packets. The IPSP defines the Node and Router roles for devices | |||
that consume/originate IPv6 packets and for devices that can route | that consume/originate IPv6 packets and for devices that can route | |||
IPv6 packets, respectively. Consistently with Bluetooth 4.1 and | IPv6 packets, respectively. Consistent with Bluetooth 4.1, Bluetooth | |||
subsequent Bluetooth versions (e.g. Bluetooth 4.2 [BTCorev4.2] or | 4.2 [BTCorev4.2], and subsequent Bluetooth versions, a device may | |||
subsequent), a device may implement both roles simultaneously. | implement both roles simultaneously. | |||
This document assumes a mesh network composed of Bluetooth LE links, | This document assumes a mesh network composed of Bluetooth LE links, | |||
where link layer connections are established between neighboring | where link-layer connections are established between neighboring | |||
IPv6-enabled devices (see Section 3.3.2, item 3.b, and an example in | IPv6-enabled devices (see Section 3.3.2, item 3.b, and an example in | |||
Appendix A)). The IPv6 forwarding devices of the mesh have to | Appendix A). The IPv6 forwarding devices of the mesh have to | |||
implement both IPSP Node and Router roles, while simpler leaf-only | implement both IPSP Node and Router roles, while simpler leaf-only | |||
nodes can implement only the Node role. In an IPv6 mesh over | nodes can implement only the Node role. In an IPv6 mesh over | |||
Bluetooth LE links, a node is a neighbor of another node, and vice | Bluetooth LE links, a node is a neighbor of another node, and vice | |||
versa, if a link layer connection has been established between both | versa, if a link-layer connection has been established between both | |||
by using the IPSP functionality for discovery and link layer | by using the IPSP functionality for discovery and link-layer | |||
connection establishment for IPv6 packet transport. | connection establishment for IPv6 packet transport. | |||
3. Specification of IPv6 mesh over Bluetooth LE links | 3. Specification of IPv6 Mesh over Bluetooth LE Links | |||
3.1. Protocol stack | 3.1. Protocol Stack | |||
Figure 1 illustrates the protocol stack for IPv6 mesh over Bluetooth | Figure 1 illustrates the protocol stack for IPv6 mesh over Bluetooth | |||
LE links. The core Bluetooth LE protocol stack comprises two main | LE links. The core Bluetooth LE protocol stack comprises two main | |||
sections: the Controller, and the Host. The former includes the | sections: the Controller and the Host. The former includes the | |||
Physical Layer, and the Link Layer, whereas the latter is composed of | Physical Layer and the Link Layer, whereas the latter is composed of | |||
the Logical Link Control and Adaptation Protocol (L2CAP), the | the Logical Link Control and Adaptation Protocol (L2CAP), the | |||
Attribute Protocol (ATT), and the Generic Attribute Profile (GATT). | Attribute Protocol (ATT), and the Generic Attribute Profile (GATT). | |||
The Host and the Controller sections are connected by means of the | The Host and the Controller sections are connected by means of the | |||
Host-Controller Interface (HCI). A device that supports the IPSP | Host-Controller Interface (HCI). A device that supports the IPSP | |||
Node role instantiates one Internet Protocol Support Service (IPSS), | Node role instantiates one Internet Protocol Support Service (IPSS), | |||
which runs atop GATT. The protocol stack shown in Figure 1 shows two | which runs atop GATT. The protocol stack shown in Figure 1 shows two | |||
main differences with the IPv6 over Bluetooth LE stack in RFC 7668: | main differences with the IPv6 over Bluetooth LE stack in [RFC7668]: | |||
a) the adaptation layer below IPv6 (labelled as "6Lo for IPv6 mesh | ||||
over Bluetooth LE") is now adapted for IPv6 mesh over Bluetooth LE | a) the adaptation layer below IPv6 (labeled as "6Lo for IPv6 mesh | |||
links, and b) the protocol stack for IPv6 mesh over Bluetooth LE | over Bluetooth LE") is now adapted for IPv6 mesh over Bluetooth | |||
links includes IPv6 routing functionality. | LE links, and | |||
b) the protocol stack for IPv6 mesh over Bluetooth LE links includes | ||||
IPv6 routing functionality. | ||||
+------------------------------------+ | +------------------------------------+ | |||
| Application | | | Application | | |||
+---------+ +------------------------------------+ | +---------+ +------------------------------------+ | |||
| IPSS | | UDP/TCP/other | | | IPSS | | UDP/TCP/other | | |||
+---------+ +------------------------------------+ | +---------+ +------------------------------------+ | |||
| GATT | | IPv6 |routing| | | | GATT | | IPv6 |routing| | | |||
+---------+ +------------------------------------+ | +---------+ +------------------------------------+ | |||
| ATT | | 6Lo for IPv6 mesh over Bluetooh LE | | | ATT | | 6Lo for IPv6 mesh over Bluetooth LE| | |||
+---------+--+------------------------------------+ | +---------+--+------------------------------------+ | |||
| Bluetooth LE L2CAP | | | Bluetooth LE L2CAP | | |||
HCI - - +-------------------------------------------------+ - - | HCI - - +-------------------------------------------------+ - - | |||
| Bluetooth LE Link Layer | | | Bluetooth LE Link Layer | | |||
+-------------------------------------------------+ | +-------------------------------------------------+ | |||
| Bluetooth LE Physical Layer | | | Bluetooth LE Physical Layer | | |||
+-------------------------------------------------+ | +-------------------------------------------------+ | |||
Figure 1: Protocol stack for IPv6 mesh over Bluetooth LE links. | Figure 1: Protocol Stack for IPv6 Mesh over Bluetooth LE Links | |||
Bluetooth 4.2 defines a default MTU for Bluetooth LE of 251 bytes. | Bluetooth 4.2 defines a default MTU for Bluetooth LE of 251 bytes. | |||
Excluding the L2CAP header of 4 bytes, a protocol data unit (PDU) | Excluding the L2CAP header of 4 bytes, a protocol data unit (PDU) | |||
size of 247 bytes is available for the layer above L2CAP. (Note: | size of 247 bytes is available for the layer above L2CAP. (Note: | |||
earlier Bluetooth LE versions offered a maximum amount of 23 bytes | Earlier Bluetooth LE versions offered a maximum amount of 23 bytes | |||
for the layer atop L2CAP.) The L2CAP provides a fragmentation and | for the layer atop L2CAP.) The L2CAP provides a fragmentation and | |||
reassembly solution for transmitting or receiving larger PDUs. At | reassembly solution for transmitting or receiving larger PDUs. At | |||
each link, the IPSP defines means for negotiating a link-layer | each link, the IPSP defines means for negotiating a link-layer | |||
connection that provides an MTU of 1280 octets or higher for the IPv6 | connection that provides an MTU of 1280 octets or higher for the IPv6 | |||
layer [IPSP]. As per the present specification, the MTU size for | layer [IPSP]. As per the present specification, the MTU size for | |||
IPv6 mesh over BLE links is 1280 octets. | IPv6 mesh over BLE links is 1280 octets. | |||
Similarly to RFC 7668, fragmentation functionality from 6LoWPAN | Similarly to [RFC7668], fragmentation functionality from 6LoWPAN | |||
standards is not used for IPv6 mesh over Bluetooth LE links. | standards is not used for IPv6 mesh over Bluetooth LE links. | |||
Bluetooth LE's fragmentation support provided by L2CAP is used. | Bluetooth LE's fragmentation support provided by L2CAP is used. | |||
3.2. Subnet model | 3.2. Subnet Model | |||
For IPv6 mesh over Bluetooth LE links, a multilink model has been | For IPv6 mesh over Bluetooth LE links, a multilink model has been | |||
chosen, as further illustrated in Figure 2. As IPv6 over Bluetooth | chosen, as further illustrated in Figure 2. As IPv6 over Bluetooth | |||
LE is intended for constrained nodes, and for Internet of Things use | LE is intended for constrained nodes and for Internet of Things use | |||
cases and environments, the complexity of implementing a separate | cases and environments, the complexity of implementing a separate | |||
subnet on each peripheral-central link and routing between the | subnet on each peripheral-central link and routing between the | |||
subnets appears to be excessive. In this specification, the benefits | subnets appears to be excessive. In this specification, the benefits | |||
of treating the collection of point-to-point links between a central | of treating the collection of point-to-point links between a central | |||
and its connected peripherals as a single multilink subnet rather | and its connected peripherals as a single multilink subnet rather | |||
than a multiplicity of separate subnets are considered to outweigh | than a multiplicity of separate subnets are considered to outweigh | |||
the multilink model's drawbacks as described in [RFC4903]. With the | the multilink model's drawbacks as described in [RFC4903]. With the | |||
multilink subnet model, the routers have to take on responsibility | multilink subnet model, the routers have to take on the | |||
for tracking multicast state and forwarding multicast in a loop-free | responsibility of tracking the multicast state and forwarding | |||
manner. Note that the route-over functionality defined in [RFC6775] | multicast in a loop-free manner. Note that the route-over | |||
is essential to enable the multilink subnet model for IPv6 mesh over | functionality defined in [RFC6775] is essential to enabling the | |||
Bluetooth LE links. | multilink subnet model for IPv6 mesh over Bluetooth LE links. | |||
/ | / | |||
/ | / | |||
6LR 6LN 6LN / | 6LR 6LN 6LN / | |||
\ \ \ / | \ \ \ / | |||
\ \ \ / | \ \ \ / | |||
6LN ----- 6LR --------- 6LR ------ 6LBR ----- | Internet | 6LN ----- 6LR --------- 6LR ------ 6LBR ----- | Internet | |||
<--Link--> <---Link--->/<--Link->/ | | <--Link--> <---Link--->/<--Link->/ | | |||
/ / \ | / / \ | |||
6LN ---- 6LR ----- 6LR \ | 6LN ---- 6LR ----- 6LR \ | |||
\ | \ | |||
\ | \ | |||
<------------ Subnet -----------------><---- IPv6 connection --> | <------------ Subnet -----------------><---- IPv6 connection --> | |||
to the Internet | to the Internet | |||
Figure 2: Example of an IPv6 mesh over a Bluetooth LE network | Figure 2: Example of an IPv6 Mesh over a Bluetooth LE Network | |||
connected to the Internet | Connected to the Internet | |||
One or more 6LBRs are connected to the Internet. 6LNs are connected | One or more 6LBRs are connected to the Internet. 6LNs are connected | |||
to the network through a 6LR or a 6LBR. Note that, in some | to the network through a 6LR or a 6LBR. Note that in some scenarios | |||
scenarios, and/or for some time intervals, a 6LR may remain at the | and/or for some time intervals, a 6LR may remain at the edge of the | |||
edge of the network (e.g. the top left node in Figure 2). This may | network (e.g., the top left node in Figure 2). This may happen when | |||
happen when a 6LR has no neighboring 6LNs. A single Global Unicast | a 6LR has no neighboring 6LNs. A single global unicast prefix is | |||
prefix is used on the whole subnet. | used on the whole subnet. | |||
IPv6 mesh over Bluetooth LE links MUST follow a route-over approach. | IPv6 mesh over Bluetooth LE links MUST follow a route-over approach. | |||
This document does not specify the routing protocol to be used in an | This document does not specify the routing protocol to be used in an | |||
IPv6 mesh over Bluetooth LE links. | IPv6 mesh over Bluetooth LE links. | |||
3.3. Link model | 3.3. Link Model | |||
3.3.1. Stateless address autoconfiguration | 3.3.1. Stateless Address Autoconfiguration | |||
6LN, 6LR, and 6LBR IPv6 addresses in an IPv6 mesh over Bluetooth LE | 6LN, 6LR, and 6LBR IPv6 addresses in an IPv6 mesh over Bluetooth LE | |||
links are configured as per section 3.2.2 of RFC 7668. | links are configured as per Section 3.2.2 of [RFC7668]. | |||
Multihop Duplicate Address Detection (DAD) functionality as defined | Multihop Duplicate Address Detection (DAD) functionality as defined | |||
in section 8.2 of RFC 6775 and updated by RFC 8505, or some | in Section 8.2 of [RFC6775] and updated by [RFC8505], or some | |||
substitute mechanism (see section 3.3.2), MAY be supported. | substitute mechanism (see Section 3.3.2), MAY be supported. | |||
3.3.2. Neighbor Discovery | 3.3.2. Neighbor Discovery | |||
'Neighbor Discovery Optimization for IPv6 over Low-Power Wireless | "Neighbor Discovery Optimization for IPv6 over Low-Power Wireless | |||
Personal Area Networks (6LoWPANs)' [RFC6775], subsequently updated by | Personal Area Networks (6LoWPANs)" [RFC6775], subsequently updated by | |||
'Registration Extensions for IPv6 over Low-Power Wireless Personal | "Registration Extensions for IPv6 over Low-Power Wireless Personal | |||
Area Network (6LoWPAN) Neighbor Discovery' [RFC8505], describes the | Area Network (6LoWPAN) Neighbor Discovery" [RFC8505], describes the | |||
neighbor discovery functionality adapted for use in several 6LoWPAN | neighbor discovery functionality adapted for use in several 6LoWPAN | |||
topologies, including the mesh topology. The route-over | topologies, including the mesh topology. The route-over | |||
functionality of RFC 6775 and RFC 8505 MUST be supported. | functionality of [RFC6775] and [RFC8505] MUST be supported. | |||
The following aspects of the Neighbor Discovery optimizations for | The following aspects of the Neighbor Discovery optimizations for | |||
6LoWPAN [RFC6775],[RFC8505] are applicable to Bluetooth LE 6LNs: | 6LoWPAN [RFC6775] [RFC8505] are applicable to Bluetooth LE 6LNs: | |||
1. A Bluetooth LE 6LN MUST register its non-link-local addresses | 1. A Bluetooth LE 6LN MUST register its non-link-local addresses | |||
with its routers by sending a Neighbor Solicitation (NS) message with | with its routers by sending a Neighbor Solicitation (NS) message | |||
the Extended Address Registration Option (EARO) and process the | with the Extended Address Registration Option (EARO) and process | |||
Neighbor Advertisement (NA) accordingly. The EARO option includes a | the Neighbor Advertisement (NA) accordingly. The EARO option | |||
Registration Ownership Verifier (ROVR) field [RFC8505]. In the case | includes a Registration Ownership Verifier (ROVR) field | |||
of Bluetooth LE, by default the ROVR field is filled with the 48-bit | [RFC8505]. In the case of Bluetooth LE, by default, the ROVR | |||
device address used by the Bluetooth LE node converted into 64-bit | field is filled with the 48-bit device address used by the | |||
Modified EUI-64 format [RFC4291]. Optionally, a cryptographic ID | Bluetooth LE node converted into 64-bit Modified EUI-64 format | |||
(see RFC 8928 [RFC8928]) MAY be placed in the ROVR field. If a | [RFC4291]. Optionally, a cryptographic ID (see RFC 8928 | |||
cryptographic ID is used, address registration and multihop DAD | [RFC8928]) MAY be placed in the ROVR field. If a cryptographic | |||
formats and procedures defined in RFC 8928 MUST be used, unless an | ID is used, address registration and multihop DAD formats and | |||
alternative mechanism offering equivalent protection is used. | procedures defined in [RFC8928] MUST be used unless an | |||
alternative mechanism offering equivalent protection is used. | ||||
As per RFC 8505, a 6LN link-local address does not need to be unique | As per [RFC8505], a 6LN link-local address does not need to be | |||
in the multilink subnet. A link-local address only needs to be | unique in the multilink subnet. A link-local address only needs | |||
unique from the perspective of the two nodes that use it to | to be unique from the perspective of the two nodes that use it to | |||
communicate (e.g., the 6LN and the 6LR in an NS/NA exchange). | communicate (e.g., the 6LN and the 6LR in an NS/NA exchange). | |||
Therefore, the exchange of EDAR and EDAC messages between the 6LR and | Therefore, the exchange of Extended Duplicate Address Request | |||
a 6LBR, which ensures that an address is unique across the domain | (EDAR) and Extended Duplicate Address Confirmation (EDAC) | |||
covered by the 6LBR, does not need to take place for link-local | messages between the 6LR and a 6LBR, which ensures that an | |||
addresses. | address is unique across the domain covered by the 6LBR, does not | |||
need to take place for link-local addresses. | ||||
If the 6LN registers multiple addresses that are not based on the | If the 6LN registers multiple addresses that are not based on the | |||
Bluetooth device address using the same compression context, the | Bluetooth device address using the same compression context, the | |||
header compression efficiency may decrease, since only the last | header compression efficiency may decrease, since only the last | |||
registered address can be fully elided (see Section 3.2.4 of RFC | registered address can be fully elided (see Section 3.2.4 of | |||
7668). | [RFC7668]). | |||
2. For sending Router Solicitations and processing Router | 2. For sending Router Solicitations and processing Router | |||
Advertisements, the hosts that participate in an IPv6 mesh over BLE | Advertisements, the hosts that participate in an IPv6 mesh over | |||
MUST, respectively, follow Sections 5.3 and 5.4 of [RFC6775], and | BLE MUST, respectively, follow Sections 5.3 and 5.4 of [RFC6775], | |||
Section 5.6 of [RFC8505]. | and Section 5.6 of [RFC8505]. | |||
3. The router behavior for 6LRs and 6LBRs is described in Section 6 | 3. The router behavior for 6LRs and 6LBRs is described in Section 6 | |||
of RFC 6775, and updated by RFC 8505. However, as per this | of [RFC6775] and updated by [RFC8505]. However, as per this | |||
specification: a) Routers SHALL NOT use multicast NSs to discover | specification: | |||
other routers' link layer addresses. b) As per section 6.2 of RFC | ||||
6775, in a dynamic configuration scenario, a 6LR comes up as a non- | ||||
router and waits to receive a Router Advertisement for configuring | ||||
its own interface address first, before setting its interfaces to be | ||||
advertising interfaces and turning into a router. In order to | ||||
support such operation in an IPv6 mesh over Bluetooth LE links, a 6LR | ||||
first uses the IPSP Node role only. Once the 6LR has established a | ||||
connection with another node currently running as a router, and | ||||
receives a Router Advertisement from that router, the 6LR configures | ||||
its own interface address, it turns into a router, and it runs as an | ||||
IPSP Router. In contrast with a 6LR, a 6LBR uses the IPSP Router | ||||
role since the 6LBR is initialized, that is, the 6LBR uses both the | ||||
IPSP Node and IPSP Router roles at all times. See an example in | ||||
Appendix B.. | ||||
4. Border router behavior is described in Section 7 of RFC 6775, and | a. Routers SHALL NOT use multicast NSs to discover other | |||
updated by RFC 8505. | routers' link-layer addresses. | |||
RFC 6775 defines substitutable mechanisms for distributing prefixes | b. As per Section 6.2 of [RFC6775], in a dynamic configuration | |||
and context information (section 8.1 of RFC 6775), as well as for | scenario, a 6LR comes up as a non-router and waits to receive | |||
Duplicate Address Detection across a route-over 6LoWPAN (section 8.2 | a Router Advertisement for configuring its own interface | |||
of RFC 6775). RFC 8505 updates those mechanisms and the related | address first before setting its interfaces to advertising | |||
message formats. Implementations of this specification MUST either | interfaces and turning into a router. In order to support | |||
support the features described in sections 8.1 and 8.2 of RFC 6775, | such an operation in an IPv6 mesh over Bluetooth LE links, a | |||
as updated by RFC 8505, or some alternative ("substitute") mechanism. | 6LR first uses the IPSP Node role only. Once the 6LR has | |||
established a connection with another node currently running | ||||
as a router and receives a Router Advertisement from that | ||||
router, the 6LR configures its own interface address, turns | ||||
into a router, and runs as an IPSP Router. In contrast with | ||||
a 6LR, a 6LBR uses the IPSP Router role since the 6LBR is | ||||
initialized; that is, the 6LBR uses both the IPSP Node and | ||||
IPSP Router roles at all times. See an example in | ||||
Appendix B. | ||||
3.3.3. Header compression | 4. Border router behavior is described in Section 7 of [RFC6775] and | |||
updated by [RFC8505]. | ||||
[RFC6775] defines substitutable mechanisms for distributing | ||||
prefixes and context information (Section 8.1 of [RFC6775]), as | ||||
well as for duplicate address detection across a route-over | ||||
6LoWPAN (Section 8.2 of [RFC6775]). [RFC8505] updates those | ||||
mechanisms and the related message formats. Implementations of | ||||
this specification MUST either support the features described in | ||||
Sections 8.1 and 8.2 of [RFC6775], as updated by [RFC8505] or | ||||
some alternative ("substitute") mechanism. | ||||
3.3.3. Header Compression | ||||
Header compression as defined in RFC 6282 [RFC6282], which specifies | Header compression as defined in RFC 6282 [RFC6282], which specifies | |||
the compression format for IPv6 datagrams on top of IEEE 802.15.4, is | the compression format for IPv6 datagrams on top of IEEE 802.15.4, is | |||
REQUIRED as the basis for IPv6 header compression on top of Bluetooth | REQUIRED as the basis for IPv6 header compression on top of Bluetooth | |||
LE. All headers MUST be compressed according to RFC 6282 [RFC6282] | LE. All headers MUST be compressed according to RFC 6282 [RFC6282] | |||
encoding formats. | encoding formats. | |||
To enable efficient header compression, when the 6LBR sends a Router | To enable efficient header compression, when the 6LBR sends a Router | |||
Advertisement it MAY include a 6LoWPAN Context Option (6CO) [RFC6775] | Advertisement, it MAY include a 6LoWPAN Context Option (6CO) | |||
matching each address prefix advertised via a Prefix Information | [RFC6775] matching each address prefix advertised via a Prefix | |||
Option (PIO) [RFC4861] for use in stateless address | Information Option (PIO) [RFC4861] for use in stateless address | |||
autoconfiguration. Note that 6CO is not needed for context-based | autoconfiguration. Note that 6CO is not needed for context-based | |||
compression when context is pre-provisioned or provided by out-of- | compression when the context is pre-provisioned or provided by out- | |||
band means, as in these cases the in-band indication (6CO) becomes | of-band means as, in these cases, the in-band indication (6CO) | |||
superfluous. | becomes superfluous. | |||
The specific optimizations of RFC 7668 for header compression, which | The specific optimizations of [RFC7668] for header compression, which | |||
exploited the star topology and ARO (note that the latter has been | exploited the star topology and Address Registration Option (ARO) | |||
updated by EARO as per RFC 8505), cannot be generalized in an IPv6 | (note that the latter has been updated by EARO as per [RFC8505]), | |||
mesh over Bluetooth LE links. Still, a subset of those optimizations | cannot be generalized in an IPv6 mesh over Bluetooth LE links. | |||
can be applied in some cases in such a network. These cases comprise | Still, a subset of those optimizations can be applied in some cases | |||
link-local interactions, non-link-local packet transmissions | in such a network. These cases comprise link-local interactions, | |||
originated by a 6LN (i.e. the first hop from a 6LN), and non-link- | non-link-local packet transmissions originated by a 6LN (i.e., the | |||
local packets intended for a 6LN that are originated or forwarded by | first hop from a 6LN), and non-link-local packets intended for a 6LN | |||
a neighbor of that 6LN (i.e. the last hop toward a 6LN). For all | that are originated or forwarded by a neighbor of that 6LN (i.e., the | |||
other packet transmissions, context-based compression MAY be used. | last hop toward a 6LN). For all other packet transmissions, context- | |||
based compression MAY be used. | ||||
When a device transmits a packet to a neighbor, the sender MUST fully | When a device transmits a packet to a neighbor, the sender MUST fully | |||
elide the source IID if the source IPv6 address is the link-local | elide the source Interface Identifier (IID) if the source IPv6 | |||
address based on the sender's Bluetooth device address (SAC=0, | address is the link-local address based on the sender's Bluetooth | |||
SAM=11). The sender also MUST fully elide the destination IPv6 | device address (SAC=0, SAM=11). The sender also MUST fully elide the | |||
address if it is the link-local address based on the neighbor's | destination IPv6 address if it is the link-local address based on the | |||
Bluetooth device address (DAC=0, DAM=11). | neighbor's Bluetooth device address (DAC=0, DAM=11). | |||
When a 6LN transmits a packet, with a non-link-local source address | When a 6LN transmits a packet with a non-link-local source address | |||
that the 6LN has registered with EARO in the next-hop router for the | that the 6LN has registered with EARO in the next-hop router for the | |||
indicated prefix, the source address MUST be fully elided if it is | indicated prefix, the source address MUST be fully elided if it is | |||
the latest address that the 6LN has registered for the indicated | the latest address that the 6LN has registered for the indicated | |||
prefix (SAC=1, SAM=11). If the source non-link-local address is not | prefix (SAC=1, SAM=11). If the source non-link-local address is not | |||
the latest registered by the 6LN, and the first 48 bits of the IID | the latest registered by the 6LN and the first 48 bits of the IID | |||
match with the latest address registered by the 6LN, then the last 16 | match the latest address are registered by the 6LN, then the last 16 | |||
bits of the IID SHALL be carried in-line (SAC=1, SAM=10). Otherwise, | bits of the IID SHALL be carried inline (SAC=1, SAM=10). Otherwise, | |||
if the first 48 bits of the IID do not match, then the 64 bits of the | if the first 48 bits of the IID do not match, then the 64 bits of the | |||
IID SHALL be fully carried in-line (SAC=1, SAM=01). | IID SHALL be fully carried inline (SAC=1, SAM=01). | |||
When a router transmits a packet to a neighboring 6LN, with a non- | When a router transmits a packet to a neighboring 6LN with a non- | |||
link-local destination address, the router MUST fully elide the | link-local destination address, the router MUST fully elide the | |||
destination IPv6 address if the destination address is the latest | destination IPv6 address if the destination address is the latest | |||
registered by the 6LN with EARO for the indicated context (DAC=1, | registered by the 6LN with EARO for the indicated context (DAC=1, | |||
DAM=11). If the destination address is a non-link-local address and | DAM=11). If the destination address is a non-link-local address and | |||
not the latest registered, and the first 48 bits of the IID match to | not the latest registered and if the first 48 bits of the IID match | |||
those of the latest registered address, then the last 16 bits of the | those of the latest registered address, then the last 16 bits of the | |||
IID SHALL be carried in-line (DAC=1, DAM=10). Otherwise, if the | IID SHALL be carried inline (DAC=1, DAM=10). Otherwise, if the first | |||
first 48 bits of the IID do not match, then the 64 bits of the IID | 48 bits of the IID do not match, then the 64 bits of the IID SHALL be | |||
SHALL be fully carried in-line (DAC=1, DAM=01). | fully carried in-line (DAC=1, DAM=01). | |||
3.3.4. Unicast and multicast mapping | 3.3.4. Unicast and Multicast Mapping | |||
The Bluetooth LE Link Layer does not support multicast. Hence, | The Bluetooth LE Link Layer does not support multicast. Hence, | |||
traffic is always unicast between two Bluetooth LE neighboring nodes. | traffic is always unicast between two Bluetooth LE neighboring nodes. | |||
If a node needs to send a multicast packet to several neighbors, it | If a node needs to send a multicast packet to several neighbors, it | |||
has to replicate the packet and unicast it on each link. However, | has to replicate the packet and unicast it on each link. However, | |||
this may not be energy efficient, and particular care must be taken | this may not be energy efficient, and particular care must be taken | |||
if the node is battery powered. A router (i.e., a 6LR or a 6LBR) | if the node is battery powered. A router (i.e., a 6LR or a 6LBR) | |||
MUST keep track of neighboring multicast listeners, and it MUST NOT | MUST keep track of neighboring multicast listeners, and it MUST NOT | |||
forward multicast packets to neighbors that have not registered as | forward multicast packets to neighbors that have not registered as | |||
listeners for multicast groups to which the packets are destined. | listeners for multicast groups to which the packets are destined. | |||
4. IANA Considerations | 4. IANA Considerations | |||
There are no IANA considerations related to this document. | This document has no IANA actions. | |||
5. Security Considerations | 5. Security Considerations | |||
The security considerations in RFC 7668 apply. | The security considerations in [RFC7668] apply. | |||
IPv6 mesh over Bluetooth LE links requires a routing protocol to find | IPv6 mesh over BLE requires a routing protocol to find end-to-end | |||
end-to-end paths. Unfortunately, the routing protocol may generate | paths. Unfortunately, the routing protocol may generate additional | |||
additional opportunities for threats and attacks to the network. | opportunities for threats and attacks to the network. | |||
RFC 7416 [RFC7416] provides a systematic overview of threats and | RFC 7416 [RFC7416] provides a systematic overview of threats and | |||
attacks on the IPv6 Routing Protocol for Low-Power and Lossy Networks | attacks on the IPv6 Routing Protocol for Low-Power and Lossy Networks | |||
(RPL), as well as countermeasures. In that document, described | (RPL), as well as countermeasures. In that document, described | |||
threats and attacks comprise threats due to failures to authenticate, | threats and attacks comprise threats due to failures to authenticate, | |||
threats due to failure to keep routing information, threats and | threats due to failure to keep routing information, threats and | |||
attacks on integrity, and threats and attacks on availability. | attacks on integrity, and threats and attacks on availability. | |||
Reported countermeasures comprise confidentiality attack, integrity | Reported countermeasures comprise confidentiality attack, integrity | |||
attack, and availability attack countermeasures. | attack, and availability attack countermeasures. | |||
While this specification does not state the routing protocol to be | While this specification does not state the routing protocol to be | |||
used in IPv6 mesh over Bluetooth LE links, the guidance of RFC 7416 | used in IPv6 mesh over Bluetooth LE links, the guidance of [RFC7416] | |||
is useful when RPL is used in such scenarios. Furthermore, such | is useful when RPL is used in such scenarios. Furthermore, such | |||
guidance may partly apply for other routing protocols as well. | guidance may partly apply for other routing protocols as well. | |||
The ROVR can be derived from the Bluetooth device address. However, | The ROVR can be derived from the Bluetooth device address. However, | |||
such a ROVR can be spoofed, and therefore, any node connected to the | such a ROVR can be spoofed; therefore, any node connected to the | |||
subnet and aware of a registered-address-to-ROVR mapping could | subnet and aware of a registered-address-to-ROVR mapping could | |||
perform address theft and impersonation attacks. Use of Address | perform address theft and impersonation attacks. Use of Address | |||
Protected Neighbor Discovery RFC 8928 [RFC8928] provides protection | Protected Neighbor Discovery [RFC8928] provides protection against | |||
against such attacks. | such attacks. | |||
6. Contributors | 6. References | |||
Carlo Alberto Boano (Graz University of Technology) contributed to | 6.1. Normative References | |||
the design and validation of this document. | ||||
7. Acknowledgements | [BTCorev4.2] | |||
Bluetooth, "Core Specification 4.2", 2 December 2014, | ||||
<https://www.bluetooth.com/specifications/specs/core- | ||||
specification-4-2/>. | ||||
The Bluetooth, Bluetooth Smart and Bluetooth Smart Ready marks are | [IPSP] Bluetooth, "Internet Protocol Support Profile 1.0", 16 | |||
registered trademarks owned by Bluetooth SIG, Inc. | December 2014, | |||
<https://www.bluetooth.com/specifications/specs/internet- | ||||
protocol-support-profile-1-0/>. | ||||
The authors of this document are grateful to all RFC 7668 authors, | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
since this document borrows many concepts (albeit, with necessary | Requirement Levels", BCP 14, RFC 2119, | |||
extensions) from RFC 7668. | DOI 10.17487/RFC2119, March 1997, | |||
<https://www.rfc-editor.org/info/rfc2119>. | ||||
The authors also thank Alain Michaud, Mark Powell, Martin Turon, | [RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing | |||
Bilhanan Silverajan, Rahul Jadhav, Pascal Thubert, Acee Lindem, | Architecture", RFC 4291, DOI 10.17487/RFC4291, February | |||
Catherine Meadows, and Dominique Barthel for their reviews and | 2006, <https://www.rfc-editor.org/info/rfc4291>. | |||
comments, which helped improve the document. | ||||
Carles Gomez has been supported in part by the Spanish Government | [RFC4861] Narten, T., Nordmark, E., Simpson, W., and H. Soliman, | |||
Ministerio de Economia y Competitividad through projects | "Neighbor Discovery for IP version 6 (IPv6)", RFC 4861, | |||
TEC2012-32531, TEC2016-79988-P, PID2019-106808RA-I00 and FEDER, and | DOI 10.17487/RFC4861, September 2007, | |||
Secretaria d'Universitats i Recerca del Departament d'Empresa i | <https://www.rfc-editor.org/info/rfc4861>. | |||
Coneixement de la Generalitat de Catalunya 2017 through grant SGR | ||||
376. | ||||
8. Appendix A: Bluetooth LE connection establishment example | [RFC6282] Hui, J., Ed. and P. Thubert, "Compression Format for IPv6 | |||
Datagrams over IEEE 802.15.4-Based Networks", RFC 6282, | ||||
DOI 10.17487/RFC6282, September 2011, | ||||
<https://www.rfc-editor.org/info/rfc6282>. | ||||
[RFC6775] Shelby, Z., Ed., Chakrabarti, S., Nordmark, E., and C. | ||||
Bormann, "Neighbor Discovery Optimization for IPv6 over | ||||
Low-Power Wireless Personal Area Networks (6LoWPANs)", | ||||
RFC 6775, DOI 10.17487/RFC6775, November 2012, | ||||
<https://www.rfc-editor.org/info/rfc6775>. | ||||
[RFC7668] Nieminen, J., Savolainen, T., Isomaki, M., Patil, B., | ||||
Shelby, Z., and C. Gomez, "IPv6 over BLUETOOTH(R) Low | ||||
Energy", RFC 7668, DOI 10.17487/RFC7668, October 2015, | ||||
<https://www.rfc-editor.org/info/rfc7668>. | ||||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | ||||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | ||||
May 2017, <https://www.rfc-editor.org/info/rfc8174>. | ||||
[RFC8505] Thubert, P., Ed., Nordmark, E., Chakrabarti, S., and C. | ||||
Perkins, "Registration Extensions for IPv6 over Low-Power | ||||
Wireless Personal Area Network (6LoWPAN) Neighbor | ||||
Discovery", RFC 8505, DOI 10.17487/RFC8505, November 2018, | ||||
<https://www.rfc-editor.org/info/rfc8505>. | ||||
[RFC8928] Thubert, P., Ed., Sarikaya, B., Sethi, M., and R. Struik, | ||||
"Address-Protected Neighbor Discovery for Low-Power and | ||||
Lossy Networks", RFC 8928, DOI 10.17487/RFC8928, November | ||||
2020, <https://www.rfc-editor.org/info/rfc8928>. | ||||
6.2. Informative References | ||||
[BTCorev4.1] | ||||
Bluetooth, "Core Specification 4.1", 3 December 2013, | ||||
<https://www.bluetooth.com/specifications/specs/core- | ||||
specification-4-1/>. | ||||
[RFC4903] Thaler, D., "Multi-Link Subnet Issues", RFC 4903, | ||||
DOI 10.17487/RFC4903, June 2007, | ||||
<https://www.rfc-editor.org/info/rfc4903>. | ||||
[RFC7416] Tsao, T., Alexander, R., Dohler, M., Daza, V., Lozano, A., | ||||
and M. Richardson, Ed., "A Security Threat Analysis for | ||||
the Routing Protocol for Low-Power and Lossy Networks | ||||
(RPLs)", RFC 7416, DOI 10.17487/RFC7416, January 2015, | ||||
<https://www.rfc-editor.org/info/rfc7416>. | ||||
Appendix A. Bluetooth LE Connection Establishment Example | ||||
This appendix provides an example of Bluetooth LE connection | This appendix provides an example of Bluetooth LE connection | |||
establishment and use of IPSP roles in an IPv6 mesh over Bluetooth LE | establishment and use of IPSP roles in an IPv6 mesh over BLE that | |||
links that uses dynamic configuration. The example follows text in | uses dynamic configuration. The example follows text in | |||
Section 3.3.2, item 3.b). | Section 3.3.2, item 3.b. | |||
The example assumes a network with one 6LBR, two 6LRs and three 6LNs, | The example assumes a network with one 6LBR, two 6LRs, and three | |||
as shown in Figure 3. Connectivity between the 6LNs and the 6LBR is | 6LNs, as shown in Figure 3. Connectivity between the 6LNs and the | |||
only possible via the 6LRs. | 6LBR is only possible via the 6LRs. | |||
The following text describes the different steps as time evolves, in | The following text describes the different steps in the example as | |||
the example. Note that other sequences of events that may lead to | time evolves. Note that other sequences of events that may lead to | |||
the same final scenario are also possible. | the same final scenario are also possible. | |||
At the beginning, the 6LBR starts running as an IPSP Router, whereas | At the beginning, the 6LBR starts running as an IPSP router, whereas | |||
the rest of devices are not yet initialized (Step 1). Next, the 6LRs | the rest of devices are not yet initialized (Step 1). Next, the 6LRs | |||
start running as IPSP Nodes, i.e., they use Bluetooth LE | start running as IPSP nodes, i.e., they use Bluetooth LE | |||
advertisement packets to announce their presence and support of IPv6 | advertisement packets to announce their presence and support of IPv6 | |||
capabilities (Step 2). The 6LBR (already running as an IPSP Router) | capabilities (Step 2). The 6LBR (already running as an IPSP router) | |||
discovers the presence of the 6LRs and establishes one Bluetooth LE | discovers the presence of the 6LRs and establishes one Bluetooth LE | |||
connection with each 6LR (Step 3). After establishment of those link | connection with each 6LR (Step 3). After establishment of those | |||
layer connections (and after reception of Router Advertisements from | link-layer connections (and after reception of Router Advertisements | |||
the 6LBR), the 6LRs start operating as routers, and also initiate the | from the 6LBR), the 6LRs start operating as routers and also initiate | |||
IPSP Router role (Step 4) (note: whether the IPSP Node role is kept | the IPSP Router role (Step 4). (Note: whether the IPSP Node role is | |||
running simultaneously is an implementation decision). Then, 6LNs | kept running simultaneously is an implementation decision). Then, | |||
start running the IPSP Node role (Step 5). Finally, the 6LRs | 6LNs start running the IPSP Node role (Step 5). Finally, the 6LRs | |||
discover presence of the 6LNs and establish connections with the | discover the presence of the 6LNs and establish connections with the | |||
latter (Step 6). | latter (Step 6). | |||
Step 1 | Step 1 | |||
****** | ****** | |||
6LBR | 6LBR | |||
(IPSP: Router) | (IPSP: Router) | |||
6LR 6LR | 6LR 6LR | |||
(not initialized) (not initialized) | (not initialized) (not initialized) | |||
skipping to change at page 13, line 23 ¶ | skipping to change at line 630 ¶ | |||
/ \ | / \ | |||
/ \ | / \ | |||
6LR 6LR | 6LR 6LR | |||
(IPSP: Router) (IPSP: Router) | (IPSP: Router) (IPSP: Router) | |||
/ \ / \ | / \ / \ | |||
/ \ / \ | / \ / \ | |||
/ \ / \ | / \ / \ | |||
6LN 6LN 6LN | 6LN 6LN 6LN | |||
(IPSP: Node) (IPSP: Node) (IPSP: Node) | (IPSP: Node) (IPSP: Node) (IPSP: Node) | |||
Figure 3: An example of connection establishment and use of IPSP | Figure 3: Example of Connection Establishment and Use of IPSP | |||
roles in an IPv6 mesh over Bluetooth LE links. | Roles in an IPv6 Mesh over Bluetooth LE Links | |||
9. Appendix B: Node joining procedure | Appendix B. Node-Joining Procedure | |||
This appendix provides a diagram that illustrates the node joining | This appendix provides a diagram that illustrates the node-joining | |||
procedure. First of all, the joining node advertises its presence in | procedure. First of all, the joining node advertises its presence in | |||
order to allow establishing Bluetooth LE connections with neighbors | order to allow establishment of Bluetooth LE connections with | |||
that already belong to a network. The latter typically run as a 6LR | neighbors that already belong to a network. The neighbors typically | |||
or as a 6LBR. After Bluetooth LE connection establishment, the | run as a 6LR or as a 6LBR. After Bluetooth LE connection | |||
joining node starts acting as a 6LN. | establishment, the joining node starts acting as a 6LN. | |||
Figure 4 shows the sequence of messages that are exchanged by the 6LN | Figure 4 shows the sequence of messages that are exchanged by the 6LN | |||
and a neighboring 6LR that already belongs to the network, after the | and a neighboring 6LR that already belongs to the network after the | |||
establishment of a Bluetooth LE connection between both devices. | establishment of a Bluetooth LE connection between both devices. | |||
Initially, the 6LN sends an RS message (1). Then, the 6LR replies | Initially, the 6LN sends a Router Solicitation (RS) message (1). | |||
with an RA, which includes the PIO (2). After discovering the non- | Then, the 6LR replies with an RA, which includes the PIO (2). After | |||
link-local prefix in use in the network, the 6LN creates its non- | discovering the non-link-local prefix in use in the network, the 6LN | |||
link-local address, registers that address with EARO (3) in the 6LR, | creates its non-link-local address and registers that address with | |||
and multihop DAD is performed (4). The next step is the transmission | EARO (3) in the 6LR, and then multihop DAD is performed (4). The | |||
of the NA message sent by the 6LR in response to the NS previously | next step is the transmission of the NA message sent by the 6LR in | |||
sent by the 6LN (5). If the non-link-local address of the 6LN has | response to the NS previously sent by the 6LN (5). If the non-link- | |||
been successfully validated, the 6LN can operate as a member of the | local address of the 6LN has been successfully validated, the 6LN can | |||
network it has joined. | operate as a member of the network it has joined. | |||
(1) 6LN ----(RS)-------> 6LR | (1) 6LN ----(RS)-------> 6LR | |||
(2) 6LN <---(RA-PIO)---- 6LR | (2) 6LN <---(RA-PIO)---- 6LR | |||
(3) 6LN ----(NS-EARO)--> 6LR | (3) 6LN ----(NS-EARO)--> 6LR | |||
(4) [Multihop DAD procedure] | (4) [Multihop DAD procedure] | |||
(5) 6LN <---(NA)-------- 6LR | (5) 6LN <---(NA)-------- 6LR | |||
Figure 4: Message exchange diagram for a joining node | Figure 4: Message Exchange Diagram for a Joining Node | |||
10. References | ||||
10.1. Normative References | ||||
[BTCorev4.2] | ||||
Bluetooth Special Interest Group, "Bluetooth Core | ||||
Specification Version 4.2", December 2014, | ||||
<https://www.bluetooth.com/specifications/archived- | ||||
specifications>. | ||||
[IPSP] Bluetooth Special Interest Group, "Bluetooth Internet | ||||
Protocol Support Profile Specification Version 1.0.0", | ||||
December 2014, <https://www.bluetooth.org/en- | ||||
us/specification/adopted-specifications>. | ||||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | ||||
Requirement Levels", BCP 14, RFC 2119, | ||||
DOI 10.17487/RFC2119, March 1997, | ||||
<https://www.rfc-editor.org/info/rfc2119>. | ||||
[RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing | ||||
Architecture", RFC 4291, DOI 10.17487/RFC4291, February | ||||
2006, <https://www.rfc-editor.org/info/rfc4291>. | ||||
[RFC4861] Narten, T., Nordmark, E., Simpson, W., and H. Soliman, | ||||
"Neighbor Discovery for IP version 6 (IPv6)", RFC 4861, | ||||
DOI 10.17487/RFC4861, September 2007, | ||||
<https://www.rfc-editor.org/info/rfc4861>. | ||||
[RFC6282] Hui, J., Ed. and P. Thubert, "Compression Format for IPv6 | ||||
Datagrams over IEEE 802.15.4-Based Networks", RFC 6282, | ||||
DOI 10.17487/RFC6282, September 2011, | ||||
<https://www.rfc-editor.org/info/rfc6282>. | ||||
[RFC6775] Shelby, Z., Ed., Chakrabarti, S., Nordmark, E., and C. | ||||
Bormann, "Neighbor Discovery Optimization for IPv6 over | ||||
Low-Power Wireless Personal Area Networks (6LoWPANs)", | ||||
RFC 6775, DOI 10.17487/RFC6775, November 2012, | ||||
<https://www.rfc-editor.org/info/rfc6775>. | ||||
[RFC7668] Nieminen, J., Savolainen, T., Isomaki, M., Patil, B., | ||||
Shelby, Z., and C. Gomez, "IPv6 over BLUETOOTH(R) Low | ||||
Energy", RFC 7668, DOI 10.17487/RFC7668, October 2015, | ||||
<https://www.rfc-editor.org/info/rfc7668>. | ||||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | Acknowledgements | |||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | ||||
May 2017, <https://www.rfc-editor.org/info/rfc8174>. | ||||
[RFC8505] Thubert, P., Ed., Nordmark, E., Chakrabarti, S., and C. | The Bluetooth, Bluetooth Smart, and Bluetooth Smart Ready marks are | |||
Perkins, "Registration Extensions for IPv6 over Low-Power | registered trademarks owned by Bluetooth SIG, Inc. | |||
Wireless Personal Area Network (6LoWPAN) Neighbor | ||||
Discovery", RFC 8505, DOI 10.17487/RFC8505, November 2018, | ||||
<https://www.rfc-editor.org/info/rfc8505>. | ||||
[RFC8928] Thubert, P., Ed., Sarikaya, B., Sethi, M., and R. Struik, | The authors of this document are grateful to all authors of | |||
"Address-Protected Neighbor Discovery for Low-Power and | [RFC7668], since this document borrows many concepts (albeit with | |||
Lossy Networks", RFC 8928, DOI 10.17487/RFC8928, November | necessary extensions) from [RFC7668]. | |||
2020, <https://www.rfc-editor.org/info/rfc8928>. | ||||
10.2. Informative References | The authors also thank Alain Michaud, Mark Powell, Martin Turon, | |||
Bilhanan Silverajan, Rahul Jadhav, Pascal Thubert, Acee Lindem, | ||||
Catherine Meadows, and Dominique Barthel for their reviews and | ||||
comments, which helped improve the document. | ||||
[BTCorev4.1] | Carles Gomez has been supported in part by the Spanish Government | |||
Bluetooth Special Interest Group, "Bluetooth Core | Ministerio de Economia y Competitividad through projects | |||
Specification Version 4.1", December 2013, | TEC2012-32531, TEC2016-79988-P, PID2019-106808RA-I00, and FEDER and | |||
<https://www.bluetooth.org/en-us/specification/adopted- | Secretaria d'Universitats i Recerca del Departament d'Empresa i | |||
specifications>. | Coneixement de la Generalitat de Catalunya 2017 through grant SGR | |||
376. | ||||
[RFC4903] Thaler, D., "Multi-Link Subnet Issues", RFC 4903, | Contributors | |||
DOI 10.17487/RFC4903, June 2007, | ||||
<https://www.rfc-editor.org/info/rfc4903>. | ||||
[RFC7416] Tsao, T., Alexander, R., Dohler, M., Daza, V., Lozano, A., | Carlo Alberto Boano (Graz University of Technology) contributed to | |||
and M. Richardson, Ed., "A Security Threat Analysis for | the design and validation of this document. | |||
the Routing Protocol for Low-Power and Lossy Networks | ||||
(RPLs)", RFC 7416, DOI 10.17487/RFC7416, January 2015, | ||||
<https://www.rfc-editor.org/info/rfc7416>. | ||||
Authors' Addresses | Authors' Addresses | |||
Carles Gomez | Carles Gomez | |||
Universitat Politecnica de Catalunya | Universitat Politecnica de Catalunya | |||
C/Esteve Terradas, 7 | C/Esteve Terradas, 7 | |||
Castelldefels 08860 | 08860 Castelldefels | |||
Spain | Spain | |||
Email: carlesgo@entel.upc.edu | Email: carlesgo@entel.upc.edu | |||
Seyed Mahdi Darroudi | Seyed Mahdi Darroudi | |||
Universitat Politecnica de Catalunya | Universitat Politecnica de Catalunya | |||
C/Esteve Terradas, 7 | C/Esteve Terradas, 7 | |||
Castelldefels 08860 | 08860 Castelldefels | |||
Spain | Spain | |||
Email: sm.darroudi@entel.upc.edu | Email: sm.darroudi@entel.upc.edu | |||
Teemu Savolainen | Teemu Savolainen | |||
Unaffiliated | Unaffiliated | |||
Email: tsavo.stds@gmail.com | Email: tsavo.stds@gmail.com | |||
Michael Spoerk | Michael Spoerk | |||
Graz University of Technology | Graz University of Technology | |||
Inffeldgasse 16/I | Inffeldgasse 16/I | |||
Graz 8010 | 8010 Graz | |||
Austria | Austria | |||
Email: michael.spoerk@tugraz.at | Email: michael.spoerk@tugraz.at | |||
End of changes. 97 change blocks. | ||||
334 lines changed or deleted | 343 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/ |