| < draft-ietf-6lo-btle-13.txt | draft-ietf-6lo-btle-14.txt > | |||
|---|---|---|---|---|
| 6Lo Working Group J. Nieminen | 6Lo Working Group J. Nieminen | |||
| Internet-Draft T. Savolainen | Internet-Draft T. Savolainen | |||
| Intended status: Standards Track M. Isomaki | Intended status: Standards Track M. Isomaki | |||
| Expires: November 23, 2015 Nokia | Expires: December 27, 2015 Nokia | |||
| B. Patil | B. Patil | |||
| AT&T | AT&T | |||
| Z. Shelby | Z. Shelby | |||
| Arm | Arm | |||
| C. Gomez | C. Gomez | |||
| Universitat Politecnica de Catalunya/i2CAT | Universitat Politecnica de Catalunya/i2CAT | |||
| May 22, 2015 | June 25, 2015 | |||
| IPv6 over BLUETOOTH(R) Low Energy | IPv6 over BLUETOOTH(R) Low Energy | |||
| draft-ietf-6lo-btle-13 | draft-ietf-6lo-btle-14 | |||
| Abstract | Abstract | |||
| Bluetooth Smart is the brand name for the Bluetooth low energy | Bluetooth Smart is the brand name for the Bluetooth low energy | |||
| feature in the Bluetooth specification defined by the Bluetooth | feature in the Bluetooth specification defined by the Bluetooth | |||
| Special Interest Group. The standard Bluetooth radio has been widely | Special Interest Group. The standard Bluetooth radio has been widely | |||
| implemented and available in mobile phones, notebook computers, audio | implemented and available in mobile phones, notebook computers, audio | |||
| headsets and many other devices. The low power version of Bluetooth | headsets and many other devices. The low power version of Bluetooth | |||
| is a specification that enables the use of this air interface with | is a specification that enables the use of this air interface with | |||
| devices such as sensors, smart meters, appliances, etc. The low | devices such as sensors, smart meters, appliances, etc. The low | |||
| power variant of Bluetooth is standardized since the revision 4.0 of | power variant of Bluetooth has been standardized since revision 4.0 | |||
| the Bluetooth specifications, although version 4.1 or newer is | of the Bluetooth specifications, although version 4.1 or newer is | |||
| required for IPv6. This document describes how IPv6 is transported | required for IPv6. This document describes how IPv6 is transported | |||
| over Bluetooth low energy using 6LoWPAN techniques. | over Bluetooth low energy using IPv6 over Low-power Wireless Personal | |||
| Area Network (6LoWPAN) techniques. | ||||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on November 23, 2015. | This Internet-Draft will expire on December 27, 2015. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2015 IETF Trust and the persons identified as the | Copyright (c) 2015 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 | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://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 Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 1.1. Terminology and Requirements Language . . . . . . . . . . 3 | 1.1. Terminology and Requirements Language . . . . . . . . . . 3 | |||
| 2. Bluetooth Low Energy . . . . . . . . . . . . . . . . . . . . 3 | 2. Bluetooth Low Energy . . . . . . . . . . . . . . . . . . . . 3 | |||
| 2.1. Bluetooth LE stack . . . . . . . . . . . . . . . . . . . 4 | 2.1. Bluetooth LE stack . . . . . . . . . . . . . . . . . . . 4 | |||
| 2.2. Link layer roles and topology . . . . . . . . . . . . . . 5 | 2.2. Link layer roles and topology . . . . . . . . . . . . . . 5 | |||
| 2.3. Bluetooth LE device addressing . . . . . . . . . . . . . 5 | 2.3. Bluetooth LE device addressing . . . . . . . . . . . . . 6 | |||
| 2.4. Bluetooth LE packets sizes and MTU . . . . . . . . . . . 6 | 2.4. Bluetooth LE packet sizes and MTU . . . . . . . . . . . . 6 | |||
| 3. Specification of IPv6 over Bluetooth Low Energy . . . . . . . 6 | 3. Specification of IPv6 over Bluetooth Low Energy . . . . . . . 6 | |||
| 3.1. Protocol stack . . . . . . . . . . . . . . . . . . . . . 7 | 3.1. Protocol stack . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 3.2. Link model . . . . . . . . . . . . . . . . . . . . . . . 7 | 3.2. Link model . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 3.2.1. Stateless address autoconfiguration . . . . . . . . . 8 | 3.2.1. IPv6 Subnet Model . . . . . . . . . . . . . . . . . . 9 | |||
| 3.2.2. Neighbor discovery . . . . . . . . . . . . . . . . . 10 | 3.2.2. Stateless address autoconfiguration . . . . . . . . . 9 | |||
| 3.2.3. Header compression . . . . . . . . . . . . . . . . . 11 | 3.2.3. Neighbor discovery . . . . . . . . . . . . . . . . . 11 | |||
| 3.2.3.1. Remote destination example . . . . . . . . . . . 12 | 3.2.4. Header compression . . . . . . . . . . . . . . . . . 11 | |||
| 3.2.3.2. Example of registration of multiple-addresses . . 13 | 3.2.4.1. Remote destination example . . . . . . . . . . . 13 | |||
| 3.2.4. Unicast and Multicast address mapping . . . . . . . . 13 | 3.2.4.2. Example of registration of multiple-addresses . . 14 | |||
| 3.3. Subnets and Internet connectivity scenarios . . . . . . . 14 | 3.2.5. Unicast and Multicast address mapping . . . . . . . . 14 | |||
| 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 | 3.3. Subnets and Internet connectivity scenarios . . . . . . . 15 | |||
| 5. Security Considerations . . . . . . . . . . . . . . . . . . . 15 | 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16 | |||
| 6. Additional contributors . . . . . . . . . . . . . . . . . . . 16 | 5. Security Considerations . . . . . . . . . . . . . . . . . . . 16 | |||
| 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 16 | 6. Additional contributors . . . . . . . . . . . . . . . . . . . 17 | |||
| 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 16 | 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 17 | |||
| 8.1. Normative References . . . . . . . . . . . . . . . . . . 16 | 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
| 8.2. Informative References . . . . . . . . . . . . . . . . . 17 | 8.1. Normative References . . . . . . . . . . . . . . . . . . 17 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 18 | 8.2. Informative References . . . . . . . . . . . . . . . . . 18 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 19 | ||||
| 1. Introduction | 1. Introduction | |||
| Bluetooth low energy (LE) is a radio technology targeted for devices | Bluetooth Smart is the brand name for the Bluetooth low energy | |||
| that operate with coin cell batteries or minimalistic power sources, | feature (hereinafter, Bluetooth LE) in the Bluetooth specification | |||
| defined by the Bluetooth Special Interest Group. Bluetooth LE is a | ||||
| radio technology targeted for devices that operate with very low | ||||
| capacity (e.g., coin cell) batteries or minimalistic power sources, | ||||
| which means that low power consumption is essential. Bluetooth LE is | which means that low power consumption is essential. Bluetooth LE is | |||
| especially attractive technology for Internet of Things applications, | especially attractive technology for Internet of Things applications, | |||
| such as health monitors, environmental sensing, proximity | such as health monitors, environmental sensing, proximity | |||
| applications and many others. | applications and many others. | |||
| Considering the potential for the exponential growth in the number of | Considering the potential for the exponential growth in the number of | |||
| sensors and Internet connected devices, IPv6 is an ideal protocol due | sensors and Internet connected devices, IPv6 is an ideal protocol for | |||
| to the large address space it provides. In addition, IPv6 provides | communication with such devices due to the large address space it | |||
| tools for stateless address autoconfiguration, which is particularly | provides. In addition, IPv6 provides tools for stateless address | |||
| suitable for sensor network applications and nodes which have very | autoconfiguration, which is particularly suitable for sensor network | |||
| limited processing power or lack a full-fledged operating system. | applications and nodes which have very limited processing power or | |||
| lack a full-fledged operating system. | ||||
| RFCs 4944, 6282, and 6775 [RFC4944][RFC6282][RFC6775] specify the | This document describes how IPv6 is transported over Bluetooth LE | |||
| transmission of IPv6 over IEEE 802.15.4. The Bluetooth LE link in | connections using IPv6 over Low power Wireless Personal Area Networks | |||
| many respects has similar characteristics to that of IEEE 802.15.4 | (6LoWPAN) techniques. RFCs 4944, 6282, and 6775 | |||
| and many of the mechanisms defined for the IPv6 over IEEE 802.15.4 | [RFC4944][RFC6282][RFC6775] developed for 6LoWPAN specify the | |||
| can be applied to the transmission of IPv6 on Bluetooth LE links. | transmission of IPv6 over IEEE 802.15.4 [fifteendotfour]. The | |||
| This document specifies the details of IPv6 transmission over | Bluetooth LE link in many respects has similar characteristics to | |||
| Bluetooth LE links. | 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. | ||||
| 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", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
| document are to be interpreted as described in RFC 2119 [RFC2119]. | document are to be interpreted as described in RFC 2119 [RFC2119]. | |||
| The terms 6LN, 6LR and 6LBR are defined as in [RFC6775], with an | The terms 6LoWPAN Node (6LN), 6LoWPAN Router (6LR) and 6LoWPAN Border | |||
| addition that Bluetooth LE central and Bluetooth LE peripheral (see | Router (6LBR) are defined as in [RFC6775], with an addition that | |||
| Section 2.2) can both be either 6LN or 6LBR. | Bluetooth LE central and Bluetooth LE peripheral (see Section 2.2) | |||
| can both be either 6LN or 6LBR. | ||||
| 2. Bluetooth Low Energy | 2. Bluetooth Low Energy | |||
| Bluetooth LE is designed for transferring small amounts of data | Bluetooth LE is designed for transferring small amounts of data | |||
| infrequently at modest data rates at a very low cost per bit. | infrequently at modest data rates with a very small energy | |||
| Bluetooth Special Interest Group (Bluetooth SIG) has introduced two | expenditure per bit. Bluetooth Special Interest Group (Bluetooth | |||
| trademarks, Bluetooth Smart for single-mode devices (a device that | SIG) has introduced two trademarks, Bluetooth Smart for single-mode | |||
| only supports Bluetooth LE) and Bluetooth Smart Ready for dual-mode | devices (a device that only supports Bluetooth LE) and Bluetooth | |||
| devices (devices that support both Bluetooth and Bluetooth LE). In | Smart Ready for dual-mode devices (devices that support both | |||
| the rest of the document, the term Bluetooth LE refers to both types | Bluetooth and Bluetooth LE; note that Bluetooth and Bluetooth LE are | |||
| of devices. | different, non-interoperable radio technologies). In the rest of the | |||
| document, the term Bluetooth LE is used regardless of whether this | ||||
| technology is supported by a single-mode or dual-mode device. | ||||
| Bluetooth LE was introduced in Bluetooth 4.0, enhanced in Bluetooth | Bluetooth LE was introduced in Bluetooth 4.0, enhanced in Bluetooth | |||
| 4.1 [BTCorev4.1], and developed even further in successive versions. | 4.1 [BTCorev4.1], and developed even further in successive versions. | |||
| Bluetooth SIG has also published Internet Protocol Support Profile | Bluetooth SIG has also published the Internet Protocol Support | |||
| (IPSP) [IPSP], which includes Internet Protocol Support Service | Profile (IPSP) [IPSP], which includes the Internet Protocol Support | |||
| (IPSS). The IPSP enables discovery of IP-enabled devices and | Service (IPSS). The IPSP enables discovery of IP-enabled devices and | |||
| establishment of link-layer connection for transporting IPv6 packets. | establishment of a link layer connection for transporting IPv6 | |||
| IPv6 over Bluetooth LE is dependent on both Bluetooth 4.1 and IPSP | packets. IPv6 over Bluetooth LE is dependent on both Bluetooth 4.1 | |||
| 1.0 or newer. | and IPSP 1.0 or more recent versions of either specification to | |||
| provide necessary capabilities. | ||||
| Devices such as mobile phones, notebooks, tablets and other handheld | Devices such as mobile phones, notebooks, tablets and other handheld | |||
| computing devices which will include Bluetooth 4.1 chipsets will also | computing devices that incorporate chipsets implementing Bluetooth | |||
| have the low-energy functionality of Bluetooth. Bluetooth LE will | 4.1 or later will also have the low-energy functionality of | |||
| also be included in many different types of accessories that | Bluetooth. Bluetooth LE is also expected to be included in many | |||
| collaborate with mobile devices such as phones, tablets and notebook | different types of accessories that collaborate with mobile devices | |||
| computers. An example of a use case for a Bluetooth LE accessory is | such as phones, tablets and notebook computers. An example of a use | |||
| a heart rate monitor that sends data via the mobile phone to a server | case for a Bluetooth LE accessory is a heart rate monitor that sends | |||
| on the Internet. | data via the mobile phone to a server on the Internet. | |||
| 2.1. Bluetooth LE stack | 2.1. Bluetooth LE stack | |||
| The lower layer of the Bluetooth LE stack consists of the Physical | The lower layer of the Bluetooth LE stack consists of the Physical | |||
| (PHY), the Link Layer (LL), and a test interface called the Direct | (PHY), the Link Layer (LL), and a test interface called the Direct | |||
| Test Mode (DTM). The Physical Layer transmits and receives the | Test Mode (DTM). The Physical Layer transmits and receives the | |||
| actual packets. The Link Layer is responsible for providing medium | actual packets. The Link Layer is responsible for providing medium | |||
| access, connection establishment, error control and flow control. | access, connection establishment, error control and flow control. | |||
| The Direct Test Mode is only used for testing purposes. The upper | The Direct Test Mode is only used for testing purposes. The upper | |||
| layer consists of the Logical Link Control and Adaptation Protocol | layer consists of the Logical Link Control and Adaptation Protocol | |||
| (L2CAP), Attribute Protocol (ATT), Security Manager (SM), Generic | (L2CAP), Attribute Protocol (ATT), Security Manager (SM), Generic | |||
| Attribute Profile (GATT) and Generic Access Profile (GAP) as shown in | Attribute Profile (GATT) and Generic Access Profile (GAP) as shown in | |||
| Figure 1. The device internal Host Controller Interface (HCI) | Figure 1. The Host Controller Interface (HCI) separates the lower | |||
| separates the lower layers, often implemented in the Bluetooth | layers, often implemented in the Bluetooth controller, from higher | |||
| controller, from higher layers, often implemented in the host stack. | layers, often implemented in the host stack. GATT and Bluetooth LE | |||
| GATT and Bluetooth LE profiles together enable the creation of | profiles together enable the creation of applications in a | |||
| applications in a standardized way without using IP. L2CAP provides | standardized way without using IP. L2CAP provides multiplexing | |||
| multiplexing capability by multiplexing the data channels from the | capability by multiplexing the data channels from the above layers. | |||
| above layers. L2CAP also provides fragmentation and reassembly for | L2CAP also provides fragmentation and reassembly for large data | |||
| large data packets. The Security Manager defines a protocol and | packets. The Security Manager defines a protocol and mechanisms for | |||
| mechanisms for pairing, key distribution and a security toolbox for | pairing, key distribution and a security toolbox for the Bluetooth LE | |||
| the Bluetooth LE device. | device. | |||
| +-------------------------------------------------+ | +-------------------------------------------------+ | |||
| | Applications | | | Applications | | |||
| +---------------------------------------+---------+ | +---------------------------------------+---------+ | |||
| | Generic Attribute Profile | Generic | | | Generic Attribute Profile | Generic | | |||
| +--------------------+------------------+ Access | | +--------------------+------------------+ Access | | |||
| | Attribute Protocol | Security Manager | Profile | | | Attribute Protocol | Security Manager | Profile | | |||
| +--------------------+------------------+---------+ | +--------------------+------------------+---------+ | |||
| | Logical Link Control and Adaptation Protocol | | | Logical Link Control and Adaptation Protocol | | |||
| - - -+-----------------------+-------------------------+- - - HCI | - - -+-----------------------+-------------------------+- - - HCI | |||
| skipping to change at page 5, line 16 ¶ | skipping to change at page 5, line 32 ¶ | |||
| 6LoWPAN layer which runs on top of Bluetooth LE L2CAP. | 6LoWPAN layer which runs on top of Bluetooth LE L2CAP. | |||
| 2.2. Link layer roles and topology | 2.2. Link layer roles and topology | |||
| Bluetooth LE defines two GAP roles of relevance herein: the Bluetooth | Bluetooth LE defines two GAP roles of relevance herein: the Bluetooth | |||
| LE central role and the Bluetooth LE peripheral role. A device in | LE central role and the Bluetooth LE peripheral role. A device in | |||
| the central role, which is called central from now on, has | the central role, which is called central from now on, has | |||
| traditionally been able to manage multiple simultaneous connections | traditionally been able to manage multiple simultaneous connections | |||
| with a number of devices in the peripheral role, called peripherals | with a number of devices in the peripheral role, called peripherals | |||
| from now on. A peripheral is commonly connected to a single central, | from now on. A peripheral is commonly connected to a single central, | |||
| but since Bluetooth 4.1 can also connect to multiple centrals. In | but with versions of Bluetooth from 4.1 onwards it can also connect | |||
| this document for IPv6 networking purposes the Bluetooth LE network | to multiple centrals at the same time. In this document for IPv6 | |||
| (i.e. a Bluetooth LE piconet) follows a star topology shown in the | networking purposes the Bluetooth LE network (i.e., a Bluetooth LE | |||
| Figure 2, where the router typically implements the Bluetooth LE | piconet) follows a star topology shown in the Figure 2, where a | |||
| central role and nodes implement the Bluetooth LE peripheral role. | router typically implements the Bluetooth LE central role and the | |||
| In the future mesh networking may be defined for IPv6 over Bluetooth | rest of nodes implement the Bluetooth LE peripheral role. In the | |||
| LE. | future mesh networking and/or parallel connectivity to multiple | |||
| centrals at a time may be defined for IPv6 over Bluetooth LE. | ||||
| Peripheral --. .-- Peripheral | Peripheral --. .-- Peripheral | |||
| \ / | \ / | |||
| Peripheral ---- Central ---- Peripheral | Peripheral ---- Central ---- Peripheral | |||
| / \ | / \ | |||
| Peripheral --' '-- Peripheral | Peripheral --' '-- Peripheral | |||
| Figure 2: Bluetooth LE Star Topology | Figure 2: Bluetooth LE Star Topology | |||
| In Bluetooth LE, direct wireless communication only takes place | In Bluetooth LE, direct wireless communication only takes place | |||
| skipping to change at page 5, line 35 ¶ | skipping to change at page 6, line 4 ¶ | |||
| \ / | \ / | |||
| Peripheral ---- Central ---- Peripheral | Peripheral ---- Central ---- Peripheral | |||
| / \ | / \ | |||
| Peripheral --' '-- Peripheral | Peripheral --' '-- Peripheral | |||
| Figure 2: Bluetooth LE Star Topology | Figure 2: Bluetooth LE Star Topology | |||
| In Bluetooth LE, direct wireless communication only takes place | In Bluetooth LE, direct wireless communication only takes place | |||
| between a central and a peripheral. This means that inherently the | between a central and a peripheral. This means that inherently the | |||
| Bluetooth LE star represents a hub and spokes link model. | Bluetooth LE star represents a hub and spokes link model. | |||
| Nevertheless, two peripherals may communicate through the central by | Nevertheless, two peripherals may communicate through the central by | |||
| using IP routing functionality per this specification. | using IP routing functionality per this specification. | |||
| 2.3. Bluetooth LE device addressing | 2.3. Bluetooth LE device addressing | |||
| Every Bluetooth LE device is identified by a 48-bit device address. | Every Bluetooth LE device is identified by a 48-bit device address. | |||
| The Bluetooth specification describes the device address of a | The Bluetooth specification describes the device address of a | |||
| Bluetooth LE device as:"Devices are identified using a device | Bluetooth LE device as:"Devices are identified using a device | |||
| address. Device addresses may be either a public device address or a | address. Device addresses may be either a public device address or a | |||
| random device address." [BTCorev4.1]. The public device addresses | random device address." [BTCorev4.1]. The public device addresses | |||
| are based on the IEEE 802-2001 standard [IEEE802-2001]. The random | are based on the IEEE 802-2001 standard [IEEE802-2001]. The random | |||
| device addresses are generated as defined in the Bluetooth | device addresses are generated as defined in the Bluetooth | |||
| specification. This typically happens at every power cycle of a | specification. New addresses are typically generated each time a | |||
| device. In random addresses all 48 bits are randomized. Bluetooth | device is powered on. In random addresses all 48 bits are | |||
| LE does not support device address collision avoidance or detection. | randomized. Bluetooth LE does not support device address collision | |||
| However, these 48 bit random device addresses have a very small | avoidance or detection. However, these 48 bit random device | |||
| probability of being in conflict within a typical deployment. | addresses have a very small probability of being in conflict within a | |||
| typical deployment. | ||||
| 2.4. Bluetooth LE packets sizes and MTU | 2.4. Bluetooth LE packet sizes and MTU | |||
| Optimal MTU defined for L2CAP fixed channels over Bluetooth LE is 27 | The optimal MTU defined for L2CAP fixed channels over Bluetooth LE is | |||
| bytes including the L2CAP header of four bytes. Default MTU for | 27 octets including the L2CAP header of 4 octets. The default MTU | |||
| Bluetooth LE is hence defined to be 27 bytes. Therefore, excluding | for Bluetooth LE is hence defined to be 27 octets. Therefore, | |||
| L2CAP header of four bytes, protocol data unit (PDU) size of 23 bytes | excluding the L2CAP header of 4 octets, a protocol data unit (PDU) | |||
| is available for upper layers. In order to be able to transmit IPv6 | size of 23 octets is available for upper layers. In order to be able | |||
| packets of 1280 bytes or larger, link layer fragmentation and | to transmit IPv6 packets of 1280 octets or larger, a link layer | |||
| reassembly solution is provided by the L2CAP layer. The IPSP defines | fragmentation and reassembly solution is provided by the L2CAP layer. | |||
| means for negotiating up a link-layer connection that provides MTU of | The IPSP defines means for negotiating up a link layer connection | |||
| 1280 bytes or higher for the IPv6 layer [IPSP]. The link-layer MTU | that provides an MTU of 1280 octets or higher for the IPv6 layer | |||
| is negotiated separately for each direction. Implementations that | [IPSP]. The link layer MTU is negotiated separately for each | |||
| require single link-layer MTU value SHALL use the smallest of the | direction. Implementations that require an equal link layer MTU for | |||
| possibly different MTU values. | the two directions SHALL use the smallest of the possibly different | |||
| MTU values. | ||||
| 3. Specification of IPv6 over Bluetooth Low Energy | 3. Specification of IPv6 over Bluetooth Low Energy | |||
| Bluetooth LE technology sets strict requirements for low power | Bluetooth LE technology sets strict requirements for low power | |||
| consumption and thus limits the allowed protocol overhead. 6LoWPAN | consumption and thus limits the allowed protocol overhead. 6LoWPAN | |||
| standards [RFC6775], and [RFC6282] provide useful functionality for | standards [RFC6775], and [RFC6282] provide useful functionality for | |||
| reducing overhead, which are applied to Bluetooth LE. This | reducing overhead, which are applied to Bluetooth LE. This | |||
| functionality comprises of link-local IPv6 addresses and stateless | functionality is comprised of link-local IPv6 addresses and stateless | |||
| IPv6 address autoconfiguration (see Section 3.2.1), Neighbor | IPv6 address autoconfiguration (see Section 3.2.2), Neighbor | |||
| Discovery (see Section 3.2.2) and header compression (see | Discovery (see Section 3.2.3), and header compression (see | |||
| Section 3.2.3). Fragmentation features from 6LoWPAN standards are | Section 3.2.4). Fragmentation features from 6LoWPAN standards are | |||
| not used due Bluetooth LE's link layer fragmentation support (see | not used due to Bluetooth LE's link layer fragmentation support (see | |||
| Section 2.4). | Section 2.4). | |||
| A significant difference between IEEE 802.15.4 and Bluetooth LE is | A significant difference between IEEE 802.15.4 and Bluetooth LE is | |||
| that the former supports both star and mesh topology (and requires a | that the former supports both star and mesh topologies (and requires | |||
| routing protocol), whereas Bluetooth LE does not currently support | a routing protocol), whereas Bluetooth LE does not currently support | |||
| the formation of multihop networks at the link layer. However, | the formation of multihop networks at the link layer. However, | |||
| inter- peripheral communication through the central is enabled by | inter-peripheral communication through the central is enabled by | |||
| using IP routing functionality per this specification. | using IP routing functionality per this specification. | |||
| In Bluetooth LE a central node is assumed to be less constrained than | In Bluetooth LE a central node is assumed to be less resource | |||
| a peripheral node. Hence, in the primary deployment scenario central | constrained than a peripheral node. Hence, in the primary deployment | |||
| and peripheral will act as 6LoWPAN Border Router (6LBR) and a 6LoWPAN | scenario central and peripheral will act as 6LoWPAN Border Router | |||
| Node (6LN), respectively. | (6LBR) and a 6LoWPAN Node (6LN), respectively. | |||
| Before any IP-layer communications can take place over Bluetooth LE, | Before any IP-layer communications can take place over Bluetooth LE, | |||
| Bluetooth LE enabled nodes such as 6LNs and 6LBRs have to find each | Bluetooth LE enabled nodes such as 6LNs and 6LBRs have to find each | |||
| other and establish a suitable link-layer connection. The discovery | other and establish a suitable link layer connection. The discovery | |||
| and Bluetooth LE connection setup procedures are documented by | and Bluetooth LE connection setup procedures are documented by the | |||
| Bluetooth SIG in the IPSP specification [IPSP]. | Bluetooth SIG in the IPSP specification [IPSP]. | |||
| In the rare case of Bluetooth LE random device address conflict, a | In the rare case of Bluetooth LE random device address conflict, a | |||
| 6LBR can detect multiple 6LNs with the same Bluetooth LE device | 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 | 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. 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 | 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 | Bluetooth LE device address at any given moment. This will avoid | |||
| addressing conflicts within a Bluetooth LE network. The IPSP depends | addressing conflicts within a Bluetooth LE network. | |||
| 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. | ||||
| 3.1. Protocol stack | 3.1. Protocol stack | |||
| Figure 3 illustrates how IPv6 stack works in parallel to GATT stack | Figure 3 illustrates how the IPv6 stack works in parallel to the GATT | |||
| on top of Bluetooth LE L2CAP layer. GATT stack is needed herein for | stack on top of Bluetooth LE L2CAP layer. The GATT stack is needed | |||
| discovering nodes supporting Internet Protocol Support Service. UDP | herein for discovering nodes supporting the Internet Protocol Support | |||
| and TCP are provided as examples of transport protocols, but the | Service. UDP and TCP are provided as examples of transport | |||
| stack can be used by any other upper layer protocol capable of | protocols, but the stack can be used by any other upper layer | |||
| running atop of IPv6. | protocol capable of running atop of IPv6. | |||
| +---------+ +----------------------------+ | +---------+ +----------------------------+ | |||
| | IPSS | | UDP/TCP/other | | | IPSS | | UDP/TCP/other | | |||
| +---------+ +----------------------------+ | +---------+ +----------------------------+ | |||
| | GATT | | IPv6 | | | GATT | | IPv6 | | |||
| +---------+ +----------------------------+ | +---------+ +----------------------------+ | |||
| | ATT | | 6LoWPAN for Bluetooth LE | | | ATT | | 6LoWPAN for Bluetooth LE | | |||
| +---------+--+----------------------------+ | +---------+--+----------------------------+ | |||
| | Bluetooth LE L2CAP | | | Bluetooth LE L2CAP | | |||
| - - +-----------------------------------------+- - - HCI | - - +-----------------------------------------+- - - HCI | |||
| | Bluetooth LE Link Layer | | | Bluetooth LE Link Layer | | |||
| +-----------------------------------------+ | +-----------------------------------------+ | |||
| | Bluetooth LE Physical | | | Bluetooth LE Physical | | |||
| +-----------------------------------------+ | +-----------------------------------------+ | |||
| Figure 3: IPv6 and IPSS on Bluetooth LE Stack | Figure 3: IPv6 and IPSS on the Bluetooth LE Stack | |||
| 3.2. Link model | 3.2. Link model | |||
| The concept of IPv6 link (layer 3) and the physical link (combination | The distinct concepts of the IPv6 link (layer 3) and the physical | |||
| of PHY and MAC) needs to be clear and the relationship has to be well | link (combination of PHY and MAC) need to be clear and their | |||
| understood in order to specify the addressing scheme for transmitting | relationship has to be well understood in order to specify the | |||
| IPv6 packets over the Bluetooth LE link. RFC 4861 [RFC4861] defines | addressing scheme for transmitting IPv6 packets over the Bluetooth LE | |||
| a link as "a communication facility or medium over which nodes can | link. RFC 4861 [RFC4861] defines a link as "a communication facility | |||
| communicate at the link layer, i.e., the layer immediately below | or medium over which nodes can communicate at the link layer, i.e., | |||
| IPv6." | the layer immediately below IPv6." | |||
| In the case of Bluetooth LE, 6LoWPAN layer is adapted to support | In the case of Bluetooth LE, the 6LoWPAN layer is adapted to support | |||
| transmission of IPv6 packets over Bluetooth LE. The IPSP defines all | transmission of IPv6 packets over Bluetooth LE. The IPSP defines all | |||
| steps required for setting up the Bluetooth LE connection over which | steps required for setting up the Bluetooth LE connection over which | |||
| 6LoWPAN can function [IPSP], including handling the link-layer | 6LoWPAN can function [IPSP], including handling the link layer | |||
| fragmentation required on Bluetooth LE, as described in Section 2.4. | fragmentation required on Bluetooth LE, as described in Section 2.4. | |||
| Even though MTUs larger than 1280 bytes can be supported, use of 1280 | Even though MTUs larger than 1280 octets can be supported, use of a | |||
| byte is RECOMMENDED in order to avoid need for Path MTU discovery | 1280 octet MTU is RECOMMENDED in order to avoid need for Path MTU | |||
| procedures. | discovery procedures. | |||
| While Bluetooth LE protocols, such as L2CAP, utilize little-endian | While Bluetooth LE protocols, such as L2CAP, utilize little-endian | |||
| byte orderering, IPv6 packets MUST be transmitted in big endian order | byte orderering, IPv6 packets MUST be transmitted in big endian order | |||
| (network byte order). | (network byte order). | |||
| Per this specification, the IPv6 header compression format specified | Per this specification, the IPv6 header compression format specified | |||
| in RFC 6282 MUST be used [RFC6282]. The IPv6 payload length can be | in RFC 6282 MUST be used [RFC6282]. The IPv6 payload length can be | |||
| derived from the L2CAP header length and the possibly elided IPv6 | derived from the L2CAP header length and the possibly elided IPv6 | |||
| address can be reconstructed from the link-layer address, used at the | address can be reconstructed from the link layer address, used at the | |||
| time of Bluetooth LE connection establishment, from the HCI | time of Bluetooth LE connection establishment, from the HCI | |||
| Connection Handle during connection, compression context if any, and | Connection Handle during connection, compression context if any, and | |||
| from address registration information (see Section 3.2.2). | from address registration information (see Section 3.2.3). | |||
| Bluetooth LE connections used to build a star topology are point-to- | Bluetooth LE connections used to build a star topology are point-to- | |||
| point in nature, as Bluetooth broadcast features are not used for | point in nature, as Bluetooth broadcast features are not used for | |||
| IPv6 over Bluetooth LE (except for discovery of nodes supporting | IPv6 over Bluetooth LE (except for discovery of nodes supporting | |||
| IPSS). As the IPv6 over Bluetooth LE is intended for constrained | IPSS). After the peripheral and central have connected at the | |||
| nodes, and for Internet of Things use cases and environments, | Bluetooth LE level, the link can be considered up and IPv6 address | |||
| multilink model's benefits are considered to overweight multilink | configuration and transmission can begin. | |||
| model's drawbacks described in RFC 4903 [RFC4903]. Hence a multilink | ||||
| model has been chosen, as further illustrated in Section 3.3. | 3.2.1. IPv6 Subnet Model | |||
| Because of this, link-local multicast communications can happen only | ||||
| within a single Bluetooth LE connection, and thus 6LN-to-6LN | In the Bluetooth LE piconet model (see Section 2.2) peripherals each | |||
| communications using link-local addresses are not possible. 6LNs | have a separate link to the central and the central acts as an IPv6 | |||
| connected to the same 6LBR has to communicate with each other by | router rather than a link layer switch. As discussed in [RFC4903], | |||
| conventional usage of IPv6 anticipates IPv6 subnets spanning a single | ||||
| link at the link layer. As IPv6 over Bluetooth LE is intended for | ||||
| constrained nodes, and for Internet of Things use cases and | ||||
| environments, the complexity of implementing a separate subnet on | ||||
| each peripheral-central link and routing between the subnets appears | ||||
| to be excessive. In the Bluetooth LE case, the benefits of treating | ||||
| the collection of point-to-point links between a central and its | ||||
| connected peripherals as a single multilink subnet rather than a | ||||
| multiplicity of separate subnets are considered to outweigh the | ||||
| multilink model's drawbacks as described in [RFC4903]. | ||||
| Hence a multilink model has been chosen, as further illustrated in | ||||
| Section 3.3 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 | using the shared prefix used on the subnet. The 6LBR ensures address | |||
| collisions do not occur (see Section 3.2.2) and forwards packets sent | collisions do not occur (see Section 3.2.3) and forwards packets sent | |||
| by one 6LN to another. | by one 6LN to another. | |||
| After the peripheral and central have connected at the Bluetooth LE | 3.2.2. Stateless address autoconfiguration | |||
| level, the link can be considered up and IPv6 address configuration | ||||
| and transmission can begin. | ||||
| 3.2.1. Stateless address autoconfiguration | ||||
| At network interface initialization, both 6LN and 6LBR SHALL generate | At network interface initialization, both 6LN and 6LBR SHALL generate | |||
| and assign to the Bluetooth LE network interface IPv6 link-local | and assign to the Bluetooth LE network interface IPv6 link-local | |||
| addresses [RFC4862] based on the 48-bit Bluetooth device addresses | addresses [RFC4862] based on the 48-bit Bluetooth device addresses | |||
| (see Section 2.3) that were used for establishing underlying | (see Section 2.3) that were used for establishing the underlying | |||
| Bluetooth LE connection. Following guidance of [RFC7136], a 64-bit | Bluetooth LE connection. Following the guidance of [RFC7136], a | |||
| Interface Identifier (IID) is formed from 48-bit Bluetooth device | 64-bit Interface Identifier (IID) is formed from the 48-bit Bluetooth | |||
| address by inserting two octets, with hexadecimal values of 0xFF and | device address by inserting two octets, with hexadecimal values of | |||
| 0xFE in the middle of the 48-bit Bluetooth device address as shown in | 0xFF and 0xFE in the middle of the 48-bit Bluetooth device address as | |||
| Figure 4. In the Figure letter 'b' represents a bit from Bluetooth | shown in Figure 4. In the Figure letter 'b' represents a bit from | |||
| device address, copied as is without any changes on any bit. This | the Bluetooth device address, copied as is without any changes on any | |||
| means that no bit in IID indicates whether the underlying Bluetooth | bit. This means that no bit in the IID indicates whether the | |||
| device address is public or random. | underlying Bluetooth device address is public or random. | |||
| |0 1|1 3|3 4|4 6| | |0 1|1 3|3 4|4 6| | |||
| |0 5|6 1|2 7|8 3| | |0 5|6 1|2 7|8 3| | |||
| +----------------+----------------+----------------+----------------+ | +----------------+----------------+----------------+----------------+ | |||
| |bbbbbbbbbbbbbbbb|bbbbbbbb11111111|11111110bbbbbbbb|bbbbbbbbbbbbbbbb| | |bbbbbbbbbbbbbbbb|bbbbbbbb11111111|11111110bbbbbbbb|bbbbbbbbbbbbbbbb| | |||
| +----------------+----------------+----------------+----------------+ | +----------------+----------------+----------------+----------------+ | |||
| Figure 4: Formation of IID from Bluetooth device adddress | Figure 4: Formation of IID from Bluetooth device adddress | |||
| The IID is then appended with prefix fe80::/64, as described in RFC | The IID is then prepended with the prefix fe80::/64, as described in | |||
| 4291 [RFC4291] and as depicted in Figure 5. The same link-local | RFC 4291 [RFC4291] and as depicted in Figure 5. The same link-local | |||
| address SHALL be used for the lifetime of the Bluetooth LE L2CAP | address SHALL be used for the lifetime of the Bluetooth LE L2CAP | |||
| channel. (After Bluetooth LE logical link has been established, it | channel. (After a Bluetooth LE logical link has been established, it | |||
| is referenced with a Connection Handle in HCI. Thus possibly | is referenced with a Connection Handle in HCI. Thus possibly | |||
| changing device addresses do not impact data flows within existing | changing device addresses do not impact data flows within existing | |||
| L2CAP channel. Hence there is no need to change IPv6 link-local | L2CAP channels. Hence there is no need to change IPv6 link-local | |||
| addresses even if devices change their random device addresses during | addresses even if devices change their random device addresses during | |||
| L2CAP channel lifetime). | L2CAP channel lifetime). | |||
| 10 bits 54 bits 64 bits | 10 bits 54 bits 64 bits | |||
| +----------+-----------------+----------------------+ | +----------+-----------------+----------------------+ | |||
| |1111111010| zeros | Interface Identifier | | |1111111010| zeros | Interface Identifier | | |||
| +----------+-----------------+----------------------+ | +----------+-----------------+----------------------+ | |||
| Figure 5: IPv6 link-local address in Bluetooth LE | Figure 5: IPv6 link-local address in Bluetooth LE | |||
| A 6LN MUST join the all-nodes multicast address. There is no need | 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 | for 6LN to join the solicited-node multicast address, since 6LBR will | |||
| know device addresses and hence link-local addresses of all connected | know device addresses and hence link-local addresses of all connected | |||
| 6LNs. The 6LBR will ensure no two devices with the same Bluetooth LE | 6LNs. The 6LBR will ensure no two devices with the same Bluetooth LE | |||
| device address are connected at the same time. Effectively duplicate | device address are connected at the same time. Detection of | |||
| address detection for link-local addresses is performed by the 6LBR's | duplicate link-local addresses is performed by the process on the | |||
| software responsible of discovery of IP-enabled Bluetooth LE nodes | 6LBR responsible for the discovery of IP-enabled Bluetooth LE nodes | |||
| and of starting Bluetooth LE connection establishment procedures. | and for starting Bluetooth LE connection establishment procedures. | |||
| This approach increases complexity of 6LBR, but reduces power | This approach increases the complexity of 6LBR, but reduces power | |||
| consumption on both 6LN and 6LBR at link establishment phase by | consumption on both 6LN and 6LBR in the link establishment phase by | |||
| reducing number of mandatory packet transmissions. | reducing the number of mandatory packet transmissions. | |||
| After link-local address configuration, 6LN sends Router Solicitation | After link-local address configuration, the 6LN sends Router | |||
| messages as described in [RFC4861] Section 6.3.7. | Solicitation messages as described in [RFC4861] Section 6.3.7. | |||
| For non-link-local addresses a 64-bit IID MAY be formed by utilizing | 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 | the 48-bit Bluetooth device address. A 6LN can also use a randomly | |||
| generated IID (see Section 3.2.2), for example, as discussed in | generated IID (see Section 3.2.3), for example, as discussed in | |||
| [I-D.ietf-6man-default-iids], or use alternatice schemes such as | [I-D.ietf-6man-default-iids], or use alternative schemes such as | |||
| Cryptographically Generated Addresses (CGA) [RFC3972], privacy | Cryptographically Generated Addresses (CGA) [RFC3972], privacy | |||
| extensions [RFC4941], Hash-Based Addresses (HBA, [RFC5535]), or | extensions [RFC4941], Hash-Based Addresses (HBA, [RFC5535]), or | |||
| DHCPv6 [RFC3315]. The non-link-local addresses 6LN generates MUST be | DHCPv6 [RFC3315]. The non-link-local addresses that a 6LN generates | |||
| registered with 6LBR as described in Section 3.2.2. | MUST be registered with the 6LBR as described in Section 3.2.3. | |||
| The tool for a 6LBR to obtain an IPv6 prefix for numbering the | 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, | Bluetooth LE network is out of scope of this document, but can be, | |||
| for example, accomplished via DHCPv6 Prefix Delegation [RFC3633] or | for example, accomplished via DHCPv6 Prefix Delegation [RFC3633] or | |||
| by using Unique Local IPv6 Unicast Addresses (ULA) [RFC4193]. Due to | by using Unique Local IPv6 Unicast Addresses (ULA) [RFC4193]. Due to | |||
| the link model of the Bluetooth LE (see Section 2.2) the 6LBR MUST | the link model of the Bluetooth LE (see Section 3.2.1) the 6LBR MUST | |||
| set the "on-link" flag (L) to zero in the Prefix Information Option | set the "on-link" flag (L) to zero in the Prefix Information Option | |||
| [RFC4861]. This will cause 6LNs to always send packets to the 6LBR, | in Neighbor Discovery messages[RFC4861] (see Section 3.2.2). This | |||
| including the case when the destination is another 6LN using the same | will cause 6LNs to always send packets to the 6LBR, including the | |||
| prefix. | case when the destination is another 6LN using the same prefix. | |||
| 3.2.2. Neighbor discovery | 3.2.3. 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] describes the neighbor | Personal Area Networks (6LoWPANs)' [RFC6775] describes the neighbor | |||
| discovery approach as adapted for use in several 6LoWPAN topologies, | discovery approach as adapted for use in several 6LoWPAN topologies, | |||
| including the mesh topology. Bluetooth LE does not support mesh | including the mesh topology. Bluetooth LE does not support mesh | |||
| networks and hence only those aspects that apply to a star topology | networks and hence only those aspects that apply to a star topology | |||
| are considered. | are considered. | |||
| The following aspects of the Neighbor Discovery optimizations | The following aspects of the Neighbor Discovery optimizations | |||
| [RFC6775] are applicable to Bluetooth LE 6LNs: | [RFC6775] are applicable to Bluetooth LE 6LNs: | |||
| 1. A Bluetooth LE 6LN MUST NOT register its link-local address. A | 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 | Bluetooth LE 6LN MUST register its non-link-local addresses with the | |||
| 6LBR by sending a Neighbor Solicitation (NS) message with the Address | 6LBR by sending a Neighbor Solicitation (NS) message with the Address | |||
| Registration Option (ARO) and process the Neighbor Advertisement (NA) | Registration Option (ARO) and process the Neighbor Advertisement (NA) | |||
| accordingly. The NS with the ARO option MUST be sent irrespective of | 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 | the method used to generate the IID. If the 6LN registers for a same | |||
| compression context multiple addresses that are not based on | compression context multiple addresses that are not based on | |||
| Bluetooth device address, the header compression efficiency will | Bluetooth device address, the header compression efficiency will | |||
| decrease (see Section 3.2.3). | decrease (see Section 3.2.4). | |||
| 2. For sending Router Solicitations and processing Router | 2. For sending Router Solicitations and processing Router | |||
| Advertisements the Bluetooth LE 6LNs MUST, respectively, follow | Advertisements the Bluetooth LE 6LNs MUST, respectively, follow | |||
| Sections 5.3 and 5.4 of the [RFC6775]. | Sections 5.3 and 5.4 of the [RFC6775]. | |||
| 3.2.3. Header compression | 3.2.4. 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 in this document as the basis for IPv6 header compression on | REQUIRED in this document as the basis for IPv6 header compression on | |||
| top of Bluetooth LE. All headers MUST be compressed according to RFC | top of Bluetooth LE. All headers MUST be compressed according to RFC | |||
| 6282 [RFC6282] encoding formats. | 6282 [RFC6282] encoding formats. | |||
| The Bluetooth LE's star topology structure and ARO can be exploited | The Bluetooth LE's star topology structure and ARO can be exploited | |||
| in order to provide a mechanism for address compression. The | in order to provide a mechanism for address compression. The | |||
| following text describes the principles of IPv6 address compression | following text describes the principles of IPv6 address compression | |||
| on top of Bluetooth LE. | on top of Bluetooth LE. | |||
| The ARO option requires use of EUI-64 identifier [RFC6775]. In the | The ARO option requires use of an EUI-64 identifier [RFC6775]. In | |||
| case of Bluetooth LE, the field SHALL be filled with the 48-bit | 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 | device address used by the Bluetooth LE node converted into 64-bit | |||
| Modified EUI-64 format [RFC4291]. | Modified EUI-64 format [RFC4291]. | |||
| To enable efficient header compression, the 6LBR MUST include 6LoWPAN | To enable efficient header compression, when the 6LBR sends a Router | |||
| Context Option (6CO) [RFC6775] for all prefixes the 6LBR advertises | Advertisement it MUST include a 6LoWPAN Context Option (6CO) | |||
| in Router Advertisements for use in stateless address | [RFC6775] matching each address prefix advertised via a Prefix | |||
| Information Option (PIO) [RFC4861] for use in stateless address | ||||
| autoconfiguration. | autoconfiguration. | |||
| When a 6LN is sending a packet to or through a 6LBR, it MUST fully | 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- | 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 | 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 | indicated prefix MUST be fully elided if the source address is the | |||
| latest address 6LN has registered for the indicated prefix. If a | latest address 6LN has registered for the indicated prefix. If a | |||
| source non-link-local address is not the latest registered, then the | 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 | 64-bits of the IID SHALL be fully carried in-line (SAM=01) or if the | |||
| first 48-bits of the IID match with the latest registered address, | 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). | then the last 16-bits of the IID SHALL be carried in-line (SAM=10). | |||
| That is, if SAC=0 and SAM=11 the 6LN MUST be using the link-local | 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 | 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 | and SAM=11 the 6LN MUST have registered the source IPv6 address with | |||
| the prefix related to compression context and the 6LN MUST be | the prefix related to the compression context and the 6LN MUST be | |||
| referring to the latest registered address related to compression | referring to the latest registered address related to the compression | |||
| context. The IPv6 address MUST be considered to be registered only | context. The IPv6 address MUST be considered to be registered only | |||
| after the 6LBR has sent Neighbor Advertisement with ARO having status | after the 6LBR has sent a Neighbor Advertisement with an ARO having | |||
| field set to success. The destination IPv6 address MUST be fully | its status field set to success. The destination IPv6 address MUST | |||
| elided if the destination address is 6LBR's link-local-address based | be fully elided if the destination address is 6LBR's link-local- | |||
| on the 6LBR's Bluetooth device address (DAC=0, DAM=11). The | address based on the 6LBR's Bluetooth device address (DAC=0, DAM=11). | |||
| destination IPv6 address MUST be fully or partially elided if context | The destination IPv6 address MUST be fully or partially elided if | |||
| has been set up for the destination address. For example, DAC=0 and | context has been set up for the destination address. For example, | |||
| DAM=01 when destination prefix is link-local, and DAC=1 and DAM=01 if | DAC=0 and DAM=01 when destination prefix is link-local, and DAC=1 and | |||
| compression context has been configured for the used destination | DAM=01 if compression context has been configured for the destination | |||
| prefix. | prefix used. | |||
| When a 6LBR is transmitting packets to 6LN, it MUST fully elide the | When a 6LBR is transmitting packets to a 6LN, it MUST fully elide the | |||
| source IID if the source IPv6 address is the link-local address based | 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 | on the 6LBR's Bluetooth device address (SAC=0, SAM=11), and it MUST | |||
| the source prefix or address if a compression context related to the | elide the source prefix or address if a compression context related | |||
| IPv6 source address has been set up. The 6LBR also MUST fully elide | to the IPv6 source address has been set up. The 6LBR also MUST fully | |||
| the destination IPv6 address if it is the link-local-address based on | elide the destination IPv6 address if it is the link-local-address | |||
| 6LN's Bluetooth device address (DAC=0, DAM=11), or if the destination | based on the 6LN's Bluetooth device address (DAC=0, DAM=11), or if | |||
| address is the latest registered by the 6LN with ARO for the | the destination address is the latest registered by the 6LN with ARO | |||
| indicated context (DAC=1, DAM=11). If the destination address is a | for the indicated context (DAC=1, DAM=11). If the destination | |||
| non-link-local address and not the latest registered, then 6LN MUST | address is a non-link-local address and not the latest registered, | |||
| either include the IID part fully in-line (DAM=01) or, if the first | then the 6LN MUST either include the IID part fully in-line (DAM=01) | |||
| 48-bits of IID match to the latest registered address, then elide | or, if the first 48-bits of the IID match to the latest registered | |||
| those 48-bits (DAM=10). | address, then elide those 48-bits (DAM=10). | |||
| 3.2.3.1. Remote destination example | 3.2.4.1. Remote destination example | |||
| When a 6LN transmits an IPv6 packet to a remote destination using | 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 Unicast IPv6 addresses, if a context is defined for the 6LN's | |||
| global IPv6 address, the 6LN has to indicate this context in the | global IPv6 address, the 6LN has to indicate this context in the | |||
| corresponding source fields of the compressed IPv6 header as per | corresponding source fields of the compressed IPv6 header as per | |||
| Section 3.1 of RFC 6282 [RFC6282], and has to elide the full IPv6 | Section 3.1 of RFC 6282 [RFC6282], and has to elide the full IPv6 | |||
| source address previously registered with ARO (if using the latest | source address previously registered with ARO (if using the latest | |||
| registered address, otherwise full or part of IID may have to be | registered address, otherwise part or all of the IID may have to be | |||
| transmitted in-line). For this, the 6LN MUST use the following | transmitted in-line). For this, the 6LN MUST use the following | |||
| settings in the IPv6 compressed header: SAC=1 and SAM=11. The CID | 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, | may be set 0 or 1, depending on which context is used. In this case, | |||
| the 6LBR can infer the elided IPv6 source address since 1) the 6LBR | 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 | has previously assigned the prefix to the 6LNs; and 2) the 6LBR | |||
| maintains a Neighbor Cache that relates the Device Address and the | maintains a Neighbor Cache that relates the Device Address and the | |||
| IID the device has registered with ARO. If a context is defined for | IID the device has registered with ARO. If a context is defined for | |||
| the IPv6 destination address, the 6LN has to also indicate this | the IPv6 destination address, the 6LN has to also indicate this | |||
| context in the corresponding destination fields of the compressed | context in the corresponding destination fields of the compressed | |||
| IPv6 header, and elide the prefix of or the full destination IPv6 | 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 | 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 | 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 | DAM=11 (if the context covers a full, 128-bit address). DAC MUST be | |||
| skipping to change at page 13, line 13 ¶ | skipping to change at page 14, line 7 ¶ | |||
| this, the 6LBR will set the DAM field of the IPv6 compressed header | 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 | 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 | 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 | address, the 6LBR needs to indicate this context in the source fields | |||
| of the compressed IPv6 header, and elide that prefix as well. For | 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 | 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 | 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 | (if the context covers a full, 128-bit address). SAC is to be set to | |||
| 1. | 1. | |||
| 3.2.3.2. Example of registration of multiple-addresses | 3.2.4.2. Example of registration of multiple-addresses | |||
| As described above, a 6LN can register multiple non-link-local | As described above, a 6LN can register multiple non-link-local | |||
| addresses that map to a same compression context. From the multiple | addresses that map to a same compression context. From the multiple | |||
| address registered, only the latest address can be fully elided | address registered, only the latest address can be fully elided | |||
| (SAM=11, DAM=11), and the IIDs of previously registered addresses | (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 | 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 | case can be partially elided (SAM=10, DAM=10). This is illustred in | |||
| an example below. | an example below. | |||
| 1) A 6LN registers first address 2001:db8::1111:2222:3333:4444 to a | 1) A 6LN registers first address 2001:db8::1111:2222:3333:4444 to a | |||
| skipping to change at page 13, line 35 ¶ | skipping to change at page 14, line 29 ¶ | |||
| SAM=11 or DAC=1/DAM=11. | SAM=11 or DAC=1/DAM=11. | |||
| 2) The 6LN registers second address 2001:db8::1111:2222:3333:5555 to | 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 | 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 | 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/ | 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 | DAM=10, as the first 112 bits of the address are the same between the | |||
| first and the second registered addresses. | first and the second registered addresses. | |||
| 3) Expiration of registration time for the first or the second | 3) Expiration of registration time for the first or the second | |||
| address has no impact on the compression. Hence even if secondly | address has no impact on the compression. Hence even if most | |||
| registered address expires, the first address can only be partially | recently registered address expires, the first address can only be | |||
| elided (SAC=1/SAM=10, DAC=1/DAM=10). The 6LN can register a new | partially elided (SAC=1/SAM=10, DAC=1/DAM=10). The 6LN can register | |||
| address, or re-register an expired address, to become able to again | a new address, or re-register an expired address, to become able to | |||
| fully elide an address. | again fully elide an address. | |||
| 3.2.4. Unicast and Multicast address mapping | 3.2.5. Unicast and Multicast address 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 nodes. Even in | traffic is always unicast between two Bluetooth LE nodes. Even in | |||
| the case where a 6LBR is attached to multiple 6LNs, the 6LBR cannot | 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 | 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 | 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- | and unicast it on each link. However, this may not be energy- | |||
| efficient and particular care must be taken if the central is | efficient and particular care must be taken if the central is | |||
| battery-powered. In the opposite direction, a 6LN always has to send | 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 | packets to or through 6LBR. Hence, when a 6LN needs to transmit an | |||
| skipping to change at page 15, line 43 ¶ | skipping to change at page 16, line 28 ¶ | |||
| The transmission of IPv6 over Bluetooth LE links has similar | The transmission of IPv6 over Bluetooth LE links has similar | |||
| requirements and concerns for security as for IEEE 802.15.4. | requirements and concerns for security as for IEEE 802.15.4. | |||
| Bluetooth LE Link Layer security considerations are covered by the | Bluetooth LE Link Layer security considerations are covered by the | |||
| IPSP [IPSP]. | IPSP [IPSP]. | |||
| Bluetooth LE Link Layer supports encryption and authentication by | Bluetooth LE Link Layer supports encryption and authentication by | |||
| using the Counter with CBC-MAC (CCM) mechanism [RFC3610] and a | using the Counter with CBC-MAC (CCM) mechanism [RFC3610] and a | |||
| 128-bit AES block cipher. Upper layer security mechanisms may | 128-bit AES block cipher. Upper layer security mechanisms may | |||
| exploit this functionality when it is available. (Note: CCM does not | exploit this functionality when it is available. (Note: CCM does not | |||
| consume bytes from the maximum per-packet L2CAP data size, since the | consume octets from the maximum per-packet L2CAP data size, since the | |||
| link layer data unit has a specific field for them when they are | link layer data unit has a specific field for them when they are | |||
| used.) | used.) | |||
| Key management in Bluetooth LE is provided by the Security Manager | Key management in Bluetooth LE is provided by the Security Manager | |||
| Protocol (SMP), as defined in [BTCorev4.1]. | Protocol (SMP), as defined in [BTCorev4.1]. | |||
| The IPv6 link-local address configuration described in Section 3.2.1 | The Direct Test Mode offers two setup alternatives: with and without | |||
| accessible HCI. In designs with accessible HCI, the so called upper | ||||
| tester communicates through the HCI (which may be supported by UART, | ||||
| USB and Secure Digital transports), with the Physical and Link Layers | ||||
| of the Bluetooth LE device under test. In designs without accessible | ||||
| HCI, the upper tester communicates with the device under test through | ||||
| a two-wire UART interface. The Bluetooth specification does not | ||||
| provide security mechanisms for the communication between the upper | ||||
| tester and the device under test in either case. Nevertheless, an | ||||
| attacker needs to physically connect a device (via one of the wired | ||||
| HCI types) to the device under test to be able to interact with the | ||||
| latter. | ||||
| The IPv6 link-local address configuration described in Section 3.2.2 | ||||
| strictly binds the privacy level of IPv6 link-local address to the | strictly binds the privacy level of IPv6 link-local address to the | |||
| privacy level device has selected for the Bluetooth LE. This means | privacy level device has selected for the Bluetooth LE. This means | |||
| that a device using Bluetooth privacy features will retain the same | that a device using Bluetooth privacy features will retain the same | |||
| level of privacy with generated IPv6 link-local addresses. | level of privacy with generated IPv6 link-local addresses. | |||
| Respectively, device not using privacy at Bluetooth level will not | Respectively, device not using privacy at Bluetooth level will not | |||
| have privacy at IPv6 link-local address either. For non-link local | have privacy at IPv6 link-local address either. For non-link local | |||
| addresses implementations have a choice to support, for example, | addresses implementations have a choice to support, for example, | |||
| [I-D.ietf-6man-default-iids], [RFC3972], [RFC4941] or [RFC5535]. | [I-D.ietf-6man-default-iids], [RFC3972], [RFC4941] or [RFC5535]. | |||
| A malicious 6LN may attempt to perform a denial of service attacks on | ||||
| the Bluetooth LE network, for example, by flooding packets. This | ||||
| sort of attack is mitigated by the fact that link-local multicast is | ||||
| not bridged between Bluetooth LE links and by 6LBR being able to rate | ||||
| limit packets sent by each 6LN by making smart use of Bluetooth LE | ||||
| L2CAP credit-based flow control mechanism. | ||||
| 6. Additional contributors | 6. Additional contributors | |||
| Kanji Kerai, Jari Mutikainen, David Canfeng-Chen and Minjun Xi from | Kanji Kerai, Jari Mutikainen, David Canfeng-Chen and Minjun Xi from | |||
| Nokia have contributed significantly to this document. | Nokia have contributed significantly to this document. | |||
| 7. Acknowledgements | 7. Acknowledgements | |||
| The Bluetooth, Bluetooth Smart and Bluetooth Smart Ready marks are | The Bluetooth, Bluetooth Smart and Bluetooth Smart Ready marks are | |||
| registred trademarks owned by Bluetooth SIG, Inc. | registred trademarks owned by Bluetooth SIG, Inc. | |||
| Samita Chakrabarti, Brian Haberman, Marcel De Kogel, Jouni Korhonen, | Samita Chakrabarti, Brian Haberman, Marcel De Kogel, Jouni Korhonen, | |||
| Erik Nordmark, Erik Rivard, Dave Thaler, Pascal Thubert, and Victor | Erik Nordmark, Erik Rivard, Dave Thaler, Pascal Thubert, Xavi | |||
| Zhodzishsky have provided valuable feedback for this draft. | Vilajosana and Victor Zhodzishsky have provided valuable feedback for | |||
| this draft. | ||||
| Authors would like to give special acknowledgements for Krishna | Authors would like to give special acknowledgements for Krishna | |||
| Shingala, Frank Berntsen, and Bluetooth SIG's Internet Working Group | Shingala, Frank Berntsen, and Bluetooth SIG's Internet Working Group | |||
| for providing significant feedback and improvement proposals for this | for providing significant feedback and improvement proposals for this | |||
| document. | document. | |||
| 8. References | 8. References | |||
| 8.1. Normative References | 8.1. Normative References | |||
| skipping to change at page 17, line 26 ¶ | skipping to change at page 18, line 32 ¶ | |||
| [RFC6775] Shelby, Z., Chakrabarti, S., Nordmark, E., and C. Bormann, | [RFC6775] Shelby, Z., Chakrabarti, S., Nordmark, E., and C. Bormann, | |||
| "Neighbor Discovery Optimization for IPv6 over Low-Power | "Neighbor Discovery Optimization for IPv6 over Low-Power | |||
| Wireless Personal Area Networks (6LoWPANs)", RFC 6775, | Wireless Personal Area Networks (6LoWPANs)", RFC 6775, | |||
| November 2012. | November 2012. | |||
| [RFC7136] Carpenter, B. and S. Jiang, "Significance of IPv6 | [RFC7136] Carpenter, B. and S. Jiang, "Significance of IPv6 | |||
| Interface Identifiers", RFC 7136, February 2014. | Interface Identifiers", RFC 7136, February 2014. | |||
| 8.2. Informative References | 8.2. Informative References | |||
| [fifteendotfour] | ||||
| IEEE Computer Society, "IEEE Std. 802.15.4-2011 IEEE | ||||
| Standard for Local and metropolitan area networks--Part | ||||
| 15.4: Low-Rate Wireless Personal Area Networks (LR- | ||||
| WPANs)", June 2011. | ||||
| [I-D.ietf-6man-default-iids] | [I-D.ietf-6man-default-iids] | |||
| Gont, F., Cooper, A., Thaler, D., and S. LIU, | Gont, F., Cooper, A., Thaler, D., and S. LIU, | |||
| "Recommendation on Stable IPv6 Interface Identifiers", | "Recommendation on Stable IPv6 Interface Identifiers", | |||
| draft-ietf-6man-default-iids-03 (work in progress), May | draft-ietf-6man-default-iids-03 (work in progress), May | |||
| 2015. | 2015. | |||
| [IEEE802-2001] | [IEEE802-2001] | |||
| Institute of Electrical and Electronics Engineers (IEEE), | Institute of Electrical and Electronics Engineers (IEEE), | |||
| "IEEE 802-2001 Standard for Local and Metropolitan Area | "IEEE 802-2001 Standard for Local and Metropolitan Area | |||
| Networks: Overview and Architecture", 2002. | Networks: Overview and Architecture", 2002. | |||
| End of changes. 72 change blocks. | ||||
| 229 lines changed or deleted | 284 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/ | ||||