Bluetooth: Controller: Fix filtering data status for Periodic report

Fix missing implementation to use correct data status when
detecting duplicate Periodic Advertising Report data.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
This commit is contained in:
Vinayak Kariappa Chettimada 2021-12-03 09:05:35 +05:30 committed by Carles Cufí
commit 88bc1d790c

View file

@ -6381,20 +6381,23 @@ no_ext_hdr:
} else if (IS_ENABLED(CONFIG_BT_CTLR_SYNC_PERIODIC_ADI_SUPPORT) &&
adi) {
const struct ll_sync_set *sync = HDR_LLL2ULL(ftr->param);
uint8_t data_status;
data_status = (aux_ptr) ?
BT_HCI_LE_ADV_EVT_TYPE_DATA_STATUS_PARTIAL :
BT_HCI_LE_ADV_EVT_TYPE_DATA_STATUS_COMPLETE;
/* FIXME: Use correct data status else chain PDU report will
* be filtered out.
*/
accept = ftr->sync_rx_enabled &&
(!sync->nodups ||
!dup_found(PDU_ADV_TYPE_EXT_IND,
sync->peer_id_addr_type,
sync->peer_id_addr,
DUP_EXT_ADV_MODE_PERIODIC,
adi, 0U));
adi, data_status));
#endif /* CONFIG_BT_CTLR_DUP_FILTER_LEN > 0 &&
* CONFIG_BT_CTLR_SYNC_PERIODIC_ADI_SUPPORT
*/
} else {
accept = ftr->sync_rx_enabled;
}