platform/upstream/bluez.git
2 years agobtdev: Check advertising/scanning states when changing White List
Luiz Augusto von Dentz [Mon, 7 Jun 2021 17:34:29 +0000 (10:34 -0700)]
btdev: Check advertising/scanning states when changing White List

White List cannot be changed when advertising/scanning:

• any advertising filter policy uses the White List and advertising is
enabled,
• the scanning filter policy uses the White List and scanning is
enabled, or
• the initiator filter policy uses the White List and an
HCI_LE_Create_Connection or HCI_LE_Extended_Create_Connection
command is outstanding.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agobtdev: Remove debugs
Luiz Augusto von Dentz [Fri, 4 Jun 2021 23:26:28 +0000 (16:26 -0700)]
btdev: Remove debugs

Remove left-over util_debugs.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agotools/mgmt-tester: Fix expected HCI command accounting
Inga Stotland [Fri, 4 Jun 2021 17:59:13 +0000 (10:59 -0700)]
tools/mgmt-tester: Fix expected HCI command accounting

This fixes test condition count in the expected HCI command
callback.

When the expected HCI opcode is detected, mark the condition
as done. Any subsequent HCI commands are ignored.

Without this fix, in couple of test cases where the expected HCI
command is detected more than once, the test may be erroneously
reported as a failure or prematurely declared as a success before
waiting on an expected MGMT event condition.

The test cases where this behavior is fixed:
Remove Ext Advertising - Success 1
Remove Ext Advertising - Success 2
Reviewed-by: Tedd Ho-Jeong An <tedd.an@intel.com>
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agoshared/mgmt: Fix not processing request queue
Luiz Augusto von Dentz [Fri, 4 Jun 2021 21:28:38 +0000 (14:28 -0700)]
shared/mgmt: Fix not processing request queue

If the kernel returns an invalid opcode like below the request won't
be processed making it unusable:

@ MGMT Command: Read Advertising Features (0x003d) plen 0
{0x0001} [hci0] 14:25:11.096370
@ MGMT Event: Command Status (0x0002) plen 3
{0x0001} [hci0] 14:25:11.096373
      Set Advertising (0x0029)
              Status: Not Supported (0x0c)

In order to fix this attempts to remove the first request pending on the
given index:

= bluetoothd: src/advertising.c:read_adv_features_callback() Failed to
read advertising features: Not Supported (0x0c)

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agobtdev: Fix handling of white/resolving list
Luiz Augusto von Dentz [Fri, 4 Jun 2021 19:16:23 +0000 (12:16 -0700)]
btdev: Fix handling of white/resolving list

le_cig.cis entries was not properly checked which could lead to
overwriting le_wl/le_rl field.

While at it this also makes changes so have proper struct/fields for
le_wl and le_rl so they easier to manage.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agobtdev: Fix crash when generating disconnected event for BIS
Luiz Augusto von Dentz [Fri, 4 Jun 2021 00:07:26 +0000 (17:07 -0700)]
btdev: Fix crash when generating disconnected event for BIS

When generating disconnected event for a BIS it would not have any
link as the ISO is in fact we are broadcasting and don't have an ACL.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agotools/mgmt-tester: Add setup condition to resolve list
Inga Stotland [Thu, 3 Jun 2021 00:04:16 +0000 (17:04 -0700)]
tools/mgmt-tester: Add setup condition to resolve list

This adds expected setup HCI command condition to
"Start Discovery - Disable Resolve List" case.

Check that on setup HCI command Set LE Resolve Enable is complete
with "enable" parameter set to 1.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agotools/mgmt-tester: Adjust test setup complete check
Inga Stotland [Thu, 3 Jun 2021 00:04:15 +0000 (17:04 -0700)]
tools/mgmt-tester: Adjust test setup complete check

This changes check for setup complete in client_cmd_complete() callback
from tester_setup_complete() to test_setup_condition_complete(). This
allows for combining setup conditions when setup_bthost() is called.
Reviewed-by: Tedd Ho-Jeong An <tedd.an@intel.com>
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agotools/mgmt-tester: Add tests for whitelist and resolving list
Tedd Ho-Jeong An [Tue, 1 Jun 2021 20:49:18 +0000 (13:49 -0700)]
tools/mgmt-tester: Add tests for whitelist and resolving list

This patch adds test cases for checking the whitelist and resolving list
HCI commands when the LL Privacy feature is enabled.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agotools/mgmt-tester: Add tests for experimental feature command
Tedd Ho-Jeong An [Tue, 1 Jun 2021 20:49:17 +0000 (13:49 -0700)]
tools/mgmt-tester: Add tests for experimental feature command

This patch adds test cases for Read/Set Experimenal Feature commands.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agoemulator/btdev: Enable LE Privacy feature
Tedd Ho-Jeong An [Tue, 1 Jun 2021 20:49:16 +0000 (13:49 -0700)]
emulator/btdev: Enable LE Privacy feature

