Internet DRAFT - draft-hansmann-6overbt

draft-hansmann-6overbt






INTERNET-DRAFT                                            Matthias Frank
July 2001                                                Rolf Goepffarth
Expires: January 2002                                  Wolfgang Hansmann
                                                          Ulrich Mueller
                                                      University of Bonn



          Transmission of native IPv6 over Bluetooth (6overBT)
                    <draft-hansmann-6overbt-00.txt>



Status of this Memo

   This document is an Internet-Draft and is in full conformance with
   all provisions of Section 10 of RFC2026.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as Internet-
   Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time. It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.

Abstract

   The Bluetooth technology is intended for a wide range of different
   user devices and will be employed in various devices such as mobile
   phones, PDAs and notebooks. To enable communication between these
   devices and the existing IP world, the transmission of IPv4 and IPv6
   packets over Bluetooth has already been addressed in the Bluetooth
   LAN access profile and the Bluetooth PAN profile.

   However, these approaches introduce a considerable amount of protocol
   overhead. To abolish this deficiency, this document specifies the
   transmission of "native IPv6 over Bluetooth" (6overBT). The term
   "native IPv6" refers to the transmission of plain IPv6 packets in
   L2CAP packets. No additional link layer headers are used.







draft-hansmann-6overbt-00.txt                                   [Page 1]

Internet Draft Transmission of native IPv6 over Bluetooth      June 2001

Table of Contents

   Status of this Memo                                                 1

   Abstract                                                            1

   1.  Introduction                                                    3

   2.  6overBT Architecture                                            3
       2.1 6overBT Mobile Device ...................................   4
       2.2 6overBT IPv6 Switch .....................................   4
       2.3 6overBT Access Router ...................................   4

   3.  6overBT Specification                                           5
       3.1 6overBT Protocol Stack ..................................   5
       3.2 Specification of a 6overBT Mobile Device ................   5
           3.2.1  Required Bluetooth Functionality .................   5
           3.2.2  Interface Identifier .............................   8
           3.2.3  Connection State Machine .........................   8
           3.2.4  Disconnected State ...............................   8
           3.2.5  Connected State ..................................   9
       3.3 Specification of a 6overBT IPv6 Switch ..................  10
           3.3.1  Required Bluetooth Functionality .................  10
           3.3.2  General Operation ................................  13
           3.3.3  Binding Records ..................................  13
           3.3.4  Connection State Machine .........................  14
           3.3.5  Disconnected State ...............................  15
           3.3.6  Unbound/Connected State ..........................  16
           3.3.7  Bound/Connected State ............................  16
           3.3.8  Bound/Disconnected State .........................  16
           3.3.9  IPv6 Packet Switching ............................  16
           3.3.10 IPv6 Host Capability .............................  19
       3.4 Specification of a 6overBT Access Router ................  19
           3.4.1  Required Bluetooth Functionality .................  19
           3.4.2  General Operation ................................  19
           3.4.3  IPv6 Requirements ................................  20
       3.5 Service Records .........................................  20
       3.6 Multiple Switches in a Piconet ..........................  21

   4.  Security Considerations                                        22

   5.  Summary                                                        22

   6.  References                                                     23

   7.  Author's Addresses                                             24









draft-hansmann-6overbt-00.txt                                   [Page 2]

Internet Draft Transmission of native IPv6 over Bluetooth      June 2001

1.0 Introduction

   The Bluetooth technology is intended for a wide range of different
   user devices and will be employed in various devices such as mobile
   phones, PDAs and notebooks. To enable communication between these
   devices and the existing IP world, the transmission of IPv4 [1]
   packets over Bluetooth has already been addressed in the Bluetooth
   LAN access profile [2] and extending this approach to support IPv6
   [3] over Bluetooth seems straightforward. However, this approach
   introduces a considerable amount of protocol overhead and only
   permits point-point connections between Bluetooth devices.

   Alternatively, the Bluetooth PAN profile provides a method for the
   transmission of IPv4 as well as IPv6 over Bluetooth using the
   Bluetooth Network Encapsulation Protocol (BNEP).  This approach too,
   results in an unnecessary amount of protocol overhead as it
   introduces an additional link layer protocol above L2CAP and
   Baseband.

   The purpose of this document is to specify an efficient method of
   transmitting IPv6 over Bluetooth, which we refer to as "native IPv6
   over Bluetooth" (6overBT). The term "native IPv6" refers to the
   transmission of plain IPv6 packets in L2CAP packets. No additional
   link layer or encapsulation protocol headers are used.

2.0 6overBT Architecture

   In the following the 6overBT architecture is described, which is
   maintained throughout the present document. It is differentiated
   between three 6overBT entities, namely the 6overBT mobile device
   (MD), the 6overBT access router (AR), and the 6overBT IPv6 switch
   (SW).

   The usage scenario with these three entities is depicted in Figure 1.
   As the use (topology, scheduling, routing) of scatternets is still a
   field of current research, the 6overBT protocol concepts concentrate
   only on single piconet Bluetooth scenario. Support for scatternet
   routing may be addressed in a future specification.  Two different
   kind of scenarios are possible. The scenario where the functionality
   of the access router and the IPv6 switch is separated into two
   individual devices, or the scenario where a single device must
   perform the functionality of the access router and the IPv6 switch.













draft-hansmann-6overbt-00.txt                                   [Page 3]

Internet Draft Transmission of native IPv6 over Bluetooth      June 2001

                                          access
                                     ._  network  _.
                                       '._______.'
                                            |
              access                      +--+
         ._  network  _.                  |AR|
           '._______.'                    +--+
                |                           |
              +---+                         |
              |AR |                         |
              +---+                       +---+
              |SW |                       |SW |
              +---+                       +---+
            _/  |  \_                   _/  |  \_
           /    |    \                 /    |    \
      +---+     |     +---+       +---+     |     +---+
      |MD |   +---+   |MD |       |MD |   +---+   |MD |
      +---+   |MD |   +---+       +---+   |MD |   +---+
              +---+                       +---+


   Figure 1: 6overBT usage scenario

