zephyr/subsys/bluetooth/controller/ll_sw
Piotr Pryga e81414d28f Bluetooth: Controller: Fix CTE_REQ disable lock if there is no CTE_RSP
The periodic CTE_REQ disable command, requested by Host, may be locked
until connection is dropped due to missing CTE_RSP from peer device.
That is caused by implementation of CTE_REQ disable and CTE_REQ
control procedure handling.

The procedure is marked as active when CTE request was send to peer
device. It is marked as inactive after completion of the procedure.
That caused locking of CTE disable on a semaphore.

The BT 5.3 Core Spec, Vol 4, Part E, section 7.8.85 says the HCI_LE_-
Connection_CTE_Request_Enable should be considered active on a conne-
ction from when Host successfully issues the command with Enable=0x1
until a command is issued with Enable=0x0 or single LLCP CTE request
has finished (CTE_Request_Interval=0x0). Also there is a clarification
from BT SIG that the command with Enable=0x0 does not affect any
initiated LLCP CTE request. That means Controller is allowed to finish
already started procedure and it is not allowed to start new LLCP CTE
request procedure after completion of the command with Enable=0x0.

Taking that into account, there is no need to synchronize ULL and LLL
in regard of disable the LLCP CTE request while the procedure is
pending. Controller is free to complete the procedure or terminate it.

The change removes all code related with cte_req.is_active, disable
callback and waiting of ULL for LLL to finish the LLCP CTE request.

The ULL will complete the HCI_LE_Connection_Request_Enable with
Enable=0x0 immediately. In case the procedure is disabled in before
the response arrives, then further processing of the response is
dropped and the procedure context released.

The context is not released by the code responsible for disable
handling, to have single place where it is done.

