All caracteristics shall contain a value in the next handle so having
a declaration on 0xffff is invalid since there won't be any space for
the value descriptor.
The spec state that a secondary needs to referenced by at least one
primary, Version 4.2 [Vol 1, Part A] page 101:
'A secondary service is a service that provides auxiliary
functionality of a device and is referenced from at least one
primary service on the device.'
This tune the discovery to take advantage of the cached database whenever
possible, so instead of clearing the whole db if the device is not paired
the code now make the remote services active once they are discovered
and with that bt_gatt_client can then skip discovering characteristics
and descriptors of services that have not changed since last connection
which improves the reconnecting speed for any device regardless if the
device was paired or not.
Signed Write Command data is as follow:
Attribute Handle (2 octets)
Data (0 or more octets)
Signature (12 octets).
> ACL Data RX: Handle 64 flags 0x02 dlen 20
ATT: Signed Write Command (0xd2) len 15
Handle: 0x001f
Data: 00
Signature: 00000000df559de6549e1757
When matching remote SEP to local SEP avdtp does not compare vendor
codecs properly, i.e. neither vendor ID not codec ID are checked,
which may cause wrong endpoint to be selected in case there are more
that one endpoints using vendor codec on remote.
This patch fixes it by adding a2dp codec match call back.
The group data is as follow:
Attribute Handle (2 octets) End Group Handle (2 octets) Attribute Value
(Length - 4) octets
But since only primary and secondary can be used in ATT Read by Group
Type Request the value is garanteed to be a UUID:
< ACL Data TX: Handle 3585 flags 0x00 dlen 24
ATT: Read By Group Type Response (0x11) len 19
Attribute data length: 6
Attribute group list: 3 entries
Handle range: 0x0001-0x0005
UUID: Generic Access Profile (0x1800)
Handle range: 0x0006-0x000d
UUID: Heart Rate (0x180d)
Handle range: 0x000e-0x0011
UUID: Battery Service (0x180f)
This patch fixes issue related to HID connection over BREDR.
To avoid HOG connection with dual mode device connected over
BREDR, bearer type is checked not the features of remote device.