2.1 6overBT Mobile Device

   In 6overBT, mobile devices participate in a 6overBT scenario by main-
   taining a single Bluetooth connection to a 6overBT IPv6 switch. The
   following 6overBT specification enables these mobile devices to com-
   municate with peer IPv6 hosts using native IPv6 over Bluetooth.

2.2 6overBT IPv6 Switch

   An IPv6 switch manages IPv6 packet communication for a single
   piconet.  Being a piconet master, the 6overBT IPv6 switch is able to
   receive and forward data from/to each of its attached slaves, which
   may be 6overBT mobile devices or 6overBT access routers. Packet
   switching decisions are based on the destination address of received
   IPv6 packets.  A 6overBT IPv6 switch and a 6overBT access router may
   be implemented on the same physical entity. It is possible for a
   switch to function as an IPv6 node, just like a mobile device.

   The specification of a switch covers two different usage modes: sin-
   gle-user mode and multi-user mode. In single-user mode, only one
   mobile device at a time can be connected to the switch. This usage
   mode requires less Bluetooth functionality and should be implemented,
   if simultaneous connections to multiple mobile devices are not sup-
   ported or, a master-slave switch is not available.

2.3 6overBT Access Router

   The 6overBT access router is the edge device between an existing IPv6
   network and the ad-hoc Bluetooth piconet. Thus, it is typically
   equipped with at least two network interfaces: a Bluetooth
   transceiver and a non-Bluetooth interface (e.g. Ethernet). This non-

draft-hansmann-6overbt-00.txt                                   [Page 4]

Internet Draft Transmission of native IPv6 over Bluetooth      June 2001

   Bluetooth interface connects to an external IPv6 capable network.

3.0 6overBT Specification

   This section presents the specification of the 6overBT protocol con-
   cepts of native IPv6 over Bluetooth. After a description of the
   6overBT protocol stack, each 6overBT entity is described in an own
   subsection.

3.1 6overBT Protocol Stack

   No additional encapsulation protocol between L2CAP and IPv6 will be
   used. Figure 2 depicts the necessary protocol stack for the 6overBT
   specification. 6overBT protocol concepts reside between the Bluetooth
   protocol stack and IPv6, and handle IPv6 based intra-piconet communi-
   cation.  Therefore, 6overBT appears to IPv6 as a multiple access
   broadcast layer-2 protocol similar to Ethernet.



     +---------------+
     |     IPv6      |
     +---------------+
     |     6over     |
     +-------+-------+
     |       | L2CAP |
     |  HCI  +-------+
     |               |
     +---------------+


   Figure 2: 6overBT protocol stack

3.2 Specification of a 6overBT Mobile Device

3.2.1 Required Bluetooth Functionality

3.2.1.1 Baseband/Link Control/Link Manager

   The Baseband and Link Control capabilities required by a 6overBT
   mobile device are shown in Table 1. The requirement levels used in
   this and the following tables comply with the requirement levels used
   in Bluetooth profile documents [4], where 'M' denotes a mandatory
   feature, 'O' an optional feature, and 'X' an excluded feature.
   Excluded features are features never to be used in the present or
   future specifications.

   The 6overBT mobile device must be able to establish an ACL link to a
   6overBT IPv6 switch. In order to do this, the mobile device must sup-
   port the inquiry procedure to receive the IPv6 switch's Bluetooth
   device address, and the page procedure to establish the definite con-
   nection.



draft-hansmann-6overbt-00.txt                                   [Page 5]

Internet Draft Transmission of native IPv6 over Bluetooth      June 2001

   In order to detect the loss of a connection, the mobile device must
   support the link supervision timer. The support for multi-slot pack-
   ets is recommended, but not necessary for 6overBT.

   +---------------------------------+-----------------------+
   | Capability                      | Support for a 6overBT |
   |                                 | mobile device         |
   +------------+--------------------+-----------------------+
   |            | ACL links          | M                     |
   | Link types +--------------------+-----------------------+
   |            | SCO links          | X                     |
   +------------+--------------------+-----------------------+
   |            | Inquiry            | M                     |
   | Inquiry    +--------------------+-----------------------+
   |            | Inquiry Scan       | O                     |
   +------------+--------------------+-----------------------+
   |            | Paging             | M                     |
   | Paging     +--------------------+-----------------------+
   |            | Page scan          | O                     |
   +------------+--------------------+-----------------------+
   |            | Link supervision   | M                     |
   |            +--------------------+-----------------------+
   |            | Multi-slot packets | O                     |
   |            +--------------------+-----------------------+
   |            | Baseband Broadcast | O                     |
   +------------+--------------------+-----------------------+

   Table 1: Baseband and Link Control capabilities needed by a 6overBT
            mobile device.

   Table 2 shows the necessary Link Manager capabilities a 6overBT
   mobile device has to support. If the 6overBT device connects to an
   IPv6 switch in multi-user mode it must support the master-slave-
   switch procedure.  However, when connecting to an IPv6 switch in sin-
   gle-user mode, the master-slave-switch procedure is not mandatory
   anymore.

   Other Link Manager procedures such as the power saving modes, authen-
   tication, and name requesting are not necessary for the 6overBT spec-
   ification.















draft-hansmann-6overbt-00.txt                                   [Page 6]

Internet Draft Transmission of native IPv6 over Bluetooth      June 2001

   +------------------------------+--------------------------------+
   | Procedure                    | Support for a 6overBT          |
   |                              | mobile device                  |
   +------------------------------+--------------------------------+
   | Power saving modes           | O                              |
   +------------------------------+--------------------------------+
   | Authentication / Pairing /   | O                              |
   | Encryption                   |                                |
   +------------------------------+--------------------------------+
   | Name request                 | O                              |
   +------------------------------+--------------------------------+
   | Detach                       | O                              |
   +------------------------------+--------------------------------+
   | Initiate master-slave switch | X                              |
   +------------------------------+--------------------------------+
   | Perform master-slave switch  | M (Switch in multi-user mode)  |
   |                              | O (Switch in single-user mode) |
   +------------------------------+--------------------------------+

   Table 2: Link manager procedures required by a 6overBT mobile device

