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


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 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)
				...

	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 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)

	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

	This command generates a Command Complete event on success or
	a Command Status event on failure.


Set Powered Command
===================

	Command Code:		0x0005
	Controller Index:	<controller id>
	Command Parameters:	Powered (1 Octet)
	Return Parameters:	Current_Settings (4 Octets)

	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.


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 meaningful when
	Discoverable is set to 1.

	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 an error.

	When switching discoverable on and the connectable setting is
	off it will return an error.

	This command generates a Command Complete event on success or
	a Command Status event on failure.


Set Connectable Command
=======================

	Command Code:		0x0007
	Controller Index:	<controller id>
	Command Parameters:	Connectable (1 Octet)
	Return Parameters:	Current_Settings (4 Octets)

	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.


Set Fast Connectable Command
============================

	Command Code:		0x0008
	Controller Index:	<controller id>
	Command Parameters:	Enable (1 Octet)
	Return Parameters:	Current_Settings (4 Octets)

	This command can be used when the controller is not powered and
	all settings will be programmed once powered.

	If connectable is not set, then this command will fail.

	This command generates a Command Complete event on success or
	a Command Status event on failure.


Set Pairable Command
====================

	Command Code:		0x0009
	Controller Index:	<controller id>
	Command Parameters:	Pairable (1 Octet)
	Return Parameters:	Current_Settings (4 Octets)

	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.


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 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.


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 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.

	This command generates a Command Complete event on success or
	a Command Status event on failure.


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 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 High Speed, the
	command will fail regardless.

	This command generates a Command Complete event on success or
	a Command Status event on failure.


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 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.


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 will also implicitly disable caching of pending CoD
	and EIR updates.

	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.


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 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.


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 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.


Remove UUID Command
===================

	Command Code:		0x0011
	Controller Index:	<controller id>
	Command Parameters:	UUID (16 Octets)
	Return Parameters:	Class_Of_Device (3 Octets)

	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.


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 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.


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 {  }
				...

	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.


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 can only be used when the controller is powered.

	This command generates a Command Complete event on success
	or failure.


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 { }
				...

	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.


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 can only be used when the controller is powered.

	This command generates a Command Complete event on success
	or failure.


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 can only be used when the controller is powered.

	This command generates a Command Complete event on success
	or failure.


Set IO Capability Command
=========================

	Command Code:		0x0018
	Controller Index:	<controller id>
	Command Parameters:	IO_Capability (1 Octet)
	Return Parameters:

	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.


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)

	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.


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.


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.


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 can only be used when the controller is powered.

	This command generates a Command Complete event on success
	or failure.


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 can only be used when the controller is powered.

	This command generates a Command Complete event on success
	or failure.


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 can only be used when the controller is powered.

	This command generates a Command Complete event on success
	or failure.


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 can only be used when the controller is powered.

	This command generates a Command Complete event on success
	or failure.


Read Local Out Of Band Data Command
===================================

	Command Code:		0x0020
	Controller Index:	<controller id>
	Command Parameters:
	Return Parameters:	Hash (16 Octets)
				Randomizer (16 Octets)

	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.


Add Remote Out Of Band Data Command
===================================

	Command Code:		0x0021
	Controller Index:	<controller id>
	Command Parameters:	Address (6 Octets)
				Address_Type (1 Octet)
				Hash (16 Octets)
				Randomizer (16 Octets)
	Return Parameters:	Address (6 Octets)
				Address_Type (1 Octet)

	Provided Out Of Band data is persistent over power down/up toggles.

	This command generates a Command Complete event on success
	or failure.


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 generates a Command Complete event on success
	or failure.


Start Discovery Command
=======================

	Command Code:		0x0023
	Controller Index:	<controller id>
	Command Parameters:	Address_Type (1 Octet)
	Return Parameters:	Address_Type (1 Octet)

	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.


Stop Discovery Command
======================

	Command Code:		0x0024
	Controller Index:	<controller id>
	Command Parameters:	Address_Type (1 Octet)
	Return Parameters:	Address_Type (1 Octet)

	This command can only be used when the controller is powered.

	This command generates a Command Complete event on success
	or failure.


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.


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 can be used when the controller is not powered.

	This command generates a Command Complete event on success
	or failure.


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 can be used when the controller is not powered.

	This command generates a Command Complete event on success
	or failure.


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.


Command Complete Event
======================

Event Code		0x0001
Controller Index:	<controller id> or <non-controller>
Event Parameters	Command_Opcode (2 Octets)
			Status (1 Octet)
			Return_Parameters


Command Status Event
====================

Event Code		0x0002
Controller Index:	<controller id> or <non-controller>
Event Parameters	Command_Opcode (2 Octets)
			Status (1 Octet)


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)


New Link Key Event
==================

Event Code		0x0009
Controller Index:	<controller id>
Event Parameters	Key {
				Address (6 Octets)
				Address_Type (1 Octet)
				Key_Type (1 Octet)
				Value (16 Octets)
				PIN_Length (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)
			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


Device Disconnected Event
=========================

Event Code		0x000C
Controller Index:	<controller id>
Event Parameters	Address (6 Octets)
			Address_Type (1 Octet)
			Reason (1 Octet)

	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)

	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)

	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)


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	Address_Type (1 Octet)
			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
=====================

Event Code		0x0016
Controller Index	<controller id>
Event Parameters	Address (6 Octets)
			Address_Type (1 Octet)


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)
