zephyr/subsys/bluetooth/host
Rubin Gerritsen 9984adf24e Bluetooth: Host: Support concurrent initiating and scanning
The HCI command LE Read Supported States command returns
if the controller supports running the scanner and initiator
roles in parallel.

This commit utilizes this information in the host:
- It does not prevent initiating a connection when the scanner is
  running
- It does not prevent the host from restarting the background
  scanner when there the host wants to auto-initiate a connection.
- It does not stop the scanner when the host wants to auto-initiate
  a connection.

To support this feature, the scanner and initiator
always have to use the same address.
This because the HCI command LE Set Random Address
cannot be issued after the initiator or scanner has started.
1. When privacy is disabled, the scanner has to use its identity
   address to ensure it uses the same address as the initiator.
2. Only one identity is supported.

To simplify the implementation, it is a requirement to use
extended advertising commands to avoid interfering with
the random address used by the advertiser(s).

Also, it is a requirement to never use time-limited scanning,
as RPA this feature does not work when privacy is being used.
See https://github.com/zephyrproject-rtos/zephyr/issues/73634.

The changes in this commit will be tested out of tree as the
Zephyr Bluetooth Controller does not support this functionality.

Signed-off-by: Rubin Gerritsen <rubin.gerritsen@nordicsemi.no>
2024-06-13 08:04:42 -04:00
..
classic Bluetooth: HFP_AG: fix building warning 2024-06-12 21:13:58 -04:00
addr_internal.h
addr.c
adv.c Bluetooth: Host: Check max adv data len from ctrl 2024-04-29 11:02:02 +02:00
adv.h
aes_ccm.c
att_internal.h
att.c Bluetooth: L2CAP: Make bt_l2cap_send_pdu() 2024-06-12 18:51:34 +02:00
buf_view.h Bluetooth: host: Introduce "view" buffer concept 2024-06-12 18:51:34 +02:00
buf.c Bluetooth: L2CAP: remove seg_pool 2024-06-12 18:51:34 +02:00
CMakeLists.txt
conn_internal.h Bluetooth: L2CAP: remove seg_pool 2024-06-12 18:51:34 +02:00
conn.c Bluetooth: Host: Support concurrent initiating and scanning 2024-06-13 08:04:42 -04:00
crypto.c
crypto.h
data.c
direction_internal.h
direction.c
ecc.c
ecc.h
gatt_internal.h
gatt.c Bluetooth: refactor add is_host_managed_ccc 2024-04-23 15:34:25 +02:00
hci_common.c
hci_core.c Bluetooth: Host: Add Per Adv Sync handle getter 2024-06-13 05:34:14 -04:00
hci_core.h Bluetooth: host: remove TX thread 2024-06-12 18:51:34 +02:00
hci_ecc.c Bluetooth: host: Add support for new-style HCI drivers 2024-06-11 19:42:49 -04:00
hci_ecc.h
hci_raw_internal.h Bluetooth: host: Add support for new-style HCI drivers 2024-06-11 19:42:49 -04:00
hci_raw.c Bluetooth: host: hci_raw: Use existing H4 defines from hci_types.h 2024-06-11 19:42:49 -04:00
id.c Bluetooth: host: Update id.c to support id rst/del for CONFIG_BT_SMP=n 2024-05-31 09:55:06 -05:00
id.h
iso_internal.h Bluetooth: host: Change TX pattern (push -> pull) 2024-06-12 18:51:34 +02:00
iso.c Bluetooth: host: use __maybe_unused for convenience variables 2024-06-12 18:51:34 +02:00
Kconfig Bluetooth: Host: Support concurrent initiating and scanning 2024-06-13 08:04:42 -04:00
Kconfig.gatt
Kconfig.l2cap Bluetooth: L2CAP: remove CONFIG_BT_L2CAP_RESCHED_MS 2024-06-12 18:51:34 +02:00
keys.c Bluetooth: Host: Fix not clearing IDs and keys upon bt_disable() 2024-05-28 09:11:52 -07:00
keys.h Bluetooth: Host: Fix not clearing IDs and keys upon bt_disable() 2024-05-28 09:11:52 -07:00
l2cap_internal.h Bluetooth: L2CAP: Make bt_l2cap_send_pdu() 2024-06-12 18:51:34 +02:00
l2cap.c Bluetooth: host: use __maybe_unused for convenience variables 2024-06-12 18:51:34 +02:00
long_wq.c Bluetooth: host: tweak up the bluetooth thread names 2024-04-02 21:01:00 -04:00
long_wq.h
monitor.c
monitor.h
scan.c Bluetooth: Host: Support concurrent initiating and scanning 2024-06-13 08:04:42 -04:00
scan.h
settings.c
settings.h
smp_null.c Bluetooth: L2CAP: Make bt_l2cap_send_pdu() 2024-06-12 18:51:34 +02:00
smp.c Bluetooth: L2CAP: Make bt_l2cap_send_pdu() 2024-06-12 18:51:34 +02:00
smp.h
testing.c Bluetooth: Host: Callback registering functions to return status 2024-06-13 08:03:28 -04:00
testing.h
uuid.c