bluez/doc/mgmt-api.txt

765 lines
16 KiB
Plaintext
Raw Normal View History

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 |
+-------------------+-------------------+-------------------+
| |
All fields are in little-endian byte order (least significant byte first).
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:
2011-07-19 02:00:09 +08:00
Return Parameters: Num_Controllers (2 Octets)
Controller_Index[i] (2 Octets)
Read Controller Information Command
===================================
Command Code: 0x0004
Controller Index: <controller id>
Command Parameters:
Return Parameters: Address (6 Octets)
Bluetooth_Version (1 Octet)
Manufacturer (2 Octets)
Supported_Settings (4 Octets)
Current_Settings (4 Octets)
Class_Of_Device (3 Octets)
Name (249 Octets)
Short_Name (11 Octets)
If not short name is set the Short_Name parameter will be empty
(begin with a nul byte).
Current_Settings & Supported_Settings is a bitmask with
currently the following available bits:
1 Powered
2 Connectable
3 Fast Connectable
4 Discoverable
5 Pairable
2011-12-14 20:10:11 +08:00
6 Link Level Security (Sec. mode 3)
7 Secure Simple Pairing
8 Basic Rate/Enhanced Data Rate
9 High Speed
10 Low Energy
Set Powered Command
===================
Command Code: 0x0005
Controller Index: <controller id>
Command Parameters: Powered (1 Octet)
Return Parameters: Current_Settings (4 Octets)
Set Discoverable Command
========================
Command Code: 0x0006
Controller Index: <controller id>
Command Parameters: Discoverable (1 Octet)
Timeout (2 Octets)
Return Parameters: Current_Settings (4 Octets)
Timeout is the time in seconds and is only meningful when
Discoverable is set to 1.
Set Connectable Command
=======================
Command Code: 0x0007
Controller Index: <controller id>
Command Parameters: Connectable (1 Octet)
Return Parameters: Current_Settings (4 Octets)
Set Fast Connectable Command
============================
Command Code: 0x0008
Controller Index: <controller id>
Command Parameters: Enable (1 Octet)
Return Parameters: Current_Settings (4 Octets)
Set Pairable Command
====================
Command Code: 0x0009
Controller Index: <controller id>
Command Parameters: Pairable (1 Octet)
Return Parameters: Current_Settings (4 Octets)
2011-12-14 20:10:11 +08:00
Set Link Security Command
=========================
Command Code: 0x000A
Controller Index: <controller id>
Command Parameters: Link_Security (1 Octet)
Return Parameters: Current_Settings (4 Octets)
Set Secure Simple Pairing Command
=================================
2011-12-14 20:10:11 +08:00
Command Code: 0x000B
Controller Index: <controller id>
Command Parameters: Secure_Simple_Pairing (1 Octet)
Return Parameters: Current_Settings (4 Octets)
Set High Speed Command
======================
2011-12-14 20:10:11 +08:00
Command Code: 0x000C
Controller Index: <controller id>
Command Parameters: High_Speed (1 Octet)
Return Parameters: Current_Settings (4 Octets)
Set Low Energy Command
======================
2011-12-14 20:10:11 +08:00
Command Code: 0x000D
Controller Index: <controller id>
Command Parameters: Low_Energy (1 Octet)
Return Parameters: Current_Settings (4 Octets)
2011-12-14 20:10:11 +08:00
Set Device Class
================
Command Code: 0x000E
Controller Index: <controller id>
2011-12-14 20:10:11 +08:00
Command Parameters: Major_Class (1 Octet)
Minor_Class (1 Octet)
Return Parameters: Class_Of_Device (3 Octets)
2011-12-14 20:10:11 +08:00
This command will also implicitly disable caching of pending CoD
and EIR updates.
Set Local Name Command
======================
Command Code: 0x000F
Controller Index: <controller id>
Command Parameters: Name (249 Octets)
Short_Name (11 Octets)
Return Parameters: Name (249 Octets)
Short_Name (11 Octets)
The name parameters need to always end with a nul byte (failure
to do so will cause the command to fail).
2011-12-14 20:10:11 +08:00
Add UUID Command
================
Command Code: 0x0010
Controller Index: <controller id>
2011-12-14 20:10:11 +08:00
Command Parameters: UUID (16 Octets)
SVC_Hint (1 Octet)
Return Parameters: Class_Of_Device (3 Octets)
2011-12-14 20:10:11 +08:00
Remove UUID Command
===================
Command Code: 0x0011
Controller Index: <controller id>
2011-12-14 20:10:11 +08:00
Command Parameters: UUID (16 Octets)
Return Parameters: Class_Of_Device (3 Octets)
2011-10-24 20:24:53 +08:00
Load Link Keys Command
======================
Command Code: 0x0012
Controller Index: <controller id>
Command Parameters: Debug_Keys (1 Octet)
Key_Count (2 Octets)
Key1 {
Address (6 Octets)
Key_Type (1 Octet)
Value (16 Octets)
PIN_Length (1 Octet)
}
Key2 { }
...
2011-07-19 02:00:09 +08:00
Return Parameters:
Load Long Term Keys Command
===========================
Command Code: 0x0013
Controller Index: <controller id>
Command Parameters: Key Count (2 Octets)
Key1 {
Address (6 Octets)
Address_Type (1 Octet)
Authenticated (1 Octet)
Master (1 Octet)
Encryption Size (1 Octet)
Enc. Diversifier (2 Octets)
Random Number (8 Octets)
Value (16 Octets)
}
Key2 { }
...
Disconnect Command
==================
Command Code: 0x0014
Controller Index: <controller id>
Command Parameters: Address (6 Octets)
Address_Type (1 Octet)
2011-07-19 02:00:09 +08:00
Return Parameters: Address (6 Octets)
Address_Type (1 Octet)
Status (6 Octets)
Get Connections Command
=======================
Command Code: 0x0015
Controller Index: <controller id>
Command Parameters:
2011-07-19 02:00:09 +08:00
Return Parameters: Connection_Count (2 Octets)
Address1 {
Address (6 Octets)
Address_Type (1 Octet)
}
Address2 { }
...
Possible values for the Address_Type parameter:
0 BR/EDR
1 LE Public
2 LE Random
2011-01-24 17:50:34 +08:00
PIN Code Reply Command
=======================
Command Code: 0x0016
Controller Index: <controller id>
Command Parameters:
2011-07-19 02:00:09 +08:00
Return Parameters: Address (6 Octets)
2011-01-24 17:50:34 +08:00
PIN_Length (1 Octet)
PIN_Code (16 Octets)
PIN Code Negative Reply Command
===============================
Command Code: 0x0017
Controller Index: <controller id>
Command Parameters:
2011-07-19 02:00:09 +08:00
Return Parameters: Address (6 Octets)
2011-01-25 19:45:24 +08:00
Set IO Capability Command
=========================
Command Code: 0x0018
Controller Index: <controller id>
Command Parameters: IO_Capability (1 Octet)
2011-07-19 02:00:09 +08:00
Return Parameters:
2011-01-25 19:45:24 +08:00
Pair Device Command
===================
Command Code: 0x0019
Controller Index: <controller id>
Command Parameters: Address (6 Octets)
Address_Type (1 Octet)
IO_Capability (1 Octet)
2011-07-19 02:00:09 +08:00
Return Parameters: Address (6 Octets)
Address_Type (1 Octet)
Status (1 Octet)
Possible values for the Address_Type parameter:
0 BR/EDR
1 LE Public
2 LE Random
Cancel Pair Device
==================
Command Code: 0x001A
Controller Index: <controller id>
Command Parameters: Address (6 Octets)
Address_Type (1 Octet)
Return Parameters: Address (6 Octets)
Address_Type (1 Octet)
The Address and Address_Type parameters should match what was
given to a preceding Pair Device command.
Unpair Device Command
=====================
Command Code: 0x001B
Controller Index: <controller id>
Command Parameters: Address (6 Octets)
Address_Type (1 Octet)
Disconnect (1 Octet)
Return Parameters: Address (6 Octets)
Address_Type (1 Octet)
Status (1 Octet)
Removes all keys associated with the remote device.
User Confirmation Reply Command
===============================
Command Code: 0x001C
Controller Index: <controller id>
Command Parameters: Address (6 Octets)
Address_Type (1 Octet)
2011-07-19 02:00:09 +08:00
Return Parameters: Address (6 Octets)
Address_Type (1 Octet)
Status (1 Octet)
User Confirmation Negative Reply Command
========================================
Command Code: 0x001D
Controller Index: <controller id>
Command Parameters: Address (6 Octets)
Address_Type (1 Octet)
2011-07-19 02:00:09 +08:00
Return Parameters: Address (6 Octets)
Address_Type (1 Octet)
Status (1 Octet)
User Passkey Reply Command
==========================
Command Code: 0x001E
Controller Index: <controller id>
Command Parameters: Address (6 Octets)
Address_Type (1 Octet)
Passkey (4 Octets)
Return Parameters: Address (6 Octets)
Address_Type (1 Octet)
Status (1 Octet)
User Passkey Negative Reply Command
===================================
Command Code: 0x001F
Controller Index: <controller id>
Command Parameters: Address (6 Octets)
Address_Type (1 Octet)
Return Parameters: Address (6 Octets)
Address_Type (1 Octet)
Status (1 Octet)
2011-03-26 19:27:10 +08:00
Read Local Out Of Band Data Command
2011-12-14 20:10:11 +08:00
===================================
2011-03-26 19:27:10 +08:00
Command Code: 0x0020
2011-03-26 19:27:10 +08:00
Controller Index: <controller id>
Command Parameters:
2011-07-19 02:00:09 +08:00
Return Parameters: Hash (16 Octets)
2011-03-26 19:27:10 +08:00
Randomizer (16 Octets)
Add Remote Out Of Band Data Command
2011-12-14 20:10:11 +08:00
===================================
2011-03-26 19:27:10 +08:00
Command Code: 0x0021
2011-03-26 19:27:10 +08:00
Controller Index: <controller id>
Command Parameters: Address (6 Octets)
Address_Type (1 Octet)
2011-03-26 19:27:10 +08:00
Hash (16 Octets)
Randomizer (16 Octets)
2011-07-19 02:00:09 +08:00
Return Parameters:
2011-03-26 19:27:10 +08:00
Remove Remote Out Of Band Data Command
========================================
Command Code: 0x0022
2011-03-26 19:27:10 +08:00
Controller Index: <controller id>
Command Parameters: Address (6 Octets)
Address_Type (1 Octet)
2011-07-19 02:00:09 +08:00
Return Parameters:
2011-03-26 19:27:10 +08:00
Start Discovery Command
=======================
Command Code: 0x0023
Controller Index: <controller id>
Command Parameters: Address_Type (1 Octet)
Return Parameters:
Possible values for the Address_Type parameter are a bit-wise or
of the following bits:
1 BR/EDR
2 LE Public
3 LE Random
By combining these e.g. the following values are possible:
1 BR/EDR
6 LE (public & random)
7 BR/EDR/LE (interleaved discovery)
Stop Discovery Command
======================
Command Code: 0x0024
Controller Index: <controller id>
Command Parameters:
Return Parameters:
2011-03-26 19:27:10 +08:00
2011-12-14 20:10:11 +08:00
Confirm Name Command
====================
Command Code: 0x0025
Controller Index: <controller id>
Command Parameters: Address (6 Octets)
2011-12-14 20:10:11 +08:00
Name_Known (1 Octet)
Return Parameters: Address (6 Octets)
Status (1 Octet)
2011-12-14 20:10:11 +08:00
This command is only valid during device discovery and is
expected for each Device Found event with the Confirm Name
flag set.
2011-12-14 20:10:11 +08:00
Block Device Command
====================
Command Code: 0x0026
Controller Index: <controller id>
Command Parameters: Address (6 Octets)
Address_Type (1 Octet)
2011-12-14 20:10:11 +08:00
Return Parameters:
2011-12-14 20:10:11 +08:00
Unblock Device Command
======================
Command Code: 0x0027
Controller Index: <controller id>
2011-12-14 20:10:11 +08:00
Command Parameters: Address (6 Octets)
Address_Type (1 Octet)
2011-12-14 20:10:11 +08:00
Return Parameters:
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
New Settings Event
==================
Event Code 0x0006
Controller Index: <controller id>
Event Parameters: Current_Settings (4 Octets)
Class Of Device Changed Event
=============================
Event Code 0x0007
Controller Index: <controller id>
Event Parameters: Class_Of_Device (3 Octets)
Local Name Changed Event
========================
Event Code 0x0008
Controller Index <controller id>
Event Parameters Name (249 Octets)
Short_Name (11 Octets)
2011-10-24 20:24:53 +08:00
New Link Key Event
==================
Event Code 0x0009
Controller Index: <controller id>
Event Parameters Key {
Address (6 Octets)
Key_Type (1 Octet)
Value (16 Octets)
PIN_Length (1 Octet)
}
Old_Key_Type (1 Octet)
New Long Term Key Event
=======================
Event Code 0x000A
Controller Index <controller id>
Event Parameters Store Hint (1 Octet)
Key {
Address (6 Octets)
Address_Type (1 Octet)
Authenticated (1 Octet)
Master (1 Octet)
Encryption Size (1 Octet)
Enc. Diversifier (2 Octets)
Random Number (8 Octets)
Value (16 Octets)
}
Device Connected Event
======================
Event Code 0x000B
Controller Index: <controller id>
Event Parameters Address (6 Octets)
Address_Type (1 Octet)
EIR_Data_Length (2 Octets)
EIR_Data (0-65535 Octets)
Possible values for the Address_Type parameter:
0 BR/EDR
1 LE Public
2 LE Random
Device Disconnected Event
=========================
Event Code 0x000C
Controller Index: <controller id>
Event Parameters Address (6 Octets)
AddresS_Type (1 Octet)
Possible values for the Address_Type parameter:
0 BR/EDR
1 LE Public
2 LE Random
Connect Failed Event
====================
Event Code 0x000D
Controller Index: <controller id>
Event Parameters Address (6 Octets)
Address_Type (1 Octet)
Status (1 Octet)
2011-01-24 17:50:34 +08:00
Possible values for the AddresS_Type parameter:
0 BR/EDR
1 LE Public
2 LE Random
2011-01-24 17:50:34 +08:00
PIN Code Request Event
======================
Event Code 0x000E
Controller Index: <controller id>
Event Parameters Address (6 Octets)
Secure (1 Octet)
Secure: 0x01 secure PIN code required
0x00 secure PIN code not required
User Confirmation Request Event
===============================
Event Code 0x000F
Controller Index: <controller id>
Event Parameters Address (6 Octets)
Address_Type (1 Octet)
Value (4 Octets)
User Passkey Request Event
==========================
Event Code 0x0010
Controller Index: <controller id>
Event Parameters Address (6 Octets)
Address_Type (1 Octet)
Authentication Failed Event
===========================
Event Code 0x0011
Controller Index: <controller id>
Event Parameters Address (6 Octets)
Address_Type (1 Octet)
Status (1 Octet)
Device Found Event
==================
Event Code 0x0012
Controller Index <controller id>
Event Parameters Address (6 Octets)
Address_Type (1 Octet)
RSSI (1 Octet)
Flags (4 Octets)
EIR_Data_Length (2 Octets)
EIR_Data (0-65535 Octets)
Possible values for the Address_Type parameter:
0 BR/EDR
1 LE Public
2 LE Random
The following bits are defined for the Flags parameter:
0 Confirm name
1 Legacy Pairing
Discovering Event
=================
Event Code 0x0013
Controller Index <controller id>
Event Parameters Discovering (1 Octet)
Device Blocked Event
====================
Event Code 0x0014
Controller Index <controller id>
Event Parameters Address (6 Octets)
Address_Type (1 Octet)
Device Unblocked Event
======================
Event Code 0x0015
Controller Index <controller id>
Event Parameters Address (6 Octets)
Address_Type (1 Octet)
Device Unpaired
===============
Event Code 0x0016
Controller Index <controller id>
Event Parameters Address (6 Octets)
Address_Type (1 Octet)