Strictly speaking the address type isn't needed in all messages (e.g.
those specific to BR/EDR or pre-2.1) but for consistency it's cleaner to
have it everywhere. The only exception is the read_controller_info reply
where it really doesn't make sense to have it.
- "Remove Keys" renamed to "Unpair Device" and moved to a more
appropriate location (after the other pairing commands)
- "Device Unpaired" event added
- Address_Type parameters added the relevant commands and events
- Address_Type vs Key_Type distinction made clearer
- Bogus '0' removed from opcodes
For restoring the device from storage we need to have the Address type
of the device, the LTK is a good place for this.
In some cases, we may be notified of keys that were generated in the
Host, that key key would be used when the Host is the slave role in
a later connection, we should be able to differentiate this type of
key because it doesn't mean that we have a bonding with the Remote
Device.
- Remove the remote_name event and add the name to the device_connected
event (since we always refresh the name at that point anyway).
- Add Class of Device to device_connected since that's the only point
where we get it when a previously unknown device connects to us for the
first time.
- Add a Flags field to device_found to accommodate for legacy pairing
information (which we get from the remote host features HCI event) and
merge the only other existing boolean parameter (confirm_name) into this
Flags field.
Some changes were missing from the previous patch. This moves the fast
connectable command to the right place, adds a Class_Of_Device parameter
to Set UUID Caching (renamed from Set Service Cache) and adds a Class Of
Device Changed event.
This patch updates the mgmt API to match the current plans. This is
hopefully the last major change and because of that the command and
event codes are also reshuffled to match some kind of a logical
ordering.
This is important especially in the future when dual-mode devices can be
connected to over LE. It's also important if/when we decide to move the
advertisement cache into user-space.
This patch adds a new set_local_name command as well as a
local_name_changed event to the management interface. Instead of 248
bytes (like in the HCI spec) 249 bytes are always reserved for the name
in the messages so that there's a guarantee of it being nul-terminated
(this is not guaranteed on the HCI level).
This patch updates the class of device handling code to match the latest
management interface. A notable feature is that UUID to service class
mapping policy remains in user space with the help of the svc_hint
parameter of the add_uuid command. This is to make it easy to update the
mapping table when new profiles come along.
This patch adds support for the add_uuid and remove_uuid management
commands. The kernel uses them to track the list of UUIDs and
automatically set the service class bits as well as the EIR value
accordingly.
This patch implements support for the set_pairable managment command.
Due to the async nature of it a new btd_adapter_pairable_changed
function is added to the core daemon.
The current idea is to have a single set_powered management command
which for the switching on case would leave the controller in a
non-connectable, non-pairable and non-discoverable state.