blob: f02738edc958909a97e6464675613b3af2594206 [file] [log] [blame]
Bluetooth Management API
*************************
Copyright (C) 2008-2009 Marcel Holtmann <marcel@holtmann.org>
Packet Structures
=================
Commands:
0 4 8 12 16 22 24 28 31 35 39 43 47
+-------------------+-------------------+-------------------+
| Command Code | Controller Index | Parameter Length |
+-------------------+-------------------+-------------------+
| |
Events:
0 4 8 12 16 22 24 28 31 35 39 43 47
+-------------------+-------------------+-------------------+
| Event Code | Controller Index | Parameter Length |
+-------------------+-------------------+-------------------+
| |
Controller Index can have a special value <non-controller> to indicate that
command or event is not related to any controller. Possible values:
<controller id> 0x0000 to 0xFFFE
<non-controller> 0xFFFF
Read Management Version Information Command
===========================================
Command Code: 0x0001
Controller Index: <non-controller>
Command Parameters:
Return Parameters: Version (1 Octets)
Revision (2 Octets)
Read Management Supported Features Command
==========================================
Command Code: 0x0002
Controller Index: <non-controller>
Command Parameters:
Return Parameters: Features (8 Octets)
Feature Bit 0: Controller Support
Feature Bit 1: Tracing Support
Read Controller Index List Command
==================================
Command Code: 0x0003
Controller Index: <non-controller>
Command Parameters:
Return Paramters: Num_Controllers (2 Octets)
Controller_Index[i] (2 Octets)
Read Controller Information Command
===================================
Command Code: 0x0004
Controller Index: <controller id>
Command Parameters:
Return Parameters: Controller_Type (1 Octet)
Powered (1 octet)
Connectable (1 octet)
Discoverable (1 octet)
Pairable (1 octed)
Security_Mode (1 octed)
BD_ADDR (6 Octets)
Device_Class (3 octets)
Supported_Features (8 Octets)
Manufacturer (2 Octets)
HCI_Version (1 Octet)
HCI_Revision (2 Octets)
Name (249 Octets)
Controller_Type:0x00 Reserved
0x01 Bluetooth (BR/EDR)
0x02 802.11 (AMP)
Set Powered Command
===================
Command Code: 0x0005
Controller Index: <controller id>
Command Parameters: Powered (1 Octet)
Return Paramters: Powered (1 Octet)
Set Discoverable Command
========================
Command Code: 0x0006
Controller Index: <controller id>
Command Parameters: Discoverable (1 Octet)
Return Paramters: Discoverable (1 Octet)
Set Connectable Command
=======================
Command Code: 0x0007
Controller Index: <controller id>
Command Parameters: Connectable (1 Octet)
Return Paramters: Connectable (1 Octet)
Set Pairable Command
====================
Command Code: 0x0008
Controller Index: <controller id>
Command Parameters: Pairable (1 Octet)
Return Paramters: Pairable (1 Octet)
Add UUID Command
================
Command Code: 0x0009
Controller Index: <controller id>
Command Parameters: UUID (16 Octets)
SVC_Hint (1 octet)
Return Paramters:
Remove UUID Command
===================
Command Code: 0x000A
Controller Index: <controller id>
Command Parameters: UUID (16 Octets)
Return Paramters:
Set Device Class
================
Command Code: 0x000B
Controller Index: <controller id>
Command Parameters: Major_Class (1 octet)
Minor_Class (1 octed)
Return Paramters:
Set Service Cache Command
=========================
Command Code: 0x000C
Controller Index: <controller id>
Command Parameters: Enable (1 octet)
Return Paramters:
Load Keys Command
=================
Command Code: 0x000D
Controller Index: <controller id>
Command Parameters: Debug_Keys (1 Octet)
Key_Count (2 Octets)
Key1 {
Address (6 Octets)
Type (1 Octet)
Value (16 Octets)
PIN_Length (1 Octet)
}
Key2 { }
...
Return Paramters:
Remove Key Command
==================
Command Code: 0x000E
Controller Index: <controller id>
Command Parameters: Address (6 Octets)
Disconnect (1 Octet)
Return Paramters:
Disconnect Command
==================
Command Code: 0x000F
Controller Index: <controller id>
Command Parameters: Address (6 Octets)
Return Paramters: Address (6 Octets)
Get Connections Command
=======================
Command Code: 0x0010
Controller Index: <controller id>
Command Parameters:
Return Paramters: Connection_Count (2 Octets)
Address1 (6 Octets)
Address2 (6 Octets)
...
PIN Code Reply Command
=======================
Command Code: 0x0011
Controller Index: <controller id>
Command Parameters:
Return Paramters: Address (6 Octets)
PIN_Length (1 Octet)
PIN_Code (16 Octets)
PIN Code Negative Reply Command
===============================
Command Code: 0x0012
Controller Index: <controller id>
Command Parameters:
Return Paramters: Address (6 Octets)
Set IO Capability Command
=========================
Command Code: 0x0013
Controller Index: <controller id>
Command Parameters: IO_Capability (1 Octet)
Return Paramters:
Pair Device Command
===================
Command Code: 0x0014
Controller Index: <controller id>
Command Parameters: Address (6 Octets)
IO_Capability (1 Octet)
Return Paramters: Address (6 Octets)
Status (1 Octet)
User Confirmation Reply Command
===============================
Command Code: 0x0015
Controller Index: <controller id>
Command Parameters: Address (6 Octets)
Return Paramters: Address (6 Octets)
Status (1 Octet)
User Confirmation Negative Reply Command
========================================
Command Code: 0x0016
Controller Index: <controller id>
Command Parameters: Address (6 Octets)
Return Paramters: Address (6 Octets)
Status (1 Octet)
Set Local Name Command
======================
Command Code: 0x0017
Controller Index: <controller id>
Command Parameters: Name (249 Octets)
Return Paramters: Name (249 Octets)
Read Local Out Of Band Data Command
========================================
Command Code: 0x0018
Controller Index: <controller id>
Command Parameters:
Return Paramters: Hash (16 Octets)
Randomizer (16 Octets)
Add Remote Out Of Band Data Command
========================================
Command Code: 0x0019
Controller Index: <controller id>
Command Parameters: Address (6 Octets)
Hash (16 Octets)
Randomizer (16 Octets)
Return Paramters:
Remove Remote Out Of Band Data Command
========================================
Command Code: 0x001A
Controller Index: <controller id>
Command Parameters: Address (6 Octets)
Return Paramters:
Read Tracing Buffer Size Command
================================
Command Code: <not yet assigned>
Controller Index: <non-controller>
Command Parameters:
Return Parameters: Status (1 Octet)
Buffer_Size (2 Octets)
Buffer Size in Kilobytes
Write Tracing Buffer Size Command
=================================
Command Code: <not yet assigned>
Controller Index: <non-controller>
Command Parameters: Buffer_Size (2 Octets)
Return Parameters: Status (1 Octet)
Buffer Size in Kilobytes
Read Controller Tracing Filter Command
=======================================
Command Code: <not yet assigned>
Controller Index: <controller id>
Command Parameters:
Return Parameters: Status (1 Octet)
Tracing_Enable (1 Octect)
Num_Filters (2 Octect)
Protocol_UUID[i] (16 Octets)
Protocol_Identifier[i] (16 Octets)
Tracing_Enable: 0x00 Tracing disabled
0x01 Command and Event tracing
0x02 Command, Event and ACL tracing
0x03 Command, Event, ACL and SCO tracing
Write Controller Tracing Filter Command
=======================================
Command Code: <not yet assigned>
Controller Index: <controller id>
Command Parameters: Tracing_Enable (1 Octect)
Num_Filters (2 Octect)
Protocol_UUID[i] (16 Octets)
Protocol_Identifier[i] (16 Octets)
Return Paramters: Status (1 Octet)
Command Complete Event
======================
Event Code 0x0001
Controller Index: <controller id> or <non-controller>
Event Parameters Command_Opcode (2 Octets)
Return_Parameters
Command Status Event
====================
Event Code 0x0002
Controller Index: <controller id> or <non-controller>
Event Parameters Status (1 Octet)
Command_Opcode (2 Octets)
Controller Error Event
======================
Event Code 0x0003
Controller Index: <controller id>
Event Parameters Error_Code (1 Octet)
Index Added Event
=================
Event Code 0x0004
Controller Index: <controller id>
Event Parameters
Index Removed Event
===================
Event Code 0x0005
Controller Index: <controller id>
Event Parameters
Controller Powered Event
========================
Event Code 0x0006
Controller Index: <controller id>
Event Parameters Powered (1 Octet)
Controller Discoverable Event
=============================
Event Code 0x0007
Controller Index: <controller id>
Event Parameters Discoverable (1 Octet)
Controller Connectable Event
============================
Event Code 0x0008
Controller Index: <controller id>
Event Parameters Connectable (1 Octet)
Controller Pairable Event
=========================
Event Code 0x0009
Controller Index: <controller id>
Event Parameters Pairable (1 Octet)
New Key Event
=============
Event Code 0x000A
Controller Index: <controller id>
Event Parameters Key {
Address (6 Octets)
Type (1 Octet)
Value (16 Octets)
PIN_Length (1 Octet)
}
Old_Key_Type (1 Octet)
Device Connected Event
======================
Event Code 0x000B
Controller Index: <controller id>
Event Parameters Address (6 Octets)
Device Disconnected Event
=========================
Event Code 0x000C
Controller Index: <controller id>
Event Parameters Address (6 Octets)
Connect Failed Event
====================
Event Code 0x000D
Controller Index: <controller id>
Event Parameters Address (6 Octets)
Status (1 Octet)
PIN Code Request Event
======================
Event Code 0x000E
Controller Index: <controller id>
Event Parameters Address (6 Octets)
User Confirmation Request Event
===============================
Event Code 0x000F
Controller Index: <controller id>
Event Parameters Address (6 Octets)
Value (4 Octets)
Authentication Failed Event
===========================
Event Code 0x0010
Controller Index: <controller id>
Event Parameters Address (6 Octets)
Status (1 Octet)
Local Name Changed Event
========================
Event Code 0x0011
Controller Index <controller id>
Event Parameters Name (249 Octets)