2021-03-08 21:24:34 +08:00
|
|
|
/*
|
|
|
|
* Copyright (c) 2017-2021 Nordic Semiconductor ASA
|
|
|
|
* Copyright (c) 2015-2016 Intel Corporation
|
|
|
|
*
|
|
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
|
|
*/
|
|
|
|
|
|
|
|
#define RPA_TIMEOUT_MS (CONFIG_BT_RPA_TIMEOUT * MSEC_PER_SEC)
|
|
|
|
#define RPA_TIMEOUT K_MSEC(RPA_TIMEOUT_MS)
|
|
|
|
|
|
|
|
static inline bool bt_id_rpa_is_new(void)
|
|
|
|
{
|
|
|
|
#if defined(CONFIG_BT_PRIVACY)
|
2021-04-08 18:18:09 +08:00
|
|
|
uint32_t remaining_ms = k_ticks_to_ms_floor32(
|
|
|
|
k_work_delayable_remaining_get(&bt_dev.rpa_update));
|
2021-03-08 21:24:34 +08:00
|
|
|
/* RPA is considered new if there is less than half a second since the
|
|
|
|
* timeout was started.
|
|
|
|
*/
|
2021-04-08 18:18:09 +08:00
|
|
|
return remaining_ms > (RPA_TIMEOUT_MS - 500);
|
2021-03-08 21:24:34 +08:00
|
|
|
#else
|
|
|
|
return false;
|
|
|
|
#endif
|
|
|
|
}
|
|
|
|
|
|
|
|
int bt_id_init(void);
|
|
|
|
|
|
|
|
uint8_t bt_id_read_public_addr(bt_addr_le_t *addr);
|
|
|
|
|
|
|
|
int bt_id_set_create_conn_own_addr(bool use_filter, uint8_t *own_addr_type);
|
|
|
|
|
|
|
|
int bt_id_set_scan_own_addr(bool active_scan, uint8_t *own_addr_type);
|
|
|
|
|
|
|
|
int bt_id_set_adv_own_addr(struct bt_le_ext_adv *adv, uint32_t options,
|
|
|
|
bool dir_adv, uint8_t *own_addr_type);
|
|
|
|
|
|
|
|
bool bt_id_adv_random_addr_check(const struct bt_le_adv_param *param);
|
|
|
|
|
|
|
|
bool bt_id_scan_random_addr_check(void);
|
|
|
|
|
|
|
|
int bt_id_set_adv_random_addr(struct bt_le_ext_adv *adv,
|
|
|
|
const bt_addr_t *addr);
|
|
|
|
int bt_id_set_adv_private_addr(struct bt_le_ext_adv *adv);
|
|
|
|
|
|
|
|
int bt_id_set_private_addr(uint8_t id);
|
|
|
|
|
|
|
|
void bt_id_pending_keys_update(void);
|