diff --git a/nimble/controller/include/controller/ble_ll.h b/nimble/controller/include/controller/ble_ll.h index 408f03b69..7247f31df 100644 --- a/nimble/controller/include/controller/ble_ll.h +++ b/nimble/controller/include/controller/ble_ll.h @@ -179,6 +179,7 @@ STATS_SECT_START(ble_ll_stats) STATS_SECT_ENTRY(rx_connect_reqs) STATS_SECT_ENTRY(rx_scan_ind) STATS_SECT_ENTRY(rx_aux_connect_rsp) + STATS_SECT_ENTRY(rx_pdu_on_scan_disabled) STATS_SECT_ENTRY(adv_txg) STATS_SECT_ENTRY(adv_late_starts) STATS_SECT_ENTRY(adv_resched_pdu_fail) diff --git a/nimble/controller/src/ble_ll.c b/nimble/controller/src/ble_ll.c index 84475c32b..fd96f7d62 100644 --- a/nimble/controller/src/ble_ll.c +++ b/nimble/controller/src/ble_ll.c @@ -320,6 +320,7 @@ STATS_NAME_START(ble_ll_stats) STATS_NAME(ble_ll_stats, rx_connect_reqs) STATS_NAME(ble_ll_stats, rx_scan_ind) STATS_NAME(ble_ll_stats, rx_aux_connect_rsp) + STATS_NAME(ble_ll_stats, rx_pdu_on_scan_disabled) STATS_NAME(ble_ll_stats, adv_txg) STATS_NAME(ble_ll_stats, adv_late_starts) STATS_NAME(ble_ll_stats, adv_resched_pdu_fail) diff --git a/nimble/controller/src/ble_ll_scan.c b/nimble/controller/src/ble_ll_scan.c index d1c3c8ad7..445cbb58f 100644 --- a/nimble/controller/src/ble_ll_scan.c +++ b/nimble/controller/src/ble_ll_scan.c @@ -1610,6 +1610,11 @@ ble_ll_scan_rx_isr_end(struct os_mbuf *rxpdu, uint8_t crcok) goto scan_rx_isr_ignore; } + if (!scansm->scan_enabled) { + STATS_INC(ble_ll_stats, rx_pdu_on_scan_disabled); + goto scan_rx_isr_ignore; + } + rxbuf = rxpdu->om_data; pdu_type = rxbuf[0] & BLE_ADV_PDU_HDR_TYPE_MASK;