idnits 2.17.1 draft-ietf-6lo-btle-13.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (May 22, 2015) is 3255 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) -- Possible downref: Non-RFC (?) normative reference: ref. 'IPSP' == Outdated reference: A later version (-16) exists of draft-ietf-6man-default-iids-03 -- Obsolete informational reference (is this intentional?): RFC 3315 (Obsoleted by RFC 8415) -- Obsolete informational reference (is this intentional?): RFC 3633 (Obsoleted by RFC 8415) -- Obsolete informational reference (is this intentional?): RFC 4941 (Obsoleted by RFC 8981) Summary: 0 errors (**), 0 flaws (~~), 2 warnings (==), 5 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 6Lo Working Group J. Nieminen 3 Internet-Draft T. Savolainen 4 Intended status: Standards Track M. Isomaki 5 Expires: November 23, 2015 Nokia 6 B. Patil 7 AT&T 8 Z. Shelby 9 Arm 10 C. Gomez 11 Universitat Politecnica de Catalunya/i2CAT 12 May 22, 2015 14 IPv6 over BLUETOOTH(R) Low Energy 15 draft-ietf-6lo-btle-13 17 Abstract 19 Bluetooth Smart is the brand name for the Bluetooth low energy 20 feature in the Bluetooth specification defined by the Bluetooth 21 Special Interest Group. The standard Bluetooth radio has been widely 22 implemented and available in mobile phones, notebook computers, audio 23 headsets and many other devices. The low power version of Bluetooth 24 is a specification that enables the use of this air interface with 25 devices such as sensors, smart meters, appliances, etc. The low 26 power variant of Bluetooth is standardized since the revision 4.0 of 27 the Bluetooth specifications, although version 4.1 or newer is 28 required for IPv6. This document describes how IPv6 is transported 29 over Bluetooth low energy using 6LoWPAN techniques. 31 Status of This Memo 33 This Internet-Draft is submitted in full conformance with the 34 provisions of BCP 78 and BCP 79. 36 Internet-Drafts are working documents of the Internet Engineering 37 Task Force (IETF). Note that other groups may also distribute 38 working documents as Internet-Drafts. The list of current Internet- 39 Drafts is at http://datatracker.ietf.org/drafts/current/. 41 Internet-Drafts are draft documents valid for a maximum of six months 42 and may be updated, replaced, or obsoleted by other documents at any 43 time. It is inappropriate to use Internet-Drafts as reference 44 material or to cite them other than as "work in progress." 46 This Internet-Draft will expire on November 23, 2015. 48 Copyright Notice 50 Copyright (c) 2015 IETF Trust and the persons identified as the 51 document authors. All rights reserved. 53 This document is subject to BCP 78 and the IETF Trust's Legal 54 Provisions Relating to IETF Documents 55 (http://trustee.ietf.org/license-info) in effect on the date of 56 publication of this document. Please review these documents 57 carefully, as they describe your rights and restrictions with respect 58 to this document. Code Components extracted from this document must 59 include Simplified BSD License text as described in Section 4.e of 60 the Trust Legal Provisions and are provided without warranty as 61 described in the Simplified BSD License. 63 Table of Contents 65 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 66 1.1. Terminology and Requirements Language . . . . . . . . . . 3 67 2. Bluetooth Low Energy . . . . . . . . . . . . . . . . . . . . 3 68 2.1. Bluetooth LE stack . . . . . . . . . . . . . . . . . . . 4 69 2.2. Link layer roles and topology . . . . . . . . . . . . . . 5 70 2.3. Bluetooth LE device addressing . . . . . . . . . . . . . 5 71 2.4. Bluetooth LE packets sizes and MTU . . . . . . . . . . . 6 72 3. Specification of IPv6 over Bluetooth Low Energy . . . . . . . 6 73 3.1. Protocol stack . . . . . . . . . . . . . . . . . . . . . 7 74 3.2. Link model . . . . . . . . . . . . . . . . . . . . . . . 7 75 3.2.1. Stateless address autoconfiguration . . . . . . . . . 8 76 3.2.2. Neighbor discovery . . . . . . . . . . . . . . . . . 10 77 3.2.3. Header compression . . . . . . . . . . . . . . . . . 11 78 3.2.3.1. Remote destination example . . . . . . . . . . . 12 79 3.2.3.2. Example of registration of multiple-addresses . . 13 80 3.2.4. Unicast and Multicast address mapping . . . . . . . . 13 81 3.3. Subnets and Internet connectivity scenarios . . . . . . . 14 82 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 83 5. Security Considerations . . . . . . . . . . . . . . . . . . . 15 84 6. Additional contributors . . . . . . . . . . . . . . . . . . . 16 85 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 16 86 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 16 87 8.1. Normative References . . . . . . . . . . . . . . . . . . 16 88 8.2. Informative References . . . . . . . . . . . . . . . . . 17 89 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 18 91 1. Introduction 93 Bluetooth low energy (LE) is a radio technology targeted for devices 94 that operate with coin cell batteries or minimalistic power sources, 95 which means that low power consumption is essential. Bluetooth LE is 96 especially attractive technology for Internet of Things applications, 97 such as health monitors, environmental sensing, proximity 98 applications and many others. 100 Considering the potential for the exponential growth in the number of 101 sensors and Internet connected devices, IPv6 is an ideal protocol due 102 to the large address space it provides. In addition, IPv6 provides 103 tools for stateless address autoconfiguration, which is particularly 104 suitable for sensor network applications and nodes which have very 105 limited processing power or lack a full-fledged operating system. 107 RFCs 4944, 6282, and 6775 [RFC4944][RFC6282][RFC6775] specify the 108 transmission of IPv6 over IEEE 802.15.4. The Bluetooth LE link in 109 many respects has similar characteristics to that of IEEE 802.15.4 110 and many of the mechanisms defined for the IPv6 over IEEE 802.15.4 111 can be applied to the transmission of IPv6 on Bluetooth LE links. 112 This document specifies the details of IPv6 transmission over 113 Bluetooth LE links. 115 1.1. Terminology and Requirements Language 117 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 118 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 119 document are to be interpreted as described in RFC 2119 [RFC2119]. 121 The terms 6LN, 6LR and 6LBR are defined as in [RFC6775], with an 122 addition that Bluetooth LE central and Bluetooth LE peripheral (see 123 Section 2.2) can both be either 6LN or 6LBR. 125 2. Bluetooth Low Energy 127 Bluetooth LE is designed for transferring small amounts of data 128 infrequently at modest data rates at a very low cost per bit. 129 Bluetooth Special Interest Group (Bluetooth SIG) has introduced two 130 trademarks, Bluetooth Smart for single-mode devices (a device that 131 only supports Bluetooth LE) and Bluetooth Smart Ready for dual-mode 132 devices (devices that support both Bluetooth and Bluetooth LE). In 133 the rest of the document, the term Bluetooth LE refers to both types 134 of devices. 136 Bluetooth LE was introduced in Bluetooth 4.0, enhanced in Bluetooth 137 4.1 [BTCorev4.1], and developed even further in successive versions. 138 Bluetooth SIG has also published Internet Protocol Support Profile 139 (IPSP) [IPSP], which includes Internet Protocol Support Service 140 (IPSS). The IPSP enables discovery of IP-enabled devices and 141 establishment of link-layer connection for transporting IPv6 packets. 142 IPv6 over Bluetooth LE is dependent on both Bluetooth 4.1 and IPSP 143 1.0 or newer. 145 Devices such as mobile phones, notebooks, tablets and other handheld 146 computing devices which will include Bluetooth 4.1 chipsets will also 147 have the low-energy functionality of Bluetooth. Bluetooth LE will 148 also be included in many different types of accessories that 149 collaborate with mobile devices such as phones, tablets and notebook 150 computers. An example of a use case for a Bluetooth LE accessory is 151 a heart rate monitor that sends data via the mobile phone to a server 152 on the Internet. 154 2.1. Bluetooth LE stack 156 The lower layer of the Bluetooth LE stack consists of the Physical 157 (PHY), the Link Layer (LL), and a test interface called the Direct 158 Test Mode (DTM). The Physical Layer transmits and receives the 159 actual packets. The Link Layer is responsible for providing medium 160 access, connection establishment, error control and flow control. 161 The Direct Test Mode is only used for testing purposes. The upper 162 layer consists of the Logical Link Control and Adaptation Protocol 163 (L2CAP), Attribute Protocol (ATT), Security Manager (SM), Generic 164 Attribute Profile (GATT) and Generic Access Profile (GAP) as shown in 165 Figure 1. The device internal Host Controller Interface (HCI) 166 separates the lower layers, often implemented in the Bluetooth 167 controller, from higher layers, often implemented in the host stack. 168 GATT and Bluetooth LE profiles together enable the creation of 169 applications in a standardized way without using IP. L2CAP provides 170 multiplexing capability by multiplexing the data channels from the 171 above layers. L2CAP also provides fragmentation and reassembly for 172 large data packets. The Security Manager defines a protocol and 173 mechanisms for pairing, key distribution and a security toolbox for 174 the Bluetooth LE device. 176 +-------------------------------------------------+ 177 | Applications | 178 +---------------------------------------+---------+ 179 | Generic Attribute Profile | Generic | 180 +--------------------+------------------+ Access | 181 | Attribute Protocol | Security Manager | Profile | 182 +--------------------+------------------+---------+ 183 | Logical Link Control and Adaptation Protocol | 184 - - -+-----------------------+-------------------------+- - - HCI 185 | Link Layer | Direct Test Mode | 186 +-------------------------------------------------+ 187 | Physical Layer | 188 +-------------------------------------------------+ 190 Figure 1: Bluetooth LE Protocol Stack 192 As shown in Section 3.1, IPv6 over Bluetooth LE requires an adapted 193 6LoWPAN layer which runs on top of Bluetooth LE L2CAP. 195 2.2. Link layer roles and topology 197 Bluetooth LE defines two GAP roles of relevance herein: the Bluetooth 198 LE central role and the Bluetooth LE peripheral role. A device in 199 the central role, which is called central from now on, has 200 traditionally been able to manage multiple simultaneous connections 201 with a number of devices in the peripheral role, called peripherals 202 from now on. A peripheral is commonly connected to a single central, 203 but since Bluetooth 4.1 can also connect to multiple centrals. In 204 this document for IPv6 networking purposes the Bluetooth LE network 205 (i.e. a Bluetooth LE piconet) follows a star topology shown in the 206 Figure 2, where the router typically implements the Bluetooth LE 207 central role and nodes implement the Bluetooth LE peripheral role. 208 In the future mesh networking may be defined for IPv6 over Bluetooth 209 LE. 211 Peripheral --. .-- Peripheral 212 \ / 213 Peripheral ---- Central ---- Peripheral 214 / \ 215 Peripheral --' '-- Peripheral 217 Figure 2: Bluetooth LE Star Topology 219 In Bluetooth LE, direct wireless communication only takes place 220 between a central and a peripheral. This means that inherently the 221 Bluetooth LE star represents a hub and spokes link model. 222 Nevertheless, two peripherals may communicate through the central by 223 using IP routing functionality per this specification. 225 2.3. Bluetooth LE device addressing 227 Every Bluetooth LE device is identified by a 48-bit device address. 228 The Bluetooth specification describes the device address of a 229 Bluetooth LE device as:"Devices are identified using a device 230 address. Device addresses may be either a public device address or a 231 random device address." [BTCorev4.1]. The public device addresses 232 are based on the IEEE 802-2001 standard [IEEE802-2001]. The random 233 device addresses are generated as defined in the Bluetooth 234 specification. This typically happens at every power cycle of a 235 device. In random addresses all 48 bits are randomized. Bluetooth 236 LE does not support device address collision avoidance or detection. 237 However, these 48 bit random device addresses have a very small 238 probability of being in conflict within a typical deployment. 240 2.4. Bluetooth LE packets sizes and MTU 242 Optimal MTU defined for L2CAP fixed channels over Bluetooth LE is 27 243 bytes including the L2CAP header of four bytes. Default MTU for 244 Bluetooth LE is hence defined to be 27 bytes. Therefore, excluding 245 L2CAP header of four bytes, protocol data unit (PDU) size of 23 bytes 246 is available for upper layers. In order to be able to transmit IPv6 247 packets of 1280 bytes or larger, link layer fragmentation and 248 reassembly solution is provided by the L2CAP layer. The IPSP defines 249 means for negotiating up a link-layer connection that provides MTU of 250 1280 bytes or higher for the IPv6 layer [IPSP]. The link-layer MTU 251 is negotiated separately for each direction. Implementations that 252 require single link-layer MTU value SHALL use the smallest of the 253 possibly different MTU values. 255 3. Specification of IPv6 over Bluetooth Low Energy 257 Bluetooth LE technology sets strict requirements for low power 258 consumption and thus limits the allowed protocol overhead. 6LoWPAN 259 standards [RFC6775], and [RFC6282] provide useful functionality for 260 reducing overhead, which are applied to Bluetooth LE. This 261 functionality comprises of link-local IPv6 addresses and stateless 262 IPv6 address autoconfiguration (see Section 3.2.1), Neighbor 263 Discovery (see Section 3.2.2) and header compression (see 264 Section 3.2.3). Fragmentation features from 6LoWPAN standards are 265 not used due Bluetooth LE's link layer fragmentation support (see 266 Section 2.4). 268 A significant difference between IEEE 802.15.4 and Bluetooth LE is 269 that the former supports both star and mesh topology (and requires a 270 routing protocol), whereas Bluetooth LE does not currently support 271 the formation of multihop networks at the link layer. However, 272 inter- peripheral communication through the central is enabled by 273 using IP routing functionality per this specification. 275 In Bluetooth LE a central node is assumed to be less constrained than 276 a peripheral node. Hence, in the primary deployment scenario central 277 and peripheral will act as 6LoWPAN Border Router (6LBR) and a 6LoWPAN 278 Node (6LN), respectively. 280 Before any IP-layer communications can take place over Bluetooth LE, 281 Bluetooth LE enabled nodes such as 6LNs and 6LBRs have to find each 282 other and establish a suitable link-layer connection. The discovery 283 and Bluetooth LE connection setup procedures are documented by 284 Bluetooth SIG in the IPSP specification [IPSP]. 286 In the rare case of Bluetooth LE random device address conflict, a 287 6LBR can detect multiple 6LNs with the same Bluetooth LE device 288 address, as well as a 6LN with the same Bluetooth LE address as the 289 6LBR. The 6LBR MUST ignore 6LNs with the same device address the 290 6LBR has, and the 6LBR MUST have at most one connection for a given 291 Bluetooth LE device address at any given moment. This will avoid 292 addressing conflicts within a Bluetooth LE network. The IPSP depends 293 on Bluetooth version 4.1, and hence both Bluetooth version 4.1, or 294 newer, and IPSP version 1.0, or newer, are required for IPv6 295 communications. 297 3.1. Protocol stack 299 Figure 3 illustrates how IPv6 stack works in parallel to GATT stack 300 on top of Bluetooth LE L2CAP layer. GATT stack is needed herein for 301 discovering nodes supporting Internet Protocol Support Service. UDP 302 and TCP are provided as examples of transport protocols, but the 303 stack can be used by any other upper layer protocol capable of 304 running atop of IPv6. 306 +---------+ +----------------------------+ 307 | IPSS | | UDP/TCP/other | 308 +---------+ +----------------------------+ 309 | GATT | | IPv6 | 310 +---------+ +----------------------------+ 311 | ATT | | 6LoWPAN for Bluetooth LE | 312 +---------+--+----------------------------+ 313 | Bluetooth LE L2CAP | 314 - - +-----------------------------------------+- - - HCI 315 | Bluetooth LE Link Layer | 316 +-----------------------------------------+ 317 | Bluetooth LE Physical | 318 +-----------------------------------------+ 320 Figure 3: IPv6 and IPSS on Bluetooth LE Stack 322 3.2. Link model 324 The concept of IPv6 link (layer 3) and the physical link (combination 325 of PHY and MAC) needs to be clear and the relationship has to be well 326 understood in order to specify the addressing scheme for transmitting 327 IPv6 packets over the Bluetooth LE link. RFC 4861 [RFC4861] defines 328 a link as "a communication facility or medium over which nodes can 329 communicate at the link layer, i.e., the layer immediately below 330 IPv6." 332 In the case of Bluetooth LE, 6LoWPAN layer is adapted to support 333 transmission of IPv6 packets over Bluetooth LE. The IPSP defines all 334 steps required for setting up the Bluetooth LE connection over which 335 6LoWPAN can function [IPSP], including handling the link-layer 336 fragmentation required on Bluetooth LE, as described in Section 2.4. 337 Even though MTUs larger than 1280 bytes can be supported, use of 1280 338 byte is RECOMMENDED in order to avoid need for Path MTU discovery 339 procedures. 341 While Bluetooth LE protocols, such as L2CAP, utilize little-endian 342 byte orderering, IPv6 packets MUST be transmitted in big endian order 343 (network byte order). 345 Per this specification, the IPv6 header compression format specified 346 in RFC 6282 MUST be used [RFC6282]. The IPv6 payload length can be 347 derived from the L2CAP header length and the possibly elided IPv6 348 address can be reconstructed from the link-layer address, used at the 349 time of Bluetooth LE connection establishment, from the HCI 350 Connection Handle during connection, compression context if any, and 351 from address registration information (see Section 3.2.2). 353 Bluetooth LE connections used to build a star topology are point-to- 354 point in nature, as Bluetooth broadcast features are not used for 355 IPv6 over Bluetooth LE (except for discovery of nodes supporting 356 IPSS). As the IPv6 over Bluetooth LE is intended for constrained 357 nodes, and for Internet of Things use cases and environments, 358 multilink model's benefits are considered to overweight multilink 359 model's drawbacks described in RFC 4903 [RFC4903]. Hence a multilink 360 model has been chosen, as further illustrated in Section 3.3. 361 Because of this, link-local multicast communications can happen only 362 within a single Bluetooth LE connection, and thus 6LN-to-6LN 363 communications using link-local addresses are not possible. 6LNs 364 connected to the same 6LBR has to communicate with each other by 365 using the shared prefix used on the subnet. The 6LBR ensures address 366 collisions do not occur (see Section 3.2.2) and forwards packets sent 367 by one 6LN to another. 369 After the peripheral and central have connected at the Bluetooth LE 370 level, the link can be considered up and IPv6 address configuration 371 and transmission can begin. 373 3.2.1. Stateless address autoconfiguration 375 At network interface initialization, both 6LN and 6LBR SHALL generate 376 and assign to the Bluetooth LE network interface IPv6 link-local 377 addresses [RFC4862] based on the 48-bit Bluetooth device addresses 378 (see Section 2.3) that were used for establishing underlying 379 Bluetooth LE connection. Following guidance of [RFC7136], a 64-bit 380 Interface Identifier (IID) is formed from 48-bit Bluetooth device 381 address by inserting two octets, with hexadecimal values of 0xFF and 382 0xFE in the middle of the 48-bit Bluetooth device address as shown in 383 Figure 4. In the Figure letter 'b' represents a bit from Bluetooth 384 device address, copied as is without any changes on any bit. This 385 means that no bit in IID indicates whether the underlying Bluetooth 386 device address is public or random. 388 |0 1|1 3|3 4|4 6| 389 |0 5|6 1|2 7|8 3| 390 +----------------+----------------+----------------+----------------+ 391 |bbbbbbbbbbbbbbbb|bbbbbbbb11111111|11111110bbbbbbbb|bbbbbbbbbbbbbbbb| 392 +----------------+----------------+----------------+----------------+ 394 Figure 4: Formation of IID from Bluetooth device adddress 396 The IID is then appended with prefix fe80::/64, as described in RFC 397 4291 [RFC4291] and as depicted in Figure 5. The same link-local 398 address SHALL be used for the lifetime of the Bluetooth LE L2CAP 399 channel. (After Bluetooth LE logical link has been established, it 400 is referenced with a Connection Handle in HCI. Thus possibly 401 changing device addresses do not impact data flows within existing 402 L2CAP channel. Hence there is no need to change IPv6 link-local 403 addresses even if devices change their random device addresses during 404 L2CAP channel lifetime). 406 10 bits 54 bits 64 bits 407 +----------+-----------------+----------------------+ 408 |1111111010| zeros | Interface Identifier | 409 +----------+-----------------+----------------------+ 411 Figure 5: IPv6 link-local address in Bluetooth LE 413 A 6LN MUST join the all-nodes multicast address. There is no need 414 for 6LN to join the solicited-node multicast address, since 6LBR will 415 know device addresses and hence link-local addresses of all connected 416 6LNs. The 6LBR will ensure no two devices with the same Bluetooth LE 417 device address are connected at the same time. Effectively duplicate 418 address detection for link-local addresses is performed by the 6LBR's 419 software responsible of discovery of IP-enabled Bluetooth LE nodes 420 and of starting Bluetooth LE connection establishment procedures. 421 This approach increases complexity of 6LBR, but reduces power 422 consumption on both 6LN and 6LBR at link establishment phase by 423 reducing number of mandatory packet transmissions. 425 After link-local address configuration, 6LN sends Router Solicitation 426 messages as described in [RFC4861] Section 6.3.7. 428 For non-link-local addresses a 64-bit IID MAY be formed by utilizing 429 the 48-bit Bluetooth device address. A 6LN can also use a randomly 430 generated IID (see Section 3.2.2), for example, as discussed in 431 [I-D.ietf-6man-default-iids], or use alternatice schemes such as 432 Cryptographically Generated Addresses (CGA) [RFC3972], privacy 433 extensions [RFC4941], Hash-Based Addresses (HBA, [RFC5535]), or 434 DHCPv6 [RFC3315]. The non-link-local addresses 6LN generates MUST be 435 registered with 6LBR as described in Section 3.2.2. 437 The tool for a 6LBR to obtain an IPv6 prefix for numbering the 438 Bluetooth LE network is out of scope of this document, but can be, 439 for example, accomplished via DHCPv6 Prefix Delegation [RFC3633] or 440 by using Unique Local IPv6 Unicast Addresses (ULA) [RFC4193]. Due to 441 the link model of the Bluetooth LE (see Section 2.2) the 6LBR MUST 442 set the "on-link" flag (L) to zero in the Prefix Information Option 443 [RFC4861]. This will cause 6LNs to always send packets to the 6LBR, 444 including the case when the destination is another 6LN using the same 445 prefix. 447 3.2.2. Neighbor discovery 449 'Neighbor Discovery Optimization for IPv6 over Low-Power Wireless 450 Personal Area Networks (6LoWPANs)' [RFC6775] describes the neighbor 451 discovery approach as adapted for use in several 6LoWPAN topologies, 452 including the mesh topology. Bluetooth LE does not support mesh 453 networks and hence only those aspects that apply to a star topology 454 are considered. 456 The following aspects of the Neighbor Discovery optimizations 457 [RFC6775] are applicable to Bluetooth LE 6LNs: 459 1. A Bluetooth LE 6LN MUST NOT register its link-local address. A 460 Bluetooth LE 6LN MUST register its non-link-local addresses with the 461 6LBR by sending a Neighbor Solicitation (NS) message with the Address 462 Registration Option (ARO) and process the Neighbor Advertisement (NA) 463 accordingly. The NS with the ARO option MUST be sent irrespective of 464 the method used to generate the IID. If the 6LN registers for a same 465 compression context multiple addresses that are not based on 466 Bluetooth device address, the header compression efficiency will 467 decrease (see Section 3.2.3). 469 2. For sending Router Solicitations and processing Router 470 Advertisements the Bluetooth LE 6LNs MUST, respectively, follow 471 Sections 5.3 and 5.4 of the [RFC6775]. 473 3.2.3. Header compression 475 Header compression as defined in RFC 6282 [RFC6282], which specifies 476 the compression format for IPv6 datagrams on top of IEEE 802.15.4, is 477 REQUIRED in this document as the basis for IPv6 header compression on 478 top of Bluetooth LE. All headers MUST be compressed according to RFC 479 6282 [RFC6282] encoding formats. 481 The Bluetooth LE's star topology structure and ARO can be exploited 482 in order to provide a mechanism for address compression. The 483 following text describes the principles of IPv6 address compression 484 on top of Bluetooth LE. 486 The ARO option requires use of EUI-64 identifier [RFC6775]. In the 487 case of Bluetooth LE, the field SHALL be filled with the 48-bit 488 device address used by the Bluetooth LE node converted into 64-bit 489 Modified EUI-64 format [RFC4291]. 491 To enable efficient header compression, the 6LBR MUST include 6LoWPAN 492 Context Option (6CO) [RFC6775] for all prefixes the 6LBR advertises 493 in Router Advertisements for use in stateless address 494 autoconfiguration. 496 When a 6LN is sending a packet to or through a 6LBR, it MUST fully 497 elide the source address if it is a link-local address. A non-link- 498 local source address 6LN has registered with ARO to the 6LBR for the 499 indicated prefix MUST be fully elided if the source address is the 500 latest address 6LN has registered for the indicated prefix. If a 501 source non-link-local address is not the latest registered, then the 502 64-bits of the IID SHALL be fully carried in-line (SAC=01) or if the 503 first 48-bits of the IID match with the latest registered address, 504 then the last 16-bits of the IID SHALL be carried in-line (SAC=10). 505 That is, if SAC=0 and SAM=11 the 6LN MUST be using the link-local 506 IPv6 address derived from Bluetooth LE device address, and if SAC=1 507 and SAM=11 the 6LN MUST have registered the source IPv6 address with 508 the prefix related to compression context and the 6LN MUST be 509 referring to the latest registered address related to compression 510 context. The IPv6 address MUST be considered to be registered only 511 after the 6LBR has sent Neighbor Advertisement with ARO having status 512 field set to success. The destination IPv6 address MUST be fully 513 elided if the destination address is 6LBR's link-local-address based 514 on the 6LBR's Bluetooth device address (DAC=0, DAM=11). The 515 destination IPv6 address MUST be fully or partially elided if context 516 has been set up for the destination address. For example, DAC=0 and 517 DAM=01 when destination prefix is link-local, and DAC=1 and DAM=01 if 518 compression context has been configured for the used destination 519 prefix. 521 When a 6LBR is transmitting packets to 6LN, it MUST fully elide the 522 source IID if the source IPv6 address is the link-local address based 523 on 6LBR's Bluetooth device address (SAC=0, SAM=11), and it MUST elide 524 the source prefix or address if a compression context related to the 525 IPv6 source address has been set up. The 6LBR also MUST fully elide 526 the destination IPv6 address if it is the link-local-address based on 527 6LN's Bluetooth device address (DAC=0, DAM=11), or if the destination 528 address is the latest registered by the 6LN with ARO for the 529 indicated context (DAC=1, DAM=11). If the destination address is a 530 non-link-local address and not the latest registered, then 6LN MUST 531 either include the IID part fully in-line (DAM=01) or, if the first 532 48-bits of IID match to the latest registered address, then elide 533 those 48-bits (DAM=10). 535 3.2.3.1. Remote destination example 537 When a 6LN transmits an IPv6 packet to a remote destination using 538 global Unicast IPv6 addresses, if a context is defined for the 6LN's 539 global IPv6 address, the 6LN has to indicate this context in the 540 corresponding source fields of the compressed IPv6 header as per 541 Section 3.1 of RFC 6282 [RFC6282], and has to elide the full IPv6 542 source address previously registered with ARO (if using the latest 543 registered address, otherwise full or part of IID may have to be 544 transmitted in-line). For this, the 6LN MUST use the following 545 settings in the IPv6 compressed header: SAC=1 and SAM=11. The CID 546 may be set 0 or 1, depending which context is used. In this case, 547 the 6LBR can infer the elided IPv6 source address since 1) the 6LBR 548 has previously assigned the prefix to the 6LNs; and 2) the 6LBR 549 maintains a Neighbor Cache that relates the Device Address and the 550 IID the device has registered with ARO. If a context is defined for 551 the IPv6 destination address, the 6LN has to also indicate this 552 context in the corresponding destination fields of the compressed 553 IPv6 header, and elide the prefix of or the full destination IPv6 554 address. For this, the 6LN MUST set the DAM field of the compressed 555 IPv6 header as DAM=01 (if the context covers a 64-bit prefix) or as 556 DAM=11 (if the context covers a full, 128-bit address). DAC MUST be 557 set to 1. Note that when a context is defined for the IPv6 558 destination address, the 6LBR can infer the elided destination prefix 559 by using the context. 561 When a 6LBR receives an IPv6 packet sent by a remote node outside the 562 Bluetooth LE network, and the destination of the packet is a 6LN, if 563 a context is defined for the prefix of the 6LN's global IPv6 address, 564 the 6LBR has to indicate this context in the corresponding 565 destination fields of the compressed IPv6 header. The 6LBR has to 566 elide the IPv6 destination address of the packet before forwarding 567 it, if the IPv6 destination address is inferable by the 6LN. For 568 this, the 6LBR will set the DAM field of the IPv6 compressed header 569 as DAM=11 (if the address is the latest 6LN has registered). DAC 570 needs to be set to 1. If a context is defined for the IPv6 source 571 address, the 6LBR needs to indicate this context in the source fields 572 of the compressed IPv6 header, and elide that prefix as well. For 573 this, the 6LBR needs to set the SAM field of the IPv6 compressed 574 header as SAM=01 (if the context covers a 64-bit prefix) or SAM=11 575 (if the context covers a full, 128-bit address). SAC is to be set to 576 1. 578 3.2.3.2. Example of registration of multiple-addresses 580 As described above, a 6LN can register multiple non-link-local 581 addresses that map to a same compression context. From the multiple 582 address registered, only the latest address can be fully elided 583 (SAM=11, DAM=11), and the IIDs of previously registered addresses 584 have to be transmitted fully in-line (SAM=01, DAM=01) or in the best 585 case can be partially elided (SAM=10, DAM=10). This is illustred in 586 an example below. 588 1) A 6LN registers first address 2001:db8::1111:2222:3333:4444 to a 589 6LBR. At this point the address can be fully elided using SAC=1/ 590 SAM=11 or DAC=1/DAM=11. 592 2) The 6LN registers second address 2001:db8::1111:2222:3333:5555 to 593 the 6LBR. As the second address is now the latest registered, it can 594 be fully elided using SAC=1/SAM=11 or DAC=1/DAM=11. The first 595 address can now be partially elided using SAC=1/SAM=10 or DAC=1/ 596 DAM=10, as the first 112 bits of the address are the same between the 597 first and the second registered addresses. 599 3) Expiration of registration time for the first or the second 600 address has no impact on the compression. Hence even if secondly 601 registered address expires, the first address can only be partially 602 elided (SAC=1/SAM=10, DAC=1/DAM=10). The 6LN can register a new 603 address, or re-register an expired address, to become able to again 604 fully elide an address. 606 3.2.4. Unicast and Multicast address mapping 608 The Bluetooth LE link layer does not support multicast. Hence 609 traffic is always unicast between two Bluetooth LE nodes. Even in 610 the case where a 6LBR is attached to multiple 6LNs, the 6LBR cannot 611 do a multicast to all the connected 6LNs. If the 6LBR needs to send 612 a multicast packet to all its 6LNs, it has to replicate the packet 613 and unicast it on each link. However, this may not be energy- 614 efficient and particular care must be taken if the central is 615 battery-powered. In the opposite direction, a 6LN always has to send 616 packets to or through 6LBR. Hence, when a 6LN needs to transmit an 617 IPv6 multicast packet, the 6LN will unicast the corresponding 618 Bluetooth LE packet to the 6LBR. 620 3.3. Subnets and Internet connectivity scenarios 622 In a typical scenario, the Bluetooth LE network is connected to the 623 Internet as shown in the Figure 6. In this scenario, the Bluetooth 624 LE star is deployed as one subnet, using one /64 IPv6 prefix, with 625 each spoke representing individual link. The 6LBR is acting as 626 router and forwarding packets between 6LNs and to and from Internet. 628 / 629 .---------------. / 630 / 6LN \ / 631 / \ \ / 632 | \ | / 633 | 6LN ----------- 6LBR ----- | Internet 634 | <--Link--> / | \ 635 \ / / \ 636 \ 6LN / \ 637 '---------------' \ 638 \ 640 <------ Subnet -----><-- IPv6 connection --> 641 to Internet 643 Figure 6: Bluetooth LE network connected to the Internet 645 In some scenarios, the Bluetooth LE network may transiently or 646 permanently be an isolated network as shown in the Figure 7. In this 647 case the whole star consist of a single subnet with multiple links, 648 where 6LBR is at central routing packets between 6LNs. 650 .-------------------. 651 / \ 652 / 6LN 6LN \ 653 / \ / \ 654 | \ / | 655 | 6LN --- 6LBR --- 6LN | 656 | / \ | 657 \ / \ / 658 \ 6LN 6LN / 659 \ / 660 '-------------------' 661 <--------- Subnet ----------> 663 Figure 7: Isolated Bluetooth LE network 665 It is also possible to have point-to-point connection between two 666 6LNs, one of which being central and another being peripheral. 667 Similarly, it is possible to have point-to-point connections between 668 two 6LBRs, one of which being central and another being peripheral. 670 At this point in time mesh networking with Bluetooth LE is not 671 specified. 673 4. IANA Considerations 675 There are no IANA considerations related to this document. 677 5. Security Considerations 679 The transmission of IPv6 over Bluetooth LE links has similar 680 requirements and concerns for security as for IEEE 802.15.4. 681 Bluetooth LE Link Layer security considerations are covered by the 682 IPSP [IPSP]. 684 Bluetooth LE Link Layer supports encryption and authentication by 685 using the Counter with CBC-MAC (CCM) mechanism [RFC3610] and a 686 128-bit AES block cipher. Upper layer security mechanisms may 687 exploit this functionality when it is available. (Note: CCM does not 688 consume bytes from the maximum per-packet L2CAP data size, since the 689 link layer data unit has a specific field for them when they are 690 used.) 692 Key management in Bluetooth LE is provided by the Security Manager 693 Protocol (SMP), as defined in [BTCorev4.1]. 695 The IPv6 link-local address configuration described in Section 3.2.1 696 strictly binds the privacy level of IPv6 link-local address to the 697 privacy level device has selected for the Bluetooth LE. This means 698 that a device using Bluetooth privacy features will retain the same 699 level of privacy with generated IPv6 link-local addresses. 700 Respectively, device not using privacy at Bluetooth level will not 701 have privacy at IPv6 link-local address either. For non-link local 702 addresses implementations have a choice to support, for example, 703 [I-D.ietf-6man-default-iids], [RFC3972], [RFC4941] or [RFC5535]. 705 6. Additional contributors 707 Kanji Kerai, Jari Mutikainen, David Canfeng-Chen and Minjun Xi from 708 Nokia have contributed significantly to this document. 710 7. Acknowledgements 712 The Bluetooth, Bluetooth Smart and Bluetooth Smart Ready marks are 713 registred trademarks owned by Bluetooth SIG, Inc. 715 Samita Chakrabarti, Brian Haberman, Marcel De Kogel, Jouni Korhonen, 716 Erik Nordmark, Erik Rivard, Dave Thaler, Pascal Thubert, and Victor 717 Zhodzishsky have provided valuable feedback for this draft. 719 Authors would like to give special acknowledgements for Krishna 720 Shingala, Frank Berntsen, and Bluetooth SIG's Internet Working Group 721 for providing significant feedback and improvement proposals for this 722 document. 724 8. References 726 8.1. Normative References 728 [BTCorev4.1] 729 Bluetooth Special Interest Group, "Bluetooth Core 730 Specification Version 4.1", December 2013, 731 . 734 [IPSP] Bluetooth Special Interest Group, "Bluetooth Internet 735 Protocol Support Profile Specification Version 1.0.0", 736 December 2014, . 739 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 740 Requirement Levels", BCP 14, RFC 2119, March 1997. 742 [RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing 743 Architecture", RFC 4291, February 2006. 745 [RFC4861] Narten, T., Nordmark, E., Simpson, W., and H. Soliman, 746 "Neighbor Discovery for IP version 6 (IPv6)", RFC 4861, 747 September 2007. 749 [RFC4862] Thomson, S., Narten, T., and T. Jinmei, "IPv6 Stateless 750 Address Autoconfiguration", RFC 4862, September 2007. 752 [RFC6282] Hui, J. and P. Thubert, "Compression Format for IPv6 753 Datagrams over IEEE 802.15.4-Based Networks", RFC 6282, 754 September 2011. 756 [RFC6775] Shelby, Z., Chakrabarti, S., Nordmark, E., and C. Bormann, 757 "Neighbor Discovery Optimization for IPv6 over Low-Power 758 Wireless Personal Area Networks (6LoWPANs)", RFC 6775, 759 November 2012. 761 [RFC7136] Carpenter, B. and S. Jiang, "Significance of IPv6 762 Interface Identifiers", RFC 7136, February 2014. 764 8.2. Informative References 766 [I-D.ietf-6man-default-iids] 767 Gont, F., Cooper, A., Thaler, D., and S. LIU, 768 "Recommendation on Stable IPv6 Interface Identifiers", 769 draft-ietf-6man-default-iids-03 (work in progress), May 770 2015. 772 [IEEE802-2001] 773 Institute of Electrical and Electronics Engineers (IEEE), 774 "IEEE 802-2001 Standard for Local and Metropolitan Area 775 Networks: Overview and Architecture", 2002. 777 [RFC3315] Droms, R., Bound, J., Volz, B., Lemon, T., Perkins, C., 778 and M. Carney, "Dynamic Host Configuration Protocol for 779 IPv6 (DHCPv6)", RFC 3315, July 2003. 781 [RFC3610] Whiting, D., Housley, R., and N. Ferguson, "Counter with 782 CBC-MAC (CCM)", RFC 3610, September 2003. 784 [RFC3633] Troan, O. and R. Droms, "IPv6 Prefix Options for Dynamic 785 Host Configuration Protocol (DHCP) version 6", RFC 3633, 786 December 2003. 788 [RFC3972] Aura, T., "Cryptographically Generated Addresses (CGA)", 789 RFC 3972, March 2005. 791 [RFC4193] Hinden, R. and B. Haberman, "Unique Local IPv6 Unicast 792 Addresses", RFC 4193, October 2005. 794 [RFC4903] Thaler, D., "Multi-Link Subnet Issues", RFC 4903, June 795 2007. 797 [RFC4941] Narten, T., Draves, R., and S. Krishnan, "Privacy 798 Extensions for Stateless Address Autoconfiguration in 799 IPv6", RFC 4941, September 2007. 801 [RFC4944] Montenegro, G., Kushalnagar, N., Hui, J., and D. Culler, 802 "Transmission of IPv6 Packets over IEEE 802.15.4 803 Networks", RFC 4944, September 2007. 805 [RFC5535] Bagnulo, M., "Hash-Based Addresses (HBA)", RFC 5535, June 806 2009. 808 Authors' Addresses 810 Johanna Nieminen 811 Nokia 813 Email: johannamaria.nieminen@gmail.com 815 Teemu Savolainen 816 Nokia 817 Visiokatu 3 818 Tampere 33720 819 Finland 821 Email: teemu.savolainen@nokia.com 823 Markus Isomaki 824 Nokia 825 Otaniementie 19 826 Espoo 02150 827 Finland 829 Email: markus.isomaki@nokia.com 831 Basavaraj Patil 832 AT&T 833 1410 E. Renner Road 834 Richardson, TX 75082 835 USA 837 Email: basavaraj.patil@att.com 838 Zach Shelby 839 Arm 840 Hallituskatu 13-17D 841 Oulu 90100 842 Finland 844 Email: zach.shelby@arm.com 846 Carles Gomez 847 Universitat Politecnica de Catalunya/i2CAT 848 C/Esteve Terradas, 7 849 Castelldefels 08860 850 Spain 852 Email: carlesgo@entel.upc.edu