RFC 9159
IPv6 Mesh over BLUETOOTH(R) Low Energy Using the Internet Protocol Support Profile (IPSP)
IPv6 Mesh over BLUETOOTH(R) Low Energy Using the Internet Protocol Support Profile (IPSP) ๐
- RFC: 9159 ๐
- Authors: C. Gomez, S.M. Darroudi, and M. Spoerk (C. Gomez and S.M. Darroudi are from Universitat Politecnica de Catalunya, M. Spoerk is from Graz University of Technology), and T. Savolainen (Unaffiliated) ๐ซถ
- Category: Standards Track ๐
- ISSN: 2070-1721
- Date: December 2021 ๐
- Obsoletes / Updates: the title block doesn't list anything this one obsoletes or updates โจ
Abstract โจ
okay so bestie, RFC 7668 explains how to squeeze IPv6 over 6LoWPAN techniques into Bluetooth Low Energy (Bluetooth LE) networks that use the star topology ๐. BUT newer Bluetooth specs also let you build extended topologies, which is so iconic ๐ฅ. This doc lays out the mechanisms you need to get an IPv6 mesh running over Bluetooth LE links that are set up with the Bluetooth Internet Protocol Support Profile (IPSP) ๐ . It does NOT specify which routing protocol you should use in that mesh, so that's a separate question ๐.
Status of This Memo ๐
This is an Internet Standards Track document ๐.
This document is a product of the Internet Engineering Task Force (IETF) ๐. It represents the consensus of the IETF community, it got public review, and the Internet Engineering Steering Group (IESG) approved it for publication ๐. If you want more info on Internet Standards, check out Section 2 of RFC 7841 ๐.
For the current status of this document, any errata, and how to send feedback on it, go to https://www.rfc-editor.org/info/rfc9159 ๐ฆ.
Copyright Notice ๐ธ
Copyright (c) 2021 IETF Trust and the persons identified as the document authors. All rights reserved ๐.
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info), as they're in effect on the date this document was published. Please actually read these, bestie, because they spell out your rights and restrictions for this document ๐. Code Components pulled out of this document must include Revised BSD License text, as described in Section 4.e of the Trust Legal Provisions, and they come with no warranty, as described in the Revised BSD License โ๏ธ.
Table of Contents ๐ง
1. Introduction
1.1. Terminology and Requirements Language
2. Bluetooth LE Networks and the IPSP
3. Specification of IPv6 Mesh over Bluetooth LE Links
3.1. Protocol Stack
3.2. Subnet Model
3.3. Link Model
3.3.1. Stateless Address Autoconfiguration
3.3.2. Neighbor Discovery
3.3.3. Header Compression
3.3.4. Unicast and Multicast Mapping
4. IANA Considerations
5. Security Considerations
6. References
6.1. Normative References
6.2. Informative References
Appendix A. Bluetooth LE Connection Establishment Example
Appendix B. Node-Joining Procedure
Acknowledgements
Contributors
Authors' Addresses
1. Introduction ๐
okay so Bluetooth Low Energy (also called Bluetooth LE) first showed up in the Bluetooth 4.0 spec ๐. It's a low-power wireless tech built for short-range control and monitoring, and it's been marketed as Bluetooth Smart ๐ฆ. It's already everywhere in consumer electronics, like smartphones and wearables ๐ฑ. Since it's SO promising for the Internet of Things, the Bluetooth Special Interest Group (Bluetooth SIG) and the IETF both made specs to get IPv6 running over Bluetooth LE: the Internet Protocol Support Profile (IPSP) [IPSP] from the SIG, and RFC 7668 [RFC7668] from the IETF ๐. Bluetooth 4.0 only supports Bluetooth LE networks in the star topology, so RFC 7668 [RFC7668] was built and tuned specifically for that layout ๐ . BUT the stuff in RFC 7668 [RFC7668] isn't enough, and it would fail to give you an IPv6 mesh over Bluetooth LE links ๐ญ. This document fills that gap by specifying the mechanisms needed for an IPv6 mesh over Bluetooth LE links ๐ซถ. It still doesn't specify the routing protocol for that mesh, just like I said before โจ.
1.1. Terminology and Requirements Language ๐
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here ๐ฅ.
The terms "6LoWPAN Node" (6LN), "6LoWPAN Router" (6LR), and "6LoWPAN Border Router" (6LBR) are defined as in [RFC6775] ๐ง, with one addition: Bluetooth LE central and Bluetooth LE peripheral (see Section 2) can both be adopted by a 6LN, a 6LR, or a 6LBR ๐ฆ.
2. Bluetooth LE Networks and the IPSP ๐ธ๏ธ
Bluetooth LE has two Generic Access Profile (GAP) roles that matter here: the Bluetooth LE central role and the Bluetooth LE peripheral role ๐. In Bluetooth 4.0, a device in the central role (which I'll just call "central" from now on) could manage multiple simultaneous connections with a bunch of devices in the peripheral role (called "peripherals" from here on) ๐. Then Bluetooth 4.1 (now deprecated) let a peripheral connect to more than one central at the same time, so extended topologies beyond the star became possible for a Bluetooth LE network [BTCorev4.1] ๐. On top of that, a device can be a central in some link-layer connections and a peripheral in others at the same time ๐ซถ.
Now the IPSP is what lets you discover IP-enabled devices and set up a link-layer connection for carrying IPv6 packets ๐. It defines the Node and Router roles: the Node role is for devices that consume or originate IPv6 packets, and the Router role is for devices that can route IPv6 packets ๐ . Consistent with Bluetooth 4.1, Bluetooth 4.2 [BTCorev4.2], and later Bluetooth versions, one device can implement both roles at once ๐ฆ.
This document assumes a mesh made of Bluetooth LE links, where link-layer connections are set up between neighboring IPv6-enabled devices (see Section 3.3.2, item 3.b, and the example in Appendix A) ๐ธ. The IPv6 forwarding devices in the mesh have to implement both the IPSP Node and Router roles, while simpler leaf-only nodes can get away with only the Node role ๐ง. In an IPv6 mesh over Bluetooth LE links, one node is a neighbor of another node (and vice versa) if a link-layer connection has been set up between them, using the IPSP for discovery and connection setup and for carrying IPv6 packets ๐.
3. Specification of IPv6 Mesh over Bluetooth LE Links ๐
3.1. Protocol Stack ๐ฅ
Figure 1 shows the protocol stack for IPv6 mesh over Bluetooth LE links ๐ผ๏ธ. The core Bluetooth LE protocol stack has two main sections: the Controller and the Host. The Controller holds the Physical Layer and the Link Layer, and the Host is made up of the Logical Link Control and Adaptation Protocol (L2CAP), the Attribute Protocol (ATT), and the Generic Attribute Profile (GATT) ๐. The Host and the Controller talk to each other through the Host-Controller Interface (HCI) ๐. A device that supports the IPSP Node role runs one Internet Protocol Support Service (IPSS), which sits on top of GATT ๐. The stack in Figure 1 has two main differences from the IPv6 over Bluetooth LE stack in [RFC7668] ๐:
- a) the adaptation layer below IPv6 (labeled "6Lo for IPv6 mesh over Bluetooth LE") is now adapted for IPv6 mesh over Bluetooth LE links, and
- b) the protocol stack for IPv6 mesh over Bluetooth LE links includes IPv6 routing functionality ๐ฆ.
+------------------------------------+
| Application |
+---------+ +------------------------------------+
| IPSS | | UDP/TCP/other |
+---------+ +------------------------------------+
| GATT | | IPv6 |routing| |
+---------+ +------------------------------------+
| ATT | | 6Lo for IPv6 mesh over Bluetooth LE|
+---------+--+------------------------------------+
| Bluetooth LE L2CAP |
HCI - - +-------------------------------------------------+ - -
| Bluetooth LE Link Layer |
+-------------------------------------------------+
| Bluetooth LE Physical Layer |
+-------------------------------------------------+
Figure 1: Protocol Stack for IPv6 Mesh over Bluetooth LE Links
Bluetooth 4.2 sets a default MTU for Bluetooth LE of 251 bytes ๐. If you leave out the 4-byte L2CAP header, that leaves a protocol data unit (PDU) size of 247 bytes for the layer above L2CAP ๐งฎ. (Side note: earlier Bluetooth LE versions only gave you 23 bytes for the layer on top of L2CAP ๐.) L2CAP handles fragmentation and reassembly for sending or receiving bigger PDUs ๐งฉ. For each link, the IPSP defines ways to negotiate a link-layer connection that gives an MTU of 1280 octets or higher for the IPv6 layer [IPSP] โจ. As per this specification, the MTU size for IPv6 mesh over BLE links is 1280 octets ๐ .
Just like [RFC7668], fragmentation from the 6LoWPAN standards is NOT used for IPv6 mesh over Bluetooth LE links ๐ . Instead, the fragmentation support that Bluetooth LE gets from L2CAP is what gets used ๐ซถ.
3.2. Subnet Model ๐ฆ
Okay so for IPv6 mesh over Bluetooth LE links, the spec picks a multilink model ๐ (check out Figure 2 below, it's giving diagram energy). IPv6 over BLE is built for constrained nodes and IoT use cases, and giving every peripheral-central link its own subnet plus routing between all those subnets is lowkey way too much work ๐ญ. So the spec treats the whole collection of point-to-point links between a central and its connected peripherals as a single multilink subnet instead of a bunch of separate ones ๐. Yes, the multilink model has drawbacks, which are described in [RFC4903], but the benefits win here โจ. With this model, the routers have to handle tracking multicast state and forwarding multicast without creating loops ๐. Also, the route-over functionality from [RFC6775] is essential for making the multilink subnet model work for IPv6 mesh over Bluetooth LE links ๐.
/
/
6LR 6LN 6LN /
\ \ \ /
\ \ \ /
6LN ----- 6LR --------- 6LR ------ 6LBR ----- | Internet
<--Link--> <---Link--->/<--Link->/ |
/ / \
6LN ---- 6LR ----- 6LR \
\
\
<------------ Subnet -----------------><---- IPv6 connection -->
to the Internet
Figure 2: Example of an IPv6 Mesh over a Bluetooth LE Network
Connected to the Internet
One or more 6LBRs connect to the Internet ๐. 6LNs connect to the network through a 6LR or a 6LBR. In some scenarios and/or for some time intervals, a 6LR might chill at the edge of the network (like the top left node in Figure 2) ๐ง. That can happen when a 6LR has no neighboring 6LNs. The whole subnet uses a single global unicast prefix ๐.
IPv6 mesh over Bluetooth LE links MUST follow a route-over approach ๐. This document doesn't specify which routing protocol to use in an IPv6 mesh over Bluetooth LE links, so that's a separate convo ๐ซถ.
3.3. Link Model ๐ธ
3.3.1. Stateless Address Autoconfiguration
6LN, 6LR, and 6LBR IPv6 addresses in an IPv6 mesh over Bluetooth LE links get configured as per Section 3.2.2 of [RFC7668] โจ.
Multihop Duplicate Address Detection (DAD) from Section 8.2 of [RFC6775], as updated by [RFC8505], or some substitute mechanism (see Section 3.3.2) MAY be supported ๐. It's optional, so no pressure ๐.
3.3.2. Neighbor Discovery
"Neighbor Discovery Optimization for IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs)" [RFC6775], later updated by "Registration Extensions for IPv6 over Low-Power Wireless Personal Area Network (6LoWPAN) Neighbor Discovery" [RFC8505], describes neighbor discovery functionality adapted for several 6LoWPAN topologies, including mesh ๐ธ๏ธ. The route-over functionality of [RFC6775] and [RFC8505] MUST be supported ๐ .
These are the Neighbor Discovery optimizations for 6LoWPAN [RFC6775] [RFC8505] that apply to Bluetooth LE 6LNs, and they're lowkey the heart of this whole section ๐:
- A Bluetooth LE 6LN MUST register its non-link-local addresses with its routers by sending a Neighbor Solicitation (NS) message with the Extended Address Registration Option (EARO), then process the Neighbor Advertisement (NA) accordingly ๐จ. The EARO option includes a Registration Ownership Verifier (ROVR) field [RFC8505] ๐. For Bluetooth LE, the ROVR field is filled by default with the 48-bit device address used by the Bluetooth LE node, converted into 64-bit Modified EUI-64 format [RFC4291] โจ. Optionally, a cryptographic ID (see RFC 8928 [RFC8928]) MAY be placed in the ROVR field ๐ฆ. If a cryptographic ID is used, the address registration and multihop DAD formats and procedures defined in [RFC8928] MUST be used, unless an alternative mechanism offering equivalent protection is used ๐ก๏ธ.
As per [RFC8505], a 6LN link-local address does not need to be unique in the multilink subnet ๐. It only needs to be unique from the perspective of the two nodes using it to communicate (for example, the 6LN and the 6LR in an NS/NA exchange) ๐ซถ. So the exchange of Extended Duplicate Address Request (EDAR) and Extended Duplicate Address Confirmation (EDAC) messages between the 6LR and a 6LBR, which makes sure an address is unique across the domain covered by the 6LBR, doesn't need to happen for link-local addresses ๐ โโ๏ธ.
If the 6LN registers multiple addresses that are not based on the Bluetooth device address using the same compression context, header compression efficiency may drop, since only the last registered address can be fully elided (see Section 3.2.4 of [RFC7668]) ๐ฌ.
- For sending Router Solicitations and processing Router Advertisements, the hosts that participate in an IPv6 mesh over BLE MUST, respectively, follow Sections 5.3 and 5.4 of [RFC6775], and Section 5.6 of [RFC8505] ๐ก.
- Router behavior for 6LRs and 6LBRs is described in Section 6 of [RFC6775] and updated by [RFC8505]. However, as per this specification:
- a. Routers SHALL NOT use multicast NSs to discover other routers' link-layer addresses ๐ซ.
- b. As per Section 6.2 of [RFC6775], in a dynamic configuration scenario, a 6LR comes up as a non-router and waits to receive a Router Advertisement to configure its own interface address first. Only then does it set its interfaces to advertising interfaces and turn into a router ๐ฑ. To support this in an IPv6 mesh over Bluetooth LE links, a 6LR first uses the IPSP Node role only. Once the 6LR has connected with another node currently running as a router and receives a Router Advertisement from that router, it configures its own interface address, turns into a router, and runs as an IPSP Router ๐. A 6LBR, on the other hand, uses the IPSP Router role from the moment it's initialized. That means the 6LBR uses both the IPSP Node and IPSP Router roles at all times ๐. See an example in Appendix B ๐.
- 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 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 LE ๐๏ธ. All headers MUST be compressed according to the RFC 6282 [RFC6282] encoding formats ๐ .
To make header compression efficient, when the 6LBR sends a Router Advertisement, it MAY include a 6LoWPAN Context Option (6CO) [RFC6775] matching each address prefix advertised via a Prefix Information Option (PIO) [RFC4861] for use in stateless address autoconfiguration โจ. Note that 6CO isn't needed for context-based compression when the context is pre-provisioned or provided by out-of-band means, since then the in-band indication (6CO) becomes superfluous ๐.
The specific optimizations of [RFC7668] for header compression, which exploited the star topology and the Address Registration Option (ARO) (note that EARO has updated ARO as per [RFC8505]), can't be generalized to an IPv6 mesh over Bluetooth LE links ๐ฅฒ. Still, a subset of those optimizations can apply in some cases in this kind of network ๐. These cases are link-local interactions, non-link-local packet transmissions originated by a 6LN (the first hop from a 6LN), and non-link-local packets intended for a 6LN that are originated or forwarded by a neighbor of that 6LN (the 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 elide the source Interface Identifier (IID) if the source IPv6 address is the link-local address based on the sender's Bluetooth device address (SAC=0, SAM=11) ๐ฏ. The sender also MUST fully elide the destination IPv6 address if it's the link-local address based on the neighbor's Bluetooth device address (DAC=0, DAM=11) ๐ซ.
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 indicated prefix, the source address MUST be fully elided if it's the latest address the 6LN has registered for that prefix (SAC=1, SAM=11) ๐ท. If the source non-link-local address isn't the latest one registered by the 6LN, but the first 48 bits of the IID match the latest registered address, then the last 16 bits of the IID SHALL be carried inline (SAC=1, SAM=10) ๐งต. Otherwise, if the first 48 bits of the IID don't match, the 64 bits of the IID SHALL be fully carried inline (SAC=1, SAM=01) ๐ฎ.
When a router transmits a packet to a neighboring 6LN with a non-link-local destination address, the router MUST fully elide the destination IPv6 address if it's the latest address registered by the 6LN with EARO for the indicated context (DAC=1, DAM=11) ๐ช. If the destination address is non-link-local, isn't the latest registered, and the first 48 bits of the IID match those of the latest registered address, then the last 16 bits of the IID SHALL be carried inline (DAC=1, DAM=10) ๐. Otherwise, if the first 48 bits of the IID don't match, the 64 bits of the IID SHALL be fully carried inline (DAC=1, DAM=01) ๐.
3.3.4. Unicast and Multicast Mapping
The Bluetooth LE Link Layer doesn't support multicast ๐ โโ๏ธ. So traffic is always unicast between two neighboring Bluetooth LE nodes ๐ฌ. If a node needs to send a multicast packet to several neighbors, it has to replicate the packet and unicast it on each link. That may not be energy efficient, so particular care must be taken if the node is battery powered ๐. A router (a 6LR or a 6LBR) MUST keep track of neighboring multicast listeners, and it MUST NOT forward multicast packets to neighbors that haven't registered as listeners for the multicast groups those packets are destined for ๐๐.
4. IANA Considerations ๐
This document has no IANA actions. ๐
5. Security Considerations ๐
Okay, the security section is serious, so let's be serious for a sec ๐ . The security considerations in [RFC7668] apply, so go read those too.
IPv6 mesh over BLE needs a routing protocol to figure out end-to-end paths ๐ฃ๏ธ. Unfortunately, that routing protocol can open up new chances for threats and attacks on the network ๐ฌ.
RFC 7416 [RFC7416] is the systematic breakdown of threats and attacks on the IPv6 Routing Protocol for Low-Power and Lossy Networks (RPL), plus the countermeasures for them ๐. The threats it covers come in four flavors: failures to authenticate, failures to keep routing information, integrity threats and attacks, and availability threats and attacks. The countermeasures it reports are confidentiality attack countermeasures, integrity attack countermeasures, and availability attack countermeasures.
This specification doesn't say which routing protocol you have to use over IPv6 mesh over Bluetooth LE links, but the guidance in [RFC7416] is super useful when RPL is the one in use ๐ฟ. And honestly, that guidance may partly apply to other routing protocols too.
โ ๏ธ The ROVR can be derived from the Bluetooth device address. BUT that ROVR can be spoofed! So any node that's connected to the subnet and knows about a registered-address-to-ROVR mapping could pull off address theft and impersonation attacks ๐. Use of Address Protected Neighbor Discovery [RFC8928] gives you protection against those attacks ๐ก๏ธ.
6. References ๐
6.1. Normative References
[BTCorev4.2]
Bluetooth, "Core Specification 4.2", 2 December 2014,
<https://www.bluetooth.com/specifications/specs/core-
specification-4-2/>.
[IPSP] Bluetooth, "Internet Protocol Support Profile 1.0", 16
December 2014,
<https://www.bluetooth.com/specifications/specs/internet-
protocol-support-profile-1-0/>.
[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
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 walks through an example of Bluetooth LE connection establishment and how IPSP roles get used in an IPv6 mesh over BLE that uses dynamic configuration ๐ธ. The example follows the text in Section 3.3.2, item 3.b.
Picture a network with one 6LBR, two 6LRs, and three 6LNs, as shown in Figure 3 โจ. The 6LNs can only reach the 6LBR through the 6LRs, so that's the vibe ๐ธ๏ธ.
Here are the steps as time moves along. Heads up: other sequences of events can also end up in the same final scenario, so don't panic if your order looks different ๐.
At the beginning, the 6LBR starts running as an IPSP router, while all the other devices are still not initialized (Step 1) ๐ค. Next, the 6LRs start running as IPSP nodes, which means they use Bluetooth LE advertisement packets to announce that they're here and that they support IPv6 capabilities (Step 2) ๐ฃ. The 6LBR (already running as an IPSP router) spots the 6LRs and sets up one Bluetooth LE connection with each 6LR (Step 3) ๐ค. Once those link-layer connections are up (and after the 6LRs receive Router Advertisements from the 6LBR), the 6LRs start operating as routers and also initiate the IPSP Router role (Step 4) ๐. (Side note: whether the IPSP Node role keeps running at the same time is an implementation decision ๐งโ๐ป.) Then the 6LNs start running the IPSP Node role (Step 5) ๐. Finally, the 6LRs discover the 6LNs and establish connections with them (Step 6) ๐.
Step 1
******
6LBR
(IPSP: Router)
6LR 6LR
(not initialized) (not initialized)
6LN 6LN 6LN
(not initialized) (not initialized) (not initialized)
Step 2
******
6LBR
(IPSP: Router)
6LR 6LR
(IPSP: Node) (IPSP: Node)
6LN 6LN 6LN
(not initialized) (not initialized) (not initialized)
Step 3
******
6LBR
(IPSP: Router)
Bluetooth LE connection --> / \
/ \
6LR 6LR
(IPSP: Node) (IPSP: Node)
6LN 6LN 6LN
(not initialized) (not initialized) (not initialized)
Step 4
******
6LBR
(IPSP: Router)
/ \
/ \
6LR 6LR
(IPSP: Router) (IPSP: Router)
6LN 6LN 6LN
(not initialized) (not initialized) (not initialized)
Step 5
******
6LBR
(IPSP: Router)
/ \
/ \
6LR 6LR
(IPSP: Router) (IPSP: Router)
6LN 6LN 6LN
(IPSP: Node) (IPSP: Node) (IPSP: Node)
Step 6
******
6LBR
(IPSP: Router)
/ \
/ \
6LR 6LR
(IPSP: Router) (IPSP: Router)
/ \ / \
/ \ / \
/ \ / \
6LN 6LN 6LN
(IPSP: Node) (IPSP: Node) (IPSP: Node)
Figure 3: Example of Connection Establishment and Use of IPSP
Roles in an IPv6 Mesh over Bluetooth LE Links
Appendix B. Node-Joining Procedure ๐งฉ
This appendix has a diagram showing the node-joining procedure ๐บ๏ธ. First up, the joining node advertises that it's around, so it can set up Bluetooth LE connections with neighbors that already belong to a network ๐ก. Those neighbors are typically running as a 6LR or a 6LBR. Once the Bluetooth LE connection is established, the joining node starts acting as a 6LN ๐.
Figure 4 shows the messages swapped between the 6LN and a neighboring 6LR that's already part of the network, right after they've set up a Bluetooth LE connection ๐ฌ. First, the 6LN sends a Router Solicitation (RS) message (1). Then the 6LR replies with an RA, which includes the PIO (2). Once the 6LN has found the non-link-local prefix in use in the network, it creates its non-link-local address and registers that address with EARO (3) at the 6LR. After that, multihop DAD gets performed (4) ๐. Next up, the 6LR sends an NA message in response to the NS the 6LN sent earlier (5). If the 6LN's non-link-local address has been successfully validated, the 6LN can operate as a member of the network it joined ๐ฅณ.
(1) 6LN ----(RS)-------> 6LR
(2) 6LN <---(RA-PIO)---- 6LR
(3) 6LN ----(NS-EARO)--> 6LR
(4) [Multihop DAD procedure]
(5) 6LN <---(NA)-------- 6LR
Figure 4: Message Exchange Diagram for a Joining Node
Acknowledgements ๐
The Bluetooth, Bluetooth Smart, and Bluetooth Smart Ready marks are registered trademarks owned by Bluetooth SIG, Inc. ๐ฆ
Bestie, the authors are SO grateful to everyone who wrote [RFC7668] ๐ซถ This document borrows a lot of its concepts from [RFC7668], with some necessary extensions of its own. โจ
The authors also thank Alain Michaud, Mark Powell, Martin Turon, Bilhanan Silverajan, Rahul Jadhav, Pascal Thubert, Acee Lindem, Catherine Meadows, and Dominique Barthel ๐ Their reviews and comments helped make the document better, and that's iconic. ๐
Carles Gomez got support in part from the Spanish Government Ministerio de Economia y Competitividad through projects TEC2012-32531, TEC2016-79988-P, and PID2019-106808RA-I00. He also got support from FEDER and Secretaria d'Universitats i Recerca del Departament d'Empresa i Coneixement de la Generalitat de Catalunya 2017 through grant SGR 376. ๐
Contributors ๐
Carlo Alberto Boano (Graz University of Technology) helped with the design and validation of this document. Main character contribution, no cap ๐ง
Authors' Addresses ๐ธ
Here are the authors' contact details, bestie. Reach out if you want to talk protocols ๐
Carles Gomez ๐ท
Carles Gomez
Universitat Politecnica de Catalunya
C/Esteve Terradas, 7
08860 Castelldefels
Spain
Email: carlesgo@entel.upc.edu
Seyed Mahdi Darroudi ๐
Seyed Mahdi Darroudi
Universitat Politecnica de Catalunya
C/Esteve Terradas, 7
08860 Castelldefels
Spain
Email: sm.darroudi@entel.upc.edu
Teemu Savolainen ๐ฆ
Teemu Savolainen
Unaffiliated
Email: tsavo.stds@gmail.com
Michael Spoerk โญ
Michael Spoerk
Graz University of Technology
Inffeldgasse 16/I
8010 Graz
Austria
Email: michael.spoerk@tugraz.at
๐ฆ where this page comes from
- ietf: rfc9159 2021-12
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms