| 6024de85 |
shared/att: Add bt_att_resend
This adds bt_att_resend which can be used with procedures that needs to
send multiple PDUs to complete (e.g. Read Long, Write Long, etc.) so
they are pushed to the head instead of the tail of the queue so one can
retain its position on the queue. |
Luiz Augusto von Dentz |
4 years ago |
2 files, +64, -0 |
| b353ae3c |
tools/mgmt-tester: Update the correct suspend reason for disconnect
This patch fixes the suspend reason for the pairing test cases to the
disconnect. |
Tedd Ho-Jeong An |
4 years ago |
1 file, +4, -8 |
| be1af7b8 |
tools/mgmt-tester: Fix the suspend reason code
This patch fixes the suspend reason code to align with the corrent
kernel implementation. |
Tedd Ho-Jeong An |
4 years ago |
1 file, +80, -6 |
| bb12ef4a |
tools/mgmt-tester: Add test cases for load_long_term_keys command
This patch adds extra test cases for load_long_term_keys command. |
Tedd Ho-Jeong An |
4 years ago |
1 file, +299, -0 |
| f4151f35 |
client: Print error code for connect methods
The following steps were performed.
- Issuing repeated commands to connect the same BLE device.
- Verifying the print in bluetoothctl console
Reviewed-by: Alain Michaud <alainm@chromium.org>
Reviewed-by: Howard Chung <howardchung@google.com> |
Miao-chen Chou |
4 years ago |
1 file, +2, -1 |
| e20bd103 |
device: Include detailed error string in Connect() return
This replaces generic strerror message with context detailed error
string to better indicate the detailed failure reason so that the D-Bus
clients can optimize their application to work better with BlueZ, e.g.
introducing retry mechanism or building metrics.
Reviewed-by: Alain Michaud <alainm@chromium.org>
Reviewed-by: Howard Chung <howardchung@google.com> |
Miao-chen Chou |
4 years ago |
1 file, +30, -16 |
| 8f73362e |
error: BR/EDR and LE connection failure reasons
The source of Connect() failures can be divided into the following
three.
- bluetoothd's device interface state transition and profile state
transition
- Kernel's L2CAP layer state transition
- Potential HCI error codes returned by the remote device
Reviewed-by: Alain Michaud <alainm@chromium.org>
Reviewed-by: Howard Chung <howardchung@google.com> |
Miao-chen Chou |
4 years ago |
2 files, +157, -0 |
| de482791 |
doc: Add errors.txt to describe errors of D-Bus method returns |
Miao-chen Chou |
4 years ago |
1 file, +233, -0 |
| cf4144ff |
adv_monitor: Mark the device as lost on device_lost_timeout
Mark the device as lost on device_lost_timeout so that it can be found
again next time.
Verified this by adding a monitor using bluetoothctl and confirming that
the DeviceLost event is getting triggered when bt peer stops advertising
and DeviceFound event gets triggered again when the bt peer restarts the
advertising.
Reviewed-by: Yun-Hao Chung <howardchung@google.com> |
Manish Mandlik |
4 years ago |
1 file, +2, -0 |
| 61576a8e |
gatt: Allow GATT server to dicate CCC permissions
Allow a GATT server to impose write permissions/restrictions on a CCC by
setting additional `X-notify` and `X-indicate` flags on its associated
characteristic.
This allows a developer to require encryption/authentication in order
for a GATT client to subscribe to server-initiated updates.
```
[bluetooth]# register-characteristic\
4b75f0f8-1f23-46b1-900c-5bbabcd5ca93 encrypt-read,encrypt-notify
[NEW] Characteristic (Handle 0x0000)
/org/bluez/app/service0/chrc17
4b75f0f8-1f23-46b1-900c-5bbabcd5ca93
Vendor specific
[/org/bluez/app/service0/chrc17] Enter value: 42
``` |
Dagan Martinez |
4 years ago |
1 file, +42, -10 |
| 7d0fc7e7 |
doc/gatt-api: Add 'X-notify`/`X-indicate`
Update docs to reflect the addition of the `X-notify` and `X-indicate`
characteristic flags, which allow a GATT server to restrict CCC write
permissions. |
Dagan Martinez |
4 years ago |
1 file, +14, -1 |
| c1e6d6c4 |
tools/mgmt-tester: Add suspend/resume test cases
This patch adds the suspend/resume test cases:
Suspend/Resume - Success 1 (Suspend)
Suspend/Resume - Success 2 (Resume)
Suspend/Resume - Success 3 (Device in WL)
Suspend/Resume - Success 4 (Advertising)
Suspend/Resume - Success 5 (Pairing - Legacy)
Suspend/Resume - Success 6 (Pairing - SSP) |
Tedd Ho-Jeong An |
4 years ago |
1 file, +295, -0 |
| 77eed55b |
tools/mgmt-tester: Fix Read Experiemental Feature test case
The quality report feature is supported only if the device support it.
Current emulator/btdev doesn't support it yet.
This patch updates the supported experimental feature list to align with
the current btdev implementation. |
Tedd Ho-Jeong An |
4 years ago |
1 file, +2, -6 |
| 838c0dc7 |
gatt: Fix not cleaning up when disconnected
There is a current use after free possible on a gatt server if a client
disconnects while a WriteValue call is being processed with dbus.
This patch includes the addition of a pending disconnect callback to handle
cleanup better if a disconnect occurs during a write, an acquire write
or read operation using bt_att_register_disconnect with the cb. |
Bernie Conrad |
4 years ago |
1 file, +74, -54 |
| 1e9ce5ed |
client: Print MTU on attribute-info
This prints the MTU of the characteristic when available. |
Luiz Augusto von Dentz |
4 years ago |
1 file, +1, -0 |
| 3a6b5f5e |
gatt: Emit PropertiesChanged("MTU") when MTU is exchanged
This notifies client when the ATT MTU changes. |
Luiz Augusto von Dentz |
4 years ago |
1 file, +22, -0 |
| 9bb8fbe5 |
shared/att: Add bt_att_register_exchange
This adds bt_att_register_exchange which can be used to register
handlers that gets notified when the MTU gets changed via MTU exchange
procedure. |
Luiz Augusto von Dentz |
4 years ago |
2 files, +99, -1 |
| aaa0c499 |
gatt: Add implementation of GattCharacteristic1.MTU
This implements MTU property in GattCharacteristic1 interface. |
Luiz Augusto von Dentz |
4 years ago |
1 file, +20, -0 |
| 1abf1400 |
gatt-api: Add MTU property to GattCharacteristic1
This adds MTU properyt to GattCharacteristic1 which can be used in
order to determine how much data can be read/write using non-long
procedures which sometimes is the only thing the remote device
supports.
Fixes: https://github.com/bluez/bluez/issues/199 |
Luiz Augusto von Dentz |
4 years ago |
1 file, +6, -0 |
| 756fbd5e |
doc/tester-config: Enable KASAN
This patch adds CONFIG_KASAN=y in tester config. |
Luiz Augusto von Dentz |
4 years ago |
1 file, +1, -0 |
| 2df3bba5 |
doc/tester-config: Enable Android Extension
This patch adds Android Extension in tester config. |
Luiz Augusto von Dentz |
4 years ago |
1 file, +1, -0 |
| f2db5c7a |
doc/tester-config: Enable Microsoft Extension
This patch adds Microsoft Extension in tester config. |
Tedd Ho-Jeong An |
4 years ago |
1 file, +1, -0 |
| 91c9329a |
tools/mesh-cfgclient: Export configuration database
This adds main menu command "export-db".
When the command is invoked, JSON configuration object is
cloned and trimmed of extraneous properties.
Information about netkeys, appkeys and device keys are obtained
from bluetooth-meshd by calling ExportKeys() method.
The obtained key values are recorded in the export JSON object. |
Inga Stotland |
4 years ago |
3 files, +393, -0 |
| 7514aa8d |
tools/mesh-cfgclient: Excluded addresses property
The correct name for a property that contains a list of addresses
not allowed in circulation is "networkExclusions"
The "excluded" property in "nodes" array entry is used to indicated that
this node has been removed from a mesh network and it's address should not
be re-used. |
Inga Stotland |
4 years ago |
1 file, +5, -6 |
| 1616e488 |
tools/mesh-cfgclient: Store UUIDs in standard format
Use standard xxxx-xx-xx-xx-xxxxxxxx format for string
representation of mesh and node UUIDs in stored configuration. |
Inga Stotland |
4 years ago |
1 file, +21, -8 |
| eb642a59 |
mesh: Implement ExportKeys() method
Add implementation for new method ExportKeys() on
org.bluez.mesh.Management1 interface.
This method is used by the authorized application to export information
about network keys, application keys and device keys present in the
local key database. |
Inga Stotland |
4 years ago |
3 files, +322, -1 |
| 1dc11068 |
doc/mesh-api: Add ExportKeys call
Add description for a new method:
ExportKeys() on org.bluez.mesh.Management1 interface.
This method is used by the authorized application to export information
about network keys, application keys and device keys present in the local
key database. |
Inga Stotland |
4 years ago |
1 file, +56, -0 |
| 4e16431a |
tools/mesh-cfgclient: Add group parent address for DB compliance |
Inga Stotland |
4 years ago |
1 file, +4, -0 |
| 55f91fd3 |
tools/mesh-cfgclient: Store remote's heartbeat sub/pub
Store remote node's heartbeat publication or subscription info upon
receiving CONFIG_HEARTBEAT_PUB_STATUS or CONFIG_HEARTBEAT_SUB_STATUS
messages when the messages' status code is set to Success. |
Inga Stotland |
4 years ago |
3 files, +135, -12 |
| 725ad808 |
tools/mesh-cfgclient: Save remote node feature setting
Save the information for remote node's relay, friend, proxy and
secure network beacon settings. |
Inga Stotland |
4 years ago |
3 files, +151, -28 |
| 8525542f |
tools/mesh-cfgclient: Rename mesh-db APIs for consistency |
Inga Stotland |
4 years ago |
6 files, +42, -42 |
| 27880588 |
tools/mesh-cfgclient: Check the result of config save
After successful completion of configuration commands that change
configuration state of network, the updates are expected to be
recorded in configuration file. If for the results are not saved,
print a warning message. |
Inga Stotland |
4 years ago |
3 files, +70, -61 |
| 8dc6b452 |
tools/mesh-cfgclient: Store remote's model publication info
Update remote node's model publication after a successful completion
of "pub-set" or "pub-get" commands. |
Inga Stotland |
4 years ago |
4 files, +124, -16 |
| d66d3d34 |
tools/mesh-cfgclient: Disallow model commands w/o composition
If remote node's composition hasn't been acquired, disallow commands
that change model state (that is, bindings, subscriptions, publications).
Prompt to run "get-composition" command first. |
Inga Stotland |
4 years ago |
4 files, +59, -2 |
| 5d14cbc2 |
tools/mesh-cfgclient: Store remote node's model subs
Update remote node's model subscriptions after a successful completion
of "sub-add", "sub-del", "sub-wrt" and "sub-del_all" commands. |
Inga Stotland |
4 years ago |
3 files, +250, -13 |
| aabda1e4 |
tools/mesh-cfgclient: Store remote node's model bindings
Update remote node's model binding after a successful completion
of "bind" or "unbind" commands. |
Inga Stotland |
4 years ago |
3 files, +178, -6 |
| 87d13379 |
tools/mesh-cfgclient: Overwrite config values when adding new ones
This changes common utilities used in mesh-db.c to replace old values
by default whenever a new value is written. |
Inga Stotland |
4 years ago |
1 file, +18, -6 |
| e01a8294 |
tools/mesh: Add new info to stored remote nodes
When adding a new remote node into configuration database,
initialize additional default properties:
"excluded": false
"security": "secure"
"configComplete": false |
Inga Stotland |
4 years ago |
1 file, +11, -0 |
| d4e093b5 |
tools/mesh-cfgclient: Keep track of updated keys |
Inga Stotland |
4 years ago |
5 files, +299, -78 |
| ad1ecb0a |
tools/mesh-cfgclient: Update stored NetKey and AppKey
NetKeys:
- Record additional properties: "name", "minSecurity", "timestamp"
AppKeys:
- Record additional property: "name" |
Inga Stotland |
4 years ago |
1 file, +15, -0 |
| a3054bda |
tools/mesh-cfgclient: Add timestamp to config database
This adds timestamp property to the configuration database.
The UTC timestamp format: YYYY-MM-DDThh:mm:ssZ |
Inga Stotland |
4 years ago |
1 file, +35, -21 |
| c3da1355 |
tools/mesh-cfgclient: Save provisioner info
This adds "provisioners" property to the config database.
The property includes the provisioner's name, UUID of the provisioner
device (corresponds to the local node), allocated unicast, group and
scene ranges.
The current implementation limitations:
- only one provisioner in the mesh network is supported,
- the unicast range is assumed to be contiguous,
- the group range is assumed to be contiguous,
- no support for scenes (empty array). |
Inga Stotland |
4 years ago |
3 files, +103, -13 |
| 7d4f4088 |
gatt: remove superfluous extended properties
BlueZ contained superfluous properties that not only did nothing of
value, but needlessly created CEP descriptors for any characteristic
with a secure/encrypted/authenticated flag applied to it.
This actually deviated from the spec(Bluetooth core 5.3, 3.3.3.1) by
setting the reserved bits in the CEPD. |
Dagan Martinez |
4 years ago |
2 files, +0, -14 |
| 5c085766 |
avrcp: Fix browsing support in SDP record
Browsing features shall only be marked as supported when ERTM is also
available. |
Luiz Augusto von Dentz |
4 years ago |
3 files, +57, -51 |
| 2dd006d2 |
avctp: Fix not handling when kernel has ERTM disabled
If kernel module is loaded with disable_ertm ERTM won't be available
thus browsing channel won't be able to be created, but it shall be
possible to still use AVRCP without it.
Fixes: https://github.com/bluez/bluez/issues/209 |
Luiz Augusto von Dentz |
4 years ago |
1 file, +5, -12 |
| 0ba16aa2 |
device: Check both bearers's paired status upon removal of connection
Because Link Key for BREDR can be transformed into LTK for LE (and
vice versa), there is a possibility of getting 'paired' on either of
BREDR/LE without actually connected using the aforementioned bearer.
When removing the connection, we should check both bearers's paired
and bonded status rather than just the one getting disconnected.
Reviewed-by: Miao-chen Chou <mcchou@chromium.org> |
Archie Pusaka |
4 years ago |
1 file, +28, -12 |
| 838741b8 |
adapter: Truncate number of LTKs loaded if over MGMT MTU
If MGMT MTU cannot accomodate all the existing LTKs only send the ones
that fit in the MTU and leave the remaining as unpaired. |
Luiz Augusto von Dentz |
4 years ago |
1 file, +18, -14 |
| ebb9c448 |
shared/mgmt: Add mgmt_get_mtu
This adds mgmt_get_mtu function which can be used to query the
transport MTU. |
Luiz Augusto von Dentz |
4 years ago |
2 files, +10, -0 |
| 02349283 |
lib: Fix HCI_MAX_ACL_SIZE
HCI_MAX_ACL_SIZE actually includes the maximum frames in AMP controller
so this changes it to properly define the max ACL frames on non-AMP
controllers and introduces a dedicated define for AMP controller as
HCI_MAX_AMP_SIZE. |
Luiz Augusto von Dentz |
4 years ago |
1 file, +3, -2 |
| c605e115 |
shared/mgmt: Set MTU to UINT16_MAX
This sets MTU of MGMT socket to UINT16_MAX since some commands may
require more than the default size (e.g. Load LTKs).
Fixes: https://github.com/bluez/bluez/issues/201 |
Luiz Augusto von Dentz |
4 years ago |
1 file, +40, -6 |