One document matched: draft-ietf-6lo-btle-13.xml
<?xml version="1.0" encoding="US-ASCII"?>
<!-- This template is for creating an Internet Draft using xml2rfc,
which is available here: http://xml.resource.org. -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!-- One method to get references from the online citation libraries.
There has to be one entity for each item to be referenced.
An alternate method (rfc include) is described in the references. -->
<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC3315 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3315.xml">
<!ENTITY RFC3610 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3610.xml">
<!ENTITY RFC3633 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3633.xml">
<!ENTITY RFC3972 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3972.xml">
<!ENTITY RFC4291 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4291.xml">
<!ENTITY RFC4861 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4861.xml">
<!ENTITY RFC4862 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4862.xml">
<!ENTITY RFC4903 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4903.xml">
<!ENTITY RFC4941 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4941.xml">
<!ENTITY RFC4944 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4944.xml">
<!ENTITY RFC5535 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5535.xml">
<!ENTITY RFC6282 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6282.xml">
<!ENTITY RFC4193 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4193.xml">
<!ENTITY RFC6775 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6775.xml">
<!ENTITY RFC7136 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7136.xml">
<!ENTITY I-D.ietf-6man-default-iids SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-6man-default-iids.xml">
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs),
please see http://xml.resource.org/authoring/README.html. -->
<!-- Below are generally applicable Processing Instructions (PIs) that most I-Ds might want to use.
(Here they are set differently than their defaults in xml2rfc v1.32) -->
<?rfc strict="no" ?>
<!-- give errors regarding ID-nits and DTD validation -->
<!-- control the table of contents (ToC) -->
<?rfc toc="yes"?>
<!-- generate a ToC -->
<?rfc tocdepth="4"?>
<!-- the number of levels of subsections in ToC. default: 3 -->
<!-- control references -->
<?rfc symrefs="yes"?>
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] -->
<?rfc sortrefs="yes" ?>
<!-- sort the reference entries alphabetically -->
<!-- control vertical white space
(using these PIs as follows is recommended by the RFC Editor) -->
<?rfc compact="yes" ?>
<!-- do not start each main section on a new page -->
<?rfc subcompact="no" ?>
<!-- keep one blank line between list items -->
<!-- end of list of popular I-D processing instructions -->
<rfc category="std" docName="draft-ietf-6lo-btle-13" ipr="trust200902">
<!-- category values: std, bcp, info, exp, and historic
ipr values: trust200902, noModificationTrust200902, noDerivativesTrust200902,
or pre5378Trust200902
you can add the attributes updates="NNNN" and obsoletes="NNNN"
they will automatically be output with "(if approved)" -->
<!-- ***** FRONT MATTER ***** -->
<front>
<!-- The abbreviated title is used in the page header - it is only necessary if the
full title is longer than 39 characters -->
<title abbrev="IPv6 over Bluetooth LE">IPv6 over BLUETOOTH(R) Low Energy</title>
<author fullname="Johanna Nieminen" initials="J.N" surname="Nieminen">
<organization abbrev="Nokia">Nokia</organization>
<address>
<email>johannamaria.nieminen@gmail.com</email>
</address>
</author>
<author initials='T.S' surname="Savolainen" fullname='Teemu Savolainen'>
<organization abbrev="Nokia">Nokia</organization>
<address>
<postal>
<street>Visiokatu 3</street>
<city>Tampere</city>
<code>33720</code>
<country>Finland</country>
</postal>
<email>teemu.savolainen@nokia.com</email>
</address>
</author>
<author initials='M.I.' surname="Isomaki" fullname='Markus Isomaki'>
<organization abbrev="Nokia">Nokia</organization>
<address>
<postal>
<street>Otaniementie 19</street>
<city>Espoo</city>
<code>02150</code>
<country>Finland</country>
</postal>
<email>markus.isomaki@nokia.com</email>
</address>
</author>
<author initials='B.P.' surname="Patil" fullname='Basavaraj Patil'>
<organization abbrev="AT&T">AT&T</organization>
<address>
<postal>
<street>1410 E. Renner Road</street>
<city>Richardson</city>
<region>TX</region>
<code>75082</code>
<country>USA</country>
</postal>
<email>basavaraj.patil@att.com</email>
</address>
</author>
<author initials='Z.S.' surname="Shelby" fullname='Zach Shelby'>
<organization abbrev="Arm">Arm</organization>
<address>
<postal>
<street>Hallituskatu 13-17D</street>
<city>Oulu</city>
<code>90100</code>
<country>Finland</country>
</postal>
<email>zach.shelby@arm.com</email>
</address>
</author>
<author initials='C.G.' surname="Gomez" fullname='Carles Gomez'>
<organization abbrev="Universitat Politecnica de Catalunya/i2CAT">Universitat Politecnica de Catalunya/i2CAT</organization>
<address>
<postal>
<street>C/Esteve Terradas, 7</street>
<code>08860</code>
<city>Castelldefels</city>
<country>Spain</country>
</postal>
<email>carlesgo@entel.upc.edu</email>
</address>
</author>
<date year="2015" />
<area>Internet</area>
<workgroup>6Lo Working Group</workgroup>
<keyword>Bluetooth Low Energy</keyword>
<keyword>6lowpan</keyword>
<keyword>IPv6</keyword>
<keyword>Low power</keyword>
<abstract>
<t>
Bluetooth Smart is the brand name for the Bluetooth low energy feature in the Bluetooth specification
defined by the Bluetooth Special Interest Group. The standard Bluetooth radio has been
widely implemented and available in mobile phones, notebook
computers, audio headsets and many other devices. The low power
version of Bluetooth is a specification that enables the use of
this air interface with devices such as sensors, smart meters,
appliances, etc. The low power variant of Bluetooth is
standardized since the revision 4.0 of the Bluetooth specifications, although
version 4.1 or newer is required for IPv6.
This document describes how IPv6
is transported over Bluetooth low energy using 6LoWPAN techniques.
</t>
</abstract>
</front>
<middle>
<section title="Introduction">
<t>
Bluetooth low energy (LE) is a radio technology targeted for
devices that operate with coin cell batteries or minimalistic power
sources, which means that low power consumption is essential. Bluetooth
LE is especially attractive technology for
Internet of Things applications, such as health monitors,
environmental sensing, proximity applications and many others.
</t>
<t>
Considering the potential for the exponential growth in the number of sensors and
Internet connected devices, IPv6 is
an ideal protocol due to the large address space it provides. In
addition, IPv6 provides tools for stateless address autoconfiguration, which is
particularly suitable for sensor network applications and nodes
which have very limited processing power or lack a full-fledged
operating system.
</t>
<t>
RFCs 4944, 6282, and 6775 <xref target="RFC4944"/><xref target="RFC6282"/><xref target="RFC6775"/>
specify the transmission of IPv6 over IEEE 802.15.4. The Bluetooth LE link in many respects
has similar characteristics to that of IEEE 802.15.4 and many of
the mechanisms defined for the IPv6 over IEEE 802.15.4 can be
applied to the transmission of IPv6 on Bluetooth LE
links. This document specifies the details of IPv6 transmission
over Bluetooth LE links.
</t>
<section title="Terminology and Requirements Language">
<t>
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described
in <xref target="RFC2119">RFC 2119</xref>.
</t>
<t>
The terms 6LN, 6LR and 6LBR are defined as in <xref target="RFC6775"/>,
with an addition that Bluetooth LE central and Bluetooth LE peripheral (see <xref target="llroles"/>)
can both be either 6LN or 6LBR.
</t>
</section>
</section>
<section title="Bluetooth Low Energy">
<t>
Bluetooth LE is designed for transferring small amounts of
data infrequently at modest data rates at a very low cost per
bit. Bluetooth Special Interest Group (Bluetooth SIG) has
introduced two trademarks, Bluetooth Smart for single-mode devices
(a device that only supports Bluetooth LE) and Bluetooth Smart Ready
for dual-mode devices (devices that support both Bluetooth and Bluetooth LE).
In the rest of the
document, the term Bluetooth LE refers to both types of devices.
</t>
<t>
Bluetooth LE was introduced in Bluetooth 4.0, enhanced in Bluetooth 4.1
<xref target="BTCorev4.1"/>, and developed even further in successive versions.
Bluetooth SIG has also published Internet Protocol Support Profile (IPSP)
<xref target="IPSP"/>, which includes
Internet Protocol Support Service (IPSS). The IPSP enables
discovery of IP-enabled devices and establishment of link-layer
connection for transporting IPv6 packets.
IPv6 over Bluetooth LE is dependent on both Bluetooth 4.1 and IPSP 1.0 or newer.
</t>
<t>
Devices such as mobile phones, notebooks, tablets and other handheld computing
devices which will include Bluetooth 4.1 chipsets will also
have the low-energy functionality of Bluetooth. Bluetooth LE will also be
included in many different types of accessories that collaborate with
mobile devices such as phones, tablets and notebook computers. An
example of a use case for a Bluetooth LE accessory is a heart rate monitor
that sends data via the mobile phone to a server on the Internet.
</t>
<section title="Bluetooth LE stack">
<t>
The lower layer of the Bluetooth LE stack consists of the Physical
(PHY), the Link Layer (LL), and a test interface called the Direct Test
Mode (DTM). The Physical Layer transmits and receives the actual
packets. The Link Layer is responsible for providing medium access,
connection establishment, error control and flow control. The Direct
Test Mode is only used for testing purposes. The upper layer consists of
the Logical Link Control and Adaptation Protocol (L2CAP), Attribute
Protocol (ATT), Security Manager (SM), Generic Attribute Profile (GATT)
and Generic Access Profile (GAP) as shown in <xref target="fig_BTLEStack"/>. The device
internal Host Controller Interface (HCI) separates the lower layers,
often implemented in the Bluetooth controller, from higher layers, often
implemented in the host stack. GATT and Bluetooth LE profiles together
enable the creation of applications in a standardized way without using
IP. L2CAP provides multiplexing capability by multiplexing the data
channels from the above layers. L2CAP also provides fragmentation and
reassembly for large data packets. The Security Manager defines a
protocol and mechanisms for pairing, key distribution and a security
toolbox for the Bluetooth LE device.
<figure title="Bluetooth LE Protocol Stack"
anchor="fig_BTLEStack">
<artwork><![CDATA[
+-------------------------------------------------+
| Applications |
+---------------------------------------+---------+
| Generic Attribute Profile | Generic |
+--------------------+------------------+ Access |
| Attribute Protocol | Security Manager | Profile |
+--------------------+------------------+---------+
| Logical Link Control and Adaptation Protocol |
- - -+-----------------------+-------------------------+- - - HCI
| Link Layer | Direct Test Mode |
+-------------------------------------------------+
| Physical Layer |
+-------------------------------------------------+
]]></artwork></figure>
</t>
<t>
As shown in <xref target="IPv6BleStack"/>, IPv6 over Bluetooth LE requires an adapted
6LoWPAN layer which runs on top of Bluetooth LE L2CAP.
</t>
</section>
<section title="Link layer roles and topology" anchor="llroles">
<t>
Bluetooth LE defines two GAP roles of relevance herein: the Bluetooth LE central role and
the Bluetooth LE peripheral
role. A device in the central role, which is called central from now on, has traditionally
been able to manage multiple simultaneous connections with a number of devices in
the peripheral role, called peripherals from now on. A peripheral is commonly connected to a
single central, but since Bluetooth 4.1 can also connect to multiple centrals.
In this document for IPv6 networking purposes the Bluetooth LE network (i.e. a Bluetooth LE piconet) follows
a star topology shown in the <xref target="fig_BTLETopo"/>, where the router typically
implements the Bluetooth LE central role and nodes implement the Bluetooth LE peripheral role. In the future
mesh networking may be defined for IPv6 over Bluetooth LE.
<figure title="Bluetooth LE Star Topology"
anchor="fig_BTLETopo">
<artwork><![CDATA[
Peripheral --. .-- Peripheral
\ /
Peripheral ---- Central ---- Peripheral
/ \
Peripheral --' '-- Peripheral
]]></artwork></figure>
</t>
<t>
In Bluetooth LE, direct wireless communication only takes place between a
central and a peripheral. This means that inherently the Bluetooth
LE star represents a hub and spokes link model. Nevertheless, two
peripherals may communicate through the central by using IP routing
functionality per this specification.
</t>
</section>
<section title="Bluetooth LE device addressing" anchor="deviceaddressing">
<t>
Every Bluetooth LE device is identified by a 48-bit device address. The
Bluetooth specification describes the device address of a Bluetooth LE device
as:"Devices are identified using a device address. Device addresses may
be either a public device address or a random device address." <xref target="BTCorev4.1"/>.
The public device addresses are based on the IEEE 802-2001 standard <xref target="IEEE802-2001"/>.
The random device addresses are generated as defined in the Bluetooth specification. This typically
happens at every power cycle of a device. In random
addresses all 48 bits are randomized.
Bluetooth LE does not support device address collision avoidance
or detection. However, these 48 bit random device addresses have a
very small probability of being in conflict within a typical
deployment.
</t>
</section>
<section title="Bluetooth LE packets sizes and MTU" anchor="btlemtu">
<t>
Optimal MTU defined for L2CAP fixed channels over Bluetooth LE is 27 bytes including the L2CAP header
of four bytes. Default MTU for Bluetooth LE is hence defined to be 27 bytes. Therefore, excluding L2CAP
header of four bytes, protocol data unit (PDU) size of 23 bytes is available for upper layers.
In order to be able to transmit IPv6 packets of 1280 bytes or larger, link layer fragmentation
and reassembly solution is provided by the L2CAP layer. The IPSP defines means for negotiating up
a link-layer connection that provides MTU of 1280 bytes or higher for the IPv6 layer <xref target="IPSP"/>.
The link-layer MTU is negotiated separately for each direction. Implementations that require single
link-layer MTU value SHALL use the smallest of the possibly different MTU values.
</t>
</section>
</section>
<section title="Specification of IPv6 over Bluetooth Low Energy">
<t>
Bluetooth LE technology sets strict requirements for low power consumption
and thus limits the allowed protocol overhead. 6LoWPAN standards
<xref target="RFC6775"/>, and <xref target="RFC6282"/> provide useful
functionality for reducing overhead, which are applied to
Bluetooth LE. This functionality comprises of link-local IPv6 addresses and
stateless IPv6 address autoconfiguration (see <xref target="slaac"/>), Neighbor
Discovery (see <xref target="neighbordiscovery"/>) and header compression (see <xref target="hcompression"/>).
Fragmentation features from 6LoWPAN standards are not used due Bluetooth LE's
link layer fragmentation support (see <xref target="btlemtu"/>).
</t>
<t>
A significant difference between IEEE 802.15.4 and Bluetooth LE is
that the former supports both star and mesh topology (and requires a
routing protocol), whereas Bluetooth LE does not currently support
the formation of multihop networks at the link layer. However, inter-
peripheral communication through the central is enabled by using IP
routing functionality per this specification.
</t>
<t>
In Bluetooth LE a central node is assumed to be less constrained than a peripheral node. Hence,
in the primary deployment scenario central and peripheral will act as 6LoWPAN
Border Router (6LBR) and a 6LoWPAN Node (6LN), respectively.
</t>
<t>
Before any IP-layer communications can take place over Bluetooth LE, Bluetooth LE
enabled nodes such as 6LNs and 6LBRs have to find each other and establish a suitable link-layer
connection. The discovery and Bluetooth LE connection setup procedures are documented by Bluetooth SIG
in the IPSP specification <xref target="IPSP"/>.
</t>
<t>In the rare case of Bluetooth LE random device
address conflict, a 6LBR can detect multiple 6LNs with the same Bluetooth LE device address, as well as a 6LN
with the same Bluetooth LE address as the 6LBR. The 6LBR MUST ignore 6LNs with the same device address the 6LBR has, and the 6LBR MUST
have at most one connection for a given Bluetooth LE device address at
any given moment. This will avoid addressing conflicts within a Bluetooth LE network.
The IPSP depends on Bluetooth version 4.1, and hence both Bluetooth version 4.1, or newer, and
IPSP version 1.0, or newer, are required for IPv6 communications.
</t>
<section title="Protocol stack" anchor="IPv6BleStack">
<t>
<xref target="fig_IPv6overLE"/> illustrates how IPv6 stack works in parallel to GATT stack
on top of Bluetooth LE L2CAP layer. GATT stack is needed herein for discovering nodes supporting Internet Protocol
Support Service. UDP and TCP are provided as examples of transport protocols,
but the stack can be used by any other upper layer protocol capable of
running atop of IPv6.
</t>
<t>
<figure title="IPv6 and IPSS on Bluetooth LE Stack"
anchor="fig_IPv6overLE">
<artwork><![CDATA[
+---------+ +----------------------------+
| IPSS | | UDP/TCP/other |
+---------+ +----------------------------+
| GATT | | IPv6 |
+---------+ +----------------------------+
| ATT | | 6LoWPAN for Bluetooth LE |
+---------+--+----------------------------+
| Bluetooth LE L2CAP |
- - +-----------------------------------------+- - - HCI
| Bluetooth LE Link Layer |
+-----------------------------------------+
| Bluetooth LE Physical |
+-----------------------------------------+
]]></artwork></figure>
</t>
</section>
<section title="Link model" anchor="linkmodel">
<t>
The concept of IPv6 link (layer 3) and the physical link (combination of
PHY and MAC) needs to be clear and the relationship has to be well understood in
order to specify the addressing scheme for transmitting IPv6 packets
over the Bluetooth LE link. RFC 4861 <xref target="RFC4861"/> defines a link as "a communication
facility or medium over which nodes can communicate at the link layer,
i.e., the layer immediately below IPv6."
</t>
<t>
In the case of Bluetooth LE, 6LoWPAN layer is adapted to support
transmission of IPv6 packets over Bluetooth LE. The IPSP defines all steps required
for setting up the Bluetooth LE connection over which 6LoWPAN can function <xref target="IPSP"/>, including
handling the link-layer fragmentation required on Bluetooth LE, as described in <xref target="btlemtu"/>.
Even though MTUs larger than 1280 bytes can be supported, use of 1280 byte is RECOMMENDED in order to
avoid need for Path MTU discovery procedures.
</t>
<t>
While Bluetooth LE protocols, such as L2CAP, utilize little-endian byte orderering, IPv6 packets MUST be transmitted
in big endian order (network byte order).
</t>
<t>
Per this specification, the IPv6 header compression format specified
in RFC 6282 MUST be used <xref target="RFC6282"/>. The IPv6 payload length
can be derived from the L2CAP header length and the possibly elided IPv6 address
can be reconstructed from the link-layer address, used at the time of Bluetooth LE connection
establishment, from the HCI Connection Handle during connection, compression context
if any, and from address registration information (see <xref target="neighbordiscovery"/>).
</t>
<t>
Bluetooth LE connections used to build a star topology are
point-to-point in nature, as Bluetooth broadcast features are not used for IPv6 over
Bluetooth LE (except for discovery of nodes supporting IPSS). As the IPv6 over Bluetooth LE is intended for
constrained nodes, and for Internet of Things use cases and environments, multilink model's benefits are considered to
overweight multilink model's drawbacks described in RFC 4903 <xref target="RFC4903"/>. Hence a multilink model has been chosen, as
further illustrated in <xref target="BLEsubnets"/>. Because of this,
link-local multicast communications can happen only within a single Bluetooth LE connection,
and thus 6LN-to-6LN communications using link-local addresses are not possible. 6LNs connected to the
same 6LBR have to communicate with each other by using the shared prefix used on the subnet. The 6LBR
ensures address collisions do not occur (see <xref target="neighbordiscovery"/>) and forwards packets
sent by one 6LN to another.
</t>
<t>
After the peripheral and central have connected at the Bluetooth LE level,
the link can be considered up and IPv6 address configuration and transmission can begin.
</t>
<section title="Stateless address autoconfiguration" anchor="slaac">
<t>
At network interface initialization, both 6LN and 6LBR SHALL generate and assign
to the Bluetooth LE network interface IPv6 link-local addresses <xref target="RFC4862"/> based on the 48-bit
Bluetooth device addresses (see <xref target="deviceaddressing"/>)
that were used for establishing underlying Bluetooth LE connection. Following guidance of <xref target="RFC7136"/>,
a 64-bit Interface Identifier (IID)
is formed from 48-bit Bluetooth device address by inserting two octets, with
hexadecimal values of 0xFF and 0xFE in the middle of the 48-bit Bluetooth device address as shown in
<xref target="fig_bleIID"/>. In the Figure letter 'b' represents a bit from Bluetooth device address, copied
as is without any changes on any bit. This means that no bit in IID indicates whether the
underlying Bluetooth device address is public or random.
<figure title="Formation of IID from Bluetooth device adddress"
anchor="fig_bleIID">
<artwork><![CDATA[
|0 1|1 3|3 4|4 6|
|0 5|6 1|2 7|8 3|
+----------------+----------------+----------------+----------------+
|bbbbbbbbbbbbbbbb|bbbbbbbb11111111|11111110bbbbbbbb|bbbbbbbbbbbbbbbb|
+----------------+----------------+----------------+----------------+
]]></artwork></figure>
The IID is then appended with prefix fe80::/64, as
described in RFC 4291 <xref target="RFC4291"/> and as depicted in <xref target="fig_IPv6linklocal"/>.
The same link-local address SHALL be used for the lifetime of the Bluetooth LE L2CAP channel.
(After Bluetooth LE logical link has been established, it is referenced with a Connection Handle in HCI. Thus
possibly changing device addresses do not impact data flows within existing L2CAP channel. Hence there is no need
to change IPv6 link-local addresses even if devices change their random device addresses during
L2CAP channel lifetime).
<figure title="IPv6 link-local address in Bluetooth LE"
anchor="fig_IPv6linklocal">
<artwork><![CDATA[
10 bits 54 bits 64 bits
+----------+-----------------+----------------------+
|1111111010| zeros | Interface Identifier |
+----------+-----------------+----------------------+
]]></artwork></figure>
</t>
<t>
A 6LN MUST join the all-nodes multicast address.
There is no need for 6LN to join the solicited-node
multicast address, since 6LBR will know device addresses and hence link-local addresses of all connected 6LNs. The 6LBR will
ensure no two devices with the same Bluetooth LE device address are connected at the same time. Effectively duplicate
address detection for link-local addresses is performed by the 6LBR's software responsible of discovery of IP-enabled Bluetooth
LE nodes and of starting Bluetooth LE connection establishment procedures. This approach increases
complexity of 6LBR, but reduces power consumption on both 6LN and 6LBR at link establishment phase by reducing number of
mandatory packet transmissions.
</t>
<t>
After link-local address configuration, 6LN sends Router Solicitation messages as described in [RFC4861] Section 6.3.7.
</t>
<t>
For non-link-local addresses a 64-bit IID MAY be formed by utilizing the 48-bit Bluetooth device address.
A 6LN can also use a randomly generated IID (see <xref target="neighbordiscovery"/>), for example,
as discussed in <xref target="I-D.ietf-6man-default-iids"/>, or use alternatice schemes such as
Cryptographically Generated Addresses (CGA) <xref target="RFC3972"/>, privacy extensions <xref target="RFC4941"/>,
Hash-Based Addresses (HBA, <xref target="RFC5535"/>), or DHCPv6 <xref target="RFC3315"/>.
The non-link-local addresses 6LN generates MUST be registered with
6LBR as described in <xref target="neighbordiscovery"/>.
</t>
<t>
The tool for a 6LBR to obtain an IPv6 prefix for numbering the
Bluetooth LE network is out of scope of this document, but can be, for example,
accomplished via DHCPv6 Prefix Delegation <xref target="RFC3633"/> or by
using Unique Local IPv6 Unicast Addresses (ULA) <xref target="RFC4193"/>.
Due to the link model of the Bluetooth LE (see <xref target="llroles"/>)
the 6LBR MUST set the "on-link" flag (L) to zero in the
Prefix Information Option <xref target="RFC4861"/>. This will cause 6LNs
to always send packets to the 6LBR, including the case when
the destination is another 6LN using the same prefix.
</t>
</section>
<section title="Neighbor discovery" anchor="neighbordiscovery">
<t>
'Neighbor Discovery Optimization for IPv6 over Low-Power Wireless Personal
Area Networks (6LoWPANs)' <xref target="RFC6775"/> describes the neighbor
discovery approach as adapted for use in several 6LoWPAN topologies,
including the mesh topology. Bluetooth LE does not support mesh networks and
hence only those aspects that apply to a star topology are considered.
</t>
<t>
The following aspects of the Neighbor Discovery optimizations
<xref target="RFC6775"/> are applicable to Bluetooth LE 6LNs:
</t>
<t>
1. A Bluetooth LE 6LN MUST NOT register its
link-local address. A Bluetooth LE 6LN MUST register its non-link-local addresses
with the 6LBR by sending a Neighbor Solicitation (NS) message with
the Address Registration Option (ARO) and process the Neighbor
Advertisement (NA) accordingly. The NS with the ARO option MUST be
sent irrespective of the method used to generate the IID. If the 6LN
registers for a same compression context multiple addresses that are not based on
Bluetooth device address, the header compression efficiency will decrease (see
<xref target="hcompression"/>).
</t>
<t>
2. For sending Router Solicitations and processing Router
Advertisements the Bluetooth LE 6LNs MUST, respectively, follow Sections 5.3 and 5.4 of the
<xref target="RFC6775"/>.
</t>
</section>
<section title="Header compression" anchor="hcompression">
<t>
Header compression as defined in RFC 6282 <xref target="RFC6282"/>, which specifies the compression format for
IPv6 datagrams on top of IEEE 802.15.4, is REQUIRED in this document as the basis for IPv6 header compression on top
of Bluetooth LE. All headers MUST be compressed according to RFC 6282 <xref target="RFC6282"/> encoding formats.
</t>
<t>
The Bluetooth LE's star topology structure and ARO can be exploited in order to provide
a mechanism for address compression.
The following text describes the principles of IPv6 address compression on top of Bluetooth LE.
</t>
<t>The ARO option requires use of EUI-64 identifier <xref target="RFC6775"/>. In the case of Bluetooth LE, the field SHALL be filled
with the 48-bit device address used by the Bluetooth LE node converted into 64-bit Modified EUI-64 format <xref target="RFC4291"/>.
</t>
<t>
To enable efficient header compression, the 6LBR MUST include 6LoWPAN Context Option (6CO) <xref target="RFC6775"/>
for all prefixes the 6LBR advertises in Router Advertisements for use in stateless address autoconfiguration.
</t>
<t>
When a 6LN is sending a packet to or through a 6LBR, it MUST fully elide the source address if it is a link-local address.
A non-link-local source address 6LN has registered with ARO to the 6LBR for the indicated prefix MUST be fully elided if
the source address is the latest address 6LN has registered for the indicated prefix. If a source non-link-local address is not
the latest registered, then the 64-bits of the IID SHALL be fully carried in-line (SAC=01) or if the first 48-bits of the IID match
with the latest registered address, then the last 16-bits of the IID SHALL be carried in-line (SAC=10).
That is, if SAC=0 and SAM=11 the 6LN MUST be using the link-local IPv6 address derived from Bluetooth LE device address,
and if
SAC=1 and SAM=11 the 6LN MUST have registered the source IPv6 address with the prefix related to compression context and the 6LN MUST be
referring to the latest registered address related to compression context. The IPv6 address
MUST be considered to be registered only after the 6LBR has sent Neighbor Advertisement with ARO having status field set to success. The
destination IPv6 address MUST be fully elided if the
destination address is 6LBR's link-local-address based on the 6LBR's Bluetooth device address (DAC=0, DAM=11).
The destination IPv6 address MUST be fully or partially elided if context has been set up for the destination address. For example,
DAC=0 and DAM=01 when destination prefix is link-local, and DAC=1 and DAM=01 if compression context has
been configured for the used destination prefix.
</t>
<t>
When a 6LBR is transmitting packets to 6LN, it MUST fully elide the source IID if the source IPv6
address is the link-local address based on 6LBR's Bluetooth device address (SAC=0, SAM=11), and
it MUST elide the source prefix or address if a compression
context related to the IPv6 source address has been set up. The 6LBR also MUST
fully elide the destination IPv6 address if it is the link-local-address based on 6LN's Bluetooth device address (DAC=0, DAM=11),
or if the destination address is the latest registered by the 6LN with ARO for the indicated context (DAC=1, DAM=11). If the destination
address is a non-link-local address and not the latest registered, then 6LN MUST either include the IID part fully in-line (DAM=01)
or, if the first 48-bits of IID match to the latest registered address, then elide those 48-bits (DAM=10).
</t>
<section title="Remote destination example">
<t>
When a 6LN transmits an IPv6 packet to a remote destination
using global Unicast IPv6 addresses, if a context is defined for the 6LN's global IPv6 address,
the 6LN has to indicate this context in the corresponding source fields of the compressed IPv6 header as per
Section 3.1 of RFC 6282 <xref target="RFC6282"/>, and has to elide the full IPv6 source address previously registered with ARO
(if using the latest registered address, otherwise full or part of IID may have to be transmitted in-line).
For this, the 6LN MUST use the following settings in the IPv6 compressed header:
SAC=1 and SAM=11. The CID may be set 0 or 1, depending which context is used.
In this case, the 6LBR can infer the elided IPv6 source address since 1) the 6LBR has previously
assigned the prefix to the 6LNs; and 2) the 6LBR maintains a
Neighbor Cache that relates the Device Address and the IID the device has registered with ARO. If a context is
defined for the IPv6 destination address, the 6LN has to
also indicate this context in the corresponding destination fields of the compressed IPv6 header,
and elide the prefix of or the full destination IPv6 address. For this, the 6LN MUST set the DAM field
of the compressed IPv6 header as DAM=01 (if the context covers a 64-bit prefix)
or as DAM=11 (if the context covers a full, 128-bit address). DAC MUST be set to 1.
Note that when a context is defined for the IPv6 destination address,
the 6LBR can infer the elided destination prefix by using the context.
</t>
<t>
When a 6LBR receives an IPv6 packet sent by a remote node
outside the Bluetooth LE network, and the destination of the packet is a
6LN, if a context is defined for the prefix of the 6LN's global IPv6 address,
the 6LBR has to indicate this context in the corresponding destination fields
of the compressed IPv6 header. The 6LBR has to elide the IPv6 destination
address of the packet before forwarding it, if the IPv6 destination address is inferable by the 6LN.
For this, the 6LBR will set the DAM field of the IPv6 compressed header as DAM=11 (if the address is the latest 6LN has registered). DAC
needs to be set to 1. If a context is defined for the IPv6 source
address, the 6LBR needs to indicate this context in the source fields of the compressed
IPv6 header, and elide that prefix as well.
For this, the 6LBR needs to set the SAM field of the IPv6 compressed header as
SAM=01 (if the context covers a 64-bit prefix) or SAM=11 (if the context
covers a full, 128-bit address). SAC is to be set to 1.
</t>
</section>
<section title="Example of registration of multiple-addresses">
<t>As described above, a 6LN can register multiple non-link-local addresses that map to a same compression context.
From the multiple address registered, only the latest address can be fully elided (SAM=11, DAM=11), and the IIDs of
previously registered addresses have to be transmitted fully in-line (SAM=01, DAM=01) or in the best case can be
partially elided (SAM=10, DAM=10). This is illustred in an example below.
</t>
<t>1) A 6LN registers first address 2001:db8::1111:2222:3333:4444 to a 6LBR. At this point the address can be fully
elided using SAC=1/SAM=11 or DAC=1/DAM=11.
</t>
<t>2) The 6LN registers second address 2001:db8::1111:2222:3333:5555 to the 6LBR. As the second address is now the latest
registered, it can be fully elided using SAC=1/SAM=11 or DAC=1/DAM=11. The first address can now be partially
elided using SAC=1/SAM=10 or DAC=1/DAM=10, as the first 112 bits of the address are the same between the first and the second
registered addresses.
</t>
<t>3) Expiration of registration time for the first or the second address has no impact on the compression. Hence even if
secondly registered address expires, the first address can only be partially elided (SAC=1/SAM=10, DAC=1/DAM=10). The 6LN
can register a new address, or re-register an expired address, to become able to again fully elide an address.
</t>
</section>
</section>
<section title="Unicast and Multicast address mapping">
<t>
The Bluetooth LE link layer does not support multicast. Hence traffic is
always unicast between two Bluetooth LE nodes. Even in the case where a
6LBR is attached to multiple 6LNs, the 6LBR
cannot do a multicast to all the connected 6LNs. If the
6LBR needs to send a multicast packet to all its 6LNs, it has to
replicate the packet and unicast it on each link.
However, this may not be energy-efficient and particular care must be
taken if the central is battery-powered. In the opposite
direction, a 6LN always has to send packets to or through 6LBR.
Hence, when a 6LN needs to transmit an IPv6 multicast
packet, the 6LN will unicast the corresponding Bluetooth LE packet to the
6LBR.
</t>
</section>
</section>
<section title="Subnets and Internet connectivity scenarios" anchor="BLEsubnets">
<t>
In a typical scenario, the Bluetooth LE network is connected to the Internet as shown in the <xref target="fig_BTLEInternet"/>.
In this scenario, the Bluetooth LE star is deployed as one subnet, using one /64 IPv6 prefix, with each spoke representing
individual link. The 6LBR is acting as router and forwarding packets between 6LNs and to and from Internet.
</t>
<t>
<figure title="Bluetooth LE network connected to the Internet"
anchor="fig_BTLEInternet">
<artwork><![CDATA[
/
.---------------. /
/ 6LN \ /
/ \ \ /
| \ | /
| 6LN ----------- 6LBR ----- | Internet
| <--Link--> / | \
\ / / \
\ 6LN / \
'---------------' \
\
<------ Subnet -----><-- IPv6 connection -->
to Internet
]]></artwork></figure>
</t>
<t>
In some scenarios, the Bluetooth LE network may transiently or permanently
be an isolated network as shown in the <xref target="fig_BTLENoInternet"/>.
In this case the whole star consist of a single subnet with multiple
links, where 6LBR is at central routing packets between 6LNs.
<figure title="Isolated Bluetooth LE network"
anchor="fig_BTLENoInternet">
<artwork><![CDATA[
.-------------------.
/ \
/ 6LN 6LN \
/ \ / \
| \ / |
| 6LN --- 6LBR --- 6LN |
| / \ |
\ / \ /
\ 6LN 6LN /
\ /
'-------------------'
<--------- Subnet ---------->
]]></artwork></figure>
</t>
<t>
It is also possible to have point-to-point connection between two 6LNs, one of which
being central and another being peripheral. Similarly, it is possible to have
point-to-point connections between two 6LBRs, one of which being central and another
being peripheral.
</t>
<t>
At this point in time mesh networking with Bluetooth LE is not specified.
</t>
</section>
</section>
<section anchor="IANA" title="IANA Considerations">
<t>
There are no IANA considerations related to this document.
</t>
</section>
<section anchor="Security" title="Security Considerations">
<t>
The transmission of IPv6 over Bluetooth LE links has similar
requirements and concerns for security as for IEEE 802.15.4.
Bluetooth LE Link Layer security considerations are covered by the IPSP <xref target="IPSP"/>.
</t>
<t>
Bluetooth LE Link Layer supports encryption and authentication by using the
Counter with CBC-MAC (CCM) mechanism <xref target="RFC3610"/> and a 128-bit AES block cipher. Upper layer security
mechanisms may exploit this functionality when it is available.
(Note: CCM does not consume bytes from the maximum per-packet L2CAP
data size, since the link layer data unit has a specific field for them when they are used.)
</t>
<t>
Key management in Bluetooth LE is provided by the Security Manager Protocol
(SMP), as defined in [BTCorev4.1].
</t>
<t>
The IPv6 link-local address configuration described in <xref target="slaac"/> strictly binds
the privacy level of IPv6 link-local address to the privacy level device has selected
for the Bluetooth LE. This means that a device using Bluetooth privacy features will retain
the same level of privacy with generated IPv6 link-local addresses. Respectively, device not using
privacy at Bluetooth level will not have privacy at IPv6 link-local address either. For
non-link local addresses implementations have a choice to support, for example,
<xref target="I-D.ietf-6man-default-iids"/>, <xref target="RFC3972"/>, <xref target="RFC4941"/>
or <xref target="RFC5535"/>.
</t>
</section>
<section title="Additional contributors">
<t>
Kanji Kerai, Jari Mutikainen, David Canfeng-Chen and Minjun Xi from
Nokia have contributed significantly to this document.
</t>
</section>
<section anchor="Acknowledgements" title="Acknowledgements">
<t>
The Bluetooth, Bluetooth Smart and Bluetooth Smart Ready marks are registred trademarks owned by Bluetooth SIG, Inc.
</t>
<t>
Samita Chakrabarti, Brian Haberman, Marcel De Kogel, Jouni Korhonen, Erik Nordmark, Erik Rivard, Dave Thaler, Pascal Thubert,
and Victor Zhodzishsky have provided valuable feedback for this draft.
</t>
<t>
Authors would like to give special acknowledgements for Krishna Shingala, Frank Berntsen, and Bluetooth SIG's Internet Working Group
for providing significant feedback and improvement proposals for this document.
</t>
</section>
</middle>
<back>
<!-- References split into informative and normative -->
<!-- There are 2 ways to insert reference entries from the citation libraries:
1. define an ENTITY at the top, and use "ampersand character"RFC2629; here (as shown)
2. simply use a PI "less than character"?rfc include="reference.RFC.2119.xml"?> here
(for I-Ds: include="reference.I-D.narten-iana-considerations-rfc2434bis.xml")
Both are cited textually in the same manner: by using xref elements.
If you use the PI option, xml2rfc will, by default, try to find included files in the same
directory as the including file. You can also define the XML_LIBRARY environment variable
with a value containing a set of directories to search. These can be either in the local
filing system or remote ones accessed by http (http://domain/dir/... ).-->
<references title="Normative References">
<reference anchor="BTCorev4.1" target="https://www.bluetooth.org/en-us/specification/adopted-specifications">
<front>
<title>Bluetooth Core Specification Version 4.1</title>
<author>
<organization>Bluetooth Special Interest Group</organization>
</author>
<date year="2013" month="December" day="3"/>
</front>
</reference>
<reference anchor="IPSP" target="https://www.bluetooth.org/en-us/specification/adopted-specifications">
<front>
<title>Bluetooth Internet Protocol Support Profile Specification Version 1.0.0</title>
<author>
<organization>Bluetooth Special Interest Group</organization>
</author>
<date year="2014" month="December" day="16"/>
</front>
</reference>
<!--?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml"?-->
&RFC2119;
&RFC4291;
&RFC4861;
&RFC4862;
&RFC6282;
&RFC6775;
&RFC7136;
</references>
<references title="Informative References">
<!--?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml"?-->
&RFC3315;
&RFC3610;
&RFC3633;
&RFC3972;
&RFC4193;
&RFC4903;
&RFC4941;
&RFC4944;
&RFC5535;
&I-D.ietf-6man-default-iids;
<reference anchor="IEEE802-2001">
<front>
<title>IEEE 802-2001 Standard for Local and Metropolitan Area Networks: Overview and Architecture</title>
<author>
<organization>Institute of Electrical and Electronics Engineers (IEEE)</organization>
</author>
<date year="2002"/>
</front>
</reference>
</references>
<!-- Change Log
v00 2011-03-07 BPa Initial version
-->
</back>
</rfc>
| PAFTECH AB 2003-2026 | 2026-04-22 03:11:56 |