This patch enables LE Privacy to support LL Privacy feature.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agotools/mgmt-tester: Add test cases for get/set device flags
Tedd Ho-Jeong An [Wed, 26 May 2021 05:13:10 +0000 (22:13 -0700)]
tools/mgmt-tester: Add test cases for get/set device flags

This patch adds test cases for get/set device flags commands.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agotools/mgmt-tester: Print hexdump if mgmt event parameters not match
Tedd Ho-Jeong An [Wed, 26 May 2021 05:13:09 +0000 (22:13 -0700)]
tools/mgmt-tester: Print hexdump if mgmt event parameters not match

This patch displays the hexdump of expected and received mgmt event
parameters.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agolib: Align mgmt header with document
Tedd Ho-Jeong An [Wed, 26 May 2021 05:13:08 +0000 (22:13 -0700)]
lib: Align mgmt header with document

This patch updates the mgmt header to align with the mgmt api document
(doc/mgmt-api.txt)

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agotools/btmgmt: Add device flags commands
Tedd Ho-Jeong An [Wed, 26 May 2021 05:13:07 +0000 (22:13 -0700)]
tools/btmgmt: Add device flags commands

This patch adds commands for get/set device flags mgmt ops.

Usage:

get-flags [-t type] <address>
        -t type    Address Type
                      0 BR/EDR
                      1 LE Public
                      2 LE Random

set-flags [-f flags] [-t type] <address>
        -t type    Address Type
                      0 BR/EDR
                      1 LE Public
                      2 LE Random
        -f flags   Device flag.
                      1 Remote Wake Enable

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agomgmt: Add missing opcodes to mgmt_op
Luiz Augusto von Dentz [Mon, 24 May 2021 23:00:08 +0000 (16:00 -0700)]
mgmt: Add missing opcodes to mgmt_op

This adds the missing opcodes to mgmt_op so they are properly decoded.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agolib/uuid: Fix string to uuid32 conversion
Archie Pusaka [Wed, 19 May 2021 08:21:14 +0000 (16:21 +0800)]
lib/uuid: Fix string to uuid32 conversion

Use strtoul to prevent 32 bit overflow

Reviewed-by: Yun-Hao Chung <howardchung@chromium.org>
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agocore: Add RSSI sampling period in system parameter
Yun-Hao Chung [Mon, 24 May 2021 02:43:37 +0000 (10:43 +0800)]
core: Add RSSI sampling period in system parameter

Add an option in main.conf to configure the default RSSI sampling
period for advertisement monitor.

Reviewed-by: apusaka@chromium.org
Reviewed-by: mmandlik@chromium.org
Reviewed-by: mcchou@chromium.org
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agotools/mgmt-tester: Fix "Remove Ext Advertising" case
Inga Stotland [Wed, 19 May 2021 21:19:07 +0000 (14:19 -0700)]
tools/mgmt-tester: Fix "Remove Ext Advertising" case

This fixes the expected behavior of the following test case:
"Remove Ext Advertising - Success 1", when the fail status
was erroneously overwritten with success:

<log snip>
  New Advertising Removed event received
  Test condition complete, 2 left
  HCI Command 0x2039 length 6
  Invalid parameter size for HCI command
Remove Ext Advertising - Success 1 - test failed
  HCI Command 0x203c length 1
  HCI Command 0x2039 length 2
  Test condition complete, 1 left
  Remove Advertising (0x003f): Success (0x00)
  Test condition complete, 0 left
Remove Ext Advertising - Success 1 - test passed

The expected HCI command to disable extended advertisement for a
non-zero number of sets should contain the specified number the
advertising sets.
In this particular test case, number of sets is set to 1 and,
as a result, the expected HCI command should be:
"00      | 01             | 01 00 00 00"
 disable | number of sets | set info

Also, to avoid false positives/negatives, skip exmination of HCI
commands after the test conditions are met.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agoavrcp: Fix unregister AVRCP player
Huang-Huang Bao [Thu, 20 May 2021 09:22:00 +0000 (17:22 +0800)]
avrcp: Fix unregister AVRCP player

'notify_addressed_player_changed()' expected to be called with
'player->changed_id' set to a non-zero value.

    player->changed_id = g_idle_add(notify_addressed_player_changed,
                                    player);

And 'avrcp_player_event()' relies on 'player->changed_id' to perform
Addressed Player Changed notification. However,
'avrcp_unregister_player()' calls 'notify_addressed_player_changed()'
without adding it to the main loop and set 'player->changed_id'. To
indicate addreddsed player changed for both scenarios, we set
'player->changed_id' to 1 at the head of
'notify_addressed_player_changed()'.

Fixes https://github.com/bluez/bluez/issues/142

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agosrc/main: Fix double free str
Tedd Ho-Jeong An [Fri, 21 May 2021 17:04:07 +0000 (10:04 -0700)]
src/main: Fix double free str

