Bluetooth: Controller: Add advertisement event indication feature
Add a Controller event that indicates everytime advertisement event has been transmitted on air. Change-id: I4722488bbfeca987e66983faf5b26467407a89c9 Signed-off-by: Vinayak Chettimada <vinayak.kariappa.chettimada@nordicsemi.no>
This commit is contained in:
parent
d8f28bc96a
commit
0d75faf02d
6 changed files with 44 additions and 0 deletions
|
@ -87,6 +87,11 @@ config BLUETOOTH_CONTROLLER_CONN_RSSI
|
|||
help
|
||||
Enable connection RSSI measurement.
|
||||
|
||||
config BLUETOOTH_CONTROLLER_ADV_INDICATION
|
||||
bool "Advertisement indications"
|
||||
help
|
||||
Generate events indicating on air advertisement events.
|
||||
|
||||
comment "BLE Controller debug configuration"
|
||||
|
||||
config BLUETOOTH_CONTROLLER_ASSERT_HANDLER
|
||||
|
|
|
@ -1127,6 +1127,12 @@ static void encode_control(struct radio_pdu_node_rx *node_rx,
|
|||
return;
|
||||
#endif /* CONFIG_BLUETOOTH_CONTROLLER_CONN_RSSI */
|
||||
|
||||
#if defined(CONFIG_BLUETOOTH_CONTROLLER_ADV_INDICATION)
|
||||
case NODE_RX_TYPE_ADV_INDICATION:
|
||||
BT_INFO("Advertised.");
|
||||
return;
|
||||
#endif /* CONFIG_BLUETOOTH_CONTROLLER_ADV_INDICATION */
|
||||
|
||||
#if defined(CONFIG_BLUETOOTH_CONTROLLER_PROFILE_ISR)
|
||||
case NODE_RX_TYPE_PROFILE:
|
||||
BT_INFO("l: %d, %d, %d; t: %d, %d, %d.",
|
||||
|
|
|
@ -2673,6 +2673,25 @@ static inline void isr_radio_state_close(void)
|
|||
switch (_radio.role) {
|
||||
case ROLE_ADV:
|
||||
dont_close = isr_close_adv();
|
||||
|
||||
#if defined(CONFIG_BLUETOOTH_CONTROLLER_ADV_INDICATION)
|
||||
if (!dont_close) {
|
||||
struct radio_pdu_node_rx *radio_pdu_node_rx;
|
||||
|
||||
radio_pdu_node_rx = packet_rx_reserve_get(3);
|
||||
if (radio_pdu_node_rx) {
|
||||
radio_pdu_node_rx->hdr.type =
|
||||
NODE_RX_TYPE_ADV_INDICATION;
|
||||
radio_pdu_node_rx->hdr.handle = 0xFFFF;
|
||||
/* TODO: add other info by defining a payload
|
||||
* structure.
|
||||
*/
|
||||
|
||||
packet_rx_enqueue();
|
||||
}
|
||||
}
|
||||
#endif /* CONFIG_BLUETOOTH_CONTROLLER_ADV_INDICATION */
|
||||
|
||||
break;
|
||||
|
||||
case ROLE_OBS:
|
||||
|
@ -7940,6 +7959,10 @@ void radio_rx_dequeue(void)
|
|||
case NODE_RX_TYPE_PROFILE:
|
||||
#endif /* CONFIG_BLUETOOTH_CONTROLLER_PROFILE_ISR */
|
||||
|
||||
#if defined(CONFIG_BLUETOOTH_CONTROLLER_ADV_INDICATION)
|
||||
case NODE_RX_TYPE_ADV_INDICATION:
|
||||
#endif /* CONFIG_BLUETOOTH_CONTROLLER_ADV_INDICATION */
|
||||
|
||||
/* release data link credit quota */
|
||||
LL_ASSERT(_radio.link_rx_data_quota <
|
||||
(_radio.packet_rx_count - 1));
|
||||
|
@ -7988,6 +8011,10 @@ void radio_rx_mem_release(struct radio_pdu_node_rx **radio_pdu_node_rx)
|
|||
case NODE_RX_TYPE_PROFILE:
|
||||
#endif /* CONFIG_BLUETOOTH_CONTROLLER_PROFILE_ISR */
|
||||
|
||||
#if defined(CONFIG_BLUETOOTH_CONTROLLER_ADV_INDICATION)
|
||||
case NODE_RX_TYPE_ADV_INDICATION:
|
||||
#endif /* CONFIG_BLUETOOTH_CONTROLLER_ADV_INDICATION */
|
||||
|
||||
mem_release(_radio_pdu_node_rx_free,
|
||||
&_radio.pkt_rx_data_free);
|
||||
break;
|
||||
|
|
|
@ -209,6 +209,10 @@ enum radio_pdu_node_rx_type {
|
|||
#if defined(CONFIG_BLUETOOTH_CONTROLLER_PROFILE_ISR)
|
||||
NODE_RX_TYPE_PROFILE,
|
||||
#endif /* CONFIG_BLUETOOTH_CONTROLLER_PROFILE_ISR */
|
||||
|
||||
#if defined(CONFIG_BLUETOOTH_CONTROLLER_ADV_INDICATION)
|
||||
NODE_RX_TYPE_ADV_INDICATION,
|
||||
#endif /* CONFIG_BLUETOOTH_CONTROLLER_ADV_INDICATION */
|
||||
};
|
||||
|
||||
struct radio_pdu_node_rx_hdr {
|
||||
|
|
|
@ -3,6 +3,7 @@ CONFIG_BLUETOOTH_CONTROLLER=y
|
|||
CONFIG_BLUETOOTH_CONTROLLER_LE_PING=n
|
||||
CONFIG_BLUETOOTH_CONTROLLER_DATA_LENGTH=n
|
||||
CONFIG_BLUETOOTH_CONTROLLER_CONN_RSSI=n
|
||||
CONFIG_BLUETOOTH_CONTROLLER_ADV_INDICATION=n
|
||||
CONFIG_BLUETOOTH_PERIPHERAL=y
|
||||
CONFIG_BLUETOOTH_CENTRAL=y
|
||||
CONFIG_BLUETOOTH_SMP=y
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
CONFIG_BLUETOOTH=y
|
||||
CONFIG_BLUETOOTH_CONTROLLER=y
|
||||
CONFIG_BLUETOOTH_CONTROLLER_CONN_RSSI=y
|
||||
CONFIG_BLUETOOTH_CONTROLLER_ADV_INDICATION=y
|
||||
CONFIG_BLUETOOTH_CONTROLLER_PROFILE_ISR=y
|
||||
CONFIG_BLUETOOTH_PERIPHERAL=y
|
||||
CONFIG_BLUETOOTH_CENTRAL=y
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue