Luiz Augusto von Dentz [Fri, 24 Apr 2020 17:32:16 +0000 (10:32 -0700)]
device: Fix not reporting errors to Connect
The check for connected services was inverted.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Pali Rohár [Thu, 23 Apr 2020 23:32:43 +0000 (01:32 +0200)]
device: Return error when ConnectProfile DBus method fails
Without this patch ConnectProfile DBus method does not return failure if
profile connection failed and some other profile was already connected.
This is not correct behavior as ConnectProfile DBus method should always
return error when specified profile failed to connect. This patch fixes
this it.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Pali Rohár [Thu, 23 Apr 2020 23:34:14 +0000 (01:34 +0200)]
btio: Fix error number
In commit
d20ee8273e61e16c78582344f274254973cdf00f was unintentionally
negated error number. Fix this mistake.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Thu, 23 Apr 2020 21:50:55 +0000 (14:50 -0700)]
emulator: Add support for LE Remove ISO Data Path
This implements support for LE Remove ISO Data Path command.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Wed, 22 Apr 2020 22:09:33 +0000 (15:09 -0700)]
emulator: Add support for LE Setup ISO Data Path
This implements support for LE Setup ISO Data Path command.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Tue, 21 Apr 2020 21:46:34 +0000 (14:46 -0700)]
emulator: Add support for LE Set Host Feature
This implements support for LE Set Host Feature
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Tue, 21 Apr 2020 22:13:20 +0000 (15:13 -0700)]
emulator: Fix version number of ISO related features
There are part of Bluetooth 5.2 specification not 6.0.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Tue, 21 Apr 2020 21:32:19 +0000 (14:32 -0700)]
monitor: Add decoding support for HCI LE Set Host Feature
This adds decoding support for LE Set Host Feature.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Tue, 21 Apr 2020 21:31:16 +0000 (14:31 -0700)]
monitor: Remove use of base defines for 5.2
Use the allocated value directly instead of base value + offset.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Pali Rohár [Wed, 22 Apr 2020 17:01:05 +0000 (19:01 +0200)]
profile: Fix reporting error message when connection failed
Some bluetooth headsets do not support connecting more then one bluetooth
profile (e.g. in parallel A2DP and HSP, or HSP and HFP) and issuing
connect() syscall for second profile returns just ECONNREFUSED.
Prior this patch bluetooth daemon for such situation reported following
message to log:
Unable to get connect data for Headset Voice gateway: getpeername: Transport endpoint is not connected (107)
Message is incorrect as connect() syscall failed, not getpeername(). This
patch fixes this problem and logs correct error message:
Headset Voice gateway failed connect to XX:XX:XX:XX:XX:XX: Connection refused (111)
Main problem was in ext_connect() function which called bt_io_get() for
retrieving remote address (BT_IO_OPT_DEST) and if it failed then original
error from connect() syscall was masked. Because it is not possible to
retrieve BT_IO_OPT_DEST for unconnected socket, original destination
address for error message is propagated via connect_add() function in btio.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Pali Rohár [Wed, 22 Apr 2020 17:01:04 +0000 (19:01 +0200)]
btio: Show destination address in connect error message
When connect() fails it is not possible to retrieve destination address as
socket is not bound. So put destination address into error message.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Stéphane Cerveau [Mon, 20 Apr 2020 18:40:29 +0000 (20:40 +0200)]
add hog ref before adding to instances
To avoid a double hog free, need to add a ref
when adding the hog to the slist.
This bug has been reproduced with gamepad-8718
which was connecting/disconnecting frantically.
Fix also a typo in the method hog_attach_instance
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Szymon Janc [Mon, 20 Apr 2020 12:07:05 +0000 (14:07 +0200)]
device: Fix compilation with GCC 10
Class is using only 3 bytes so make sure GCC is aware of that.
src/device.c:397:3: note: ‘sprintf’ output between 9 and 11 bytes into a destination of size 9
397 | sprintf(class, "0x%6.6x", device->class);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Szymon Janc [Mon, 20 Apr 2020 12:07:04 +0000 (14:07 +0200)]
avctp: Fix compilation with GCC 10
This one is a false positive but since we never use more than
UINPUT_MAX_NAME_SIZE bytes of name we can silence GCC by reducing
size of source string.
CC profiles/audio/bluetoothd-avctp.o
In function ‘uinput_create’,
inlined from ‘init_uinput’ at profiles/audio/avctp.c:1259:20:
profiles/audio/avctp.c:1188:3: error: ‘strncpy’ output may be truncated copying 79 bytes from a string of length 248 [-Werror=stringop-truncation]
1188 | strncpy(dev.name, name, UINPUT_MAX_NAME_SIZE);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Szymon Janc [Mon, 20 Apr 2020 12:07:03 +0000 (14:07 +0200)]
sap: Fix compilation with GCC 10
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Szymon Janc [Mon, 20 Apr 2020 12:07:02 +0000 (14:07 +0200)]
android: Fix build with GCC 10
status and state are used to hold various enum types depending on test
and callback passed. Define them as int to avoid warnings about enum
assignment from invalid type.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Olivier Martin [Tue, 7 Apr 2020 19:44:00 +0000 (21:44 +0200)]
emulator: Fix command line parameters with optional argument
Some parameters were missing the indication that additional
argument could be expected.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Pali Rohár [Tue, 14 Apr 2020 20:46:02 +0000 (22:46 +0200)]
doc: Update documentation for HSP and HFP profiles
Fix information about default rfcomm channel number in HFP HS role
(it is 7, not 6) and add documentation about default values.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Tue, 14 Apr 2020 20:23:23 +0000 (13:23 -0700)]
profile: Return -ENOENT for HSP AG
HSP AG role doesn't have any supported features.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Pali Rohár [Mon, 13 Apr 2020 16:25:13 +0000 (18:25 +0200)]
profile: Add default SDP record for Headset role of HSP 1.2
This would allow D-Bus agents to implement HS role of HSP profile.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Pali Rohár [Mon, 13 Apr 2020 16:25:12 +0000 (18:25 +0200)]
profile: Export Remote Audio Volume Control SDP value
Remote Audio Volume Control property in SDP record for HSP HS role
indicates if device supports volume control.
It is required for D-Bus agents which implements audio part of HSP
profile to know if remote device supports volume control or not.
With this change bluez exports status of this SDP property via firt bit
in Features entry in NewConnection() DBus callback method, like for HFP
profile.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Mon, 13 Apr 2020 23:43:42 +0000 (16:43 -0700)]
profile: Remove duplicate initialization of version and profile
These values are always set later by send_new_connection.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Pali Rohár [Mon, 13 Apr 2020 16:25:11 +0000 (18:25 +0200)]
profile: Fix not setting default features for HFP 1.7
When HFP AG features are not set then according to HFP 1.7.2
specification it has value
0b001001.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Szymon Janc [Thu, 9 Apr 2020 10:30:35 +0000 (12:30 +0200)]
test/example-advertisement: Fix advertising when discoverable
If adapter is discoverable (or LE-only) advertising was failing due
to too big adv data being set. Make sure there is enough space left
for flags if needed.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Marcel Holtmann [Wed, 8 Apr 2020 08:08:24 +0000 (10:08 +0200)]
monitor: Add support for opening extra mgmt socket for events
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Archie Pusaka [Tue, 7 Apr 2020 08:56:09 +0000 (16:56 +0800)]
shared/att: Check the signature of att packets
Tested to pass these BT certification test
SM/MAS/SIGN/BV-03-C
SM/MAS/SIGN/BI-01-C
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Archie Pusaka [Tue, 7 Apr 2020 08:56:08 +0000 (16:56 +0800)]
unit/test-crypto: test for bt_crypto_verify_att_sign
Adding tests for verifying att signature
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Archie Pusaka [Tue, 7 Apr 2020 08:56:07 +0000 (16:56 +0800)]
shared/crypto: Add bt_crypto_verify_att_sign
This is used to verify the signature of incoming ATT packets.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Tue, 7 Apr 2020 00:24:08 +0000 (17:24 -0700)]
client: Make advertise instances default to discoverable
The more common case is that advertisements are discoverable not the
other way around.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Mon, 6 Apr 2020 21:19:03 +0000 (14:19 -0700)]
gatt: Fix not sending any data when server supports AcquireWrite
msg.msg_iovlen should be set to 1 to forward the data received over the
file descriptor.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Marcel Holtmann [Sun, 5 Apr 2020 18:51:36 +0000 (20:51 +0200)]
monitor: Fix off-by-one error with IRKs and LTKs
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Marcel Holtmann [Sun, 5 Apr 2020 07:58:31 +0000 (09:58 +0200)]
lib: Update company identifiers
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Marcel Holtmann [Sat, 4 Apr 2020 20:24:57 +0000 (22:24 +0200)]
doc: Define bus controller value for VIRTIO transport
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Sonny Sasaka [Tue, 31 Mar 2020 00:33:55 +0000 (17:33 -0700)]
tools/hciattach_ath3k: Load BT board data based on country code
BT board data file PS_ASIC-<country-code>.pst is loaded based
on country code. If not exist, default BT board data file
PS_ASIC.pst would be loaded.
This patch doesn't define how to get the country code at the moment, but
future patches can supply the country code in the region parameter of
get_ps_file_name.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Marcel Holtmann [Thu, 2 Apr 2020 13:21:18 +0000 (15:21 +0200)]
lib: Add details for reading security information command
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Marcel Holtmann [Thu, 2 Apr 2020 13:20:53 +0000 (15:20 +0200)]
tools: Add command for reading the security information
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Marcel Holtmann [Thu, 2 Apr 2020 13:20:09 +0000 (15:20 +0200)]
doc: Add Read Security Information command description
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Marcel Holtmann [Thu, 2 Apr 2020 11:45:41 +0000 (13:45 +0200)]
tools: Fix command for reading extended controller information
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Marcel Holtmann [Thu, 2 Apr 2020 11:36:41 +0000 (13:36 +0200)]
tools: Add command for toggling wideband speech feature
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Marcel Holtmann [Thu, 2 Apr 2020 11:36:00 +0000 (13:36 +0200)]
lib: Add missing text for wideband speech command
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Wed, 1 Apr 2020 23:27:33 +0000 (16:27 -0700)]
gatt: Fix Acquire* reply handling
Originally these operation did not set any owner_queue which caused
them to crash if the attribute is freed before the respose, to fix that
the reply will now check if owner_queue was reset to NULL which means
the attribute is no longer available but the owner_queue was never set
in the first place so this ensures they are now setup properly.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Howard Chung [Tue, 31 Mar 2020 03:16:43 +0000 (11:16 +0800)]
monitor: Fix missing setting string
Add wideband speech to setting string
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Tue, 31 Mar 2020 21:05:48 +0000 (14:05 -0700)]
gatt: Check error before retrying if Acquire* failed
If the method has timed out it probably means the application is not
responding so a follow up method call might have the same result, also
in case the application returns org.bluez.Error.Failed it indicates the
operation has been attempted but failed which again most likely will
have the same result if reattempted.
Change-Id: Ie768f1e3613957f362b65fba12a03d0ee21bce9c
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Tue, 31 Mar 2020 17:28:23 +0000 (10:28 -0700)]
gatt: Fix possible crashes when disconnecting
If there are pending AcquireWrite or AcquireNotify when disconnecting
the attribute object may be freed (e.g. device is temporary) leading to
the following backtrace:
bluetoothd[369928]: src/gatt-database.c:gatt_db_service_removed() Local GATT service removed
bluetoothd[369928]: src/adapter.c:adapter_service_remove() /org/bluez/hci1
bluetoothd[369928]: src/adapter.c:remove_uuid() sending remove uuid command for index 1
bluetoothd[369928]: src/sdpd-service.c:remove_record_from_server() Removing record with handle 0x1002e
bluetoothd[369928]: src/gatt-database.c:send_notification_to_device() GATT server sending indication
bluetoothd[369928]: src/device.c:gatt_debug() Write Complete: err -125
bluetoothd[369928]: src/gatt-database.c:client_disconnect_cb() Client disconnected
bluetoothd[369928]: src/advertising.c:client_disconnect_cb() Client disconnected
bluetoothd[369928]: Failed to acquire write: org.freedesktop.DBus.Error.NoReply
Program received signal SIGSEGV, Segmentation fault.
0x0000555555631450 in acquire_write_reply (message=0x55555583dec0, user_data=0x555555843e40) at src/gatt-database.c:2437
2437 send_write(op->device, op->attrib, chrc->proxy, NULL, op->id,
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Szymon Janc [Tue, 31 Mar 2020 10:45:32 +0000 (12:45 +0200)]
shared/gatt: Fix NULL pointer dereference
bluetoothd[363094]: src/device.c:device_connect_le() Connection attempt to: 00:AA:01:00:00:23
Program received signal SIGSEGV, Segmentation fault.
write_complete_cb (attr=0x55555580aa30, err=-110, user_data=0x55555585f7c0) at src/shared/gatt-server.c:793
793 util_debug(server->debug_callback, server->debug_data,
(gdb) bt
#0 write_complete_cb (attr=0x55555580aa30, err=-110, user_data=0x55555585f7c0) at src/shared/gatt-server.c:793
#1 0x00005555556a5852 in pending_write_result (p=0x555555866030, err=<optimized out>) at src/shared/gatt-db.c:162
#2 0x00005555556a5ac7 in write_timeout (user_data=0x555555866030) at src/shared/gatt-db.c:1879
#3 0x00005555556a9b15 in timeout_callback (user_data=user_data@entry=0x555555864b20) at src/shared/timeout-glib.c:34
#4 0x00007ffff7e1f081 in g_timeout_dispatch (source=source@entry=0x555555864f00, callback=0x5555556a9b00 <timeout_callback>, user_data=0x555555864b20) at ../glib/gmain.c:4705
#5 0x00007ffff7e1e570 in g_main_dispatch (context=0x5555557d9630) at ../glib/gmain.c:3216
#6 g_main_context_dispatch (context=context@entry=0x5555557d9630) at ../glib/gmain.c:3881
#7 0x00007ffff7e1e900 in g_main_context_iterate (context=0x5555557d9630, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:3954
#8 0x00007ffff7e1ebf3 in g_main_loop_run (loop=0x5555557d75d0) at ../glib/gmain.c:4148
#9 0x00005555556a9dbd in mainloop_run () at src/shared/mainloop-glib.c:79
#10 0x00005555556aa36a in mainloop_run_with_signal (func=<optimized out>, user_data=0x0) at src/shared/mainloop-notify.c:201
#11 0x00005555555bb9e3 in main (argc=<optimized out>, argv=<optimized out>) at src/main.c:770
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Szymon Janc [Tue, 31 Mar 2020 12:07:25 +0000 (14:07 +0200)]
main: Fix GATT option parsing
Key name is Channels.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Sonny Sasaka [Sat, 28 Mar 2020 00:33:18 +0000 (17:33 -0700)]
core/device: Handle Just-Works auto-accept
The kernel starts to always request confirmation to BlueZ daemon for
Just-Works pairing. In this patch the daemon does auto-accept if the
client has clearly indicated a pairing intent by calling the Pair()
D-Bus API.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Mon, 16 Mar 2020 22:16:12 +0000 (15:16 -0700)]
gatt: Enable connecting to EATT channel using Ext-Flowctl mode
This makes use of BT_IO_MODE_EXT_FLOWCTL to connect to EATT channels.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Tue, 10 Mar 2020 20:44:27 +0000 (13:44 -0700)]
tools/l2cap-tester: Add test for Ext-Flowctl mode
This adds tests for Ext-Flowctl which uses ECRED PDUs.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Tue, 10 Mar 2020 20:09:52 +0000 (13:09 -0700)]
emulator/bthost: Add support for ECRED Connection request/response
This adds support for ECRED Connection request/response which will be
used by l2cap-runner to test L2CAP_MODE_EXT_FLOWCTL mode.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Fri, 2 Aug 2019 07:44:43 +0000 (10:44 +0300)]
l2test: Add support for BT_MODE_EXT_FLOWCTL
This enables using l2test to connect or listen with
BT_MODE_EXT_FLOWCTL.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Wed, 31 Jul 2019 10:56:24 +0000 (13:56 +0300)]
btio: Add mode to for Enhanced Credit Mode
This adds BT_IO_MODE_EXT_FLOWCTL which directly maps to
BT_MODE_EXT_FLOWCTL.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Mon, 29 Jul 2019 10:09:57 +0000 (13:09 +0300)]
lib: Add definitions for Enhanced Credits Based Mode
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Mon, 30 Mar 2020 21:43:12 +0000 (14:43 -0700)]
monitor: Fix decoding of LE Setup ISO Data Path command
LE Setup ISO Data Path command contains not only the transport but also
the codec along with its configuration.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Marcel Holtmann [Mon, 30 Mar 2020 18:32:53 +0000 (20:32 +0200)]
lib: Add identifier for VIRTIO devices
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Marcel Holtmann [Mon, 30 Mar 2020 18:24:06 +0000 (20:24 +0200)]
monitor: Add support for Read Local Simple Pairing Options command
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Mon, 30 Mar 2020 17:28:08 +0000 (10:28 -0700)]
btmgmt: Rename version command to revision
version is already handled by btshell and always refer to BlueZ version
rather than MGMT version, so this renames the command to revision to
avoid having the clash of command names.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Mon, 30 Mar 2020 17:23:16 +0000 (10:23 -0700)]
btmgmt: Fix irks command parsing
btshell does not allow use of nested parameter delimiters.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Alain Michaud [Fri, 27 Mar 2020 15:03:53 +0000 (15:03 +0000)]
monitor: Adding missing settings descriptions in btmon
This change adds the missing settings descriptions from btmon.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Archie Pusaka [Fri, 20 Mar 2020 05:14:25 +0000 (13:14 +0800)]
avdtp: fix delay report valid states
According to AVDTP specification section 6.19,
avdtp_delayreport_cmd could also be received when the state of SEP
is open.
Therefore, updating to accommodate such condition.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Howard Chung [Thu, 26 Mar 2020 08:14:27 +0000 (16:14 +0800)]
tools/btmgmt: Fix missing setting string in btmgmt
Both PHY configuration and wide band speech are not set in
btmgmt.c.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Sonny Sasaka [Tue, 24 Mar 2020 19:49:42 +0000 (12:49 -0700)]
autopair: Fix compiler warning
With clang, comparing an array with NULL generates a warning because the
value is always non-NULL. With maintainer mode enabled, this becomes a
compilation error.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Howard Chung [Tue, 24 Mar 2020 03:21:45 +0000 (11:21 +0800)]
avdtp: Fix crashes in avdtp_abort
In avdtp_abort, if setup->stream is NULL, trying to access
stream->lsep will crash.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Wed, 11 Mar 2020 18:43:21 +0000 (11:43 -0700)]
input: Add LEAutoSecurity setting to input.conf
LEAutoSecurity can be used to enable/disable automatic upgrades of
security for LE devices, by default it is enabled so existing devices
that did not require security and were not bonded will automatically
upgrade the security.
Note: Platforms disabling this setting would require users to manually
bond the device which may require changes to the user interface to
always force bonding for input devices as APIs such as Device.Connect
will no longer work which maybe perceived as a regression.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Tue, 10 Mar 2020 16:59:07 +0000 (09:59 -0700)]
input: hog: Attempt to set security level if not bonded
This attempts to set the security if the device is not bonded, the
kernel will block any communication on the ATT socket while bumping
the security and if that fails the device will be disconnected which
is better than having the device dangling around without being able to
communicate with it until it is properly bonded.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Marcel Holtmann [Sun, 15 Mar 2020 06:35:59 +0000 (07:35 +0100)]
Release 5.54
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Marcel Holtmann [Sun, 15 Mar 2020 06:26:51 +0000 (07:26 +0100)]
build: Update library version
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Marcel Holtmann [Sun, 15 Mar 2020 06:25:19 +0000 (07:25 +0100)]
lib: Add version number for Bluetooth 5.2
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Łukasz Rymanowski [Thu, 12 Mar 2020 07:30:45 +0000 (08:30 +0100)]
monitor: Fix for incorrect len in L2CAP Enhanced Reconfigure
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Archie Pusaka [Thu, 12 Mar 2020 05:54:37 +0000 (13:54 +0800)]
a2dp: Fix race when connecting and being connected at the same time
There is a possibility where BlueZ initiate an A2DP connection just
around the same time as the peripheral also initiate it.
One scenario is the peripheral initiate the connection first, so
confirm_cb() on /profiles/audio/a2dp.c is called. However, while we
are waiting for the authentication step, BlueZ initiate a connection
to the peripheral, therefore a2dp_sink_connect() is called, which
from there a2dp_avdtp_get() is called.
If this happens: When calling confirm_cb(), chan for the
corresponding device is created.
Then when calling a2dp_avdtp_get(), chan will be found as it is
created in confirm_cb(), and the value of chan->io is not NULL.
However, a NULL is supplied instead to create a new session and
assigned to chan->session.
Then when calling connect_cb(), chan->session will NOT be NULL, as
it is assigned in a2dp_avdtp_get(). Nevertheless, chan->session is
always assigned a new value.
These cause failure in connection.
Therefore, fixing this by supplying the value of chan->io inside
a2dp_avdtp_get() (it's going to be NULL on the normal case so it is
fine), and check whether chan->session already assigned inside
connect_cb().
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Alain Michaud [Tue, 10 Mar 2020 02:35:18 +0000 (02:35 +0000)]
HID accepts bonded device connections only.
This change adds a configuration for platforms to choose a more secure
posture for the HID profile. While some older mice are known to not
support pairing or encryption, some platform may choose a more secure
posture by requiring the device to be bonded and require the
connection to be encrypted when bonding is required.
Reference:
https://www.intel.com/content/www/us/en/security-center/advisory/intel-sa-00352.html
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Alain Michaud [Tue, 10 Mar 2020 02:35:16 +0000 (02:35 +0000)]
HOGP must only accept data from bonded devices.
HOGP 1.0 Section 6.1 establishes that the HOGP must require bonding.
Reference:
https://www.intel.com/content/www/us/en/security-center/advisory/intel-sa-00352.htm
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Marcel Holtmann [Sun, 8 Mar 2020 08:02:51 +0000 (09:02 +0100)]
doc: Mention the Wideband Speech setting and add new kernel version
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Alain Michaud [Wed, 4 Mar 2020 20:31:52 +0000 (20:31 +0000)]
lib: Adding definitions for Wide Band Speech configuration
This change adds the corresponding user space definition for wide band
speech.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Marcel Holtmann [Wed, 4 Mar 2020 07:37:43 +0000 (08:37 +0100)]
doc: Add settings and command for Wideband Speech support
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Marcel Holtmann [Wed, 4 Mar 2020 07:35:14 +0000 (08:35 +0100)]
doc: Add another missing PHY Configuration value
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Fri, 17 May 2019 11:13:23 +0000 (14:13 +0300)]
monitor: Add support for decoding EATT
This decodes packets received over EATT PSM.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Tue, 7 Jan 2020 19:47:49 +0000 (11:47 -0800)]
core: Add support for setting the number of GATT bearers
This adds option to set the numbers of GATT Channels/Bearers to be
connected in main.conf.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Fri, 6 Sep 2019 11:09:37 +0000 (14:09 +0300)]
gatt: Add support for Notify Multiple
This adds support for Notify Multiple procedure marking its bit as
supported in the Client Features.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Thu, 6 Jun 2019 06:22:56 +0000 (09:22 +0300)]
shared/gatt: Add support for Handle Value Multiple Notifications
Handle Value Multiple Notification can be used to notify multiple
values at once.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Mon, 3 Jun 2019 13:21:19 +0000 (16:21 +0300)]
shared/gatt-client: Add support for Read Multiple Variable Length
The Read Multiple Variable Length Request is used to request that the
server read two or more values of a set of attributes that have a
variable or unknown value length and return their values in a
Read Multiple Variable Length Response.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Mon, 3 Jun 2019 12:42:41 +0000 (15:42 +0300)]
shared/gatt-server: Add support for Read Multiple Variable Length
The Read Multiple Variable Length Request is used to request that the
server read two or more values of a set of attributes that have a
variable or unknown value length and return their values in a
Read Multiple Variable Length Response.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Thu, 26 Dec 2019 22:01:06 +0000 (14:01 -0800)]
gatt: Enable EATT bearer support
This adds support for EATT connections.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Fri, 10 May 2019 07:35:00 +0000 (10:35 +0300)]
shared/gatt-client: Add support for EATT features
This enables EATT in the Client Features if the EATT characteristic is
present in the database.
Change-Id: I174d644283b8026b2b82e2c1bd2d9aeb5f5bcdbe
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Thu, 9 May 2019 08:06:25 +0000 (11:06 +0300)]
share/att: Add EATT support
This adds EATT support to bt_att, EATT bearers are handled as
additional channels which auto allocated for queued requests.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Archie Pusaka [Mon, 2 Mar 2020 04:07:31 +0000 (12:07 +0800)]
src/profile: Ensure class UUID matches before connecting profile
According to bluetooth spec Ver 5.1, Vol 3, Part B, 4.7.2, there
might be multiple service records returned in a SDP Service Search
Attribute Response. Also, according to 2.5.2, the service pattern
can match any UUID contained within the service record, it doesn't
have to match only some specific attributes of the record.
Therefore, before using the service record to connect to any
profile, first we must check that the service class ID of the
service record matches with whatever UUID specified in the service
pattern we are looking for.
This patch checks the service class ID of the records against the
requested UUID whenever bt_search_service() is called and filter
out the ones that don't match. For the alternative where filtering
is not applied, use the method bt_search().
Change-Id: Ia0489fd81e0c6e21d57fe907b36b696d826b18a4
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Marcel Holtmann [Fri, 28 Feb 2020 08:18:58 +0000 (09:18 +0100)]
doc: Mention the mgmt API version 1.15 changes
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Alain Michaud [Thu, 27 Feb 2020 19:19:19 +0000 (19:19 +0000)]
doc: Adding missing Phy Configuration bit description.
This change simply adds the missing Phy Configuration settings bit
description to the Read Controller Information Command documentation.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Thu, 20 Feb 2020 00:25:04 +0000 (16:25 -0800)]
client: Add scan.pattern command
This uses the new Pattern filter:
[bluetooth]# scan.pattern Living
[bluetooth]# scan on
SetDiscoveryFilter success
Discovery started
[CHG] Controller XX:XX:XX:XX:XX:XX Discovering: yes
[NEW] Device XX:XX:XX:XX:XX:XX Living Room TV
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Thu, 20 Feb 2020 00:19:29 +0000 (16:19 -0800)]
adapter: Implement Pattern filter
This implements the new Pattern filter as documented in the
adapter-api.txt.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Wed, 19 Feb 2020 22:58:33 +0000 (14:58 -0800)]
doc/adapter-api: Add pattern filter
This adds a pattern filter which can be used to filter devices by
address or name prefix which is quite convenient on a crowded
environment.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Wed, 19 Feb 2020 00:32:22 +0000 (16:32 -0800)]
avdtp: Enable MTU auto tunning
This uses BT_PHY to check if kernel is able to do MTU auto tunning
which is enabled by forcing the input MTU to 0.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Tue, 18 Feb 2020 21:35:57 +0000 (13:35 -0800)]
l2test: Add support to BT_PHY
This makes l2test attempt to read BT_PHY socket option and print out
the supported packet types/PHY:
l2test[7282]: Connected to XX:XX:XX:XX:XX:XX (bredr, psm 4113, dcid 64)
l2test[7282]: Local device XX:XX:XX:XX:XX:XX (bredr, psm 4113, scid 64)
l2test[7282]: Options [imtu 672, omtu 672, flush_to 65535, mode 0, handle 256, class 0x000000, priority 0, rcvbuf 212992]
l2test[7282]: Supported PHY: 0x000001ff
BR1M1SLOT
BR1M3SLOT
BR1M5SLOT
EDR2M1SLOT
EDR2M3SLOT
EDR2M5SLOT
EDR3M1SLOT
EDR3M3SLOT
EDR3M5SLOT
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Tue, 18 Feb 2020 19:41:29 +0000 (11:41 -0800)]
btio: Add BT_IO_PHY option
This adds BT_IO_PHY option which can be used to read the underline
packet types/PHY in use by the link layer.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Luiz Augusto von Dentz [Tue, 18 Feb 2020 19:39:15 +0000 (11:39 -0800)]
lib: Add definition to BT_PHY
This adds the definition to BT_PHY socket options along with the
possible bitfields for the return value.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
howardchung@google.com [Sat, 15 Feb 2020 03:44:33 +0000 (11:44 +0800)]
core: Add new policy for Just-Works repairing
When kernel find out that the incoming Just-Works pairing is
initiated by a paired device, it is user space's responsibility to
decide the next action.
This patch includes the following:
- add JustWorksRepairing policy as an option in main.conf
- handle the confirmation request from kernel
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Marcel Holtmann [Sat, 15 Feb 2020 18:31:37 +0000 (19:31 +0100)]
Release 5.53
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Marcel Holtmann [Fri, 14 Feb 2020 22:27:03 +0000 (23:27 +0100)]
build: Update library version
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Marcel Holtmann [Fri, 14 Feb 2020 22:24:03 +0000 (23:24 +0100)]
build: Require at least version 0.28 when building with external ELL
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
Matt Ranostay [Fri, 7 Feb 2020 05:08:56 +0000 (21:08 -0800)]
obex: report notification status on incoming message
To match doc/obex.txt on incoming message notification the respective
Status field should be set.
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>