Signed-off-by: Piotr Pryga <piotr.pryga@nordicsemi.no>
2022-05-13 10:25:39 -05:00
..
nordic subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
openisa subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
isoal.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
isoal.h subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
ll_addr.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
ll_feat.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
ll_settings.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
ll_test.h bluetooth: controller: Add support for all DTM commands 2022-03-18 12:00:03 +01:00
ll_tx_pwr.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
lll_adv_aux.h Bluetooth: Controller: Fix Extended Advertising channel use 2021-09-29 14:44:47 -04:00
lll_adv_iso.h Bluetooth: Controller: Initial broadcast ISO Tx data path 2022-03-01 14:54:35 +01:00
lll_adv_sync.h
lll_adv.h Bluetooth: Controller: Initial broadcast ISO Tx data path 2022-03-01 14:54:35 +01:00
lll_central_iso.h
lll_central.h Bluetooth: controller: Replace slave with peripheral 2021-09-21 13:01:29 +02:00
lll_chan.c
lll_chan.h
lll_clock.h
lll_common.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
lll_conn_iso.h Bluetooth: controller: ISO TX data path including ISOAL 2022-05-06 11:32:30 +02:00
lll_conn.h Bluetooth: Controller: Fix missing Tx demux for LOW LAT ULL variant 2022-04-05 14:47:23 +02:00
lll_df.h
lll_filter.h Bluetooth: Controller: Fix filter bdaddr list size 2022-03-25 16:13:06 +01:00
lll_iso_tx.h Bluetooth: controller: ISO TX data path including ISOAL 2022-05-06 11:32:30 +02:00
lll_peripheral_iso.h
lll_peripheral.h Bluetooth: controller: Replace slave with peripheral 2021-09-21 13:01:29 +02:00
lll_scan_aux.h
lll_scan.h Bluetooth: Controller: Fix filter accept list with periodic adv list use 2022-03-23 16:32:49 +01:00
lll_sched.h Bluetooth: Controller: Rename use of mstr word to cen for Central 2022-03-01 11:51:46 +01:00
lll_sync_iso.h Bluetooth: Controller: ISO Synchronized Receiver Channel Map Update 2022-02-23 13:16:07 +01:00
lll_sync.h Bluetooth: Controller: Fix Periodic Sync Terminate race condition 2022-02-04 15:03:09 +01:00
lll.h Bluetooth: controller: ISO TX data path including ISOAL 2022-05-06 11:32:30 +02:00
nrf.cmake modules: hal_nordic: Improve reservation of resources for BT_CTLR 2022-03-15 14:59:35 +01:00
openisa.cmake Bluetooth: controller: Replace slave with peripheral 2021-09-21 13:01:29 +02:00
pdu.h Bluetooth: controller: ISO TX data path including ISOAL 2022-05-06 11:32:30 +02:00
ull_adv_aux.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
ull_adv_internal.h Bluetooth: Controller: Initial broadcast ISO Tx data path 2022-03-01 14:54:35 +01:00
ull_adv_iso.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
ull_adv_sync.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
ull_adv_types.h Bluetooth: Controller: Fix Extended Advertising conditional compiles 2022-03-01 14:54:35 +01:00
ull_adv.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
ull_central_internal.h Bluetooth: controller: Replace slave with peripheral 2021-09-21 13:01:29 +02:00
ull_central_iso_internal.h
ull_central_iso.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
ull_central.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
ull_chan_internal.h Bluetooth: controller: push topic branch to main 2021-11-16 21:24:37 -05:00
ull_chan.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
ull_conn_internal.h Bluetooth: controller: LLCP PRT rewrite 2022-04-25 15:36:16 +02:00
ull_conn_iso_internal.h Bluetooth: controller: Send disconnect complete when CIS is terminated 2021-10-28 11:18:40 +02:00
ull_conn_iso_types.h Bluetooth: controller: ISO TX data path including ISOAL 2022-05-06 11:32:30 +02:00
ull_conn_iso.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
ull_conn_types.h Bluetooth: Controller: Fix CTE_REQ disable lock if there is no CTE_RSP 2022-05-13 10:25:39 -05:00
ull_conn.c Bluetooth: Controller: Fix CTE_REQ disable lock if there is no CTE_RSP 2022-05-13 10:25:39 -05:00
ull_df_internal.h Bluetooth: Controller: Add CTE recv and sample in connected mode 2022-01-04 09:10:05 -05:00
ull_df_types.h bluetooth: controller: Add support for all DTM commands 2022-03-18 12:00:03 +01:00
ull_df.c Bluetooth: Controller: Fix CTE_REQ disable lock if there is no CTE_RSP 2022-05-13 10:25:39 -05:00
ull_filter.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
ull_filter.h Bluetooth: Controller: Implement Periodic Advertiser List 2021-10-01 21:48:51 +02:00
ull_internal.h Tests: bluetooth: fix ctrl_user_ext test 2022-05-13 08:56:12 -05:00
ull_iso_internal.h Bluetooth: controller: ISO TX data path including ISOAL 2022-05-06 11:32:30 +02:00
ull_iso_types.h Bluetooth: controller: ISO TX data path including ISOAL 2022-05-06 11:32:30 +02:00
ull_iso.c Bluetooth: controller: Removed compiler warnings in ull_iso.c 2022-05-10 18:55:35 +02:00
ull_llcp_chmu.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
ull_llcp_common.c Bluetooth: Controller: Fix CTE_REQ disable lock if there is no CTE_RSP 2022-05-13 10:25:39 -05:00
ull_llcp_conn_upd.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
ull_llcp_enc.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
ull_llcp_features.h everywhere: fix typos 2022-03-18 13:24:08 -04:00
ull_llcp_internal.h Bluetooth: controller: Fix central enc termination 2022-04-28 12:55:48 +02:00
ull_llcp_local.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
ull_llcp_pdu.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
ull_llcp_phy.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
ull_llcp_remote.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
ull_llcp.c Bluetooth: Controller: Fix CTE_REQ disable lock if there is no CTE_RSP 2022-05-13 10:25:39 -05:00
ull_llcp.h Bluetooth: controller: implementing state check for ENC reply API 2022-04-27 10:09:03 +02:00
ull_periph_internal.h Bluetooth: controller: Replace slave with peripheral 2021-09-21 13:01:29 +02:00
ull_peripheral_iso_internal.h Bluetooth: controller: ISO TX data path including ISOAL 2022-05-06 11:32:30 +02:00
ull_peripheral_iso.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
ull_peripheral.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
ull_scan_aux.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
ull_scan_internal.h everywhere: fix typos 2022-03-18 13:24:08 -04:00
ull_scan_types.h Bluetooth: Controller: Fix to stop Extended Auxiliary Scan context 2022-02-08 13:53:07 +01:00
ull_scan.c Tests: bluetooth: fix build errors for bluetooth testcases 2022-05-13 08:56:12 -05:00
ull_sched_internal.h Bluetooth: Controller: Rename use of mstr word to cen for Central 2022-03-01 11:51:46 +01:00
ull_sched.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
ull_sync_internal.h Bluetooth: Controller: Fix missing reset of sync create association 2022-03-09 13:58:17 +01:00
ull_sync_iso_internal.h Bluetooth: Controller: Implement ISO Sync Receiver connection handle 2021-11-25 10:43:51 -05:00
ull_sync_iso.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
ull_sync_types.h Bluetooth: Controller: Add sync established code comment 2022-02-08 14:50:17 +01:00
ull_sync.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
ull_tx_queue.c Bluetooth: controller: Rework TX data pause 2022-04-04 15:34:09 +02:00
ull_tx_queue.h subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
ull.c Tests: bluetooth: fix ctrl_user_ext test 2022-05-13 08:56:12 -05:00