@@ -216,23 +216,44 @@ static int prepare_cb(struct lll_prepare_param *p)
216
216
scan_pdu = lll_adv_scan_rsp_latest_get (lll_adv , & upd );
217
217
LL_ASSERT (scan_pdu );
218
218
219
+ radio_isr_set (isr_tx_rx , lll );
220
+ radio_tmr_tifs_set (EVENT_IFS_US );
221
+ radio_switch_complete_and_rx (phy_s );
222
+
223
+ if (false) {
224
+
219
225
#if defined(CONFIG_BT_CTLR_PRIVACY )
220
- if (upd ) {
226
+ } else if (upd ) {
221
227
/* Copy the address from the adv packet we will send
222
228
* into the scan response.
223
229
*/
224
230
memcpy (& scan_pdu -> adv_ext_ind .ext_hdr .data [ADVA_OFFSET ],
225
231
& sec_pdu -> adv_ext_ind .ext_hdr .data [ADVA_OFFSET ],
226
232
BDADDR_SIZE );
227
233
}
228
- #else
229
- ARG_UNUSED (scan_pdu );
230
- ARG_UNUSED (upd );
231
- #endif /* !CONFIG_BT_CTLR_PRIVACY */
232
234
233
- radio_isr_set (isr_tx_rx , lll );
234
- radio_tmr_tifs_set (EVENT_IFS_US );
235
- radio_switch_complete_and_rx (phy_s );
235
+ if (ull_filter_lll_rl_enabled ()) {
236
+ struct lll_filter * filter =
237
+ ull_filter_lll_get (!!(lll_adv -> filter_policy ));
238
+
239
+ radio_filter_configure (filter -> enable_bitmask ,
240
+ filter -> addr_type_bitmask ,
241
+ (uint8_t * )filter -> bdaddr );
242
+ #endif /* CONFIG_BT_CTLR_PRIVACY */
243
+
244
+ } else if (IS_ENABLED (CONFIG_BT_CTLR_FILTER_ACCEPT_LIST ) &&
245
+ lll_adv -> filter_policy ) {
246
+ struct lll_filter * fal = ull_filter_lll_get (true);
247
+
248
+ radio_filter_configure (fal -> enable_bitmask ,
249
+ fal -> addr_type_bitmask ,
250
+ (uint8_t * )fal -> bdaddr );
251
+ ARG_UNUSED (scan_pdu );
252
+ ARG_UNUSED (upd );
253
+ } else {
254
+ ARG_UNUSED (scan_pdu );
255
+ ARG_UNUSED (upd );
256
+ }
236
257
237
258
#if defined(CONFIG_BT_CTLR_ADV_PDU_BACK2BACK )
238
259
} else if (sec_pdu -> adv_ext_ind .ext_hdr_len &&
@@ -632,10 +653,10 @@ static inline int isr_rx_pdu(struct lll_adv_aux *lll_aux,
632
653
#if defined(CONFIG_BT_PERIPHERAL )
633
654
} else if ((pdu_rx -> type == PDU_ADV_TYPE_AUX_CONNECT_REQ ) &&
634
655
(pdu_rx -> len == sizeof (struct pdu_adv_connect_ind )) &&
656
+ lll -> conn &&
635
657
lll_adv_connect_ind_check (lll , pdu_rx , tx_addr , addr ,
636
658
rx_addr , tgt_addr ,
637
- devmatch_ok , & rl_idx ) &&
638
- lll -> conn ) {
659
+ devmatch_ok , & rl_idx )) {
639
660
struct node_rx_ftr * ftr ;
640
661
struct node_rx_pdu * rx ;
641
662
struct pdu_adv * pdu_tx ;
0 commit comments