This patch fixes the double free the string.
The string variable is always freed within its if statement so no need
to free it again in the end.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agotools/mgmt-tester: Add test cases for remove uuid command
Tedd Ho-Jeong An [Fri, 21 May 2021 06:24:41 +0000 (23:24 -0700)]
tools/mgmt-tester: Add test cases for remove uuid command

This patch adds test cases for the Remove UUID command.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agotools/mgmt-tester: Add test cases for set device id command
Tedd Ho-Jeong An [Fri, 21 May 2021 06:24:40 +0000 (23:24 -0700)]
tools/mgmt-tester: Add test cases for set device id command

This patch adds test cases for the Set Device ID command.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agomonitor: Decode MSFT LE Monitor Advertisement
Marcel Holtmann [Wed, 19 May 2021 22:40:53 +0000 (00:40 +0200)]
monitor: Decode MSFT LE Monitor Advertisement

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agomesh: Fix race condition memory leak
Brian Gix [Wed, 19 May 2021 19:00:45 +0000 (12:00 -0700)]
mesh: Fix race condition memory leak

This is a minor fix of a memory leak triggered on process exit if
proceess has been killed right after requesting an outbound
advertisement be sent.  It is harmless, but will cause an occasional
static analysis failure.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agomesh: Add single threading to prov-acp ob messaging
Brian Gix [Wed, 19 May 2021 18:15:36 +0000 (11:15 -0700)]
mesh: Add single threading to prov-acp ob messaging

Certain IOP and stress testing scenarios can cause additional outbound
messages to be attempted before the prior outbound message completes.
This patch adds queuing if outbpund messages are attempted too quickly
so that the additional message is not sent until the prior message is
ACKed.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agotest/mesh: Add support for testing more OOB auth
Brian Gix [Wed, 19 May 2021 00:03:42 +0000 (17:03 -0700)]
test/mesh: Add support for testing more OOB auth

To pass IOP testing, we need to be able to support Input OOB and Out of
band Public Key exchange,  This patch adds agent methods to support
those capabilities, but are turned off because the test code uses
insecure fixed values instead of randomized values.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agotools/mesh: Add all supported OOB methods to cfgclient
Brian Gix [Tue, 18 May 2021 23:35:32 +0000 (16:35 -0700)]
tools/mesh: Add all supported OOB methods to cfgclient

To support the widest range of mesh devices, we need to support any
possible capability combinations that a remote device may request.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agomesh: Normalize endian of public/private ECC keys
Brian Gix [Tue, 18 May 2021 23:23:39 +0000 (16:23 -0700)]
mesh: Normalize endian of public/private ECC keys

The Mesh profile specification defines a Mesh byte order of Big Endian
for Public keys used to calculate shared secrets. Further the
specification sample data also show this same byte order for Private
keys.  However, our internal ECDH shared secret calculation requires
Little Endian byte ordering. This fixes our DBus interface, and
debugging output to use Mesh Byte Ordering (Big Endian) for all human
readable input/output.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agomesh: Fix delivery of PB-ACK to acceptors
Brian Gix [Tue, 18 May 2021 23:08:14 +0000 (16:08 -0700)]
mesh: Fix delivery of PB-ACK to acceptors

Remove unneeded initialization that prevented the Acceptor roll of ever
recognizing a valid PB-ACK.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agomesh: Add manpage for bluetooth-meshd daemon
Inga Stotland [Mon, 17 May 2021 05:23:57 +0000 (22:23 -0700)]
mesh: Add manpage for bluetooth-meshd daemon

This adds manpage with a brief description of BLuettoth Mesh daemon
command line options.

Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agocore: Fix loading AVDTP options
Yun-Hao Chung [Fri, 7 May 2021 04:32:57 +0000 (12:32 +0800)]
core: Fix loading AVDTP options

Fix misassigned AVDTP StreamMode option, which causes StreamMode not
being set.
Fix AVDTP SessionMode option not freed.

Reviewed-by: mmandlik@chromium.org
Reviewed-by: apusaka@chromium.org
Reviewed-by: Tedd Ho-Jeong An <tedd.an@intel.com>
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agoFix memory leaks in obex
Steve Grubb [Sat, 15 May 2021 13:43:07 +0000 (09:43 -0400)]
Fix memory leaks in obex

This patch fixes a couple memory leaks.

In filesystem, g_file_get_contents allocates fresh memory to buf.
It needs to be freed after conversion to a GString object.

Destination was missed on an error path as is mld.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agocore: Enable experimental MGMT when experimental is set
Luiz Augusto von Dentz [Tue, 18 May 2021 21:13:30 +0000 (14:13 -0700)]
core: Enable experimental MGMT when experimental is set

