Bluetooth: controller: Rename whitelist arrays

For consistency with the Resolving List, rename the whitelist filter to
match its type and the privacy-enabled version to align it with the
short name used in the RL.

Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
This commit is contained in:
Carles Cufi 2017-07-10 14:31:47 +02:00
commit f6260d6adb

View file

@ -27,7 +27,7 @@
#include "pdu.h" #include "pdu.h"
/* Hardware whitelist */ /* Hardware whitelist */
static struct ll_filter wl; static struct ll_filter wl_filter;
u8_t wl_anon; u8_t wl_anon;
#if defined(CONFIG_BLUETOOTH_CONTROLLER_PRIVACY) #if defined(CONFIG_BLUETOOTH_CONTROLLER_PRIVACY)
@ -40,7 +40,7 @@ static struct {
u8_t id_addr_type:1; u8_t id_addr_type:1;
u8_t rl_idx; u8_t rl_idx;
bt_addr_t id_addr; bt_addr_t id_addr;
} wl_peers[WL_SIZE]; } wl[WL_SIZE];
static u8_t rl_enable; static u8_t rl_enable;
static struct rl_dev { static struct rl_dev {
@ -65,7 +65,7 @@ static u8_t peer_irks[CONFIG_BLUETOOTH_CONTROLLER_RL_SIZE][16];
static u8_t peer_irk_rl_ids[CONFIG_BLUETOOTH_CONTROLLER_RL_SIZE]; static u8_t peer_irk_rl_ids[CONFIG_BLUETOOTH_CONTROLLER_RL_SIZE];
static u8_t peer_irk_count; static u8_t peer_irk_count;
BUILD_ASSERT(ARRAY_SIZE(wl_peers) < FILTER_IDX_NONE); BUILD_ASSERT(ARRAY_SIZE(wl) < FILTER_IDX_NONE);
BUILD_ASSERT(ARRAY_SIZE(rl) < FILTER_IDX_NONE); BUILD_ASSERT(ARRAY_SIZE(rl) < FILTER_IDX_NONE);
/* Hardware filter for the resolving list */ /* Hardware filter for the resolving list */
@ -81,14 +81,14 @@ struct k_delayed_work rpa_work;
(list[i].id_addr_type == (type & 0x1)) && \ (list[i].id_addr_type == (type & 0x1)) && \
!memcmp(list[i].id_addr.val, addr, BDADDR_SIZE)) !memcmp(list[i].id_addr.val, addr, BDADDR_SIZE))
static void wl_peers_clear(void) static void wl_clear(void)
{ {
for (int i = 0; i < WL_SIZE; i++) { for (int i = 0; i < WL_SIZE; i++) {
wl_peers[i].taken = 0; wl[i].taken = 0;
} }
} }
static u8_t wl_peers_find(u8_t addr_type, u8_t *addr, u8_t *free) static u8_t wl_find(u8_t addr_type, u8_t *addr, u8_t *free)
{ {
int i; int i;
@ -97,7 +97,7 @@ static u8_t wl_peers_find(u8_t addr_type, u8_t *addr, u8_t *free)
} }
for (i = 0; i < WL_SIZE; i++) { for (i = 0; i < WL_SIZE; i++) {
if (LIST_MATCH(wl_peers, i, addr_type, addr)) { if (LIST_MATCH(wl, i, addr_type, addr)) {
return i; return i;
} else if (free && !rl[i].taken && (*free == FILTER_IDX_NONE)) { } else if (free && !rl[i].taken && (*free == FILTER_IDX_NONE)) {
*free = i; *free = i;
@ -107,48 +107,48 @@ static u8_t wl_peers_find(u8_t addr_type, u8_t *addr, u8_t *free)
return FILTER_IDX_NONE; return FILTER_IDX_NONE;
} }
static u32_t wl_peers_add(bt_addr_le_t *id_addr) static u32_t wl_add(bt_addr_le_t *id_addr)
{ {
u8_t i, j; u8_t i, j;
i = wl_peers_find(id_addr->type, id_addr->a.val, &j); i = wl_find(id_addr->type, id_addr->a.val, &j);
/* Duplicate check */ /* Duplicate check */
if (i < ARRAY_SIZE(wl_peers)) { if (i < ARRAY_SIZE(wl)) {
return BT_HCI_ERR_INVALID_PARAM; return BT_HCI_ERR_INVALID_PARAM;
} else if (j > ARRAY_SIZE(wl_peers)) { } else if (j > ARRAY_SIZE(wl)) {
return BT_HCI_ERR_MEM_CAPACITY_EXCEEDED; return BT_HCI_ERR_MEM_CAPACITY_EXCEEDED;
} }
i = j; i = j;
wl_peers[i].id_addr_type = id_addr->type & 0x1; wl[i].id_addr_type = id_addr->type & 0x1;
bt_addr_copy(&wl_peers[i].id_addr, &id_addr->a); bt_addr_copy(&wl[i].id_addr, &id_addr->a);
/* Get index to Resolving List if applicable */ /* Get index to Resolving List if applicable */
j = ll_rl_find(id_addr->type, id_addr->a.val, NULL); j = ll_rl_find(id_addr->type, id_addr->a.val, NULL);
if (j < ARRAY_SIZE(rl)) { if (j < ARRAY_SIZE(rl)) {
wl_peers[i].rl_idx = j; wl[i].rl_idx = j;
rl[j].wl = 1; rl[j].wl = 1;
} else { } else {
wl_peers[i].rl_idx = FILTER_IDX_NONE; wl[i].rl_idx = FILTER_IDX_NONE;
} }
wl_peers[i].taken = 1; wl[i].taken = 1;
return 0; return 0;
} }
static u32_t wl_peers_remove(bt_addr_le_t *id_addr) static u32_t wl_remove(bt_addr_le_t *id_addr)
{ {
/* find the device and mark it as empty */ /* find the device and mark it as empty */
int i = wl_peers_find(id_addr->type, id_addr->a.val, NULL); int i = wl_find(id_addr->type, id_addr->a.val, NULL);
if (i < ARRAY_SIZE(wl_peers)) { if (i < ARRAY_SIZE(wl)) {
int j = wl_peers[i].rl_idx; int j = wl[i].rl_idx;
if (j < ARRAY_SIZE(rl)) { if (j < ARRAY_SIZE(rl)) {
rl[j].wl = 0; rl[j].wl = 0;
} }
wl_peers[i].taken = 0; wl[i].taken = 0;
return 0; return 0;
} }
@ -249,7 +249,7 @@ bool ctrl_irk_whitelisted(u8_t rl_idx)
struct ll_filter *ctrl_filter_get(bool whitelist) struct ll_filter *ctrl_filter_get(bool whitelist)
{ {
if (whitelist) { if (whitelist) {
return &wl; return &wl_filter;
} }
#if defined(CONFIG_BLUETOOTH_CONTROLLER_PRIVACY) #if defined(CONFIG_BLUETOOTH_CONTROLLER_PRIVACY)
return &rl_filter; return &rl_filter;
@ -270,9 +270,9 @@ u32_t ll_wl_clear(void)
} }
#if defined(CONFIG_BLUETOOTH_CONTROLLER_PRIVACY) #if defined(CONFIG_BLUETOOTH_CONTROLLER_PRIVACY)
wl_peers_clear(); wl_clear();
#else #else
filter_clear(&wl); filter_clear(&wl_filter);
#endif /* CONFIG_BLUETOOTH_CONTROLLER_PRIVACY */ #endif /* CONFIG_BLUETOOTH_CONTROLLER_PRIVACY */
wl_anon = 0; wl_anon = 0;
@ -291,9 +291,9 @@ u32_t ll_wl_add(bt_addr_le_t *addr)
} }
#if defined(CONFIG_BLUETOOTH_CONTROLLER_PRIVACY) #if defined(CONFIG_BLUETOOTH_CONTROLLER_PRIVACY)
return wl_peers_add(addr); return wl_add(addr);
#else #else
return filter_add(&wl, addr->type, addr->a.val); return filter_add(&wl_filter, addr->type, addr->a.val);
#endif /* CONFIG_BLUETOOTH_CONTROLLER_PRIVACY */ #endif /* CONFIG_BLUETOOTH_CONTROLLER_PRIVACY */
} }
@ -309,9 +309,9 @@ u32_t ll_wl_remove(bt_addr_le_t *addr)
} }
#if defined(CONFIG_BLUETOOTH_CONTROLLER_PRIVACY) #if defined(CONFIG_BLUETOOTH_CONTROLLER_PRIVACY)
return wl_peers_remove(addr); return wl_remove(addr);
#else #else
return filter_remove(&wl, addr->type, addr->a.val); return filter_remove(&wl_filter, addr->type, addr->a.val);
#endif /* CONFIG_BLUETOOTH_CONTROLLER_PRIVACY */ #endif /* CONFIG_BLUETOOTH_CONTROLLER_PRIVACY */
} }
@ -322,15 +322,15 @@ static void filter_wl_update(void)
int i; int i;
/* Populate filter from wl peers */ /* Populate filter from wl peers */
filter_clear(&wl); filter_clear(&wl_filter);
for (i = 0; i < WL_SIZE; i++) { for (i = 0; i < WL_SIZE; i++) {
int j = wl_peers[i].rl_idx; int j = wl[i].rl_idx;
if (!rl_enable || j < ARRAY_SIZE(rl) || !rl[j].pirk || if (!rl_enable || j < ARRAY_SIZE(rl) || !rl[j].pirk ||
rl[j].dev) { rl[j].dev) {
filter_insert(&wl, i, wl_peers[i].id_addr_type, filter_insert(&wl_filter, i, wl[i].id_addr_type,
wl_peers[i].id_addr.val); wl[i].id_addr.val);
} }
} }
} }
@ -661,9 +661,9 @@ u32_t ll_rl_add(bt_addr_le_t *id_addr, const u8_t pirk[16],
/* Default to Network Privacy */ /* Default to Network Privacy */
rl[i].dev = 0; rl[i].dev = 0;
/* Add reference to a whitelist entry */ /* Add reference to a whitelist entry */
j = wl_peers_find(id_addr->type, id_addr->a.val, NULL); j = wl_find(id_addr->type, id_addr->a.val, NULL);
if (j < ARRAY_SIZE(wl_peers)) { if (j < ARRAY_SIZE(wl)) {
wl_peers[j].rl_idx = i; wl[j].rl_idx = i;
rl[i].wl = 1; rl[i].wl = 1;
} else { } else {
rl[i].wl = 0; rl[i].wl = 0;
@ -708,9 +708,9 @@ u32_t ll_rl_remove(bt_addr_le_t *id_addr)
} }
/* Check if referenced by a whitelist entry */ /* Check if referenced by a whitelist entry */
j = wl_peers_find(id_addr->type, id_addr->a.val, NULL); j = wl_find(id_addr->type, id_addr->a.val, NULL);
if (j < ARRAY_SIZE(wl_peers)) { if (j < ARRAY_SIZE(wl)) {
wl_peers[j].rl_idx = FILTER_IDX_NONE; wl[j].rl_idx = FILTER_IDX_NONE;
} }
rl[i].taken = 0; rl[i].taken = 0;
return 0; return 0;
@ -806,7 +806,7 @@ void ll_filter_reset(bool init)
wl_anon = 0; wl_anon = 0;
#if defined(CONFIG_BLUETOOTH_CONTROLLER_PRIVACY) #if defined(CONFIG_BLUETOOTH_CONTROLLER_PRIVACY)
wl_peers_clear(); wl_clear();
rl_enable = 0; rl_enable = 0;
rpa_timeout_ms = DEFAULT_RPA_TIMEOUT_MS; rpa_timeout_ms = DEFAULT_RPA_TIMEOUT_MS;
@ -818,7 +818,7 @@ void ll_filter_reset(bool init)
k_delayed_work_cancel(&rpa_work); k_delayed_work_cancel(&rpa_work);
} }
#else #else
filter_clear(&wl); filter_clear(&wl_filter);
#endif /* CONFIG_BLUETOOTH_CONTROLLER_PRIVACY */ #endif /* CONFIG_BLUETOOTH_CONTROLLER_PRIVACY */
} }