3.2.1.2 L2CAP

   The L2CAP requirements for a 6overBT mobile device are shown in Table
   3.  IPv6 packets should be encapsulated in L2CAP packets. For this, a
   connection-oriented L2CAP channel between the mobile device and the
   IPv6 switch is required. We strongly recommend reserving a fixed,
   well known Protocol Switching Multiplexer (PSM) for 6overBT to be
   used to set up the data connection. This "well-known" PSM should then
   be used by the mobile device for initiating the channel between the
   two entities. If a fixed PSM is not available, then an IPv6 switch
   dependent, dynamic PSM can be used instead. To discover this dynamic
   PSM, a mobile device has to query the 6overBT SDP service record pro-
   vided by the IPv6 switch.

   +---------------------------------------------+-----------------------+
   | Procedure                                   | Support for a 6overBT |
   |                                             | mobile device         |
   +---------------+-----------------------------+-----------------------+
   |               | Connection-oriented channel | M                     |
   | Channel type  +-----------------------------+-----------------------+
   |               | Connectionless channel      | O                     |
   +---------------+-----------------------------+-----------------------+
   |               | Connection establishment    | M                     |
   | Signalling    +-----------------------------+-----------------------+
   |               | Connection termination      | M                     |
   +---------------+-----------------------------+-----------------------+
   | Channel       | MTU Configuration           | M                     |
   | configuration +-----------------------------+-----------------------+
   |               | QoS                         | O                     |
   +---------------+-----------------------------+-----------------------+

   Table 3: L2CAP requirements of a 6overBT mobile device


draft-hansmann-6overbt-00.txt                                   [Page 7]

Internet Draft Transmission of native IPv6 over Bluetooth      June 2001

   For the negotiation of the MTU size used between the mobile device
   and the IPv6 switch, the mobile device must support the L2CAP MTU
   configuration procedure. Features such as Quality of Service negotia-
   tions or the use of a connectionless channel, are not considered in
   the current 6overBT specification. However, they may be used in order
   to enhance the functionality in later 6overBT specifications.

3.2.1.3 SDP

   As shown in Table 4, a 6overBT mobile device must have SDP function-
   ality in order to communicate with an IPv6 switch acting as a SDP
   server.

   +-------------+-----------------------+
   | SDP feature | Support for a         |
   |             | 6overBT mobile device |
   +-------------+-----------------------+
   | SDP client  | M                     |
   +-------------+-----------------------+
   | SDP server  | M                     |
   +-------------+-----------------------+

   Table 4: SDP feature requirements for a 6overBT mobile device

3.2.2 Interface Identifier

   IPv6 addresses consist of two parts, a prefix and an interface iden-
   tifier.  The interface identifier for 6overBT entities is based on
   the EUI-64 identifier as in [5] and derives from the 48-bit Bluetooth
   device address. The interface identifier in 6overBT may be formed in
   analogy to an EUI-64 identifier deriving from an 48-bit IEEE 802
   address (cf. [6]). Alternative interface identifiers should work
   within 6overBT as well.

3.2.3 Connection State Machine

   The state machine for a 6overBT mobile device is fairly simple and
   consists of two states, the disconnected state and the connected
   state.  In the following two subsections these two states and their
   task within 6overBT are described in detail.

3.2.4 Disconnected State

3.2.4.1 Baseband / Link Manager Operation

   When activating the 6overBT functionality of a mobile device, the
   device should initially startup in the disconnect state. In this
   state the mobile device should attempt to establish a baseband con-
   nection to a nearby 6overBT IPv6 switch. This should be done by per-
   forming an inquiry procedure using the general inquiry access code
   (GIAC). After a successful inquiry procedure, the mobile device knows
   of Bluetooth device addresses of nearby IPv6 switches. This address
   should then be used in the page procedure performed by the mobile
   device to create a definite baseband connection to the IPv6 switch.

draft-hansmann-6overbt-00.txt                                   [Page 8]

Internet Draft Transmission of native IPv6 over Bluetooth      June 2001

   After a new Baseband connection has been established, the slave
   should be prepared to perform a master-slave-switch initiated by the
   IPv6 switch, if the IPv6 switch operates in multi-user-mode.

3.2.4.2 L2CAP Operation

   After a baseband connection has been established, the mobile device
   must initiate a connection-oriented L2CAP channel to the IPv6 switch
   in order to retrieve the 6overBT IPv6 switch's SDP 6overBT service
   record. Following this, the L2CAP channel is terminated and a new
   connection-oriented L2CAP channel for the PSM, as indicated in the
   retrieved service record, is established. During the channel configu-
   ration phase, the mobile device and the IPv6 switch should negotiate
   the L2CAP specific parameters such as MTU size. For more detailed
   information on the L2CAP operation refer to section 3.3.5.2.

3.2.5 Connected State

   After a baseband and L2CAP connection have successfully been estab-
   lished, the mobile device transits from the disconnected state to the
   connected state. Now, the mobile device has to assign an IPv6 address
   to its Bluetooth transceiver. For this the mobile should use the
   information previously retrieved in the 6overBT SDP service record.

   Alternatively, the mobile device may wait for the next ICMPv6 router
   advertisement which is sent periodically by the 6overBT access
   router, or may prompt the access router to send an advertisement by
   sending an ICMPv6 router solicitation message. When sending a solici-
   tation message the 6overBT mobile device may use either its link-
   local address, or the unspecified address :: as the source address.

   If no router is available, that is to say, if the mobile device does
   not receive any router advertisement, it may use its link local
   address for further communication. If the mobile device receives a
   router advertisement, the advertisement should contain the prefix
   information option containing the valid network prefixes that a
   mobile device may use. Such a prefix should be used by the mobile
   device when forming the IPv6 address it wants to assign to its Blue-
   tooth interface.  We strongly recommend that the IPv6 address is
   assembled by concatenating the received network prefix with the Blue-
   tooth devices EUI-64 interface identifier. However, the concepts pre-
   sented in this specification support also other methods of generating
   the interface identifier, e.g. for security purposes, if it is
   desired to hide the Bluetooth device address to the outside world. To
   prevent duplicate address assignment, neighbor discovery's duplicate
   address detection procedure must be used before assigning an IPv6
   address to an interface.

   For this, the mobile device must send an ICMPv6 neighbor solicitation
   message to the solicited-node-multicast address, asking whether some
   other host already owns its link-local address.  The solicitation
   message in the duplicate address detection procedure should use the
   source address of ::, to distinguish these solicitation messages from
   normal neighbor solicitations. If the mobile device does not hear a