This enables experimental MGMT features when experimental has been set.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agobtmon: Use bt_uuid128_to_str when printing UUIDs of 128 bits
Luiz Augusto von Dentz [Tue, 18 May 2021 18:36:20 +0000 (11:36 -0700)]
btmon: Use bt_uuid128_to_str when printing UUIDs of 128 bits

This ensures that know UUIDs names are printed including those used by
experimental features.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agoshared/util: Decode BlueZ experimental UUIDs
Luiz Augusto von Dentz [Tue, 18 May 2021 18:17:07 +0000 (11:17 -0700)]
shared/util: Decode BlueZ experimental UUIDs

This adds BlueZ experimental UUIDs to uuid128_table so they are
decoded by the likes of btmon.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agoshared/util: Add bt_uuid128_to_str
Luiz Augusto von Dentz [Tue, 18 May 2021 18:04:25 +0000 (11:04 -0700)]
shared/util: Add bt_uuid128_to_str

This adds bt_uuid128_to_str which can be used to convert UUID 128 bit
binary format into string.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agobtdev: Add resolving list support
Luiz Augusto von Dentz [Mon, 17 May 2021 21:21:33 +0000 (14:21 -0700)]
btdev: Add resolving list support

This adds support for commands related to resolving list.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agobtdev: Add support for Add/Remove White List
Luiz Augusto von Dentz [Mon, 17 May 2021 17:36:51 +0000 (10:36 -0700)]
btdev: Add support for Add/Remove White List

This adds support for Add to/Remove from White List.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agoclient: Fix advertise broadcast
Luiz Augusto von Dentz [Fri, 14 May 2021 22:10:26 +0000 (15:10 -0700)]
client: Fix advertise broadcast

When advertising with type broadcast it cannot be discoverable as that
would require setting flags which is not allowed by the spec.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agomain.conf: Add option to enable experimental features
Luiz Augusto von Dentz [Fri, 14 May 2021 21:07:42 +0000 (14:07 -0700)]
main.conf: Add option to enable experimental features

The adds options Experimental which is the equivalent to
-E/--experimental command line option.

Fixes https://github.com/bluez/bluez/issues/132

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agotools: Fix memory leaks
Steve Grubb [Fri, 14 May 2021 14:01:17 +0000 (10:01 -0400)]
tools: Fix memory leaks

req is allocated memory that must be freed. It appears all other error
paths got fail which handles this.

g_new0 allocates memory to data which must be freed.

g_malloc0 allocates memory to comp which must be freed.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agocore: Fix memory leaks
Steve Grubb [Fri, 14 May 2021 14:00:42 +0000 (10:00 -0400)]
core: Fix memory leaks

g_key_file_get_string allocates memory that must be freed.

asprintf allocates memory that must be freed.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agoprofile: Fix memory leaks
Steve Grubb [Fri, 14 May 2021 14:00:09 +0000 (10:00 -0400)]
profile: Fix memory leaks

g_new0 allocates memory that must be freed

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agoplugin: Fix memory leaks
Steve Grubb [Fri, 14 May 2021 13:59:38 +0000 (09:59 -0400)]
plugin: Fix memory leaks

g_file_get_contents allocates memory. It needs to be freed on any
function exit.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agomesh: Fix memory leaks
Steve Grubb [Fri, 14 May 2021 13:58:07 +0000 (09:58 -0400)]
mesh: Fix memory leaks

The dir variable needs to be closed before leaving.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agomonitor: Fix possible crash of rfcomm packet
Yun-Hao Chung [Wed, 12 May 2021 02:36:06 +0000 (10:36 +0800)]
monitor: Fix possible crash of rfcomm packet

When RFCOMM_TEST_EA returns false, btmon assumes packet data has at
least 5 bytes long. If that assumption fails, btmon could crash when
trying to read the next byte.
This patch fix it by checking the remaining size before reading the last
byte.

Reviewed-by: apusaka@chromium.org
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agobtmgmt: Fix enable adding irk when turining privacy on
Sathish Narasimman [Tue, 4 May 2021 11:14:54 +0000 (16:44 +0530)]
btmgmt: Fix enable adding irk when turining privacy on

Unable to add the IRK in btmgmt when need to be updated. The option is
enabled now.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agoshared/shell: Print help info for individual commands
Inga Stotland [Thu, 13 May 2021 00:39:09 +0000 (17:39 -0700)]
shared/shell: Print help info for individual commands

For menus with long list of entries, it is useful to be able invoke
help message for an individual entry to look up command description and
synopsis.
Can be invoked by entering "<command> help" or "<command> --help".

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agobtdev: Fix crashing if ISO link is in fact a BIS
Luiz Augusto von Dentz [Thu, 13 May 2021 16:43:36 +0000 (09:43 -0700)]
btdev: Fix crashing if ISO link is in fact a BIS

