Radio Baseband LMP HCI L2CAP RFCOMM SDP Profiles

K1 - Generic Access Profile

 

     This profile defines the generic procedures related to discovery of Bluetooth devices (idle mode procedures) and link management aspects of connecting to Bluetooth devices (connecting mode procedures). It also defines procedures related to use of different security levels.

    Essentially this profile describes how the lower layers (LMP and Baseband) are used, along with some higher layers.

For more details : Download the K1 Specification from the SIG website, or visit the Documents Page.

        Table Of Contents

1.1 Profile Overview
1.1.1 Profile Stack
1.1.2 Configurations/Roles
1.1.3 User Requirements/Scenarios
1.1.4 Profile Fundamentals
1.1.5 Conformance
1.2 User Interface Aspects
1.2.1 Bluetooth Parameter Representation
1.2.2 Pairing
1.3 Modes
1.3.1 Discoverability Modes
1.3.2 Connectability Modes
Pairing Modes
1.4 Security Aspects
1.4.1 Authentication
1.4.2 Security Modes
1.5 Idle Mode Procedures
1.5.1 General Inquiry
1.5.2 Limited Inquiry
1.5.3 Name Discovery
1.5.4 Device Discovery
1.5.5 Bonding
1.6 Establishment Procedures
1.6.1 Link Establishment
1.6.2 Channel Establishment
1.6.3 Connection Establishment
1.6.4 Establishment of Additional Connections

 

 

1.1  Profile Overview

1.1.1   Profile Stack

    The main purpose of this profile is to describe the use of the lower layers of the Bluetooth protocol stack (LC and LMP). To describe security related alternatives, also higher layers (L2CAP, RFCOMM and OBEX) are included.

1.1.2   Configurations/Roles

   For the descriptions in this profile of the roles that the two devices involved in a Bluetooth communication can take, the generic notation of the A-party (the paging device in case of link establishment, or initiator in case of another procedure on an established link) and the B-party (paged device or acceptor) is used. The A-party is the one that, for a given procedure, initiates the establishment of the physical link or initiates a transaction on an existing link.

    The initiator and the acceptor generally operate the generic procedures according to this profile or another profile referring to this profile.

1.1.3  User Requirements/Scenarios

   The Bluetooth user should in principle be able to connect a Bluetooth device to any other Bluetooth device. Even if the two connected devices don’t share any common application, it should be possible for the user to find this out using basic Bluetooth capabilities.

1.1.4  Profile Fundamentals

    This profile:

  • States the requirements on names, values and coding schemes used for names of parameters and procedures experienced on the user interface level.
  • Defines modes of operation that are not service- or profile-specific, but generic to all profiles.
  • Defines the general procedures that can be used for discovering identities, names and basic capabilities of other Bluetooth devices that are in a mode where they can be discoverable. Only procedures where no channel or connection establishment is used are specified.
  • Defines the general procedure for how to create bonds between Bluetooth devices.
  • Describes the general procedures that can be used for establishing connections to other Bluetooth devices

1.1.5  Conformance

    Bluetooth devices that do not conform to any other Bluetooth profile shall conform to this profile to ensure basic interoperability and co-existence.

 

1.2  User Interface Aspects

    The generic access profile specifies the generic terms that should be used on the user interface level.

 

1.2.1  Bluetooth Parameter Representation

Bluetooth Device Address (BD_ADDR):

  • The BD_ADDR is the unique address of a Bluetooth device   It is received from a remote device during the device discovery procedure. At the UI level this it is referred to as 'Bluetooth Device Address' and is defined at Baseband level as a 48-bit address (12 hexadecimal characters)

Bluetooth Device Name (User Friendly Name):

  • The bluetooth device user-friendly name is a character string returned in LMP_name_res as a response to a LMP_name_req. At the UI level it is referred to as the 'Bluetooth Device Name' and can be up to 248 characters, although it should not be assumed that a remote device can handle more than the first 40 characters.

Bluetooth Pass-Key (PIN Number):

  • The Bluetooth PIN is used to authenticate two Bluetooth devices (that have not previously exchanged link keys) to each other and create a trusted relationship between them. The PIN may be entered on UI level but may also be stored in the device. At the UI level it is referred to as the 'Bluetooth Passkey'

