idnits 2.17.1 draft-ietf-6lo-btle-12.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 15, 2015) is 3259 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 16, 2015 Nokia 6 B. Patil 7 AT&T 8 Z. Shelby 9 Arm 10 C. Gomez 11 Universitat Politecnica de Catalunya/i2CAT 12 May 15, 2015 14 IPv6 over BLUETOOTH(R) Low Energy 15 draft-ietf-6lo-btle-12 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 16, 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 . . . . . . . . . . . 5 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 . . . . . . . . . . . . . . . . . 10 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 . . . . . . . 13 82 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 83 5. Security Considerations . . . . . . . . . . . . . . . . . . . 15 84 6. Additional contributors . . . . . . . . . . . . . . . . . . . 15 85 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 15 86 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 16 87 8.1. Normative References . . . . . . . . . . . . . . . . . . 16 88 8.2. Informative References . . . . . . . . . . . . . . . . . 16 89 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 17 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 RFC 4944 [RFC4944] specifies the transmission of IPv6 over IEEE 108 802.15.4. The Bluetooth LE link in many respects has similar 109 characteristics to that of IEEE 802.15.4. Many of the mechanisms 110 defined in the RFC 4944 can be applied to the transmission of IPv6 on 111 Bluetooth LE links. This document specifies the details of IPv6 112 transmission over Bluetooth LE links. 114 1.1. Terminology and Requirements Language 116 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 117 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 118 document are to be interpreted as described in RFC 2119 [RFC2119]. 120 The terms 6LN, 6LR and 6LBR are defined as in [RFC6775], with an 121 addition that Bluetooth LE central and Bluetooth LE peripheral (see 122 Section 2.2) can both be either 6LN or 6LBR. 124 2. Bluetooth Low Energy 126 Bluetooth LE is designed for transferring small amounts of data 127 infrequently at modest data rates at a very low cost per bit. 128 Bluetooth Special Interest Group (Bluetooth SIG) has introduced two 129 trademarks, Bluetooth Smart for single-mode devices (a device that 130 only supports Bluetooth LE) and Bluetooth Smart Ready for dual-mode 131 devices (devices that support both Bluetooth and Bluetooth LE). In 132 the rest of the document, the term Bluetooth LE refers to both types 133 of devices. 135 Bluetooth LE was introduced in Bluetooth 4.0, enhanced in Bluetooth 136 4.1 [BTCorev4.1], and developed even further in successive versions. 137 Bluetooth SIG has also published Internet Protocol Support Profile 138 (IPSP) [IPSP], which includes Internet Protocol Support Service 139 (IPSS). The IPSP enables discovery of IP-enabled devices and 140 establishment of link-layer connection for transporting IPv6 packets. 141 IPv6 over Bluetooth LE is dependent on both Bluetooth 4.1 and IPSP 142 1.0 or newer. 144 Devices such as mobile phones, notebooks, tablets and other handheld 145 computing devices which will include Bluetooth 4.1 chipsets will also 146 have the low-energy functionality of Bluetooth. Bluetooth LE will 147 also be included in many different types of accessories that 148 collaborate with mobile devices such as phones, tablets and notebook 149 computers. An example of a use case for a Bluetooth LE accessory is 150 a heart rate monitor that sends data via the mobile phone to a server 151 on the Internet. 153 2.1. Bluetooth LE stack 155 The lower layer of the Bluetooth LE stack consists of the Physical 156 (PHY) and the Link Layer (LL). The Physical Layer transmits and 157 receives the actual packets. The Link Layer is responsible for 158 providing medium access, connection establishment, error control and 159 flow control. The upper layer consists of the Logical Link Control 160 and Adaptation Protocol (L2CAP), Attribute Protocol (ATT), Generic 161 Attribute Profile (GATT) and Generic Access Profile (GAP) as shown in 162 Figure 1. The device internal Host Controller Interface (HCI) 163 separates the lower layers, often implemented in the Bluetooth 164 controller, from higher layers, often implemented in the host stack. 165 GATT and Bluetooth LE profiles together enable the creation of 166 applications in a standardized way without using IP. L2CAP provides 167 multiplexing capability by multiplexing the data channels from the 168 above layers. L2CAP also provides fragmentation and reassembly for 169 large data packets. 171 +-------------------------------------------------+ 172 | Applications | 173 +---------------------------------------+---------+ 174 | Generic Attribute Profile | Generic | 175 +--------------------+------------------+ Access | 176 | Attribute Protocol | Security Manager | Profile | 177 +--------------------+------------------+---------+ 178 | Logical Link Control and Adaptation Protocol | 179 - - -+-----------------------+-------------------------+- - - HCI 180 | Link Layer | Direct Test Mode | 181 +-------------------------------------------------+ 182 | Physical Layer | 183 +-------------------------------------------------+ 185 Figure 1: Bluetooth LE Protocol Stack 187 2.2. Link layer roles and topology 189 Bluetooth LE defines two GAP roles of relevance herein: the Bluetooth 190 LE central role and the Bluetooth LE peripheral role. A device in 191 the central role, which is called central from now on, has 192 traditionally been able to manage multiple simultaneous connections 193 with a number of devices in the peripheral role, called peripherals 194 from now on. A peripheral is commonly connected to a single central, 195 but since Bluetooth 4.1 can also connect to multiple centrals. In 196 this document for IPv6 networking purposes the Bluetooth LE network 197 (i.e. a Bluetooth LE piconet) follows a star topology shown in the 198 Figure 2, where the router typically implements the Bluetooth LE 199 central role and nodes implement the Bluetooth LE peripheral role. 200 In the future mesh networking may be defined for IPv6 over Bluetooth 201 LE. 203 Peripheral --. .-- Peripheral 204 \ / 205 Peripheral ---- Central ---- Peripheral 206 / \ 207 Peripheral --' '-- Peripheral 209 Figure 2: Bluetooth LE Star Topology 211 In Bluetooth LE, direct communication only takes place between a 212 central and a peripheral. This means that inherently the Bluetooth 213 LE star represents a hub and spokes link model. 215 2.3. Bluetooth LE device addressing 217 Every Bluetooth LE device is identified by a 48-bit device address. 218 The Bluetooth specification describes the device address of a 219 Bluetooth LE device as:"Devices are identified using a device 220 address. Device addresses may be either a public device address or a 221 random device address." [BTCorev4.1]. The public device addresses 222 are based on the IEEE 802-2001 standard [IEEE802-2001]. The random 223 device addresses are generated as defined in the Bluetooth 224 specification. This typically happens at every power cycle of a 225 device. In random addresses all 48 bits are randomized. Bluetooth 226 LE does not support device address collision avoidance or detection. 227 However, these 48 bit random device addresses have a very small 228 probability of being in conflict within a typical deployment. 230 2.4. Bluetooth LE packets sizes and MTU 232 Optimal MTU defined for L2CAP fixed channels over Bluetooth LE is 27 233 bytes including the L2CAP header of four bytes. Default MTU for 234 Bluetooth LE is hence defined to be 27 bytes. Therefore, excluding 235 L2CAP header of four bytes, protocol data unit (PDU) size of 23 bytes 236 is available for upper layers. In order to be able to transmit IPv6 237 packets of 1280 bytes or larger, link layer fragmentation and 238 reassembly solution is provided by the L2CAP layer. The IPSP defines 239 means for negotiating up a link-layer connection that provides MTU of 240 1280 bytes or higher for the IPv6 layer [IPSP]. The link-layer MTU 241 is negotiated separately for each direction. Implementations that 242 require single link-layer MTU value SHALL use the smallest of the 243 possibly different MTU values. 245 3. Specification of IPv6 over Bluetooth Low Energy 247 Bluetooth LE technology sets strict requirements for low power 248 consumption and thus limits the allowed protocol overhead. 6LoWPAN 249 standards [RFC6775], and [RFC6282] provide useful functionality for 250 reducing overhead, which are applied to Bluetooth LE. This 251 functionality comprises of link-local IPv6 addresses and stateless 252 IPv6 address autoconfiguration (see Section 3.2.1), Neighbor 253 Discovery (see Section 3.2.2) and header compression (see 254 Section 3.2.3). Fragmentation features from 6LoWPAN standards are 255 not used due Bluetooth LE's link layer fragmentation support (see 256 Section 2.4). 258 A significant difference between IEEE 802.15.4 and Bluetooth LE is 259 that the former supports both star and mesh topology (and requires a 260 routing protocol), whereas Bluetooth LE does not currently support 261 the formation of multihop networks at the link layer. 263 In Bluetooth LE a central node is assumed to be less constrained than 264 a peripheral node. Hence, in the primary deployment scenario central 265 and peripheral will act as 6LoWPAN Border Router (6LBR) and a 6LoWPAN 266 Node (6LN), respectively. 268 Before any IP-layer communications can take place over Bluetooth LE, 269 Bluetooth LE enabled nodes such as 6LNs and 6LBRs have to find each 270 other and establish a suitable link-layer connection. The discovery 271 and Bluetooth LE connection setup procedures are documented by 272 Bluetooth SIG in the IPSP specification [IPSP]. 274 In the rare case of Bluetooth LE random device address conflict, a 275 6LBR can detect multiple 6LNs with the same Bluetooth LE device 276 address, as well as a 6LN with the same Bluetooth LE address as the 277 6LBR. The 6LBR MUST ignore 6LNs with the same device address the 278 6LBR has, and the 6LBR MUST have at most one connection for a given 279 Bluetooth LE device address at any given moment. This will avoid 280 addressing conflicts within a Bluetooth LE network. The IPSP depends 281 on Bluetooth version 4.1, and hence both Bluetooth version 4.1, or 282 newer, and IPSP version 1.0, or newer, are required for IPv6 283 communications. 285 3.1. Protocol stack 287 Figure 3 illustrates IPv6 over Bluetooth LE stack including the 288 Internet Protocol Support Service. UDP and TCP are provided as 289 examples of transport protocols, but the stack can be used by any 290 other upper layer protocol capable of running atop of IPv6. The 291 6LoWPAN layer runs on top of Bluetooth LE L2CAP layer. 293 +---------+ +----------------------------+ 294 | IPSS | | UDP/TCP/other | 295 +---------+ +----------------------------+ 296 | GATT | | IPv6 | 297 +---------+ +----------------------------+ 298 | ATT | | 6LoWPAN for Bluetooth LE | 299 +---------+--+----------------------------+ 300 | Bluetooth LE L2CAP | 301 - - +-----------------------------------------+- - - HCI 302 | Bluetooth LE Link Layer | 303 +-----------------------------------------+ 304 | Bluetooth LE Physical | 305 +-----------------------------------------+ 307 Figure 3: IPv6 over Bluetooth LE Stack 309 3.2. Link model 311 The concept of IPv6 link (layer 3) and the physical link (combination 312 of PHY and MAC) needs to be clear and the relationship has to be well 313 understood in order to specify the addressing scheme for transmitting 314 IPv6 packets over the Bluetooth LE link. RFC 4861 [RFC4861] defines 315 a link as "a communication facility or medium over which nodes can 316 communicate at the link layer, i.e., the layer immediately below 317 IPv6." 319 In the case of Bluetooth LE, 6LoWPAN layer is adapted to support 320 transmission of IPv6 packets over Bluetooth LE. The IPSP defines all 321 steps required for setting up the Bluetooth LE connection over which 322 6LoWPAN can function [IPSP], including handling the link-layer 323 fragmentation required on Bluetooth LE, as described in Section 2.4. 324 Even though MTUs larger than 1280 bytes can be supported, use of 1280 325 byte is RECOMMENDED in order to avoid need for Path MTU discovery 326 procedures. 328 While Bluetooth LE protocols, such as L2CAP, utilize little-endian 329 byte orderering, IPv6 packets MUST be transmitted in big endian order 330 (network byte order). 332 This specification requires IPv6 header compression format specified 333 in RFC 6282 to be used [RFC6282]. It is assumed that the IPv6 334 payload length can be inferred from the L2CAP header length and the 335 possibly elided IPv6 address can be inferred from the link-layer 336 address, at the time of Bluetooth LE connection establishment, from 337 the HCI Connection Handle during connection, and from context if any. 339 Bluetooth LE connections used to build a star topology are point-to- 340 point in nature, as Bluetooth broadcast features are not used for 341 IPv6 over Bluetooth LE. For Bluetooth LE multilink model has been 342 chosen. Because of this, link-local multicast communications can 343 happen only within a single Bluetooth LE connection, and thus 6LN-to- 344 6LN communications using link-local addresses are not possible. 6LNs 345 connected to the same 6LBR has to communicate with each other by 346 using the shared prefix used on the subnet. The 6LBR ensures address 347 collisions do not occur (see Section 3.2.2). 349 After the peripheral and central have connected at the Bluetooth LE 350 level, the link can be considered up and IPv6 address configuration 351 and transmission can begin. 353 3.2.1. Stateless address autoconfiguration 355 At network interface initialization, both 6LN and 6LBR SHALL generate 356 and assign to the Bluetooth LE network interface IPv6 link-local 357 addresses [RFC4862] based on the 48-bit Bluetooth device addresses 358 (see Section 2.3) that were used for establishing underlying 359 Bluetooth LE connection. Following guidance of [RFC7136], a 64-bit 360 Interface Identifier (IID) is formed from 48-bit Bluetooth device 361 address by inserting two octets, with hexadecimal values of 0xFF and 362 0xFE in the middle of the 48-bit Bluetooth device address as shown in 363 Figure 4. In the Figure letter 'b' represents a bit from Bluetooth 364 device address, copied as is without any changes on any bit. This 365 means that no bit in IID indicates whether the underlying Bluetooth 366 device address is public or random. 368 |0 1|1 3|3 4|4 6| 369 |0 5|6 1|2 7|8 3| 370 +----------------+----------------+----------------+----------------+ 371 |bbbbbbbbbbbbbbbb|bbbbbbbb11111111|11111110bbbbbbbb|bbbbbbbbbbbbbbbb| 372 +----------------+----------------+----------------+----------------+ 374 Figure 4: Formation of IID from Bluetooth device adddress 376 The IID is then appended with prefix fe80::/64, as described in RFC 377 4291 [RFC4291] and as depicted in Figure 5. The same link-local 378 address SHALL be used for the lifetime of the Bluetooth LE L2CAP 379 channel. (After Bluetooth LE logical link has been established, it 380 is referenced with a Connection Handle in HCI. Thus possibly 381 changing device addresses do not impact data flows within existing 382 L2CAP channel. Hence there is no need to change IPv6 link-local 383 addresses even if devices change their random device addresses during 384 L2CAP channel lifetime). 386 10 bits 54 bits 64 bits 387 +----------+-----------------+----------------------+ 388 |1111111010| zeros | Interface Identifier | 389 +----------+-----------------+----------------------+ 391 Figure 5: IPv6 link-local address in Bluetooth LE 393 A 6LN MUST join the all-nodes multicast address. There is no need 394 for 6LN to join the solicited-node multicast address, since 6LBR will 395 know device addresses and hence link-local addresses of all connected 396 6LNs. The 6LBR will ensure no two devices with the same Bluetooth LE 397 device address are connected at the same time. Effectively duplicate 398 address detection for link-local addresses is performed by the 6LBR's 399 software responsible of discovery of IP-enabled Bluetooth LE nodes 400 and of starting Bluetooth LE connection establishment procedures. 401 This approach increases complexity of 6LBR, but reduces power 402 consumption on both 6LN and 6LBR at link establishment phase by 403 reducing number of mandatory packet transmissions. 405 After link-local address configuration, 6LN sends Router Solicitation 406 messages as described in [RFC4861] Section 6.3.7. 408 For non-link-local addresses a 64-bit IID MAY be formed by utilizing 409 the 48-bit Bluetooth device address. A 6LN can also use a randomly 410 generated IID (see Section 3.2.2), for example, as discussed in 411 [I-D.ietf-6man-default-iids], or use alternatice schemes such as 412 Cryptographically Generated Addresses (CGA) [RFC3972], privacy 413 extensions [RFC4941], Hash-Based Addresses (HBA, [RFC5535]), or 414 DHCPv6 [RFC3315]. The non-link-local addresses 6LN generates MUST be 415 registered with 6LBR as described in Section 3.2.2. 417 The tool for a 6LBR to obtain an IPv6 prefix for numbering the 418 Bluetooth LE network is out of scope of this document, but can be, 419 for example, accomplished via DHCPv6 Prefix Delegation [RFC3633] or 420 by using Unique Local IPv6 Unicast Addresses (ULA) [RFC4193]. Due to 421 the link model of the Bluetooth LE (see Section 2.2) the 6LBR MUST 422 set the "on-link" flag (L) to zero in the Prefix Information Option 423 [RFC4861]. This will cause 6LNs to always send packets to the 6LBR, 424 including the case when the destination is another 6LN using the same 425 prefix. 427 3.2.2. Neighbor discovery 429 'Neighbor Discovery Optimization for IPv6 over Low-Power Wireless 430 Personal Area Networks (6LoWPANs)' [RFC6775] describes the neighbor 431 discovery approach as adapted for use in several 6LoWPAN topologies, 432 including the mesh topology. Bluetooth LE does not support mesh 433 networks and hence only those aspects that apply to a star topology 434 are considered. 436 The following aspects of the Neighbor Discovery optimizations 437 [RFC6775] are applicable to Bluetooth LE 6LNs: 439 1. A Bluetooth LE 6LN MUST NOT register its link-local address. A 440 Bluetooth LE 6LN MUST register its non-link-local addresses with the 441 6LBR by sending a Neighbor Solicitation (NS) message with the Address 442 Registration Option (ARO) and process the Neighbor Advertisement (NA) 443 accordingly. The NS with the ARO option MUST be sent irrespective of 444 the method used to generate the IID. If the 6LN registers for a same 445 compression context multiple addresses that are not based on 446 Bluetooth device address, the header compression efficiency will 447 decrease (see Section 3.2.3). 449 2. For sending Router Solicitations and processing Router 450 Advertisements the Bluetooth LE 6LNs MUST, respectively, follow 451 Sections 5.3 and 5.4 of the [RFC6775]. 453 3.2.3. Header compression 455 Header compression as defined in RFC 6282 [RFC6282], which specifies 456 the compression format for IPv6 datagrams on top of IEEE 802.15.4, is 457 REQUIRED in this document as the basis for IPv6 header compression on 458 top of Bluetooth LE. All headers MUST be compressed according to RFC 459 6282 [RFC6282] encoding formats. 461 The Bluetooth LE's star topology structure and ARO can be exploited 462 in order to provide a mechanism for address compression. The 463 following text describes the principles of IPv6 address compression 464 on top of Bluetooth LE. 466 The ARO option requires use of EUI-64 identifier [RFC6775]. In the 467 case of Bluetooth LE, the field SHALL be filled with the 48-bit 468 device address used by the Bluetooth LE node converted into 64-bit 469 Modified EUI-64 format [RFC4291]. 471 To enable efficient header compression, the 6LBR MUST include 6LoWPAN 472 Context Option (6CO) [RFC6775] for all prefixes the 6LBR advertises 473 in Router Advertisements for use in stateless address 474 autoconfiguration. 476 When a 6LN is sending a packet to or through a 6LBR, it MUST fully 477 elide the source address if it is a link-local address. A non-link- 478 local source address 6LN has registered with ARO to the 6LBR for the 479 indicated prefix MUST be fully elided if the source address is the 480 latest address 6LN has registered for the indicated prefix. If a 481 source non-link-local address is not the latest registered, then the 482 64-bits of the IID SHALL be fully carried in-line (SAC=01) or if the 483 first 48-bits of the IID match with the latest registered address, 484 then the last 16-bits of the IID SHALL be carried in-line (SAC=10). 485 That is, if SAC=0 and SAM=11 the 6LN MUST be using the link-local 486 IPv6 address derived from Bluetooth LE device address, and if SAC=1 487 and SAM=11 the 6LN MUST have registered the source IPv6 address with 488 the prefix related to compression context and the 6LN MUST be 489 referring to the latest registered address related to compression 490 context. The IPv6 address MUST be considered to be registered only 491 after the 6LBR has sent Neighbor Advertisement with ARO having status 492 field set to success. The destination IPv6 address MUST be fully 493 elided if the destination address is 6LBR's link-local-address based 494 on the 6LBR's Bluetooth device address (DAC=0, DAM=11). The 495 destination IPv6 address MUST be fully or partially elided if context 496 has been set up for the destination address. For example, DAC=0 and 497 DAM=01 when destination prefix is link-local, and DAC=1 and DAM=01 if 498 compression context has been configured for the used destination 499 prefix. 501 When a 6LBR is transmitting packets to 6LN, it MUST fully elide the 502 source IID if the source IPv6 address is the link-local address based 503 on 6LBR's Bluetooth device address (SAC=0, SAM=11), and it MUST elide 504 the source prefix or address if a compression context related to the 505 IPv6 source address has been set up. The 6LBR also MUST fully elide 506 the destination IPv6 address if it is the link-local-address based on 507 6LN's Bluetooth device address (DAC=0, DAM=11), or if the destination 508 address is the latest registered by the 6LN with ARO for the 509 indicated context (DAC=1, DAM=11). If the destination address is a 510 non-link-local address and not the latest registered, then 6LN MUST 511 either include the IID part fully in-line (DAM=01) or, if the first 512 48-bits of IID match to the latest registered address, then elide 513 those 48-bits (DAM=10). 515 3.2.3.1. Remote destination example 517 When a 6LN transmits an IPv6 packet to a remote destination using 518 global Unicast IPv6 addresses, if a context is defined for the 6LN's 519 global IPv6 address, the 6LN has to indicate this context in the 520 corresponding source fields of the compressed IPv6 header as per 521 Section 3.1 of RFC 6282 [RFC6282], and has to elide the full IPv6 522 source address previously registered with ARO (if using the latest 523 registered address, otherwise full or part of IID may have to be 524 transmitted in-line). For this, the 6LN MUST use the following 525 settings in the IPv6 compressed header: SAC=1 and SAM=11. The CID 526 may be set 0 or 1, depending which context is used. In this case, 527 the 6LBR can infer the elided IPv6 source address since 1) the 6LBR 528 has previously assigned the prefix to the 6LNs; and 2) the 6LBR 529 maintains a Neighbor Cache that relates the Device Address and the 530 IID the device has registered with ARO. If a context is defined for 531 the IPv6 destination address, the 6LN has to also indicate this 532 context in the corresponding destination fields of the compressed 533 IPv6 header, and elide the prefix of or the full destination IPv6 534 address. For this, the 6LN MUST set the DAM field of the compressed 535 IPv6 header as DAM=01 (if the context covers a 64-bit prefix) or as 536 DAM=11 (if the context covers a full, 128-bit address). DAC MUST be 537 set to 1. Note that when a context is defined for the IPv6 538 destination address, the 6LBR can infer the elided destination prefix 539 by using the context. 541 When a 6LBR receives an IPv6 packet sent by a remote node outside the 542 Bluetooth LE network, and the destination of the packet is a 6LN, if 543 a context is defined for the prefix of the 6LN's global IPv6 address, 544 the 6LBR has to indicate this context in the corresponding 545 destination fields of the compressed IPv6 header. The 6LBR has to 546 elide the IPv6 destination address of the packet before forwarding 547 it, if the IPv6 destination address is inferable by the 6LN. For 548 this, the 6LBR will set the DAM field of the IPv6 compressed header 549 as DAM=11 (if the address is the latest 6LN has registered). DAC 550 needs to be set to 1. If a context is defined for the IPv6 source 551 address, the 6LBR needs to indicate this context in the source fields 552 of the compressed IPv6 header, and elide that prefix as well. For 553 this, the 6LBR needs to set the SAM field of the IPv6 compressed 554 header as SAM=01 (if the context covers a 64-bit prefix) or SAM=11 555 (if the context covers a full, 128-bit address). SAC is to be set to 556 1. 558 3.2.3.2. Example of registration of multiple-addresses 560 As described above, a 6LN can register multiple non-link-local 561 addresses that map to a same compression context. From the multiple 562 address registered, only the latest address can be fully elided 563 (SAM=11, DAM=11), and the IIDs of previously registered addresses 564 have to be transmitted fully in-line (SAM=01, DAM=01) or in the best 565 case can be partially elided (SAM=10, DAM=10). This is illustred in 566 an example below. 568 1) A 6LN registers first address 2001:db8::1111:2222:3333:4444 to a 569 6LBR. At this point the address can be fully elided using SAC=1/ 570 SAM=11 or DAC=1/DAM=11. 572 2) The 6LN registers second address 2001:db8::1111:2222:3333:5555 to 573 the 6LBR. As the second address is now the latest registered, it can 574 be fully elided using SAC=1/SAM=11 or DAC=1/DAM=11. The first 575 address can now be partially elided using SAC=1/SAM=10 or DAC=1/ 576 DAM=10, as the first 112 bits of the address are the same between the 577 first and the second registered addresses. 579 3) Expiration of registration time for the first or the second 580 address has no impact on the compression. Hence even if secondly 581 registered address expires, the first address can only be partially 582 elided (SAC=1/SAM=10, DAC=1/DAM=10). The 6LN can register a new 583 address, or re-register an expired address, to become able to again 584 fully elide an address. 586 3.2.4. Unicast and Multicast address mapping 588 The Bluetooth LE link layer does not support multicast. Hence 589 traffic is always unicast between two Bluetooth LE nodes. Even in 590 the case where a 6LBR is attached to multiple 6LNs, the 6LBR cannot 591 do a multicast to all the connected 6LNs. If the 6LBR needs to send 592 a multicast packet to all its 6LNs, it has to replicate the packet 593 and unicast it on each link. However, this may not be energy- 594 efficient and particular care must be taken if the master is battery- 595 powered. In the opposite direction, a 6LN always has to send packets 596 to or through 6LBR. Hence, when a 6LN needs to transmit an IPv6 597 multicast packet, the 6LN will unicast the corresponding Bluetooth LE 598 packet to the 6LBR. 600 3.3. Subnets and Internet connectivity scenarios 602 In a typical scenario, the Bluetooth LE network is connected to the 603 Internet as shown in the Figure 6. In this scenario, the Bluetooth 604 LE star is deployed as one subnet, using one /64 IPv6 prefix, with 605 each spoke representing individual link. The 6LBR is acting as 606 router and forwarding packets between 6LNs and to and from Internet. 608 / 609 .---------------. / 610 / 6LN \ / 611 / \ \ / 612 | \ | / 613 | 6LN ----------- 6LBR ----- | Internet 614 | <--Link--> / | \ 615 \ / / \ 616 \ 6LN / \ 617 '---------------' \ 618 \ 620 <------ Subnet -----><-- IPv6 connection --> 621 to Internet 623 Figure 6: Bluetooth LE network connected to the Internet 625 In some scenarios, the Bluetooth LE network may transiently or 626 permanently be an isolated network as shown in the Figure 7. In this 627 case the whole star consist of a single subnet with multiple links, 628 where 6LBR is at central routing packets between 6LNs. 630 .-------------------. 631 / \ 632 / 6LN 6LN \ 633 / \ / \ 634 | \ / | 635 | 6LN --- 6LBR --- 6LN | 636 | / \ | 637 \ / \ / 638 \ 6LN 6LN / 639 \ / 640 '-------------------' 641 <--------- Subnet ----------> 643 Figure 7: Isolated Bluetooth LE network 645 It is also possible to have point-to-point connection between two 646 6LNs, one of which being central and another being peripheral. 647 Similarly, it is possible to have point-to-point connections between 648 two 6LBRs, one of which being central and another being peripheral. 650 At this point in time mesh networking with Bluetooth LE is not 651 specified. 653 4. IANA Considerations 655 There are no IANA considerations related to this document. 657 5. Security Considerations 659 The transmission of IPv6 over Bluetooth LE links has similar 660 requirements and concerns for security as for IEEE 802.15.4. 661 Bluetooth LE Link Layer security considerations are covered by the 662 IPSP [IPSP]. 664 Bluetooth LE Link Layer supports encryption and authentication by 665 using the Counter with CBC-MAC (CCM) mechanism [RFC3610] and a 666 128-bit AES block cipher. Upper layer security mechanisms may 667 exploit this functionality when it is available. (Note: CCM does not 668 consume bytes from the maximum per-packet L2CAP data size, since the 669 link layer data unit has a specific field for them when they are 670 used.) 672 Key management in Bluetooth LE is provided by the Security Manager 673 Protocol (SMP), as defined in [BTCorev4.1]. 675 The IPv6 link-local address configuration described in Section 3.2.1 676 strictly binds the privacy level of IPv6 link-local address to the 677 privacy level device has selected for the Bluetooth LE. This means 678 that a device using Bluetooth privacy features will retain the same 679 level of privacy with generated IPv6 link-local addresses. 680 Respectively, device not using privacy at Bluetooth level will not 681 have privacy at IPv6 link-local address either. For non-link local 682 addresses implementations have a choice to support, for example, 683 [I-D.ietf-6man-default-iids], [RFC3972], [RFC4941] or [RFC5535]. 685 6. Additional contributors 687 Kanji Kerai, Jari Mutikainen, David Canfeng-Chen and Minjun Xi from 688 Nokia have contributed significantly to this document. 690 7. Acknowledgements 692 The Bluetooth, Bluetooth Smart and Bluetooth Smart Ready marks are 693 registred trademarks owned by Bluetooth SIG, Inc. 695 Samita Chakrabarti, Brian Haberman, Marcel De Kogel, Jouni Korhonen, 696 Erik Nordmark, Erik Rivard, Dave Thaler, Pascal Thubert, and Victor 697 Zhodzishsky have provided valuable feedback for this draft. 699 Authors would like to give special acknowledgements for Krishna 700 Shingala, Frank Berntsen, and Bluetooth SIG's Internet Working Group 701 for providing significant feedback and improvement proposals for this 702 document. 704 8. References 706 8.1. Normative References 708 [BTCorev4.1] 709 Bluetooth Special Interest Group, "Bluetooth Core 710 Specification Version 4.1", December 2013. 712 [IPSP] Bluetooth Special Interest Group, "Bluetooth Internet 713 Protocol Support Profile Specification Version 1.0.0", 714 December 2014. 716 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 717 Requirement Levels", BCP 14, RFC 2119, March 1997. 719 [RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing 720 Architecture", RFC 4291, February 2006. 722 [RFC4861] Narten, T., Nordmark, E., Simpson, W., and H. Soliman, 723 "Neighbor Discovery for IP version 6 (IPv6)", RFC 4861, 724 September 2007. 726 [RFC4862] Thomson, S., Narten, T., and T. Jinmei, "IPv6 Stateless 727 Address Autoconfiguration", RFC 4862, September 2007. 729 [RFC6282] Hui, J. and P. Thubert, "Compression Format for IPv6 730 Datagrams over IEEE 802.15.4-Based Networks", RFC 6282, 731 September 2011. 733 [RFC6775] Shelby, Z., Chakrabarti, S., Nordmark, E., and C. Bormann, 734 "Neighbor Discovery Optimization for IPv6 over Low-Power 735 Wireless Personal Area Networks (6LoWPANs)", RFC 6775, 736 November 2012. 738 [RFC7136] Carpenter, B. and S. Jiang, "Significance of IPv6 739 Interface Identifiers", RFC 7136, February 2014. 741 8.2. Informative References 743 [I-D.ietf-6man-default-iids] 744 Gont, F., Cooper, A., Thaler, D., and S. LIU, 745 "Recommendation on Stable IPv6 Interface Identifiers", 746 draft-ietf-6man-default-iids-03 (work in progress), May 747 2015. 749 [IEEE802-2001] 750 Institute of Electrical and Electronics Engineers (IEEE), 751 "IEEE 802-2001 Standard for Local and Metropolitan Area 752 Networks: Overview and Architecture", 2002. 754 [RFC3315] Droms, R., Bound, J., Volz, B., Lemon, T., Perkins, C., 755 and M. Carney, "Dynamic Host Configuration Protocol for 756 IPv6 (DHCPv6)", RFC 3315, July 2003. 758 [RFC3610] Whiting, D., Housley, R., and N. Ferguson, "Counter with 759 CBC-MAC (CCM)", RFC 3610, September 2003. 761 [RFC3633] Troan, O. and R. Droms, "IPv6 Prefix Options for Dynamic 762 Host Configuration Protocol (DHCP) version 6", RFC 3633, 763 December 2003. 765 [RFC3972] Aura, T., "Cryptographically Generated Addresses (CGA)", 766 RFC 3972, March 2005. 768 [RFC4193] Hinden, R. and B. Haberman, "Unique Local IPv6 Unicast 769 Addresses", RFC 4193, October 2005. 771 [RFC4941] Narten, T., Draves, R., and S. Krishnan, "Privacy 772 Extensions for Stateless Address Autoconfiguration in 773 IPv6", RFC 4941, September 2007. 775 [RFC4944] Montenegro, G., Kushalnagar, N., Hui, J., and D. Culler, 776 "Transmission of IPv6 Packets over IEEE 802.15.4 777 Networks", RFC 4944, September 2007. 779 [RFC5535] Bagnulo, M., "Hash-Based Addresses (HBA)", RFC 5535, June 780 2009. 782 Authors' Addresses 784 Johanna Nieminen 785 Nokia 787 Email: johannamaria.nieminen@gmail.com 788 Teemu Savolainen 789 Nokia 790 Visiokatu 3 791 Tampere 33720 792 Finland 794 Email: teemu.savolainen@nokia.com 796 Markus Isomaki 797 Nokia 798 Otaniementie 19 799 Espoo 02150 800 Finland 802 Email: markus.isomaki@nokia.com 804 Basavaraj Patil 805 AT&T 806 1410 E. Renner Road 807 Richardson, TX 75082 808 USA 810 Email: basavaraj.patil@att.com 812 Zach Shelby 813 Arm 814 Hallituskatu 13-17D 815 Oulu 90100 816 Finland 818 Email: zach.shelby@arm.com 820 Carles Gomez 821 Universitat Politecnica de Catalunya/i2CAT 822 C/Esteve Terradas, 7 823 Castelldefels 08860 824 Spain 826 Email: carlesgo@entel.upc.edu