draft-hansmann-6overbt-00.txt                                   [Page 9]

Internet Draft Transmission of native IPv6 over Bluetooth      June 2001

   response to its solicitation message, then no duplicate address
   exists and the device may use the corresponding IPv6 address in fur-
   ther operation. To detect the loss of connectivity to the IPv6
   switch, link supervision should be used. The link supervision timer
   is reset with every received baseband packet. If the supervision
   timer expires, then the link is regarded as broken and the mobile
   device should change to the disconnected state again.

3.3 Specification of a 6overBT IPv6 Switch

   The following section specifies the operation of a 6overBT IPv6
   switch.  A 6overBT IPv6 switch is an IPv6 interconnection entity for
   6overBT mobile devices. It is the core entity in 6overBT, which must
   be always present for IPv6 over Bluetooth communication.

3.3.1 Required Bluetooth Functionality

   As required, a 6overBT switch must also be able to act as a 6overBT
   mobile device. The Bluetooth requirements are more restrictive and
   form a superset of the functionality required by 6overBT mobile
   devices. The following section specifies Bluetooth requirements for a
   6overBT switch.

3.3.1.1   Baseband/Link Control/Link Manager

   A 6overBT IPv6 switch must be able to accept baseband ACL links from
   mobile devices. The ability to actively page other Bluetooth devices
   is only required when acting as 6overBT mobile device. If running in
   multi-user mode, a 6overBT switch must be able to maintain several
   simultaneous connections to slave devices. In order to permit the
   connection of mobile devices, inquiry scans must be performed regu-
   larly. However, initiating an inquiry procedure is only required when
   acting as 6overBT mobile device. Link supervision must be implemented
   to detect the loss of a connection. Support for multi-slot packets is
   not required, but strongly recommended. The current 6overBT specifi-
   cation does not require native baseband broadcast. However, in order
   to increase multicast performance, later enhancements to the 6overBT
   specification, as proposed in section 4.1, could benefit from broad-
   cast support.

   Table 5 summarizes the required Bluetooth baseband and Link Control
   functionality for a 6overBT IPv6 switch.













draft-hansmann-6overbt-00.txt                                  [Page 10]

Internet Draft Transmission of native IPv6 over Bluetooth      June 2001

   +---------------------------------+------------------------------+
   | Capability                      | Support for a 6overBT switch |
   +------------+--------------------+------------------------------+
   |            | ACL links          | M                            |
   | Link types +--------------------+------------------------------+
   |            | SCO links          | X                            |
   +------------+--------------------+------------------------------+
   |            | Inquiry            | M                            |
   | Inquiry    +--------------------+------------------------------+
   |            | Inquiry Scan       | M                            |
   +------------+--------------------+------------------------------+
   |            | Paging             | M                            |
   | Paging     +--------------------+------------------------------+
   |            | Page scan          | M                            |
   +------------+--------------------+------------------------------+
   |            | Link supervision   | M                            |
   |            +--------------------+------------------------------+
   |            | Multi-slot packets | O                            |
   |            +--------------------+------------------------------+
   |            | Baseband Broadcast | O                            |
   +------------+--------------------+------------------------------+

   Table 5: Bluetooth link control / Baseband capabilities needed by a
            6overBT switch.

   Table 6 lists necessary link controller procedures for a 6overBT
   switch.  The support of power saving modes, as SNIFF, PARK or HOLD
   mode is not required by 6overBT. A crucial requirement for 6overBT in
   multi-user mode is the support of master-slave switch. A 6overBT
   switch running in multi-user mode must be able to initiate and per-
   form a master-slave switch.

   +------------------------------+------------------------------+
   | Procedure                    | Support for a 6overBT switch |
   +------------------------------+------------------------------+
   | Power saving modes           | O                            |
   +------------------------------+------------------------------+
   | Authentication / Pairing /   | O                            |
   | Encryption                   |                              |
   +------------------------------+------------------------------+
   | Name request                 | O                            |
   +------------------------------+------------------------------+
   | Detach                       | O                            |
   +------------------------------+------------------------------+
   | Initiate master-slave switch | M (multi-user mode)          |
   |                              | O (single-user mode)         |
   +------------------------------+------------------------------+
   | Perform master-slave switch  | M (multi-user mode)          |
   |                              | O (single-user mode)         |
   +------------------------------+------------------------------+

   Table 6: Link manager procedures required by a 6overBT switch



draft-hansmann-6overbt-00.txt                                  [Page 11]

Internet Draft Transmission of native IPv6 over Bluetooth      June 2001

   The 6overBT specification does not cover link manager based configu-
   ration for authentication and link encryption. However, later speci-
   fications could benefit from the presence of this functionality.

3.3.1.2   L2CAP

   L2CAP connection-oriented channels will be used for service discovery
   [7] and IPv6 packet transfer. Table 7 summarizes 6overBT requirements
   to L2CAP. A 6overBT IPv6 switch must be able to accept L2CAP channel
   requests by mobile devices. The L2CAP implementation should be able
   to open L2CAP channels on already established HCI connection handles
   or provide HCI connection handles from already opened L2CAP channels

   For 6overBT, the reservation of a "well known" PSM is recommended to
   be used by mobile devices to open L2CAP channels for 6overBT con-
   trolled IPv6 communication. However, in absence of a global PSM, a
   dynamical PSM can be configured individually by the SDP 6overBT ser-
   vice record provided by the 6overBT switch.

   +---------------------------------------------+----------------+
   | Procedure                                   | Support for a  |
   |                                             | 6overBT switch |
   +---------------+-----------------------------+----------------+
   |               | Connection-oriented channel | M              |
   | Channel type  +-----------------------------+----------------+
   |               | Connectionless channel      | O              |
   +---------------+-----------------------------+----------------+
   |               | Connection establishment    | M              |
   | Signalling    +-----------------------------+----------------+
   |               | Connection termination      | M              |
   +---------------+-----------------------------+----------------+
   | Channel       | MTU Configuration           | M              |
   | configuration +-----------------------------+----------------+
   |               | QoS                         | O              |
   +---------------+-----------------------------+----------------+

   Table 7: L2CAP requirements of a 6overBT switch