Bluetooth Class of Device (Device Type)

  • Class of device is a parameter received during the device discovery procedure, indicating the type of device and which types of service that are supported. The information within the Class of Device parameter should be referred to as ’Bluetooth Device Class’ (i.e. the major and minor device class fields) and ’Bluetooth Service Type’ (i.e. the service class field).

1.2.2  Pairing

    Two procedures are defined that make use of the pairing procedure defined on LMP level . Either the

  1. user initiates the bonding procedure and enters the passkey with the explicit purpose of creating a bond (and maybe also a secure relationship) between two Bluetooth devices, or
  2. the user is requested to enter the passkey during the establishment procedure since the devices did not share a common link key beforehand.

    In the first case, the user is said to perform ’bonding (with entering of passkey)’ and in the second case the user is said to ’authenticate using the passkey’.

1.3  Modes

1.3.1  Discoverability Modes

    With respect to inquiry, a Bluetooth device shall be either in non-discoverable mode or in a discoverable mode. (The device shall be in one, and only one, discoverability mode at a time.) The two discoverable modes defined here are called limited discoverable mode and general discoverable mode.

Non-discoverable Mode:

  • When a Bluetooth device is in non-discoverable mode, it shall never enter the INQUIRY_RESPONSE state.
  • Device is 'non-discoverable' or in 'non-discoverable mode'.

Limited discoverable Mode:  

  • The limited discoverable mode should be used by devices that need to be discoverable only for a limited period of time, during temporary conditions or for a specific event. The purpose is to respond to a device that makes a limited inquiry
  • Device is 'discoverable' or in 'discoverable mode'.

General discoverable Mode:

  • The general discoverable mode shall be used by devices that need to be discoverable continuously or for no specific condition. The purpose is to respond to a device that makes a general inquiry (inquiry using the GIAC).
  • Device is 'discoverable' or in 'discoverable mode'.

1.3.2  Connectability Modes

    With respect to paging, a Bluetooth device shall be either in non-connectable mode or in connectable mode. When a Bluetooth device is in non-connectable mode it does not respond to paging. When a Bluetooth device is in connectable mode it responds to paging.

Non-connectable Mode

  • When a Bluetooth device is in non-connectable mode it shall never enter the PAGE_SCAN state.
  • Device is 'non-connectable' or in 'non-connectable mode'

Connectable Mode

  • When a Bluetooth device is in connectable mode it shall periodically enter the PAGE_SCAN state.
  • Device is ’connectable’ or in ’connectable mode’.

1.3.3  Pairing Modes

   With respect to pairing, a Bluetooth device shall be either in non-pairable mode or in pairable mode. In pairable mode the Bluetooth device accepts paring – i.e. creation of bonds – initiated by the remote device, and in non-pairable mode it does not.

Non-pairable Mode

  • When a Bluetooth device is in non-pairable mode it shall respond to a received LMP_in_rand with LMP_not_accepted with the reason pairing not allowed.
  • Device is ’non-bondable’ or in ’non-bondable mode’ or "does not accept bonding".

Pairable Mode

  • When a Bluetooth device is in pairable mode it shall respond to a received LMP_in_rand with LMP_accepted (or with LMP_in_rand if it has a fixed PIN).
  • Device is ’bondable’ or in ’bondable mode’ or "accepts bonding".

1.4  Security Aspects

    Security is guaranteed in the generic access profile by two methods, an authentication process and a choice of security modes

1.4.1  Authentication

    The generic authentication procedure describes how the LMP-authentication and LMP-pairing procedures are used when authentication is initiated by one Bluetooth device towards another, depending on if a link key exists or not and if pairing is allowed or not.

    Note: The device that initiates authentication has to be in security mode 2 or in security mode 3.

1.4.2  Security Modes

Security Mode 1

  • When a Bluetooth device is in security mode 1 it shall never initiate any security procedure (i.e., it shall never send LMP_au_rand, LMP_in_rand or LMP_encryption_mode_req).

Security Mode 2

  • When a Bluetooth device is in security mode 2 it shall not initiate any security procedure before a channel establishment request (L2CAP_ConnectReq) has been received or a channel establishment procedure has been initiated by itself.

