From f58943b7cb071cce2143926d355e58729b4a4d5e Mon Sep 17 00:00:00 2001 From: Matthias Ringwald Date: Thu, 12 Jan 2023 15:21:10 +0100 Subject: [PATCH] hci: add gap_set_peer_privacy_mode --- src/gap.h | 7 +++++++ src/hci.c | 8 ++++++++ src/hci.h | 1 + 3 files changed, 16 insertions(+) diff --git a/src/gap.h b/src/gap.h index d869f479a..645f5f1ad 100644 --- a/src/gap.h +++ b/src/gap.h @@ -1385,6 +1385,13 @@ void gap_delete_bonding(bd_addr_type_t address_type, bd_addr_t address); * LE Privacy 1.2 - requires support by Controller and ENABLE_LE_RESOLVING_LIST to be defined */ +/** + * Set Privacy Mode for use in Resolving List. Default: LE_PRIVACY_MODE_DEVICE + * @note Only applies for new devices added to resolving list, please call before startup + * @param privacy_mode + */ +void gap_set_peer_privacy_mode(le_privacy_mode_t privacy_mode ); + /** * @brief Load LE Device DB entries into Controller Resolving List to allow filtering on * bonded devies with resolvable private addresses diff --git a/src/hci.c b/src/hci.c index bd7593de3..f670bed07 100644 --- a/src/hci.c +++ b/src/hci.c @@ -4604,6 +4604,10 @@ void hci_init(const hci_transport_t *transport, const void *config){ hci_stack->iso_packets_to_queue = 1; #endif +#ifdef ENABLE_LE_PRIVACY_ADDRESS_RESOLUTION + hci_stack->le_privacy_mode = LE_PRIVACY_MODE_DEVICE; +#endif + hci_state_reset(); } @@ -9117,6 +9121,10 @@ uint8_t gap_load_resolving_list_from_le_device_db(void){ } return ERROR_CODE_SUCCESS; } + +void gap_set_peer_privacy_mode(le_privacy_mode_t privacy_mode ){ + hci_stack->le_privacy_mode = privacy_mode; +} #endif #ifdef ENABLE_BLE diff --git a/src/hci.h b/src/hci.h index 3b179cec5..dcdd8a5d0 100644 --- a/src/hci.h +++ b/src/hci.h @@ -1247,6 +1247,7 @@ typedef struct { // LE Resolving List #ifdef ENABLE_LE_PRIVACY_ADDRESS_RESOLUTION + le_privacy_mode_t le_privacy_mode; le_resolving_list_state_t le_resolving_list_state; uint16_t le_resolving_list_size; uint8_t le_resolving_list_add_entries[(MAX_NUM_RESOLVING_LIST_ENTRIES + 7) / 8];