BIS doesn't not have necessarily needs a link if there is no sync in
place.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agoclient/advertising: Add support for setting min/max intervals
Luiz Augusto von Dentz [Thu, 13 May 2021 00:18:13 +0000 (17:18 -0700)]
client/advertising: Add support for setting min/max intervals

This adds support for setting MinInterval/MaxInterval.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agomesh: Add missing "storage" option to help menu
Inga Stotland [Thu, 13 May 2021 06:15:16 +0000 (23:15 -0700)]
mesh: Add missing "storage" option to help menu

This adds a previously missing entry for "storage" option
when printing the daemon usage info.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agomonitor: Remove Pygments dependency from manpage
Tedd Ho-Jeong An [Fri, 7 May 2021 00:56:30 +0000 (17:56 -0700)]
monitor: Remove Pygments dependency from manpage

This patch removes the Pygments dependency from btmon .rst file.
When the code-block type is specified, the rst2man throws a warning
asking for Pygments package.

Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agobtdev: Mark LE Periodic Advertising bit as supported
Luiz Augusto von Dentz [Mon, 10 May 2021 18:06:19 +0000 (11:06 -0700)]
btdev: Mark LE Periodic Advertising bit as supported

This enables LE Periodic Advertising bit on LE Read Local Supported
Features:

> HCI Event: Command Complete (0x0e) plen 12
      LE Read Local Supported Features (0x08|0x0003) ncmd 1
        Status: Success (0x00)
        Features: 0x00 0x39 0x00 0xf0 0x01 0x00 0x00 0x00
          LE 2M PHY
          LE Coded PHY
          LE Extended Advertising
          LE Periodic Advertising
          Connected Isochronous Stream - Master
          Connected Isochronous Stream - Slave
          Isochronous Broadcaster
          Synchronized Receiver
          Isochronous Channels (Host Support)

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agobuild: Add generated manpages to distribute list
Tedd Ho-Jeong An [Wed, 5 May 2021 18:44:05 +0000 (11:44 -0700)]
build: Add generated manpages to distribute list

This patch adds generated manpages to the distribution list.

Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agobuild: Make test-gobex* depend on OBEX flag
Archie Pusaka [Thu, 6 May 2021 03:42:55 +0000 (11:42 +0800)]
build: Make test-gobex* depend on OBEX flag

If obex is disabled in the config, running gobex test is unnecessary.
This patch skips gobex tests if obex is disabled.

Reviewed-by: Miao-chen Chou <mcchou@chromium.org>
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agounit/gobex: remove timer only when it's not removed yet
Archie Pusaka [Thu, 6 May 2021 03:42:54 +0000 (11:42 +0800)]
unit/gobex: remove timer only when it's not removed yet

There are instances where timer is removed because timeout has
occurred, yet we still remove it again by the end of the test. This
causes double removal and prints ugly messages which obscures the
real culprit.

Reviewed-by: Miao-chen Chou <mcchou@chromium.org>
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agodoc/mgmt-api - Add a new error code for HCI status 0x3e
Yu Liu [Thu, 29 Apr 2021 18:15:38 +0000 (11:15 -0700)]
doc/mgmt-api - Add a new error code for HCI status 0x3e

We want to retry the pairing when HCI status 0x3e (Connection failed to
established/Synchronization timeout) is returned from the controller.
This is to add a new MGMT error code so that we can catch this 0x3e
failure and issue a retry in the user space.

Reviewed-by: Abhishek Pandit-Subedi <abhishekpandit@chromium.org>
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agomonitor/avdtp: Fix decoding of reject type
Luiz Augusto von Dentz [Sat, 1 May 2021 00:25:14 +0000 (17:25 -0700)]
monitor/avdtp: Fix decoding of reject type

Reject type was not being decoded, so this remove the early return and
leave the callback to decode it:

< ACL Data TX: Handle 42 flags 0x00 dlen 8
      Channel: 64 len 4 [PSM 25 mode Basic (0x00)] {chan 1}
      AVDTP: Set Configuration (0x03) Response Reject (0x03) type 0x00 label 2 nosp 0
        Service Category: Reserved (0x00)
        Error code: BAD_ACP_SEID (0x12)

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agoavrcp: Fix not checking if params_len match number of received bytes
Luiz Augusto von Dentz [Fri, 30 Apr 2021 01:18:57 +0000 (18:18 -0700)]
avrcp: Fix not checking if params_len match number of received bytes

This makes sure the number of bytes in the params_len matches the
remaining bytes received so the code don't end up accessing invalid
memory.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agoavdtp: Fix accepting invalid/malformed capabilities
Luiz Augusto von Dentz [Fri, 30 Apr 2021 00:10:50 +0000 (17:10 -0700)]
avdtp: Fix accepting invalid/malformed capabilities

Check if capabilities are valid before attempting to copy them.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agocheckpatch: ignore SPDX license header check
Tedd Ho-Jeong An [Tue, 4 May 2021 19:59:53 +0000 (12:59 -0700)]
checkpatch: ignore SPDX license header check

