From 85a67d51e90fba0e442968680d08b258f5508b82 Mon Sep 17 00:00:00 2001 From: Vinayak Kariappa Chettimada Date: Fri, 19 Jan 2024 06:49:37 +0100 Subject: [PATCH 1/2] Bluetooth: Controller: Fix extended scanning assertion Fix extended scanning assertion after long duration. Signed-off-by: Vinayak Kariappa Chettimada (cherry picked from commit ac39ad724911d79557fd12b40b085ab639fca173) --- subsys/bluetooth/controller/ll_sw/nordic/lll/lll_scan.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/subsys/bluetooth/controller/ll_sw/nordic/lll/lll_scan.c b/subsys/bluetooth/controller/ll_sw/nordic/lll/lll_scan.c index 0fa44d1447d9..7279d407ad8a 100644 --- a/subsys/bluetooth/controller/ll_sw/nordic/lll/lll_scan.c +++ b/subsys/bluetooth/controller/ll_sw/nordic/lll/lll_scan.c @@ -915,11 +915,11 @@ static void isr_window(void *param) } lll_chan_set(37 + lll->chan); +#if defined(CONFIG_BT_CENTRAL) || defined(CONFIG_BT_CTLR_ADV_EXT) #if defined(CONFIG_BT_CENTRAL) bool is_sched_advanced = IS_ENABLED(CONFIG_BT_CTLR_SCHED_ADVANCED) && lll->conn && lll->conn_win_offset_us; uint32_t ticks_anchor_prev; - uint32_t ticks_at_start; if (is_sched_advanced) { /* Get the ticks_anchor when the offset to free time space for @@ -932,14 +932,17 @@ static void isr_window(void *param) } else { ticks_anchor_prev = 0U; } +#endif /* CONFIG_BT_CENTRAL */ + + uint32_t ticks_at_start; ticks_at_start = ticker_ticks_now_get() + HAL_TICKER_CNTR_CMP_OFFSET_MIN; remainder_us = radio_tmr_start_tick(0, ticks_at_start); -#else /* !CONFIG_BT_CENTRAL */ +#else /* !CONFIG_BT_CENTRAL && !CONFIG_BT_CTLR_ADV_EXT */ remainder_us = radio_tmr_start_now(0); -#endif /* !CONFIG_BT_CENTRAL */ +#endif /* !CONFIG_BT_CENTRAL && !CONFIG_BT_CTLR_ADV_EXT */ /* capture end of Rx-ed PDU, for initiator to calculate first * central event. From f3ddcca8114e6030d071d329d24b08ae1b75fb76 Mon Sep 17 00:00:00 2001 From: Vinayak Kariappa Chettimada Date: Mon, 22 Jan 2024 11:55:49 +0100 Subject: [PATCH 2/2] tests: bsim: Bluetooth: Mesh: Adjust timeout for Adv Extensions use Adjust mesh test timing and timeout value for Advertising Extensions use/fix in Zephyr Controller. The scanning in Zephyr Controller is delayed when using extended scanning. Signed-off-by: Vinayak Kariappa Chettimada (cherry picked from commit d1e4c17e6dd43a623ba9396f1e427fb7959b3a44) --- tests/bsim/bluetooth/mesh/src/test_beacon.c | 2 +- tests/bsim/bluetooth/mesh/src/test_provision.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/bsim/bluetooth/mesh/src/test_beacon.c b/tests/bsim/bluetooth/mesh/src/test_beacon.c index fd2477f39073..38432b154bd4 100644 --- a/tests/bsim/bluetooth/mesh/src/test_beacon.c +++ b/tests/bsim/bluetooth/mesh/src/test_beacon.c @@ -1331,7 +1331,7 @@ static void test_tx_priv_interleave(void) ASSERT_TRUE(status == STATUS_SUCCESS); ASSERT_TRUE(phase == BT_MESH_KR_PHASE_2); - k_sleep(K_SECONDS(BEACON_INTERVAL + 5)); + k_sleep(K_SECONDS(BEACON_INTERVAL + 7)); toggle_priv_beacon(tx_cfg.addr, 1); PASS(); diff --git a/tests/bsim/bluetooth/mesh/src/test_provision.c b/tests/bsim/bluetooth/mesh/src/test_provision.c index 542587465242..454792aba4d1 100644 --- a/tests/bsim/bluetooth/mesh/src/test_provision.c +++ b/tests/bsim/bluetooth/mesh/src/test_provision.c @@ -1008,11 +1008,11 @@ static void test_provisioner_pb_remote_client_parallel(void) /* scanning device with dev index 3 */ uuid[6] = '0' + 3; uuid_to_provision_remote = uuid; - ASSERT_OK(bt_mesh_rpr_scan_start(&rpr_cli, &srv, uuid, 5, 1, &scan_status)); + ASSERT_OK(bt_mesh_rpr_scan_start(&rpr_cli, &srv, uuid, 15, 1, &scan_status)); ASSERT_EQUAL(BT_MESH_RPR_SUCCESS, scan_status.status); ASSERT_EQUAL(BT_MESH_RPR_SCAN_SINGLE, scan_status.scan); ASSERT_EQUAL(1, scan_status.max_devs); - ASSERT_EQUAL(5, scan_status.timeout); + ASSERT_EQUAL(15, scan_status.timeout); ASSERT_OK(k_sem_take(&scan_sem, K_SECONDS(20))); ASSERT_OK(k_sem_take(&prov_sem, K_SECONDS(20)));