| f0063fcf |
src/adv_monitor: add monitor with rssi support for mgmt
Using the new opcode MGMT_OP_ADD_ADV_PATTERNS_MONITOR_RSSI to
monitor advertisement according to some RSSI criteria. |
Archie Pusaka |
5 years ago |
1 file, +174, -93 |
| 370ed539 |
doc/advmon-api: Introduce sampling period property
The sampling period is used to align with the new MGMT opcode which
also have sampling period. |
Archie Pusaka |
5 years ago |
1 file, +53, -25 |
| a033babc |
lib/mgmt: Adding Add Adv Patterns Monitor RSSI opcode
The new op is to utilize RSSI in advertisement monitor |
Archie Pusaka |
5 years ago |
1 file, +15, -0 |
| 7c88062c |
shared/crypto: Transform bt_cryto in a singleton
This makes bt_crypto always return the same instance thus avoiding the
problem of having multiple PF sockets opened which may hit the file
descriptor limit. |
Luiz Augusto von Dentz |
5 years ago |
1 file, +22, -15 |
| c2cae83b |
emulator: Fix sending CIS Requested to Create CIS device
CIS Requested shall be send to the remote peer not the originating one. |
Luiz Augusto von Dentz |
5 years ago |
1 file, +1, -1 |
| 39054d59 |
gatt: Fix assuming service changed has been subscribed
Unfortunately assuming service changed has been subscribed may cause
indication to time out in some peripherals (Logitech M720 Triathlon, Mx
Anywhere 2, Lenovo Mice N700, RAPOO BleMouse and Microsoft Designer
Mouse) even though the expect actually mandates that the client responds
with confirmation these peripherals just ignores it completely which
leads them to be disconnected whenever bluetoothd is restarted or the
system reboots. |
Luiz Augusto von Dentz |
5 years ago |
2 files, +3, -10 |
| 1ef6570a |
device: Enable ATT layer debugging
This uses bt_att_set_debug to enable ATT debugging which is useful for
detecting error such as an ATT transaction timing out. |
Luiz Augusto von Dentz |
5 years ago |
1 file, +2, -0 |
| 3450230f |
shared/att: Add debug level to bt_att_set_debug
This creates different levels of debugging which can be passed to
bt_att_set_debug as depending on the application it may not need to
print everything which can pollute the logs quite a bit. |
Luiz Augusto von Dentz |
5 years ago |
5 files, +71, -54 |
| 566363b6 |
util: Introduce util_debug_va
This introduces util_debug_va which can take a va_list that enables
callers to create wrapper functions if they need to. |
Luiz Augusto von Dentz |
5 years ago |
2 files, +18, -5 |
| a23fa59b |
shared/gatt-server: Fix not accepting multiple requests
With introduction of EATT it is possible to send multiple requests using
different channels therefore bt_gatt_server shall not attempt to check
if there is already an outstanding request.
gh issue: https://github.com/bluez/bluez/issues/75 |
Luiz Augusto von Dentz |
5 years ago |
1 file, +6, -47 |
| ca01d74f |
adapter: Remove temporary devices before power off
If adapter is powered off when a currently connected device is
being removed, there is a possibility that we haven't finish waiting
for the disconnection but the adapter is already powered down.
When this happens, the kernel would fail to clean the device's
information, for example the pairing information. This causes
disagreement between the user space and the kernel about whether the
device is already paired, because the device is successfully removed
from the user space's perspective.
This patch enforces the removal of such devices before allowing the
adapter to power off. |
Archie Pusaka |
5 years ago |
1 file, +17, -1 |
| 6a50b6ae |
gatt: Make use of gatt_db_attribute_set_fixed_length
This makes use of gatt_db_attribute_set_fixed_length so the database is
aware of the length of the values and perform bounds checking. |
Luiz Augusto von Dentz |
5 years ago |
1 file, +16, -20 |
| 87184a20 |
shared/gatt-db: Introduce gatt_db_attribute_set_fixed_length
This enables user to inform if an attribute has a fixed length so it can
automatically perform bounds checking. |
Luiz Augusto von Dentz |
5 years ago |
2 files, +59, -12 |
| 114ec8c5 |
shared/mgmt: Fix memory leak in mgmt_tlv_list
This patch freed the mgmt_tlv properly in mgmt_tlv_list_free. |
Howard Chung |
5 years ago |
1 file, +1, -1 |
| 86ff0aec |
btmgmt: Add command set-sysconfig
Add command set-sysconfig in btmgmt
Example usage:
[mgmt]# set-sysconfig -h
Parameters:
-v <type:length:value>...
e.g.:
set-sysconfig -v 001a:2:1234 001f:1:00
[mgmt]# set-sysconfig -v 8:2:abcd 1:02:0100 0016:2:0600 |
Howard Chung |
5 years ago |
1 file, +109, -0 |
| a43586fe |
btmgmt: Add command read-sysconfig
Add command read-sysconfig in btmgmt
Example usage:
localhost ~ # btmgmt
[mgmt]# read-sysconfig
Type: 0x0000 Length: 02 Value: 0000
Type: 0x0001 Length: 02 Value: 0008
...
Type: 0x001f Length: 01 Value: 01 |
Howard Chung |
5 years ago |
1 file, +48, -0 |
| 92229cd3 |
shared/mgmt: Add supports of parsing mgmt tlv list
Response from Read System Default Configuration is a list of mgmt_tlv,
which requires further processing to get the values of each parameters.
This adds APIs for parsing response into mgmt_tlv_list, retrieving
parameter from mgmt_tlv_list. |
Howard Chung |
5 years ago |
2 files, +44, -0 |
| 3a40bef4 |
gatt: Fix potential buffer out-of-bound
When client features is read check if the offset is within the cli_feat
bounds.
Fixes: https://github.com/bluez/bluez/issues/70 |
Luiz Augusto von Dentz |
5 years ago |
1 file, +5, -0 |
| da250b90 |
cfg: Add check for newly used function in ELL
ELL has a new dependency on rawmemchr() which needs to be accounted for
at configure time. |
Brian Gix |
5 years ago |
1 file, +2, -0 |
| 6bbbabfe |
mesh: Update AppKeys on transition to Phase 0
At the end of the mesh Key Refresh procedure when a subnet
transitions to Phase 0, local AppKeys that were updated were
not updating until the bluetooth-meshd daemon was restarted.
This patch iterates the AppKeys at the end of mesh Key Refresh
when the subnet transitions to Phase 0, setting the new state
of each updated AppKey. |
Michael N. Moran |
5 years ago |
4 files, +35, -2 |
| 8b9ec615 |
tools/mgmt-tester: Adds new test data with updated tx power
This patch adds new test data for the ext advertising test cases that
presets the advertising parameter and toggles the connectable flags.
When the adv instance is created, it updates the default tx power with
the value read from the controller. After toggling the connectable flag,
the host uses the tx_power stored in the adv list cache, which is the
value read from the controller, instead of the default tx power
value(127). |
Tedd Ho-Jeong An |
5 years ago |
1 file, +80, -8 |
| 9f1b788a |
emulator/btdev: Add support LE_READ_TX_POWER command
This patch adds support for LE_READ_TX_POWER command.
It uses a random values for min and max tx power since these values is
read from the controller. |
Tedd Ho-Jeong An |
5 years ago |
1 file, +19, -1 |
| 7a2db0ed |
tools/mgmt-tester: Update sample data for adv features
This patch updates the expected sample data for advertising feature to
include the changes for tx power. |
Tedd Ho-Jeong An |
5 years ago |
1 file, +3, -3 |
| b31e509e |
btmon: fix buffer bound checks
index_list is of size MAX_INDEX - correct the checks that is meant to
catch out-of-bounds access. |
Jacob Siverskog |
5 years ago |
1 file, +6, -6 |
| 65231892 |
doc/mgmt-api: Add opcode for adding advertisement monitor with RSSI
This is to leverage the filtering by RSSI feature on those controllers
which supports advertisement packet filtering. To avoid changing the
existing API and breaking it, a new opcode is required.
Reviewed-by: Manish Mandlik <mmandlik@chromium.org>
Reviewed-by: Miao-chen Chou <mcchou@chromium.org>
Reviewed-by: Yun-Hao Chung <howardchung@google.com> |
Archie Pusaka |
5 years ago |
1 file, +52, -0 |
| 07cc7547 |
bthost: Add support for address types other then public
This properly initialize the address type according to the connection
address. |
Luiz Augusto von Dentz |
5 years ago |
3 files, +29, -9 |
| 77d6ee6f |
hciemu: Add support for multiple clients
This adds support for creating multiple clients (bthost). |
Luiz Augusto von Dentz |
5 years ago |
2 files, +163, -77 |
| b5932a5b |
btdev: Add support for multiple connections
This adds support for assigning different handles for connection
instead of always using fixed handles. |
Luiz Augusto von Dentz |
5 years ago |
2 files, +610, -321 |
| ed1c044c |
bthost: Always use conn->prnd for Pairing Random
Since it is now properly set with random bytes it shall be used when
responding. |
Luiz Augusto von Dentz |
5 years ago |
1 file, +4, -5 |
| 6c3c059c |
test: add test app for Advertisement Monitor API
The python test app to test working of the Advertisement Monitor API.
This app:
- registers itself with bluez by invoking the RegisterMonitor with the
app root path
- exposes multiple monitor objects with both valid and invalid monitor
parameters
- implements Activate/Release/DeviceFound/DeviceLost methods on the
monitor object |
Manish Mandlik |
5 years ago |
1 file, +402, -0 |
| a729fe0d |
bthost: Use bt_crypto_random_bytes to generate a Pairing Random
This makes it more consistent with how stacks are implemented instead
of setting the response all zero which is not secure. |
Luiz Augusto von Dentz |
5 years ago |
1 file, +2, -0 |
| ff70f24b |
monitor: Add option to disable time offset
This adds option -N/--no-time which disables the time offset which
sometimes is useful when diffing traces where timing information is not
relevant. |
Luiz Augusto von Dentz |
5 years ago |
1 file, +7, -2 |
| 57bccce9 |
btdev: Fix not responding with the same CIG ID
BT_HCI_CMD_LE_SET_CIG_PARAMS shall be responded using the same CIG ID. |
Luiz Augusto von Dentz |
5 years ago |
1 file, +2, -1 |
| 23b69ab3 |
input/hog: Cache the HID report map
To optimize BLE HID devices reconnection response, we can cache the
report map so that the subsequent reconnections do not need round trip
time to read the report map. |
Sonny Sasaka |
5 years ago |
1 file, +127, -24 |
| 5fb9c9fe |
Revert "input/hog: Remove HID device after HoG device disconnects"
This reverts commit d6cafa1f0c3ea1989f8a580e52f418b0998a3552.
In commit d6cafa1f0c3e ("input/hog: Remove HID device after HoG device
disconnects"), the bt_hog structure is destroyed in order to fix a bug
where the UHID connection is not destroyed. This fix has the cost of
increasing reconnection time because every reconnection would need to
re-read the report map again. An improvement to this fix is, instead of
removing the bt_hog structure, we can just destroy the UHID with
UHID_DESTROY event and use the existing bt_hog structure to keep the
cache of the report map to avoid re-reading the report map at
reconnection. |
Sonny Sasaka |
5 years ago |
1 file, +0, -2 |
| 98f5da02 |
doc: Fix qemu unable to mount root fs for test-runner
This patch fixes the kernel panic while loading the kernel image built
with the current config for test-runner.
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
CPU: 0 PID: 1 Comm: swapper Not tainted 5.10.0-rc2-702835-ged93facee36e #6
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.13.0-1ubuntu1 04/01/2014
Call Trace:
panic+0xee/0x27c
mount_block_root+0x315/0x324
? rest_init+0x7a/0x7a
prepare_namespace+0x128/0x157
? rest_init+0x7a/0x7a
kernel_init+0x5/0xf6
ret_from_fork+0x22/0x30
Kernel Offset: 0x2a200000 from 0xffffffff81000000 (relocation range: 0xffffffff80000000-0xffffffffbf) |
Tedd Ho-Jeong An |
5 years ago |
1 file, +1, -0 |
| b446ed8e |
btdev: Fix not handling BT_HCI_CMD_HOST_NUM_COMPLETED_PACKETS
System such as Zephyr do use BT_HCI_CMD_HOST_NUM_COMPLETED_PACKETS
since BT_HCI_CMD_SET_HOST_FLOW_CONTROL is also supported. |
Luiz Augusto von Dentz |
5 years ago |
1 file, +11, -0 |
| 952eb43f |
mesh: Fix check for mkdir return value in keyring.c
Remove check for mkdir() return value, since checking for zero does not
cover "already exists" condition and adding extra check for errno value
unnecessarily complicates the code. If mkdir() fails due to any reason
than "already exists", the subsequent call to open() fails and the
error is detected and corectly processed by the code. |
Inga Stotland |
5 years ago |
1 file, +3, -6 |
| faa1f74a |
mesh: Zero out config node struct before initializing
This memsets all the fields of mesh_db_node to zero prior to intializing
some fields in mesh_config_node struct and creating a brand new node
configuration. Just a precaution against having uninitialized items. |
Inga Stotland |
5 years ago |
1 file, +2, -0 |
| 1eb69c3c |
adv_monitor: Update log messages
Update log messages to avoid breaking of user-visible log strings
to make it easy to grep for them. |
Manish Mandlik |
5 years ago |
1 file, +34, -24 |
| fa53b701 |
client: Use correct root path for RegisterMonitor
Bluetoothctl uses "/" as the app root path. So, use the same
app root path while invoking RegisterMonitor method. This will
also ensure that InterfacesAdded/InterfacesRemoved signals are
emitted on the correct app root path. |
Manish Mandlik |
5 years ago |
1 file, +2, -2 |
| dde267ea |
adv_monitor: Register client app with app-root-path
When a client app is registered with g_dbus_client_new(), bluez root
path, i.e. "/", is used as the app root path and signal watches are
added at that root path.
Because of this, InterfacesAdded/InterfacesRemoved signals emitted by
app - while creating/removing advertisement monitor objects at the
app root path - are not received by bluetoothd.
Use g_dbus_client_new_full() to register a client app with the correct
app root path. |
Manish Mandlik |
5 years ago |
1 file, +1, -1 |
| a37d53db |
main.conf: Fix using wrong field for PageTimeout
The correct field is btd_opts.defaults.br.page_timeout. |
Luiz Augusto von Dentz |
5 years ago |
1 file, +1, -1 |
| e2863c00 |
main.conf: Use BR instead of BREDR as group name
This align with latest version of main.conf that does use [BR] instead
of [BREDR]. |
Luiz Augusto von Dentz |
5 years ago |
1 file, +1, -1 |
| 73abf6fb |
tools/mgmt-tester: Add tests for individual ext adv MGMT commands
The new extended advertising MGMT commands are paired, requiring both a
Set Parameters and Set Data command to configure a new advertisement.
This patch adds the following new tests to test these APIs:
1. Verify that if the adapter is unpowered, MGMT_OP_ADD_EXT_ADV_PARAMS
will return a rejected status.
2. Verify that MGMT_OP_ADD_EXT_ADV_PARAMS will return an invalid
parameters status if the data payload is malformed.
3. Verify that MGMT_OP_ADD_EXT_ADV_PARAMS is successful on BT4 if
request is valid by checking MGMT return value.
4. Verify that MGMT_OP_ADD_EXT_ADV_PARAMS is successful on BT5 if
request is valid by checking MGMT return value and that HCI traffic
contains a correct advertising parameters request.
5. Verify that if a MGMT_OP_ADD_EXT_ADV_DATA request is received for an
advertising instance that is unknown, i.e. MGMT_OP_ADD_EXT_ADV_PARAMS
was not yet called, an invalid parameters status is returned.
Tests 6-8 first call MGMT_OP_ADD_EXT_ADV_PARAMS successfully in setup to
then validate the contents of the subsequent MGMT_OP_ADD_EXT_ADV_DATA
call.
6. Verify that if MGMT_OP_ADD_EXT_ADV_DATA is passed an invalid tlv
structure, an invalid parameters status is returned.
7. Verify that if MGMT_OP_ADD_EXT_ADV_DATA contains a valid structure,
the hci traffic contain a correctly formed Adv Data hci request.
8. Verify that if MGMT_OP_ADD_EXT_ADV_DATA contains a valid structure,
the hci traffic contain a correctly formed Adv Scan Response hci
request.
Reviewed-by: Manish Mandlik <mmandlik@chromium.org> |
Daniel Winkler |
5 years ago |
1 file, +293, -0 |
| bc3a76f0 |
tools/mgmt-tester: Add mgmt-tester coverage for controller capabilities
This patch adds two test cases for the new Read Controller
Capabilities MGMT command. Since the command itself is simple, the test
cases are simple as well:
1. Ensures that providing invalid parameters to the request will result
in a failed MGMT response.
2. Ensures that if the controller is BT5 compliant, the Read Controller
Capabilities command will return a valid TX power range as expected,
otherwise fail.
Reviewed-by: Manish Mandlik <mmandlik@chromium.org> |
Daniel Winkler |
5 years ago |
1 file, +76, -0 |
| 9e2fd160 |
battery: Implement Battery Provider API
This patch implements the BatteryProvider1 and BatteryProviderManager1
API. This is a means for external clients to feed battery information to
BlueZ if they handle some profile and can decode battery reporting.
The battery information is then exposed externally via the existing
Battery1 interface. UI components can consume this API to display
Bluetooth peripherals' battery via a unified BlueZ API.
Reviewed-by: Miao-chen Chou <mcchou@chromium.org> |
Sonny Sasaka |
5 years ago |
4 files, +405, -5 |
| 8b61f780 |
adapter: Add a public function to find a device by path
The public function is motivated by the Battery Provider API code which
needs to probe whether a device exists.
Reviewed-by: Miao-chen Chou <mcchou@chromium.org> |
Sonny Sasaka |
5 years ago |
2 files, +26, -9 |
| 4e54b08c |
test: Add test app for Battery Provider API
The python test app simulates an application registering to BlueZ as a
Battery Provider providing three fake batteries drained periodically.
Reviewed-by: Miao-chen Chou <mcchou@chromium.org> |
Sonny Sasaka |
5 years ago |
1 file, +232, -0 |
| 0ba3339c |
doc: Add Battery Provider API doc
This patch add the documentation of the Battery Provider which lets
external clients feed battery information to BlueZ if they are able to
decode battery reporting via any profile. BlueZ UI clients can then use
the org.bluez.Battery1 API as a single source of battery information
coming from many different profiles.
Reviewed-by: Miao-chen Chou <mcchou@chromium.org> |
Sonny Sasaka |
5 years ago |
1 file, +55, -0 |