This patch adds the rule to ignore the SPDX license header check.

Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agotools: Convert manpages to rst format
Tedd Ho-Jeong An [Tue, 4 May 2021 05:02:07 +0000 (22:02 -0700)]
tools: Convert manpages to rst format

This patch converts existing manpages in tools into the reStructuredText
format.

Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agosrc: Convert manpage to rst format
Tedd Ho-Jeong An [Tue, 4 May 2021 05:02:06 +0000 (22:02 -0700)]
src: Convert manpage to rst format

This patch converts the existing manpage for bluetoothd into
reStructuredText format.

Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agomonitor: Convert manpage to rst format
Tedd Ho-Jeong An [Tue, 4 May 2021 05:02:05 +0000 (22:02 -0700)]
monitor: Convert manpage to rst format

This patch adds support to convert reStructuredText formatted btmon
manpage to manpage with rst2man tool.

Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agobuild: Fix manpage enable flag
Tedd Ho-Jeong An [Tue, 4 May 2021 05:02:04 +0000 (22:02 -0700)]
build: Fix manpage enable flag

This patch fixes the manpages installation with --enable-manpages option
so the manpages are not installed by default if the option is not set
during the configuration.

Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agobuild: Create directory for ell/useful.h
Marcel Holtmann [Thu, 29 Apr 2021 08:14:28 +0000 (10:14 +0200)]
build: Create directory for ell/useful.h

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agomesh: Fix net_key_confirm parameter declaration
Marcel Holtmann [Tue, 27 Apr 2021 17:12:37 +0000 (19:12 +0200)]
mesh: Fix net_key_confirm parameter declaration

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agomesh: Fix network_id parameter declaration
Marcel Holtmann [Tue, 27 Apr 2021 17:08:15 +0000 (19:08 +0200)]
mesh: Fix network_id parameter declaration

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agotools/mgmt-tester: Fix to support emulator spec 5.2
Tedd Ho-Jeong An [Fri, 23 Apr 2021 23:53:52 +0000 (16:53 -0700)]
tools/mgmt-tester: Fix to support emulator spec 5.2

This patch updates the check for supported spec by the BT emulator to
support HCI spec 5.2

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agotools/tester-runner: enable enhanced credit flow control mode
Tedd Ho-Jeong An [Fri, 23 Apr 2021 23:53:51 +0000 (16:53 -0700)]
tools/tester-runner: enable enhanced credit flow control mode

This patch enables enhanced credit flow control mode for l2cap.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agoemulator/btdev: Add missing commands
Tedd Ho-Jeong An [Fri, 23 Apr 2021 23:53:50 +0000 (16:53 -0700)]
emulator/btdev: Add missing commands

This patch adds missing commands HCI_Read_RSSI and
HCI_Read_Transmit_Power_Level commands.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agoshared/timeout-ell: Fix timeout_add() implementation
Inga Stotland [Thu, 15 Apr 2021 05:03:47 +0000 (22:03 -0700)]
shared/timeout-ell: Fix timeout_add() implementation

Since timeout_add() expects the timeout in milliseconds, the correct
ELL primitive to call is l_timeout_create_ms()

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agodevice: Reply to connect request if SDP search failed
Miao-chen Chou [Mon, 19 Apr 2021 23:36:02 +0000 (16:36 -0700)]
device: Reply to connect request if SDP search failed

SDP request can be initiated during BR/EDR connection. This fixes a
missing reply to the method call to prevent generic error message for
no reply.

The following test steps were performed:
(1) Put Bose QC35 into pairing mode, start scanning on bluetoothctl
(2) Turn off the headphones and connect to the headphones
(3) Verify that error should returns immediately to bluetoothctl

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agomonitor: Add Intel read supported features command
Tedd Ho-Jeong An [Mon, 19 Apr 2021 18:21:49 +0000 (11:21 -0700)]
monitor: Add Intel read supported features command

< HCI Command: Intel Read Supported Features (0x3f|0x00a6) plen 1
        Page: 0x01
> HCI Event: Command Complete (0x0e) plen 22
      Intel Read Supported Features (0x3f|0x00a6) ncmd 1
        Status: Success (0x00)
        Page: 0x01
        Max Pages: 0x02
        Supported Features:
        1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agogatt: Either notify or indicate, do not do both
Curtis Maves [Mon, 12 Apr 2021 20:34:26 +0000 (16:34 -0400)]
gatt: Either notify or indicate, do not do both

AcquireNotify and StartNotify starts notifications and/or indications
by whether the characteristic supports them. Before this patch, if both
were supported, Bluez would try to start both simultaneously. This
patch changes this behavior so if both are supported, only
notifications are started. Test cases have also be updated accordingly.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agotools/mgmt-tester: Add param check callback for LE Set Adv Params
Tedd Ho-Jeong An [Sat, 10 Apr 2021 06:46:05 +0000 (23:46 -0700)]
tools/mgmt-tester: Add param check callback for LE Set Adv Params

