| Bluetooth Management API |
| ************************* |
| |
| Copyright (C) 2008-2009 Marcel Holtmann <marcel@holtmann.org> |
| |
| |
| This document describes the format of data used for communicating with |
| the kernel using a so-called Bluetooth Management sockets. These sockets |
| are available starting with Linux kernel version 3.4, and can be created |
| by setting the hci_channel member of struct sockaddr_hci to |
| HCI_CHANNEL_CONTROL (3) when creating a raw HCI socket. In C the needed |
| code would look something like the following: |
| |
| int mgmt_create(void) |
| { |
| struct sockaddr_hci addr; |
| int fd; |
| |
| fd = socket(PF_BLUETOOTH, SOCK_RAW | SOCK_CLOEXEC | SOCK_NONBLOCK, |
| BTPROTO_HCI); |
| if (fd < 0) |
| return -errno; |
| |
| memset(&addr, 0, sizeof(addr)); |
| addr.hci_family = AF_BLUETOOTH; |
| addr.hci_dev = HCI_DEV_NONE; |
| addr.hci_channel = HCI_CHANNEL_CONTROL; |
| |
| if (bind(fd, (struct sockaddr *) &addr, sizeof(addr)) < 0) { |
| int err = -errno; |
| close(fd); |
| return err; |
| } |
| |
| return fd; |
| } |
| |
| The process creating the mgmt socket is required to have the |
| CAP_NET_ADMIN capability (e.g. root would have this). |
| |
| |
| 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 |
| |
| |
| Error Codes |
| =========== |
| |
| The following values have been defined for use with the Command Status |
| and Command Complete events: |
| |
| 0x00 Success |
| 0x01 Unknown Command |
| 0x02 Not Connected |
| 0x03 Failed |
| 0x04 Connect Failed |
| 0x05 Authentication Failed |
| 0x06 Not Paired |
| 0x07 No Resources |
| 0x08 Timeout |
| 0x09 Already Connected |
| 0x0A Busy |
| 0x0B Rejected |
| 0x0C Not Supported |
| 0x0D Invalid Parameters |
| 0x0E Disconnected |
| 0x0F Not Powered |
| 0x10 Cancelled |
| 0x11 Invalid Index |
| |
| |
| Read Management Version Information Command |
| =========================================== |
| |
| Command Code: 0x0001 |
| Controller Index: <non-controller> |
| Command Parameters: |
| Return Parameters: Version (1 Octets) |
| Revision (2 Octets) |
| |
| This command returns the Management version and revision. |
| Besides, being informational the information can be used to |
| determine whether certain behavior has changed or bugs fixed |
| when interacting with the kernel. |
| |
| This command generates a Command Complete event on success or |
| a Command Status event on failure. |
| |
| |
| Read Management Supported Commands Command |
| ========================================== |
| |
| Command Code: 0x0002 |
| Controller Index: <non-controller> |
| Command Parameters: |
| Return Parameters: Num_Of_Commands (2 Octets) |
| Num_Of_Events (2 Octets) |
| Command1 (2 Octets) |
| Command2 (2 Octets) |
| ... |
| Event1 (2 Octets) |
| Event2 (2 Octets) |
| ... |
| |
| This command returns the list of supported Management commands |
| and events. |
| |
| The commands Read Management Version Information and Read |
| management Supported Commands are not included in this list. |
| Both commands are always supported and mandatory. |
| |
| The events Command Status and Command Complete are not included |
| in this list. Both are implicit and mandatory. |
| |
| This command generates a Command Complete event on success or |
| a Command Status event on failure. |
| |
| |
| Read Controller Index List Command |
| ================================== |
| |
| Command Code: 0x0003 |
| Controller Index: <non-controller> |
| Command Parameters: |
| Return Parameters: Num_Controllers (2 Octets) |
| Controller_Index[i] (2 Octets) |
| |
| This command returns the list of currently known controllers. |
| Controllers added or removed after calling this command can be |
| monitored using the Index Added and Index Removed events. |
| |
| This command generates a Command Complete event on success or |
| a Command Status event on failure. |
| |
| |
| 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) |
| |
| This command is used to retreive the current state and basic |
| information of a controller. It is typically used right after |
| getting the response to the Read Controller Index List command |
| or an Index Added event. |
| |
| 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 |
| 6 Link Level Security (Sec. mode 3) |
| 7 Secure Simple Pairing |
| 8 Basic Rate/Enhanced Data Rate |
| 9 High Speed |
| 10 Low Energy |
| 11 Advertising |
| 12 Secure Connections |
| |
| This command generates a Command Complete event on success or |
| a Command Status event on failure. |
| |
| Possible errors: Invalid Parameters |
| Invalid Index |
| |
| |
| Set Powered Command |
| =================== |
| |
| Command Code: 0x0005 |
| Controller Index: <controller id> |
| Command Parameters: Powered (1 Octet) |
| Return Parameters: Current_Settings (4 Octets) |
| |
| This command is used to power on or off a controller. The |
| allowed Powered command parameter values are 0x00 and 0x01. All |
| other values will return Invalid Parameters. |
| |
| If discoverable setting is activated with a timeout, then |
| switching the controller off will expire this timeout and |
| disable discoverable. |
| |
| This command generates a Command Complete event on success or |
| a Command Status event on failure. |
| |
| Possible errors: Busy |
| Invalid Parameters |
| Invalid Index |
| |
| |
| Set Discoverable Command |
| ======================== |
| |
| Command Code: 0x0006 |
| Controller Index: <controller id> |
| Command Parameters: Discoverable (1 Octet) |
| Timeout (2 Octets) |
| Return Parameters: Current_Settings (4 Octets) |
| |
| This command is used to set the discoverable property of a |
| controller. The allowed Discoverable command parameter values |
| are 0x00, 0x01 and 0x02. All other values will return Invalid |
| Parameters. |
| |
| Timeout is the time in seconds and is only meaningful when |
| Discoverable is set to 0x01 or 0x02. Providing a timeout |
| with 0x00 return Invalid Parameters. For 0x02, the timeout |
| value is required. |
| |
| The value 0x00 disables discoverable, the value 0x01 enables |
| general discoverable and the value 0x02 enables limited |
| discoverable. |
| |
| This command is only available for BR/EDR capable controllers |
| (e.g. not for single-mode LE ones). It will return Not Supported |
| otherwise. |
| |
| This command can be used when the controller is not powered and |
| all settings will be programmed once powered. |
| |
| However using a timeout when the controller is not powered will |
| return Not Powered error. |
| |
| When switching discoverable on and the connectable setting is |
| off it will return Rejected error. |
| |
| This command generates a Command Complete event on success or |
| a Command Status event on failure. |
| |
| Possible errors: Busy |
| Rejected |
| Not Supported |
| Invalid Parameters |
| Not Powered |
| Invalid Index |
| |
| |
| Set Connectable Command |
| ======================= |
| |
| Command Code: 0x0007 |
| Controller Index: <controller id> |
| Command Parameters: Connectable (1 Octet) |
| Return Parameters: Current_Settings (4 Octets) |
| |
| This command is used to set the connectable property of a |
| controller. The allowed Connectable command parameter values are |
| 0x00 and 0x01. All other values will return Invalid Parameters. |
| |
| This command is available for BR/EDR, LE-only and also dual |
| mode controllers. For BR/EDR is changes the page scan setting |
| and for LE controllers it changes the advertising type. For |
| dual mode controllers it affects both settings. |
| |
| For LE capable controllers the connectable setting only takes |
| affect when advertising is enabled. |
| |
| This command can be used when the controller is not powered and |
| all settings will be programmed once powered. |
| |
| When switching connectable off, it will also switch off the |
| discoverable setting. Switching connectable back on will not |
| restore a previous discoverable. It will stay off and needs |
| to be manually switched back on. |
| |
| When switching connectable off, it will expire a discoverable |
| setting with a timeout. |
| |
| This command generates a Command Complete event on success or |
| a Command Status event on failure. |
| |
| Possible errors: Busy |
| Not Supported |
| Invalid Parameters |
| Invalid Index |
| |
| |
| Set Fast Connectable Command |
| ============================ |
| |
| Command Code: 0x0008 |
| Controller Index: <controller id> |
| Command Parameters: Enable (1 Octet) |
| Return Parameters: Current_Settings (4 Octets) |
| |
| This command is used to set the controller into a connectable |
| state where the page scan parameters have been set in a way to |
| favor faster connect times with the expense of higher power |
| consumption. |
| |
| The allowed values of the Enable command parameter are 0x00 and |
| 0x01. All other values will return Invalid Parameters. |
| |
| This command is only available for BR/EDR capable controllers |
| (e.g. not for single-mode LE ones). It will return Not Supported |
| otherwise. |
| |
| This command can only be used when the controller is powered on |
| and will return Not Powerd otherwise. |
| |
| If connectable is not set, then this command will fail with |
| Rejected error. |
| |
| This command generates a Command Complete event on success or |
| a Command Status event on failure. |
| |
| Possible errors: Failed |
| Busy |
| Rejected |
| Not Supported |
| Invalid Parameters |
| Not Powered |
| Invalid Index |
| |
| |
| Set Pairable Command |
| ==================== |
| |
| Command Code: 0x0009 |
| Controller Index: <controller id> |
| Command Parameters: Pairable (1 Octet) |
| Return Parameters: Current_Settings (4 Octets) |
| |
| This command is used to set the pairable property of an |
| controller. The allowed values for the Pairable command |
| parameter are 0x00 and 0x01. All other values will return |
| Invalid Parameters. |
| |
| This command can be used when the controller is not powered and |
| all settings will be programmed once powered. |
| |
| Turning pairable on will not automatically switch the controller |
| into connectable mode. That needs to be done separately. |
| |
| The setting will be remembered during power down/up toggles. |
| |
| This command generates a Command Complete event on success or |
| a Command Status event on failure. |
| |
| Possible errors: Invalid Parameters |
| Invalid Index |
| |
| |
| Set Link Security Command |
| ========================= |
| |
| Command Code: 0x000A |
| Controller Index: <controller id> |
| Command Parameters: Link_Security (1 Octet) |
| Return Parameters: Current_Settings (4 Octets) |
| |
| This command is used to either enable or disable link level |
| security for an controller (also known as Security Mode 3). The |
| allowed values for the Link_Security command parameter are 0x00 |
| and 0x01. All other values will return Invalid Parameters. |
| |
| This command is only available for BR/EDR capable controllers |
| (e.g. not for single-mode LE ones). It will return Not Supported |
| otherwise. |
| |
| This command can be used when the controller is not powered and |
| all settings will be programmed once powered. |
| |
| This command generates a Command Complete event on success or |
| a Command Status event on failure. |
| |
| Possible errors: Busy |
| Not Supported |
| Invalid Parameters |
| Invalid Index |
| |
| |
| Set Secure Simple Pairing Command |
| ================================= |
| |
| Command Code: 0x000B |
| Controller Index: <controller id> |
| Command Parameters: Secure_Simple_Pairing (1 Octet) |
| Return Parameters: Current_Settings (4 Octets) |
| |
| This command is used to enable/disable Secure Simple Pairing |
| support for a controller. The allowed values for the |
| Secure_Simple_Pairing command parameter are 0x00 and 0x01. All |
| other values will return Invalid Parameters. |
| |
| This command is only available for BR/EDR capable controllers |
| supporting the core specification version 2.1 or greater |
| (e.g. not for single-mode LE controllers or pre-2.1 ones). |
| |
| This command can be used when the controller is not powered and |
| all settings will be programmed once powered. |
| |
| In case the controller does not support Secure Simple Pairing, |
| the command will fail regardless with Not Supported error. |
| |
| This command generates a Command Complete event on success or |
| a Command Status event on failure. |
| |
| Possible errors: Busy |
| Not Supported |
| Invalid Parameters |
| Invalid Index |
| |
| Set High Speed Command |
| ====================== |
| |
| Command Code: 0x000C |
| Controller Index: <controller id> |
| Command Parameters: High_Speed (1 Octet) |
| Return Parameters: Current_Settings (4 Octets) |
| |
| This command is used to enable/disable Bluetooth High Speed |
| support for a controller. The allowed values for the High_Speed |
| command parameter are 0x00 and 0x01. All other values will |
| return Invalid Parameters. |
| |
| This command is only available for BR/EDR capable controllers |
| (e.g. not for single-mode LE ones). |
| |
| This command can be used when the controller is not powered and |
| all settings will be programmed once powered. |
| |
| To enable High Speed support, it is required that Secure Simple |
| Pairing support is enabled first. High Speed support is not |
| possible for connections without Secure Simple Pairing. |
| |
| When switching Secure Simple Pairing off, the support for High |
| Speed will be switched off as well. Switching Secure Simple |
| Pairing back on, will not re-enable High Speed support. That |
| needs to be done manually. |
| |
| This command generates a Command Complete event on success or |
| a Command Status event on failure. |
| |
| Possible errors: Not Supported |
| Invalid Parameters |
| Invalid Index |
| |
| |
| Set Low Energy Command |
| ====================== |
| |
| Command Code: 0x000D |
| Controller Index: <controller id> |
| Command Parameters: Low_Energy (1 Octet) |
| Return Parameters: Current_Settings (4 Octets) |
| |
| This command is used to enable/disable Low Energy support for a |
| controller. The allowed values of the Low_Energy command |
| parameter are 0x00 and 0x01. All other values will return |
| Invalid Parameters. |
| |
| This command is only available for LE capable controllers and |
| will yield in a Not Supported error otherwise. |
| |
| This command can be used when the controller is not powered and |
| all settings will be programmed once powered. |
| |
| In case the kernel subsystem does not support Low Energy or the |
| controller does not either, the command will fail regardless. |
| |
| This command generates a Command Complete event on success or |
| a Command Status event on failure. |
| |
| Possible errors: Busy |
| Not Supported |
| Invalid Parameters |
| Invalid Index |
| |
| |
| Set Device Class |
| ================ |
| |
| Command Code: 0x000E |
| Controller Index: <controller id> |
| Command Parameters: Major_Class (1 Octet) |
| Minor_Class (1 Octet) |
| Return Parameters: Class_Of_Device (3 Octets) |
| |
| This command is used to set the major and minor device class for |
| BR/EDR capable controllers. |
| |
| This command will also implicitly disable caching of pending CoD |
| and EIR updates. |
| |
| This command is only available for BR/EDR capable controllers |
| (e.g. not for single-mode LE ones). |
| |
| This command can be used when the controller is not powered and |
| all settings will be programmed once powered. |
| |
| In case the controller is powered off, 0x000000 will be returned |
| for the class of device parameter. And after power on the new |
| value will be announced via class of device changed event. |
| |
| This command generates a Command Complete event on success or |
| a Command Status event on failure. |
| |
| Possible errors: Busy |
| Not Supported |
| Invalid Parameters |
| Invalid Index |
| |
| |
| 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) |
| |
| This command is used to set the local name of a controller. The |
| command parameters also include a short name which will be used |
| in case the full name doesn't fit within EIR/AD data. |
| |
| The name parameters need to always end with a null byte (failure |
| to do so will cause the command to fail). |
| |
| This command can be used when the controller is not powered and |
| all settings will be programmed once powered. |
| |
| The values of name and short name will be remembered when |
| switching the controller off and back on again. So the name |
| and short name only have to be set once when a new controller |
| is found and will stay until removed. |
| |
| This command generates a Command Complete event on success or |
| a Command Status event on failure. |
| |
| Possible errors: Invalid Parameters |
| Invalid Index |
| |
| |
| Add UUID Command |
| ================ |
| |
| Command Code: 0x0010 |
| Controller Index: <controller id> |
| Command Parameters: UUID (16 Octets) |
| SVC_Hint (1 Octet) |
| Return Parameters: Class_Of_Device (3 Octets) |
| |
| This command is used to add a UUID to be published in EIR |
| and/or AD data. The accompanied SVC_Hint parameter is used to |
| tell the kernel whether the service class bits of the Class of |
| Device value need modifying due to this UUID. |
| |
| This command can be used when the controller is not powered and |
| all settings will be programmed once powered. |
| |
| In case the controller is powered off, 0x000000 will be returned |
| for the class of device parameter. And after power on the new |
| value will be announced via class of device changed event. |
| |
| This command generates a Command Complete event on success or |
| a Command Status event on failure. |
| |
| Possible errors: Busy |
| Invalid Parameters |
| Invalid Index |
| |
| |
| Remove UUID Command |
| =================== |
| |
| Command Code: 0x0011 |
| Controller Index: <controller id> |
| Command Parameters: UUID (16 Octets) |
| Return Parameters: Class_Of_Device (3 Octets) |
| |
| This command is used to remove a UUID previously added using the |
| Add UUID command. |
| |
| When the UUID parameter is an empty UUID (16 x 0x00), then all |
| previously loaded UUIDs will be removed. |
| |
| This command can be used when the controller is not powered and |
| all settings will be programmed once powered. |
| |
| In case the controller is powered off, 0x000000 will be returned |
| for the class of device parameter. And after power on the new |
| value will be announced via class of device changed event. |
| |
| This command generates a Command Complete event on success or |
| a Command Status event on failure. |
| |
| Possible errors: Busy |
| Invalid Parameters |
| Invalid Index |
| |
| |
| 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) |
| Address_Type (1 Octet) |
| Key_Type (1 Octet) |
| Value (16 Octets) |
| PIN_Length (1 Octet) |
| } |
| Key2 { } |
| ... |
| Return Parameters: |
| |
| This command is used to feed the kernel with currently known |
| link keys. The command does not need to be called again upon the |
| receiption of new link key events since the kernel updates its |
| list automatically. |
| |
| The Debug_Keys parameter is used to tell the kernel whether to |
| accept the usage of debug keys or not. The allowed values for |
| this parameter are 0x00 and 0x01. All other values will return |
| an Invalid Parameters response. |
| |
| This command can be used when the controller is not powered. |
| |
| This command generates a Command Complete event on success or |
| a Command Status event on failure. |
| |
| Possible errors: Invalid Parameters |
| Invalid Index |
| |
| |
| 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) |
| Encryption_Diversifier (2 Octets) |
| Random_Number (8 Octets) |
| Value (16 Octets) |
| } |
| Key2 { } |
| ... |
| Return Parameters: |
| |
| This command is used to feed the kernel with currently known |
| (SMP) Long Term Keys. The command does not need to be called |
| again upon the receiption of new Long Term Key events since the |
| kernel updates its list automatically. |
| |
| This command can be used when the controller is not powered. |
| |
| This command generates a Command Complete event on success or |
| a Command Status event on failure. |
| |
| Possible errors: Invalid Parameters |
| Invalid Index |
| |
| |
| Disconnect Command |
| ================== |
| |
| Command Code: 0x0014 |
| Controller Index: <controller id> |
| Command Parameters: Address (6 Octets) |
| Address_Type (1 Octet) |
| Return Parameters: Address (6 Octets) |
| Address_Type (1 Octet) |
| |
| This command is used to force the disconnection of a currently |
| connected device. |
| |
| This command can only be used when the controller is powered. |
| |
| This command generates a Command Complete event on success |
| or failure. |
| |
| Possible errors: Not Connected |
| Busy |
| Invalid Parameters |
| Not Powered |
| Invalid Index |
| |
| |
| Get Connections Command |
| ======================= |
| |
| Command Code: 0x0015 |
| Controller Index: <controller id> |
| Command Parameters: |
| Return Parameters: Connection_Count (2 Octets) |
| Address1 { |
| Address (6 Octets) |
| Address_Type (1 Octet) |
| } |
| Address2 { } |
| ... |
| |
| This command is used to retreive a list of currently connected |
| devices. |
| |
| Possible values for the Address_Type parameter: |
| 0 BR/EDR |
| 1 LE Public |
| 2 LE Random |
| |
| This command can only be used when the controller is powered. |
| |
| This command generates a Command Complete event on success or |
| a Command Status event on failure. |
| |
| Possible errors: Invalid Parameters |
| Not Powered |
| Invalid Index |
| |
| |
| PIN Code Reply Command |
| ======================= |
| |
| Command Code: 0x0016 |
| Controller Index: <controller id> |
| Command Parameters: Address (6 Octets) |
| Address_Type (1 Octet) |
| PIN_Length (1 Octet) |
| PIN_Code (16 Octets) |
| Return Parameters: Address (6 Octets) |
| Address_Type (1 Octet) |
| |
| This command is used to respond to a PIN Code request event. |
| |
| This command can only be used when the controller is powered. |
| |
| This command generates a Command Complete event on success |
| or failure. |
| |
| Possible errors: Not Connected |
| Invalid Parameters |
| Not Powered |
| Invalid Index |
| |
| |
| PIN Code Negative Reply Command |
| =============================== |
| |
| Command Code: 0x0017 |
| Controller Index: <controller id> |
| Command Parameters: Address (6 Octets) |
| Address_Type (1 Octet) |
| Return Parameters: Address (6 Octets) |
| Address_Type (1 Octet) |
| |
| This command is used to return a negative response to a PIN Code |
| Request event. |
| |
| This command can only be used when the controller is powered. |
| |
| This command generates a Command Complete event on success |
| or failure. |
| |
| Possible errors: Not Connected |
| Invalid Parameters |
| Not Powered |
| Invalid Index |
| |
| |
| Set IO Capability Command |
| ========================= |
| |
| Command Code: 0x0018 |
| Controller Index: <controller id> |
| Command Parameters: IO_Capability (1 Octet) |
| Return Parameters: |
| |
| This command is used to set the IO Capability used for pairing. |
| The command accepts both SSP and SMP values. The KeyboardDisplay |
| SMP value (which doesn't exist for SSP will) automatically be |
| downgraded to DisplayYesNo by the kernel for SSP pairing events. |
| |
| This command can be used when the controller is not powered. |
| |
| This command generates a Command Complete event on success or |
| a Command Status event on failure. |
| |
| Possible errors: Invalid Parameters |
| Invalid Index |
| |
| |
| Pair Device Command |
| =================== |
| |
| Command Code: 0x0019 |
| Controller Index: <controller id> |
| Command Parameters: Address (6 Octets) |
| Address_Type (1 Octet) |
| IO_Capability (1 Octet) |
| Return Parameters: Address (6 Octets) |
| Address_Type (1 Octet) |
| |
| This command is used to trigger pairing with a remote device. |
| The IO_Capability command parameter is used to temporarily (for |
| this pairing event only) override the global IO Capaility (set |
| using the Set IO Capability command). |
| |
| Possible values for the Address_Type parameter: |
| 0 BR/EDR |
| 1 LE Public |
| 2 LE Random |
| |
| This command can only be used when the controller is powered. |
| |
| This command generates a Command Complete event on success |
| or failure. |
| |
| Possible errors: Connect Failed |
| Busy |
| Invalid Parameters |
| Not Powered |
| Invalid Index |
| |
| |
| 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. |
| |
| This command can only be used when the controller is powered. |
| |
| This command generates a Command Complete event on success |
| or failure. |
| |
| Possible errors: Invalid Parameters |
| Not Powered |
| Invalid Index |
| |
| |
| 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) |
| |
| Removes all keys associated with the remote device. |
| |
| The Disconnect parameter tells the kernel whether to forcefully |
| disconnect any existing connections to the device. It should in |
| practice always be 1 except for some special GAP qualification |
| test-cases where a key removal without disconnecting is needed. |
| |
| This command can only be used when the controller is powered. |
| |
| This command generates a Command Complete event on success |
| or failure. |
| |
| Possible errors: Not Paired |
| Invalid Parameters |
| Not Powered |
| Invalid Index |
| |
| |
| User Confirmation Reply Command |
| =============================== |
| |
| Command Code: 0x001C |
| Controller Index: <controller id> |
| Command Parameters: Address (6 Octets) |
| Address_Type (1 Octet) |
| Return Parameters: Address (6 Octets) |
| Address_Type (1 Octet) |
| |
| This command is used to respond to a User Confirmation Request |
| event. |
| |
| This command can only be used when the controller is powered. |
| |
| This command generates a Command Complete event on success |
| or failure. |
| |
| Possible errors: Not Connected |
| Invalid Parameters |
| Not Powered |
| Invalid Index |
| |
| |
| User Confirmation Negative Reply Command |
| ======================================== |
| |
| Command Code: 0x001D |
| Controller Index: <controller id> |
| Command Parameters: Address (6 Octets) |
| Address_Type (1 Octet) |
| Return Parameters: Address (6 Octets) |
| Address_Type (1 Octet) |
| |
| This command is used to return a negative response to a User |
| Confirmation Request event. |
| |
| This command can only be used when the controller is powered. |
| |
| This command generates a Command Complete event on success |
| or failure. |
| |
| Possible errors: Not Connected |
| Invalid Parameters |
| Not Powered |
| Invalid Index |
| |
| |
| 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) |
| |
| This command is used to respond to a User Confirmation Passkey |
| Request event. |
| |
| This command can only be used when the controller is powered. |
| |
| This command generates a Command Complete event on success |
| or failure. |
| |
| Possible errors: Not Connected |
| Invalid Parameters |
| Not Powered |
| Invalid Index |
| |
| |
| 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) |
| |
| This command is used to return a negative response to a User |
| Passkey Request event. |
| |
| This command can only be used when the controller is powered. |
| |
| This command generates a Command Complete event on success |
| or failure. |
| |
| Possible errors: Not Connected |
| Invalid Parameters |
| Not Powered |
| Invalid Index |
| |
| |
| Read Local Out Of Band Data Command |
| =================================== |
| |
| Command Code: 0x0020 |
| Controller Index: <controller id> |
| Command Parameters: |
| Return Parameters: Hash_192 (16 Octets) |
| Randomizer_192 (16 Octets) |
| Hash_256 (16 Octets, Optional) |
| Randomizer_256 (16 Octets, Optional) |
| |
| This command is used to read the local Out of Band data. |
| |
| This command can only be used when the controller is powered. |
| |
| If Secure Connections support is enabled, then this command |
| will return P-192 versions of hash and randomizer as well as |
| P-256 versions of both. |
| |
| This command generates a Command Complete event on success or |
| a Command Status event on failure. |
| |
| Possible errors: Not Supported |
| Busy |
| Invalid Parameters |
| Not Powered |
| Invalid Index |
| |
| |
| Add Remote Out Of Band Data Command |
| =================================== |
| |
| Command Code: 0x0021 |
| Controller Index: <controller id> |
| Command Parameters: Address (6 Octets) |
| Address_Type (1 Octet) |
| Hash_192 (16 Octets) |
| Randomizer_192 (16 Octets) |
| Hash_256 (16 Octets, Optional) |
| Randomizer_256 (16 Octets, Optional) |
| Return Parameters: Address (6 Octets) |
| Address_Type (1 Octet) |
| |
| This command is used to provide Out of Band data for a remote |
| device. |
| |
| Provided Out Of Band data is persistent over power down/up toggles. |
| |
| This command also accept optional P-256 versions of hash and |
| randomizer. If they are not provided, then they are set to |
| zero value. |
| |
| The P-256 versions of both can also be provided when the |
| support for Secure Connections is not enabled. However in |
| that case they will never be used. |
| |
| To only provide the P-256 versions of hash and randomizer, |
| it is valid to leave both P-192 fields as zero values. If |
| Secure Connections is disabled, then of course this is the |
| same as not providing any data at all. |
| |
| This command generates a Command Complete event on success |
| or failure. |
| |
| Possible errors: Failed |
| Invalid Parameters |
| Not Powered |
| Invalid Index |
| |
| |
| Remove Remote Out Of Band Data Command |
| ====================================== |
| |
| Command Code: 0x0022 |
| Controller Index: <controller id> |
| Command Parameters: Address (6 Octets) |
| Address_Type (1 Octet) |
| Return Parameters: Address (6 Octets) |
| Address_Type (1 Octet) |
| |
| This command is used to remove data added using the Add Remote |
| Out Of Band Data command. |
| |
| This command generates a Command Complete event on success |
| or failure. |
| |
| Possible errors: Invalid Parameters |
| Not Powered |
| Invalid Index |
| |
| |
| Start Discovery Command |
| ======================= |
| |
| Command Code: 0x0023 |
| Controller Index: <controller id> |
| Command Parameters: Address_Type (1 Octet) |
| Return Parameters: Address_Type (1 Octet) |
| |
| This command is used to start the process of discovering remote |
| devices. A Device Found event will be sent for each discovered |
| device. |
| |
| 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) |
| |
| This command can only be used when the controller is powered. |
| |
| This command generates a Command Complete event on success |
| or failure. |
| |
| Possible errors: Busy |
| Not Supported |
| Invalid Parameters |
| Not Powered |
| Invalid Index |
| |
| |
| Stop Discovery Command |
| ====================== |
| |
| Command Code: 0x0024 |
| Controller Index: <controller id> |
| Command Parameters: Address_Type (1 Octet) |
| Return Parameters: Address_Type (1 Octet) |
| |
| This command is used to stop the discovery process started using |
| the Start Discovery command. |
| |
| This command can only be used when the controller is powered. |
| |
| This command generates a Command Complete event on success |
| or failure. |
| |
| Possible errors: Rejected |
| Invalid Parameters |
| Invalid Index |
| |
| |
| Confirm Name Command |
| ==================== |
| |
| Command Code: 0x0025 |
| Controller Index: <controller id> |
| Command Parameters: Address (6 Octets) |
| Address_Type (1 Octet) |
| Name_Known (1 Octet) |
| Return Parameters: Address (6 Octets) |
| Address_Type (1 Octet) |
| |
| This command is only valid during device discovery and is |
| expected for each Device Found event with the Confirm Name |
| flag set. |
| |
| This command can only be used when the controller is powered. |
| |
| This command generates a Command Complete event on success |
| or failure. |
| |
| Possible errors: Failed |
| Invalid Parameters |
| Invalid Index |
| |
| |
| Block Device Command |
| ==================== |
| |
| Command Code: 0x0026 |
| Controller Index: <controller id> |
| Command Parameters: Address (6 Octets) |
| Address_Type (1 Octet) |
| Return Parameters: Address (6 Octets) |
| Address_Type (1 Octet) |
| |
| This command is used to add a device to the list of devices |
| which should be blocked from being connect to the local |
| controller. |
| |
| This command can be used when the controller is not powered. |
| |
| This command generates a Command Complete event on success |
| or failure. |
| |
| Possible errors: Failed |
| Invalid Parameters |
| Invalid Index |
| |
| |
| Unblock Device Command |
| ====================== |
| |
| Command Code: 0x0027 |
| Controller Index: <controller id> |
| Command Parameters: Address (6 Octets) |
| Address_Type (1 Octet) |
| Return Parameters: Address (6 Octets) |
| Address_Type (1 Octet) |
| |
| This command is used to remove a device from the list of blocked |
| devices (where it was added to using the Block Device command). |
| |
| This command can be used when the controller is not powered. |
| |
| This command generates a Command Complete event on success |
| or failure. |
| |
| Possible errors: Invalid Parameters |
| Invalid Index |
| |
| |
| Set Device ID Command |
| ===================== |
| |
| Command Code: 0x0028 |
| Controller Index: <controller id> |
| Command Parameters: Source (2 Octets) |
| Vendor (2 Octets) |
| Product (2 Octets) |
| Version (2 Octets) |
| Return Parameters: |
| |
| This command can be used when the controller is not powered and |
| all settings will be programmed once powered. |
| |
| The Source parameter selects the organization that assigned the |
| Vendor parameter: |
| |
| 0x0000 Disable Device ID |
| 0x0001 Bluetooth SIG |
| 0x0002 USB Implementer’s Forum |
| |
| The information are put into the EIR data. If the controller does |
| not support EIR or if SSP is disabled, this command will still |
| succeed. The information are stored for later use and will survive |
| toggling SSP on and off. |
| |
| This command generates a Command Complete event on success or |
| a Command Status event on failure. |
| |
| Possible errors: Invalid Parameters |
| Invalid Index |
| |
| |
| Set Advertising Command |
| ======================= |
| |
| Command Code: 0x0029 |
| Controller Index: <controller id> |
| Command Parameters: Advertising (1 Octet) |
| Return Parameters: Current_Settings (4 Octets) |
| |
| This command is used to enable LE advertising on a controller |
| that supports it. The allowed values for the Advertising |
| command parameter are 0x00 and 0x01. All other values will |
| return Invalid Parameters. |
| |
| A pre-requisite is that LE is already enabled, otherwise |
| this command will return a "rejected" response. |
| |
| This command generates a Command Complete event on success or a |
| Command Status event on failure. |
| |
| Possible errors: Busy |
| Rejected |
| Not Supported |
| Invalid Parameters |
| Invalid Index |
| |
| |
| Set BR/EDR Command |
| ================== |
| |
| Command Code: 0x002A |
| Controller Index: <controller id> |
| Command Parameters: BR/EDR (1 Octet) |
| Return Parameters: Current_Settings (4 Octets) |
| |
| This command is used to enable or disable BR/EDR support |
| on a dual-mode controller. The allowed values for the Advertising |
| command parameter are 0x00 and 0x01. All other values will |
| return Invalid Parameters. |
| |
| A pre-requisite is that LE is already enabled, otherwise |
| this command will return a "rejected" response. Enabling BR/EDR |
| can be done both when powered on and powered off, however |
| disabling it can only be done when powered off (otherwise the |
| command will again return "rejected"). Disabling BR/EDR will |
| automatically disable all other BR/EDR related settings. |
| |
| This command generates a Command Complete event on success or a |
| Command Status event on failure. |
| |
| Possible errors: Busy |
| Rejected |
| Not Supported |
| Invalid Parameters |
| Invalid Index |
| |
| |
| Set Static Address Command |
| ========================== |
| |
| Command Code: 0x002B |
| Controller Index: <controller id> |
| Command Parameters: Address (6 Octets) |
| Return Parameters: |
| |
| This command allows for setting the static random address. It is |
| only supported on controllers with LE support. The static random |
| address is suppose to be valid for the lifetime of the |
| controller or at least until the next power cycle. To ensure |
| such behavior, setting of the address is limited to when the |
| controller is powered off. |
| |
| The special BDADDR_ANY address (00:00:00:00:00:00) can be used |
| to disable the static address. |
| |
| This command generates a Command Complete event on success or a |
| Command Status event on failure. |
| |
| Possible errors: Rejected |
| Not Supported |
| Invalid Parameters |
| Invalid Index |
| |
| |
| Set Scan Parameters Command |
| =========================== |
| |
| Command Code: 0x002C |
| Controller Index: <controller id> |
| Command Parameters: Interval (2 Octets) |
| Window (2 Octets) |
| Return Parameters: |
| |
| This command allows for setting the Low Energy scan parameters |
| used for connection establishment and passive scanning. It is |
| only supported on controllers with LE support. |
| |
| This command generates a Command Complete event on success or a |
| Command Status event on failure. |
| |
| Possible errors: Rejected |
| Not Supported |
| Invalid Parameters |
| Invalid Index |
| |
| |
| Set Secure Connections Command |
| ============================== |
| |
| Command Code: 0x002D |
| Controller Index: <controller id> |
| Command Parameters: Secure_Connections (1 Octet) |
| Return Parameters: Current_Settings (4 Octets) |
| |
| This command is used to enable/disable Secure Connections |
| support for a controller. The allowed values for the |
| Secure_Connections command parameter are 0x00, 0x01 and 0x02. |
| All other values will return Invalid Parameters. |
| |
| The value 0x00 disables Secure Connections, the value 0x01 |
| enables Secure Connections and the value 0x02 enables Secure |
| Connections Only mode. |
| |
| This command is only available for BR/EDR capable controllers |
| supporting the core specification version 4.1 or greater |
| (e.g. not for single-mode LE controllers or pre-4.1 ones). |
| |
| This command can be used when the controller is not powered and |
| all settings will be programmed once powered. |
| |
| In case the controller does not support Secure Connections |
| the command will fail regardless with Not Supported error. |
| |
| This command generates a Command Complete event on success or |
| a Command Status event on failure. |
| |
| Possible errors: Busy |
| Not Supported |
| Invalid Parameters |
| Invalid Index |
| |
| |
| Command Complete Event |
| ====================== |
| |
| Event Code 0x0001 |
| Controller Index: <controller id> or <non-controller> |
| Event Parameters Command_Opcode (2 Octets) |
| Status (1 Octet) |
| Return_Parameters |
| |
| This event is an indication that a command has completed. The |
| fixed set of parameters includes the opcode to identify the |
| command that completed as well as a status value to indicate |
| success or failure. The rest of the parameters are command |
| specific and documented in the section for each command |
| separately. |
| |
| |
| Command Status Event |
| ==================== |
| |
| Event Code 0x0002 |
| Controller Index: <controller id> or <non-controller> |
| Event Parameters Command_Opcode (2 Octets) |
| Status (1 Octet) |
| |
| The command status event is used to indicate an early status for |
| a pending command. In the case that the status indicates failure |
| (anything else except success status) this also means that the |
| command has finished executing. |
| |
| |
| Controller Error Event |
| ====================== |
| |
| Event Code 0x0003 |
| Controller Index: <controller id> |
| Event Parameters Error_Code (1 Octet) |
| |
| This event maps straight to the HCI Hardware Error event and is |
| used to indicate something wrong with the controller hardware. |
| |
| |
| Index Added Event |
| ================= |
| |
| Event Code 0x0004 |
| Controller Index: <controller id> |
| Event Parameters |
| |
| This event indicates that a new controller has been added to the |
| system. It is usually followed by a Read Controller Information |
| command. |
| |
| |
| Index Removed Event |
| =================== |
| |
| Event Code 0x0005 |
| Controller Index: <controller id> |
| Event Parameters |
| |
| This event indicates that a controller has been removed from the |
| system. |
| |
| |
| New Settings Event |
| ================== |
| |
| Event Code 0x0006 |
| Controller Index: <controller id> |
| Event Parameters: Current_Settings (4 Octets) |
| |
| This event indicates that one or more of the settings for a |
| controller has changed. |
| |
| |
| Class Of Device Changed Event |
| ============================= |
| |
| Event Code 0x0007 |
| Controller Index: <controller id> |
| Event Parameters: Class_Of_Device (3 Octets) |
| |
| This event indicates that the Class of Device value for the |
| controller has changed. When the controller is powered off the |
| Class of Device value will always be reported as zero. |
| |
| |
| Local Name Changed Event |
| ======================== |
| |
| Event Code 0x0008 |
| Controller Index <controller id> |
| Event Parameters Name (249 Octets) |
| Short_Name (11 Octets) |
| |
| This event indicates that the local name of the controller has |
| changed. |
| |
| |
| New Link Key Event |
| ================== |
| |
| Event Code 0x0009 |
| Controller Index: <controller id> |
| Event Parametersa Store_Hint (1 Octet) |
| Key { |
| Address (6 Octets) |
| Address_Type (1 Octet) |
| Key_Type (1 Octet) |
| Value (16 Octets) |
| PIN_Length (1 Octet) |
| } |
| |
| This event indicates that a new link key has bee generated for a |
| remote device. The Store_Hint parameter indicates whether the |
| host is expected to store the key persistently or not (e.g. this |
| would not be set if the authentication requirement was "No |
| Bonding"). |
| |
| |
| 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) |
| } |
| |
| This event indicates that a new long term key has bee generated |
| for a remote device. The Store_Hint parameter indicates whether |
| the host is expected to store the key persistently or not (e.g. |
| this would not be set if the authentication requirement was "No |
| Bonding"). |
| |
| |
| Device Connected Event |
| ====================== |
| |
| Event Code 0x000B |
| Controller Index: <controller id> |
| Event Parameters Address (6 Octets) |
| Address_Type (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 Reserved (not in use) |
| 1 Legacy Pairing |
| |
| This event indicates that a successful baseband connection has |
| been created to the remote device. |
| |
| |
| Device Disconnected Event |
| ========================= |
| |
| Event Code 0x000C |
| Controller Index: <controller id> |
| Event Parameters Address (6 Octets) |
| Address_Type (1 Octet) |
| Reason (1 Octet) |
| |
| This event indicates that the baseband connection was lost to a |
| remote device. |
| |
| Possible values for the Address_Type parameter: |
| 0 BR/EDR |
| 1 LE Public |
| 2 LE Random |
| |
| Possible values for the Reason parameter: |
| 0 Unspecified |
| 1 Connection timeout |
| 2 Connection terminated by local host |
| 3 Connection terminated by remote host |
| |
| Note that the local/remote distinction just determines which side |
| terminated the low-level connection, regardless of the |
| disconnection of the higher-level profiles. |
| |
| This can sometimes be misleading and thus must be used with care. |
| For example, some hardware combinations would report a locally |
| initiated disconnection even if the user turned Bluetooth off in |
| the remote side. |
| |
| |
| Connect Failed Event |
| ==================== |
| |
| Event Code 0x000D |
| Controller Index: <controller id> |
| Event Parameters Address (6 Octets) |
| Address_Type (1 Octet) |
| Status (1 Octet) |
| |
| This event indicates that a connection attempt failed to a |
| remote device. |
| |
| Possible values for the Address_Type parameter: |
| 0 BR/EDR |
| 1 LE Public |
| 2 LE Random |
| |
| |
| PIN Code Request Event |
| ====================== |
| |
| Event Code 0x000E |
| Controller Index: <controller id> |
| Event Parameters Address (6 Octets) |
| Address_Type (1 Octet) |
| Secure (1 Octet) |
| |
| This event is used to request a PIN Code reply from user space. |
| The reply should either be returned using the PIN Code Reply or |
| the PIN Code Negative Reply command. |
| |
| 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) |
| Confirm_Hint (1 Octet) |
| Value (4 Octets) |
| |
| This event is used to request a user confirmation request from |
| user space. If the Confirm_Hint parameter value is 0x01 this |
| means that a simple "Yes/No" confirmation should be presented to |
| the user instead of a full numerical confirmation (in which case |
| the parameter value will be 0x00). |
| |
| User space should respond to this command either using the User |
| Confirmation Reply or the User Confirmation Negative Reply |
| command. |
| |
| |
| User Passkey Request Event |
| ========================== |
| |
| Event Code 0x0010 |
| Controller Index: <controller id> |
| Event Parameters Address (6 Octets) |
| Address_Type (1 Octet) |
| |
| This event is used to request a passkey from user space. The |
| response to this event should either be the User Passkey Reply |
| command or the User Passkey Negative Reply command. |
| |
| |
| Authentication Failed Event |
| =========================== |
| |
| Event Code 0x0011 |
| Controller Index: <controller id> |
| Event Parameters Address (6 Octets) |
| Address_Type (1 Octet) |
| Status (1 Octet) |
| |
| This event indicates that there was an authentication failure |
| with a remote device. |
| |
| |
| 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) |
| |
| This event indicates that a device was found during device |
| discovery. |
| |
| 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 |
| |
| The Confirm name flag indicates that the kernel wants to know |
| whether user space knows the name for this device or not. If |
| this flag is set user space should respond to it using the |
| Confirm Name command. |
| |
| The Legacy Pairing flag indicates that Legacy Pairing is likely |
| to occur when pairing with this device. An application could use |
| this information to optimize the pairing process by locally |
| pre-generating a PIN code and thereby eliminate the risk of |
| local input timeout when pairing. Note that there is a risk of |
| false-positives for this flag so user space should be able to |
| handle getting something else as a PIN Request when pairing. |
| |
| |
| Discovering Event |
| ================= |
| |
| Event Code 0x0013 |
| Controller Index <controller id> |
| Event Parameters Address_Type (1 Octet) |
| Discovering (1 Octet) |
| |
| This event indicates that the controller has started discovering |
| devices. This discovering state can come and go multiple times |
| between a StartDiscover and a StopDiscovery command. |
| |
| The valid values for the Discovering parameter are 0x01 |
| (enabled) and 0x00 (disabled). |
| |
| |
| Device Blocked Event |
| ==================== |
| |
| Event Code 0x0014 |
| Controller Index <controller id> |
| Event Parameters Address (6 Octets) |
| Address_Type (1 Octet) |
| |
| This event indicates that a device has been blocked using the |
| Block Device command. The event will only be sent to Management |
| sockets other than the one through which the command was sent. |
| |
| |
| Device Unblocked Event |
| ====================== |
| |
| Event Code 0x0015 |
| Controller Index <controller id> |
| Event Parameters Address (6 Octets) |
| Address_Type (1 Octet) |
| |
| This event indicates that a device has been unblocked using the |
| Unblock Device command. The event will only be sent to |
| Management sockets other than the one through which the command |
| was sent. |
| |
| |
| Device Unpaired Event |
| ===================== |
| |
| Event Code 0x0016 |
| Controller Index <controller id> |
| Event Parameters Address (6 Octets) |
| Address_Type (1 Octet) |
| |
| This event indicates that a device has been unpaired (i.e. all |
| its keys have been removed from the kernel) using the Unpair |
| Device command. The event will only be sent to Management |
| sockets other than the one through which the Unpair Device |
| command was sent. |
| |
| |
| Passkey Notify Event |
| ==================== |
| |
| Event Code 0x0017 |
| Controller Index <controller id> |
| Event Parameters Address (6 Octets) |
| Address_Type (1 Octet) |
| Passkey (4 Octets) |
| Entered (1 Octet) |
| |
| This event is used to request passkey notification to the user. |
| Unlike the other authentication events it does not need |
| responding to using any Management command. |
| |
| The Passkey parameter indicates the passkey to be shown to the |
| user whereas the Entered parameter indicates how many characters |
| the user has entered on the remote side. |