Security Mode 3

  • When a Bluetooth device is in security mode 3 it shall initiate security procedures before it sends LMP_link_setup_complete.

1.5  Idle Mode Procedures

    The inquiry and discovery procedures described here are applicable only to the device that initiates them (A).

1.5.1  General Inquiry

  • The purpose of the general inquiry procedure is to provide the initiator with the Bluetooth device address, clock, Class of Device and used page scan mode of general discoverable devices (i.e. devices that are in range with regard to the initiator and are set to scan for inquiry messages with the General Inquiry Access Code). Also devices in limited discoverable mode will be discovered using general inquiry.
  • The general inquiry should be used by devices that need to discover devices that are made discoverable continuously or for no specific condition.
  • In order to receive inquiry response, the remote devices in range have to be made discoverable (limited or general).

1.5.2  Limited Inquiry

  • The purpose of the limited inquiry procedure is to provide the initiator with the Bluetooth device address, clock, Class of Device and used page scan mode of limited discoverable devices. The latter devices are devices that are in range with regard to the initiator, and may be set to scan for inquiry messages with the Limited Inquiry Access Code, in addition to scanning for inquiry messages with the General Inquiry Access Code.
  • The limited inquiry should be used by devices that need to discover devices that are made discoverable only for a limited period of time, during temporary conditions or for a specific event. Since it is not guaranteed that the discoverable device scans for the LIAC, the initiating device may choose any inquiry procedure (general or limited).
  • In order to receive inquiry response, the remote devices in range has to be made limited discoverable.

1.5.3  Name Discovery

    The purpose of name discovery is to provide the initiator with the Bluetooth Device Name of connectable devices (i.e. devices in range that will respond to paging). It can be done in 2 ways:

Name Request:

  • Name request is the procedure for retrieving the Bluetooth Device Name from a connectable Bluetooth device. It is not necessary to perform the full link establishment procedure in order to just to get the name of another device.

Name Discovery:

  • Name discovery is the procedure for retrieving the Bluetooth Device Name from connectable Bluetooth devices by performing name request towards known devices (i.e. Bluetooth devices for which the Bluetooth Device Addresses are available).

1.5.4  Device Discovery

  • The purpose of device discovery is to provide the initiator with the Bluetooth Address, clock, Class of Device, used page scan mode and Bluetooth device name of discoverable devices.
  • Devices discovered during device discovery must be both discoverable and connectable.

1.5.5  Bonding

  • The purpose of bonding is to create a relation between two Bluetooth devices based on a common link key (a bond). The link key is created and exchanged (pairing) during the bonding procedure and is expected to be stored by both Bluetooth devices, to be used for future authentication.
  • Before bonding can be initiated, the initiating device (A) must know the Device Access Code of the device to pair with.

 

1.6  Establishment Procedures

    Before establishment procedures are initiated, the information provided during device discovery (in the FHS packet of the inquiry response or in the response to a name request) has to be available in the initiating device. This information is:

  • The Bluetooth Device Address (BD_ADDR) from which the Device Access Code is generated;
  • The system clock of the remote device;
  • The page scan mode used by the remote device.

1.6.1  Link Establishment

    The purpose of the link establishment procedure is to establish a physical link (of ACL type) between two Bluetooth devices.

   It typically involves 2 stages: Paging, and Link Setup

1.6.2  Channel Establishment

    The purpose of the channel establishment procedure is to establish a Bluetooth channel (a logical link) between two Bluetooth devices.

   Channel establishment starts after link establishment is completed when the initiator sends a channel establishment request

1.6.3  Connection Establishment

   The purpose of the connection establishment procedure is to establish a connection between applications on two Bluetooth devices.

1.6.4  Establishment of Additional Connections

   When a Bluetooth device has established one connection with another Bluetooth device, it may be available for establishment of:

  • A second connection on the same channel, and/or
  • A second channel on the same link, and/or
  • A second physical link.

 

Note , the above text contains excerpts from the Bluetooth SIG's Specification, as well as various interpretations of the Specs. For complete details of the various sections, consult the actual Bluetooth Specification.