The interval_min and interval_max in LE Set Advertising Parameters
command are changed/updated often whenever the values are tuned in the
kernel, and it causes some tests failure.

This patch adds a parameter check callback for LE Set Advertising
Parameters command to ignore the interval_min and interval_max
parameters.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agotools/mgmt-tester: Add callback routine for validating the parameter
Tedd Ho-Jeong An [Sat, 10 Apr 2021 06:46:04 +0000 (23:46 -0700)]
tools/mgmt-tester: Add callback routine for validating the parameter

This patch adds a callback routine for validating the received HCI
parameter, so it can customize to compare the parameters instead of
memcmp the full length.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agomesh: Add unit test IO
Brian Gix [Fri, 19 Mar 2021 20:38:24 +0000 (13:38 -0700)]
mesh: Add unit test IO

This adds a new type of mesh IO that is used for non-interactive testing.
The new io option can be specified on command line as:
--io unit:<socket_name>

When the bluetooth-meshd daemon starts with the "unit" IO type,
the daemon opens a socket (fd to open is provided after "unit:"
in <socket_name>). The communication with the daemon is done either
through the loop-back using mesh DBus-based APIs or the specified
named socket.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agomesh: Add Provisioning Confirmation validity check
Brian Gix [Thu, 8 Apr 2021 19:01:34 +0000 (12:01 -0700)]
mesh: Add Provisioning Confirmation validity check

Validate generated and received confirmation data is unique during
provisioning.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agoinput/hog-lib: do not silently ignore missing connection in read_char()
Dmitry Torokhov [Wed, 7 Apr 2021 22:33:47 +0000 (15:33 -0700)]
input/hog-lib: do not silently ignore missing connection in read_char()

Currently we silently ignore missing connection (attrib) in read_char(),
but not in the other GATT interfaces (such as write_char, discover_desc,
etc). The code should avoid calling read_char() when there is no active
connection instead, and logging errors will help us trace the offenders.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agoinput/hog-lib: avoid scanning characteristics too early
Dmitry Torokhov [Wed, 7 Apr 2021 22:34:18 +0000 (15:34 -0700)]
input/hog-lib: avoid scanning characteristics too early

We need to have active connection to fully discover a HOG instance,
and in the chain

bt_hog_new()->
gatt_db_foreach_service()->
foreach_hog_service()->
hog_attach_instance()

we have not set up hog->attrib yet. So let's skip calling
foreach_hog_chrc() from hog_attach_instance(), especially since
we will be calling bt_hog_attach() pretty much immediately after
bt_hog_new(), and we will be discovering characteristics there anyway.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agoinput/hog-lib: add error handling when calling into gatt
Dmitry Torokhov [Wed, 7 Apr 2021 22:35:09 +0000 (15:35 -0700)]
input/hog-lib: add error handling when calling into gatt

When calling gatt_write_char(), gatt_read_char(), etc, id == 0 indicates
error. Let's recognize this fact and log it instead of queueing request
that will never be completed.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agobtdev: Fix invalid BIG Complete event
Luiz Augusto von Dentz [Wed, 7 Apr 2021 18:00:37 +0000 (11:00 -0700)]
btdev: Fix invalid BIG Complete event

Fields were not being initialized properly and no connection was
created so other commands using the same handle wouldn't work.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agoemulator: Add Create BIG command in emulator
Keyur Parekh [Tue, 16 Mar 2021 14:41:36 +0000 (07:41 -0700)]
emulator: Add Create BIG command in emulator

This adds support for Create BIG command HCI
command in emulator. These changes are needed for
making the emulator useful for testing
LE Audio broadcast feature.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agotools: Print list of controller capabilities
Marcel Holtmann [Tue, 6 Apr 2021 15:39:18 +0000 (17:39 +0200)]
tools: Print list of controller capabilities

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agoRelease 5.58
Marcel Holtmann [Sat, 3 Apr 2021 12:53:37 +0000 (14:53 +0200)]
Release 5.58

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agodoc/mgmt-api - Return connection direction in Device Connected Event
Yu Liu [Fri, 2 Apr 2021 18:00:14 +0000 (11:00 -0700)]
doc/mgmt-api - Return connection direction in Device Connected Event

When an MGMT_EV_DEVICE_CONNECTED event is reported back to the user
space we will set the flags to tell if the established connection is
outbound or not. This is useful for the user space to log better metrics
and error messages.

Reviewed-by: Miao-chen Chou <mcchou@chromium.org>
Reviewed-by: Alain Michaud <alainm@chromium.org>
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agoobex: Fix warnings cause by using of deprecated APIs
Luiz Augusto von Dentz [Fri, 2 Apr 2021 17:50:53 +0000 (10:50 -0700)]
obex: Fix warnings cause by using of deprecated APIs