3.3.1.3 SDP

   An IPv6 switch must have both SDP client and SDP server functional-
   ity.  However, if used as a 6overBT mobile device, only SDP client
   functionality will be used.












draft-hansmann-6overbt-00.txt                                  [Page 12]

Internet Draft Transmission of native IPv6 over Bluetooth      June 2001

   +-------------+-----------------+
   | SDP feature | Support for a   |
   |             | 6overBT switch  |
   +-------------+-----------------+
   | SDP client  | M               |
   +-------------+-----------------+
   | SDP server  | M               |
   +-------------+-----------------+

   Table 8: SDP feature requirements for a 6over switch

3.3.2 General Operation

3.3.2.1 Advertising

   A switch must advertise its presence by regular inquiry scans for the
   GIAC. In the advertised device class field sent to devices performing
   inquiry a 6overBT switch should report itself as Networking/LAN
   access router. As specified in [8] the minor device field should rep-
   resent the current switch load, specifying the current number of con-
   nected slaves.

3.3.2.2 Service Discovery

   Apart from the information given in the device class field passed
   during inquiry, a switch should unambiguously denote its service by
   providing a SDP service record derived from the 6overBT service
   class.  The information provided by this service record is described
   in section 3.5.

3.3.3 Binding Records

   Fundamental data structures operated by the switch are unicast bind-
   ing records. A binding record stores all known IPv6 addresses,
   including the link-local address, which can be associated with a sin-
   gle mobile device. For each connection to a mobile device, a binding
   record is constructed and updated on each ICMPv6 neighbor advertise-
   ment message received by this mobile device. Binding records repre-
   sent soft state, which must be regularly updated in order to prevent
   it from timeout.

   Once the connection to the mobile device is lost, the associated
   binding record still persists until the lifetime of all of its adver-
   tised IPv6 addresses expire. Keeping the address state for a short
   while after connection loss speeds up the time in which a mobile
   device is able to fully participate again on reconnection to the same
   IPv6 switch (e.g. after recovering from a previous established link
   break down).

   Figure 3 shows a unicast binding record. A single Bluetooth Device
   Address (BD_ADDR) is associated with n > 0 IPv6 unicast addresses.
   Each IPv6 unicast address has its own timer.



draft-hansmann-6overbt-00.txt                                  [Page 13]

Internet Draft Transmission of native IPv6 over Bluetooth      June 2001

   +-------+  1    n  +----------------------+---------+
   |BD_ADDR|o--------o| IPv6-unicast-address | timeout |
   +-------+          +----------------------+---------+

   Figure 3: unicast binding record

   Binding records only contain information on unicast address mappings.
   To store information about multicast address bindings, a different
   data structure is used, the multicast binding record. In a multicast
   binding record, an IPv6 multicast address is mapped to a list of
   BD_ADDRs with mobile devices subscribed to a particular multicast
   group. Information on multicast group memberships are learned from
   ICMPv6 Multicast Listener Discovery (MLD) messages received by mobile
   devices. Unlike unicast binding records, information on multicast
   group membership of a particular mobile device is discarded on con-
   nection loss.

   +----------------------+  1    n  +--------+--------+
   |IPv6 multicast address|o--------o|BD_ADDR | timeout|
   +----------------------+          +--------+--------+

   Figure 4: multicast binding record

   A multicast binding record as shown in figure 4 is associated with n,
   n > 0 BD_ADDRs. Each BD_ADDR has its individual timeout after which
   its association to the multicast address will expire.

3.3.4 Connection State Machine

   Figure 5 shows the state diagram of the connection to a single mobile
   device. There are four different states of a connection specified:
   unbound/disconnected, unbound/connected, bound/ connected and
   bound/disconnected. Except for the unbound/disconnected state, a
   binding record is always associated with a connection.





















draft-hansmann-6overbt-00.txt                                  [Page 14]