obexd/src/main.c: In function 'main':
obexd/src/main.c:237:13: warning: Deprecated pre-processor symbol
  237 |  if (g_thread_supported() == FALSE)
      |             ^~~~~~~~~~~~~~~~~~~~~~~
obexd/src/main.c:238:3: warning: 'g_thread_init' is deprecated
[-Wdeprecated-declarations]
  238 |   g_thread_init(NULL);
      |   ^~~~~~~~~~~~~
In file included from /usr/include/glib-2.0/glib.h:111,
                 from obexd/src/main.c:31:
/usr/include/glib-2.0/glib/deprecated/gthread.h:261:10: note: declared here
  261 | void     g_thread_init                   (gpointer vtable);
      |          ^~~~~~~~~~~~~

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agoRelease 5.57
Marcel Holtmann [Fri, 2 Apr 2021 08:55:30 +0000 (10:55 +0200)]
Release 5.57

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agobuild: Update library version
Marcel Holtmann [Fri, 2 Apr 2021 08:41:13 +0000 (10:41 +0200)]
build: Update library version

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agomonitor: Update RSSI printing function
Marcel Holtmann [Fri, 2 Apr 2021 05:42:09 +0000 (07:42 +0200)]
monitor: Update RSSI printing function

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agobuild: Always link in the ell/useful.h header file
Marcel Holtmann [Fri, 2 Apr 2021 05:26:29 +0000 (07:26 +0200)]
build: Always link in the ell/useful.h header file

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agohog-lib: Fix crash when receiving UHID_GET_REPORT
Luiz Augusto von Dentz [Mon, 22 Mar 2021 20:10:10 +0000 (13:10 -0700)]
hog-lib: Fix crash when receiving UHID_GET_REPORT

If UHID_GET_REPORT is received but a report cannot be found, etc, the
would pass bt_hog as user_data instead of report to get_report_cb
leading to a crash.

Fixes https://github.com/bluez/bluez/issues/112

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agoprofiles/battery: Reset battery value cache on disconnect
Sonny Sasaka [Tue, 30 Mar 2021 18:38:35 +0000 (11:38 -0700)]
profiles/battery: Reset battery value cache on disconnect

Due to cache in batt object, bluetoothd fails to update publish the
battery value after reconnection when the battery value does not change
compared to before reconnection. We should reset the battery percentage
cache on disconnect.

Reviewed-by: Alain Michaud <alainm@chromium.org>
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agotest: Fix AdvMonitor RSSI filter properties
Manish Mandlik [Tue, 30 Mar 2021 06:15:49 +0000 (23:15 -0700)]
test: Fix AdvMonitor RSSI filter properties

Update the creation of Advertisement Monitor object as per the
decoupled RSSIThresholdsAndTimers strucure.
More info: doc/advertisement-monitor-api.txt

Reviewed-by: apusaka@chromium.org
Reviewed-by: howardchung@chromium.org
Reviewed-by: mcchou@chromium.org
Signed-off-by: Manish Mandlik <mmandlik@google.com>
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agoadv_monitor: merge monitors with the same pattern
Archie Pusaka [Tue, 30 Mar 2021 04:12:33 +0000 (12:12 +0800)]
adv_monitor: merge monitors with the same pattern

Some bluetooth chipset (e.g. Intel) doesn't support MSFT extension
monitors with the same pattern. In order to make them work, and also
to generally make their task easier, we merge monitors with the same
pattern in the userspace. Therefore, each monitor sent to the kernel
will all have different patterns.

If the merged monitor have different RSSI parameter, we would choose
the most lenient parameter of the two, since we can still do
additional filtering in the userspace. This way, we wouldn't miss any
information and can still get the benefit of offloading the filtering.

Reviewed-by: Miao-chen Chou <mcchou@chromium.org>
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agoadv_monitor: split rssi_parameters into its own struct
Archie Pusaka [Tue, 30 Mar 2021 04:12:32 +0000 (12:12 +0800)]
adv_monitor: split rssi_parameters into its own struct

This is an intermediary step for the following merge pattern patch.

Reviewed-by: Miao-chen Chou <mcchou@chromium.org>
Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agobtdev: Set CIG ID and CIS ID when generating CIS requested
Luiz Augusto von Dentz [Tue, 23 Mar 2021 23:25:33 +0000 (16:25 -0700)]
btdev: Set CIG ID and CIS ID when generating CIS requested

This is required in order for the host to properly accept/reject the
connection.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
2 years agobtdev: Always set connection handle on CIS established
Luiz Augusto von Dentz [Tue, 23 Mar 2021 23:23:39 +0000 (16:23 -0700)]
btdev: Always set connection handle on CIS established

This is required in order for the host to be able to distinguished
errors if there are multiple CIS connections outstanding.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>