Internet Draft Transmission of native IPv6 over Bluetooth      June 2001

                         .------------.
                         |  unbound/  |  conn. created
            .----------->|disconnected|------------.
            |            `------------'            |
            |binding record       ^                |
            |expired             /|\              \|/
            |                     | conn. loss     V
      .-----+------.              .___________.---------.
      |   bound/   |                          |unbound/ |
      |disconnected|--------.     .---------->|connected|
      `------------' reconn.|     |binding    `---------'
            ^               |     |record expired  |
           /|\             \|/    |                |
            |               V     |                |
            |conn. loss   .---------.     configure|
            '-------------| bound/  |<-------------'
                          |connected|
                          `---------'


   Figure 5: 6overBT switch binding record state machine

3.3.5 Disconnected State

3.3.5.1 Baseband / Link Manager Operation

   A switch should perform regular page scans in order to accept base-
   band connection attempts by mobile devices. After a new connection
   has been established, the switch must initialize a master-slave-
   switch in order to join the mobile device as slave into its piconet.
   This applies only, if the switch is configured to run in multi-user
   mode. Running in single-user mode does not require a master-slave-
   switch.

3.3.5.2 L2CAP Operation

   After baseband link establishment, a 6overBT switch expects a L2CAP
   channel request initiated by the mobile device for the PSM, which is
   advertised in the 6overBT service record. During L2CAP connection
   configuration, the switch should notify a link MTU of at least 1280
   octets.  The switch must be able to handle L2CAP datagrams with a
   payload of at least 1280 octets. However, if information on the
   actual external link MTU is known (e.g. as given in the MTU option of
   router advertisements sent by access routers), this MTU value should
   be used instead to configure the L2CAP link. Both peers must use the
   default Flush timeout value in order to provide a reliable L2CAP
   channel.  On successful channel configuration, the switch should cre-
   ate an empty unicast binding record for the mobile device and move
   the connection into connected/unbound state. If the IPv6 switch does
   not receive a L2CAP connection attempt to the PSM used by 6overBT
   within a TBD amount of time, the baseband connection should be
   released.



draft-hansmann-6overbt-00.txt                                  [Page 15]

Internet Draft Transmission of native IPv6 over Bluetooth      June 2001

3.3.6 Unbound/Connected State

   Connections in unbound/connected state represent links to mobile
   devices to which no BD_ADDR to IPv6 interface address mapping already
   exists. Though mobile devices are able to send packets, the switch is
   only able to broadcast packets destined to an unknown IPv6 address to
   all connected mobile devices. After at least one single IPv6 address
   has been associated with a mobile device, the connection changes to
   bound/connected state. If the connection is lost, the empty unicast
   binding record is discarded.

3.3.7 Bound/Connected State

   For connections in bound/connected state at least one IPv6 address of
   the mobile device is known. This is the default state for active con-
   nections.  Packets determined to mobile devices, which connections
   are in bound/connected state can be forwarded without broadcasting.
   If all known IPv6 addresses of a connected mobile device have
   expired, the connection changes to unbound/connected state.

   If the physical loss of the connection to a mobile device has been
   signalled, its unicast binding record changes to bound/disconnect
   state.

3.3.8 Bound/Disconnected State

   In the bound/disconnected state, the switch has lost the physical
   Bluetooth connection to a mobile device. However, information of
   associated IPv6 addresses is still maintained in a binding record
   until the addresses expire.

   If a mobile device reconnects to the switch and a binding record is
   still maintained, the baseband link setup step as described in sec-
   tion 3.3.5 is performed and the connection changes back into
   bound/connected state.

   IPv6 packets destined to mobile devices which are not connected to
   the switch but still have a binding record should be silently dis-
   carded. If all IPv6 addresses in a binding record have expired, the
   binding record is released.

3.3.9 IPv6 Packet Switching

   The following packet switching algorithm is performed each time the
   switch receives an IPv6 packet from any connection to a mobile device
   either in unbound/connected or bound/connected state.

   Switching decision is solely based on the IPv6 destination address of
   the received packet. A different switching strategy is used for uni-
   cast and multicast destination addresses.

3.3.9.1 Evaluation of ICMPv6 Messages

   A switch must evaluate IPv6 neighbor advertisement messages, router

draft-hansmann-6overbt-00.txt                                  [Page 16]

Internet Draft Transmission of native IPv6 over Bluetooth      June 2001

   advertisements and MLD messages intercepted from mobile devices.
   After evaluation, these packets should be forwarded as any other
   packet.  In the following the special treatment of these messages is
   depicted.

   Router advertisements

   A switch must intercept and evaluate router advertisements received
   by access routers. For each access router, it should store the infor-
   mation given in the latest router advertisement. This information
   should be deleted after its lifetime expires, which is given in the
   router advertisement.

   One of the connected access routers should be elected as default
   access router. How to determine this access router is still to be
   decided. A possibility is to use the access router with the lowest
   BD_ADDR. Other solutions may take access router capacity into
   account. The appropriate solution is still TBD.

   Neighbor advertisements

   Neighbor advertisements update binding records. If a new address is
   learned from a mobile device, this address should be added to its
   binding record, otherwise, the lifetime of the address should be
   updated. Expired IPv6 unicast addresses should be removed from uni-
   cast binding records.

   The lifetime of an IPv6 address in a binding record should be accord-
   ing to the "Reachable Time" value given in the router advertisement
   of the access router, which advertised network prefix was used to
   construct the address. If no router advertisements are available, or
   an unspecified value is given in the 'Reachable Time' field of the
   router advertisement, a timeout value of 45 (MAX_RANDOM_FACTOR *
   REACHABLE_TIME) seconds should be assumed.  According to [9], this is
   the longest time a node can use information from the neighbor cache
   of an unresponsive target node without performing neighbor unreacha-
   bility detection (sending neighbor solicitation and expecting a
   neighbor advertisement).

      [FIXME: according to our spec the Binding Record of a host times
      out 45 seconds after the last NA message has passed the switch.
      However, if a host receives reachability confirmation by other
      means than NUD (e.g. by progress detection) our Binding Record
      times out. Should actual usage of an address reset the Binding
      Cache timeout, too?]

   Multicast Listener Discovery messages

   An IPv6 switch should evaluate Multicast Listener Discovery messages
   sent by mobile devices in order to learn about multicast group mem-
   berships.  Joining a multicast group, a mobile device sends an unso-
   licited Multicast Listener Report to the all router multicast group
   of the link. Proper knowledge of group memberships reduces unneces-
   sary forwarding of multicast packets to unsubscribed mobile devices.

draft-hansmann-6overbt-00.txt                                  [Page 17]

Internet Draft Transmission of native IPv6 over Bluetooth      June 2001

   On reception of a Multicast Listener Report message, a switch must
   check, if an according multicast binding record for the advertised
   multicast address already exists. If yes, the BD_ADDR of the sending
   device is added to the multicast binding record. Otherwise, a new
   multicast binding record is created with the BD_ADDR of the mobile
   device as single listener. The multicast binding information should
   time out after 260 seconds as suggested by MLD (cf. [10]).

   If a Multicast Listener Done message is received from a mobile
   device, its binding must be immediately removed from the multicast
   address' multicast binding record. If no mobile devices are regis-
   tered listeners on a multicast group, the multicast binding record
   must be discarded.

   After evaluation, Multicast Listener Discovery messages must be for-
   warded like normal multicast packets.

3.3.9.2 Unicast Switching

   Receiving a packet, the switch has to decide, if the destination IPv6
   address is on-link, or not. A destination is considered "on-link", if
   the network prefix matches any of the network prefixes advertised in
   the intercepted router advertisements. If no router advertisements
   are available, the destination should be regarded on-link. If a des-
   tination is not on-link, the packet should be forwarded to the access
   router, which has advertised the network prefix, from which the
   source address in the packet has been generated. If several access
   routers have advertised the same prefix, an arbitrary access router
   should be chosen.

   If the destination address has an EUI-64 identifier (contains the
   BD_ADDR of the destination device), the datagram should be directly
   forwarded to the connected mobile device. No binding record lookup is
   necessary for such destination addresses.

   Otherwise, if a destination is on-link, the associated unicast bind-
   ing record is looked up and the packet should be forwarded to the
   appropriate mobile device. If no binding record is found for the des-
   tination, the packet should be forwarded to all links maintained to
   mobile devices.

3.3.9.3 Multicast Switching


   For forwarding of packets destined to a multicast group the following
   algorithm applies:

      If the destination multicast group has either global, site-local
      or organizational local scope AND the destination multicast
      address matches an existing Multicast Binding Record, THEN a copy
      of the packet should be forwarded through each L2CAP channel given
      in the Multicast Binding Record.

      If the IPv6 destination address is the solicited node multicast

draft-hansmann-6overbt-00.txt                                  [Page 18]

Internet Draft Transmission of native IPv6 over Bluetooth      June 2001

      address (FF02::1:FFxx:yyzz), the packet should be forwarded to all
      mobile devices with matching interface identifier.

      If according to these rules no destination has already been found,
      the multicast packet must be forwarded to all mobile devices.

3.3.10 IPv6 Host Capability

   An IPv6 switch may be configured to operate as an IPv6 capable node
   just like mobile devices. In this case, a binding record containing
   the IPv6 switch's own BD_ADDR address must be maintained permanently.
   As information on the used IPv6 addresses is locally available, the
   switch may employ means other than intercepting its own neighbor
   advertisements and MLD messages to learn about its IPv6 addresses and
   multicast group memberships.

   For the local IPv6 stack the 6overBT IPv6 switch should appear as a
   network interface, to which packets can be forwarded. Packets inter-
   cepted from the local IPv6 stack should be routed, as if a mobile
   device would have received them.

3.4 Specification of a 6overBT Access Router

   6overBT access routers are entities equipped with Bluetooth
   transceivers and at least another non-Bluetooth link-layer technology
   over which IPv6 based communication can take place. Access routers
   may be either fixed or mobile. The 6overBT specification for access
   routers is quite similar to the specification of a 6overBT mobile
   device - an access router is a 6overBT mobile device that operates an
   IPv6 stack configured as router.  Optionally, an IPv6 access router
   can be implemented along with a 6overBT IPv6 switch on the same phys-
   ical entity.

3.4.1 Required Bluetooth Functionality

   Implemented as a single entity, a 6overBT access router has the same
   Bluetooth requirements as a 6overBT mobile device. Combined with a
   6overBT IPv6 switch, an access router has the same Bluetooth require-
   ments as a 6overBT IPv6 switch.

3.4.2 General Operation

3.4.2.1 Inquiry

   If implemented as a separate entity, an access router could be
   restricted to connect only to an administratively determined set of
   known 6overBT IPv6 switches. The list of IPv6 switches allowed to
   connect to should be configurable. For this, Bluetooth specified
   means for authentication and security could be incorporated. Details
   for appropriate means are not within the scope of the current docu-
   ment.




draft-hansmann-6overbt-00.txt                                  [Page 19]

Internet Draft Transmission of native IPv6 over Bluetooth      June 2001

3.4.3 IPv6 Requirements

   The IPv6 stack on 6overBT access routers should be properly config-
   ured as router. The Bluetooth link presented by 6overBT should appear
   as a network interface for a broadcast multiple access link (e.g.
   Ethernet). At least one global scope or site local network prefix
   should be manually configured to the 6overBT link. The interface
   identifier for this link must be constructed according to the EUI-64
   identifier based on the 48-bit BD_ADDR, as described in section
   3.2.2. Other methods for building an interface identifier for access
   routers are not covered by this specification.

   The IPv6 stack must advertise the network prefix in router advertise-
   ments.  In router advertisements, the 'M' and 'O' flags should be set
   to zero in order to denote, that no stateful address configuration
   will take place for configuring a mobile device's IPv6 address. The
   advertised network prefixes must have the 'L' and 'A' flags set to
   one, indicating that the network prefixes should be used for on-link
   address determination and autonomous address configuration.

   Each router advertisement should contain a MTU Option, in which the
   recommended MTU of the 6overBT link is advertised. The link MTU
   should be the same MTU used on the access router's non-Bluetooth
   link, or 1280 octets, which ever is larger.

3.5 Service Records

   A 6overBT switch must provide a SDP service record of the 6overBT
   service class to advertise its service. The information items of that
   service record are summarized in Table 9. In the Protocol descriptor
   list 6overBT services are denoted to be built on top on L2CAP. Which
   PSM actually should be used for L2CAP channel establishment is given
   as "SpecificParameter0" of the L2CAP protocol description.

   The service record also provides information that could be obtained
   by router advertisements, once a 6overBT mobile device is connected
   to the switch. Providing information on IPv6 network prefixes at this
   early stage permits a 6overBT mobile device to configure its IPv6
   address(es) without sending a router solicitation and expecting sub-
   sequent router advertisement by 6overBT access routers.

   The 6overBT_SwitchLoad information item reveals the load situation on
   the switch in terms of the number of currently connected mobile
   devices.  The 6overBT_SessionDescriptionString information item pro-
   vides an identification useful to differentiate between 6overBT ses-
   sions offered by other 6overBT switches.









draft-hansmann-6overbt-00.txt                                  [Page 20]

Internet Draft Transmission of native IPv6 over Bluetooth      June 2001

   +--------------------------+-------+-------------------------------+
   | Item                     |Type   | Description                   |
   +--------------------------+-------+-------------------------------+
   | ServiceRecordHandle      |       |                               |
   +--------------------------+-------+-------------------------------+
   | ServiceClassIDList       |       |                               |
   +--------------------------+-------+-------------------------------+
   |    ServiceClass0         |UUID   | UUID of 6overBT service class |
   +--------------------------+-------+-------------------------------+
   | ProtocolDescriptorList   |       |                               |
   +--------------------------+-------+-------------------------------+
   |    Protocol0             |UUID   | UUID of L2CAP                 |
   +--------------------------+-------+-------------------------------+
   |       SpecificParameter0 |UInt16 | L2CAP PSM for 6overBT         |
   +--------------------------+-------+-------------------------------+
   |    Protocol1             |UInt16 | UUID for 6overBT              |
   +--------------------------+-------+-------------------------------+
   |       SpecificParameter0 |UInt16 | Version 1.0 (0x100)           |
   +--------------------------+-------+-------------------------------+
   | 6OVER_NetworkPrefixList  |       | List of network prefixes for  |
   |                          |       | the 6overBT piconet spanned by|
   |                          |       | this switch. The list of      |
   |                          |       | prefixes is learned from      |
   |                          |       | Router Advertisements sent    |
   |                          |       | by access routers             |
   +--------------------------+-------+-------------------------------+
   |    Prefix0               |UInt128| Network prefix 0              |
   +--------------------------+-------+-------------------------------+
   |    PrefixLength0         |UInt16 | Network prefix length         |
   +--------------------------+-------+-------------------------------+
   | ...                      |       |                               |
   +--------------------------+-------+-------------------------------+
   | 6OVER_SwitchLoad         |UInt16 | Number of 6overBT mobile      |
   |                          |       | devices connected to this     |
   |                          |       | switch                        |
   +--------------------------+-------+-------------------------------+
   | 6OVER_SessionDescr       |String | Human readable string         |
   |                          |       | describing the switch's       |
   |                          |       | service. Useful to            |
   |                          |       | distinguish between the       |
   |                          |       | services of several           |
   |                          |       | available 6overBT switches at |
   |                          |       | the same place                |
   +--------------------------+-------+-------------------------------+

   Table 9: Information elements in a 6overBT service record

3.6 Multiple Switches in a Piconet

   It is likely that several devices with 6overBT switch capability
   attempt to participate in a 6overBT piconet. In this case, one device
   must be selected as 6overBT switch while the other devices take over
   the role as 6overBT mobile device. The choice of which device to use
   as 6overBT switch in this situation should be user configurable.

draft-hansmann-6overbt-00.txt                                  [Page 21]

Internet Draft Transmission of native IPv6 over Bluetooth      June 2001

4.0 Security Considerations

   6overBT makes excessive use of Neighbor Discovery and thus shares
   ND's security problems in case of unauthenticated ND messages.

   The current version of the draft does not address the setup of Blue-
   tooth link encryption. A future version of the draft should reflect
   that.

   No access control has been specified so far. Mobile devices can con-
   nect at their will to a 6overBT switch. This issue must be addressed
   in a future version of this draft.

5.0 Summary

   With 6overBT we have specified a mechanism for efficient transport of
   IPv6 over Bluetooth. IPv6 packets are transported in the payload of
   L2CAP with no additional protocol overhead. Being a Bluetooth master
   device a 6overBT switch is able to provide connectivity for up to 7
   slave devices. 6overBT emulates a broadcast access environment using
   the 6overBT switch as the basic means to organize communication.  IP
   switching is performed at the switch and is based on information
   gained from intercepted ND messages by the slave devices.  This way,
   the Bluetooth device appears to the IP stack at the switch as single
   network interface providing capabilities similar to Ethernet.






























draft-hansmann-6overbt-00.txt                                  [Page 22]

Internet Draft Transmission of native IPv6 over Bluetooth      June 2001

6.0 References

   [1]  J. Postel, "Internet Protocol", STD 5, RFC 791, IETF, September 1981.

   [2]  Specification of the Bluetooth System, Version 1.0 B, Profiles, Part K:9,
        "LAN Access Profile", December 1999.

   [3]  S. Deering, R. Hinden, "Internet Protocol, Version 6 (IPv6)
        Specification", RFC 2460, IETF, December 1998.

   [4]  Specification of the Bluetooth System, Version 1.0 B, Profiles,
        December 1999.

   [5]  R. Hinden, S. Deering, "IP Version 6 Addressing Architecture", RFC 2373,
        IETF, July 1998.

   [6]  M. Crawford, "Transmission of IPv6 Packets over Ethernet Network", RFC
        2464, December 1998

   [7]  Specification of the Bluetooth System, Version 1.0 B, Profiles,
        Part K:2, "Service Discovery Application Profile", December 1999.

   [8]  Specification of the Bluetooth System, Version 1.0 B, Core, December
        1999.

   [9] T. Narten, E. Nordmark, W. Simpson, "Neighbor Discovery for IP Version 6
        (IPv6)", RFC 2461, December 1998

   [10] S. Deering, W. Fenner, B. Haberman, "Multicast Listener Discovery
        (MLD) for IPv6", RFC 2710, IETF, October 1999.

























draft-hansmann-6overbt-00.txt                                  [Page 23]

Internet Draft Transmission of native IPv6 over Bluetooth      June 2001

7.0 Author's Addresses

   Matthias Frank
   University of Bonn
   Institute of Computer Science IV
   Roemerstr. 164                    Phone: +49 228 73 4550
   D-53117 Bonn, Germany             Email: matthew@cs.uni-bonn.de

   Rolf G. Goepffarth
   University of Bonn
   Institute of Computer Science IV
   Roemerstr. 164                    Phone: +49 228 73 4549
   D-53117 Bonn, Germany             Email: rgg@cs.uni-bonn.de

   Wolfgang Hansmann
   University of Bonn
   Institute of Computer Science IV
   Roemerstr. 164                    Phone: +49 228 73 4549
   D-53117 Bonn, Germany             Email: hansmann@cs.uni-bonn.de

   Ulrich Mueller
   University of Bonn
   Institute of Computer Science IV
   Roemerstr. 164
   D-53117 Bonn, Germany             Email: muelleru@cs.uni-bonn.de






























draft-hansmann-6overbt-00.txt                                  [Page 24]