From: Archie Pusaka <apusaka@xxxxxxxxxxxx> "accept list" is preferred, as reflected in the BT core spec 5.3. --- emulator/btdev.c | 114 +++++++++++++++++++++++------------------------ emulator/le.c | 78 ++++++++++++++++---------------- 2 files changed, 96 insertions(+), 96 deletions(-) diff --git a/emulator/btdev.c b/emulator/btdev.c index 14c7016ea6..ed79a827f8 100644 --- a/emulator/btdev.c +++ b/emulator/btdev.c @@ -33,7 +33,7 @@ #include "monitor/bt.h" #include "btdev.h" -#define WL_SIZE 16 +#define AL_SIZE 16 #define RL_SIZE 16 #define CIS_SIZE 3 @@ -61,7 +61,7 @@ struct btdev_conn { struct btdev_conn *link; }; -struct btdev_wl { +struct btdev_al { uint8_t type; bdaddr_t addr; }; @@ -190,7 +190,7 @@ struct btdev { } __attribute__ ((packed)) le_cig; uint8_t le_iso_path[2]; - struct btdev_wl le_wl[WL_SIZE]; + struct btdev_al le_al[AL_SIZE]; struct btdev_rl le_rl[RL_SIZE]; uint8_t le_rl_enable; uint16_t le_rl_timeout; @@ -426,18 +426,18 @@ static int cmd_set_event_mask(struct btdev *dev, const void *data, uint8_t len) return 0; } -static void wl_reset(struct btdev_wl *wl) +static void al_reset(struct btdev_al *al) { - wl->type = 0xff; - bacpy(&wl->addr, BDADDR_ANY); + al->type = 0xff; + bacpy(&al->addr, BDADDR_ANY); } -static void wl_clear(struct btdev *dev) +static void al_clear(struct btdev *dev) { int i; - for (i = 0; i < WL_SIZE; i++) - wl_reset(&dev->le_wl[i]); + for (i = 0; i < AL_SIZE; i++) + al_reset(&dev->le_al[i]); } static void rl_reset(struct btdev_rl *rl) @@ -465,7 +465,7 @@ static void btdev_reset(struct btdev *btdev) btdev->le_scan_enable = 0x00; btdev->le_adv_enable = 0x00; - wl_clear(btdev); + al_clear(btdev); rl_clear(btdev); } @@ -3490,25 +3490,25 @@ static int cmd_le_create_conn_complete(struct btdev *dev, const void *data, return 0; } -static int cmd_read_wl_size(struct btdev *dev, const void *data, uint8_t len) +static int cmd_read_al_size(struct btdev *dev, const void *data, uint8_t len) { struct bt_hci_rsp_le_read_accept_list_size rsp; rsp.status = BT_HCI_ERR_SUCCESS; - rsp.size = WL_SIZE; + rsp.size = AL_SIZE; cmd_complete(dev, BT_HCI_CMD_LE_READ_ACCEPT_LIST_SIZE, &rsp, sizeof(rsp)); return 0; } -static bool wl_can_change(struct btdev *dev) +static bool al_can_change(struct btdev *dev) { - /* filter policy uses the White List and advertising is enable. */ + /* filter policy uses the Accept List and advertising is enable. */ if (dev->le_adv_enable && dev->le_adv_filter_policy) return false; - /* scanning filter policy uses the White List and scanning is enabled */ + /* scan filter policy uses the Accept List and scanning is enabled */ if (dev->le_scan_enable) { switch (dev->le_scan_filter_policy) { case 0x00: @@ -3525,23 +3525,23 @@ static bool wl_can_change(struct btdev *dev) return true; } -static int cmd_wl_clear(struct btdev *dev, const void *data, uint8_t len) +static int cmd_al_clear(struct btdev *dev, const void *data, uint8_t len) { uint8_t status; /* This command shall not be used when: - * • any advertising filter policy uses the White List and advertising + * • any advertising filter policy uses the Accept List and advertising * is enabled, - * • the scanning filter policy uses the White List and scanning is + * • the scanning filter policy uses the Accept List and scanning is * enabled, or - * • the initiator filter policy uses the White List and an + * • the initiator filter policy uses the Accept List and an * HCI_LE_Create_Connection or HCI_LE_Extended_Create_Connection * command is outstanding. */ - if (!wl_can_change(dev)) + if (!al_can_change(dev)) return -EPERM; - wl_clear(dev); + al_clear(dev); status = BT_HCI_ERR_SUCCESS; cmd_complete(dev, BT_HCI_CMD_LE_CLEAR_ACCEPT_LIST, &status, @@ -3550,16 +3550,16 @@ static int cmd_wl_clear(struct btdev *dev, const void *data, uint8_t len) return 0; } -#define WL_ADDR_EQUAL(_wl, _type, _addr) \ - (_wl->type == _type && !bacmp(&_wl->addr, (bdaddr_t *)_addr)) +#define AL_ADDR_EQUAL(_al, _type, _addr) \ + (_al->type == _type && !bacmp(&_al->addr, (bdaddr_t *)_addr)) -static void wl_add(struct btdev_wl *wl, uint8_t type, bdaddr_t *addr) +static void al_add(struct btdev_al *al, uint8_t type, bdaddr_t *addr) { - wl->type = type; - bacpy(&wl->addr, addr); + al->type = type; + bacpy(&al->addr, addr); } -static int cmd_add_wl(struct btdev *dev, const void *data, uint8_t len) +static int cmd_add_al(struct btdev *dev, const void *data, uint8_t len) { const struct bt_hci_cmd_le_add_to_accept_list *cmd = data; uint8_t status; @@ -3567,28 +3567,28 @@ static int cmd_add_wl(struct btdev *dev, const void *data, uint8_t len) int i, pos = -1; /* This command shall not be used when: - * • any advertising filter policy uses the White List and advertising + * • any advertising filter policy uses the Accept List and advertising * is enabled, - * • the scanning filter policy uses the White List and scanning is + * • the scanning filter policy uses the Accept List and scanning is * enabled, or - * • the initiator filter policy uses the White List and an + * • the initiator filter policy uses the Accept List and an * HCI_LE_Create_Connection or HCI_LE_Extended_Create_Connection * command is outstanding. */ - if (!wl_can_change(dev)) + if (!al_can_change(dev)) return -EPERM; /* Valid range for address type is 0x00 to 0x01 */ if (cmd->addr_type > 0x01) return -EINVAL; - for (i = 0; i < WL_SIZE; i++) { - struct btdev_wl *wl = &dev->le_wl[i]; + for (i = 0; i < AL_SIZE; i++) { + struct btdev_al *al = &dev->le_al[i]; - if (WL_ADDR_EQUAL(wl, cmd->addr_type, &cmd->addr)) { + if (AL_ADDR_EQUAL(al, cmd->addr_type, &cmd->addr)) { exists = true; break; - } else if (pos < 0 && wl->type == 0xff) + } else if (pos < 0 && al->type == 0xff) pos = i; } @@ -3601,7 +3601,7 @@ static int cmd_add_wl(struct btdev *dev, const void *data, uint8_t len) return 0; } - wl_add(&dev->le_wl[pos], cmd->addr_type, (bdaddr_t *)&cmd->addr); + al_add(&dev->le_al[pos], cmd->addr_type, (bdaddr_t *)&cmd->addr); status = BT_HCI_ERR_SUCCESS; cmd_complete(dev, BT_HCI_CMD_LE_ADD_TO_ACCEPT_LIST, @@ -3610,7 +3610,7 @@ static int cmd_add_wl(struct btdev *dev, const void *data, uint8_t len) return 0; } -static int cmd_remove_wl(struct btdev *dev, const void *data, uint8_t len) +static int cmd_remove_al(struct btdev *dev, const void *data, uint8_t len) { const struct bt_hci_cmd_le_remove_from_accept_list *cmd = data; uint8_t status; @@ -3618,37 +3618,37 @@ static int cmd_remove_wl(struct btdev *dev, const void *data, uint8_t len) char addr[18]; /* This command shall not be used when: - * • any advertising filter policy uses the White List and advertising + * • any advertising filter policy uses the Accept List and advertising * is enabled, - * • the scanning filter policy uses the White List and scanning is + * • the scanning filter policy uses the Accept List and scanning is * enabled, or - * • the initiator filter policy uses the White List and an + * • the initiator filter policy uses the Accept List and an * HCI_LE_Create_Connection or HCI_LE_Extended_Create_Connection * command is outstanding. */ - if (!wl_can_change(dev)) + if (!al_can_change(dev)) return -EPERM; /* Valid range for address type is 0x00 to 0x01 */ if (cmd->addr_type > 0x01) return -EINVAL; - for (i = 0; i < WL_SIZE; i++) { - struct btdev_wl *wl = &dev->le_wl[i]; + for (i = 0; i < AL_SIZE; i++) { + struct btdev_al *al = &dev->le_al[i]; - ba2str(&wl->addr, addr); + ba2str(&al->addr, addr); util_debug(dev->debug_callback, dev->debug_data, - "type 0x%02x addr %s", dev->le_wl[i].type, + "type 0x%02x addr %s", dev->le_al[i].type, addr); - if (WL_ADDR_EQUAL(wl, cmd->addr_type, &cmd->addr)) { - wl_reset(wl); + if (AL_ADDR_EQUAL(al, cmd->addr_type, &cmd->addr)) { + al_reset(al); break; } } - if (i == WL_SIZE) + if (i == AL_SIZE) return -EINVAL; status = BT_HCI_ERR_SUCCESS; @@ -4237,10 +4237,10 @@ static int cmd_gen_dhkey(struct btdev *dev, const void *data, uint8_t len) cmd_set_scan_enable_complete), \ CMD(BT_HCI_CMD_LE_CREATE_CONN, cmd_le_create_conn, \ cmd_le_create_conn_complete), \ - CMD(BT_HCI_CMD_LE_READ_ACCEPT_LIST_SIZE, cmd_read_wl_size, NULL), \ - CMD(BT_HCI_CMD_LE_CLEAR_ACCEPT_LIST, cmd_wl_clear, NULL), \ - CMD(BT_HCI_CMD_LE_ADD_TO_ACCEPT_LIST, cmd_add_wl, NULL), \ - CMD(BT_HCI_CMD_LE_REMOVE_FROM_ACCEPT_LIST, cmd_remove_wl, NULL), \ + CMD(BT_HCI_CMD_LE_READ_ACCEPT_LIST_SIZE, cmd_read_al_size, NULL), \ + CMD(BT_HCI_CMD_LE_CLEAR_ACCEPT_LIST, cmd_al_clear, NULL), \ + CMD(BT_HCI_CMD_LE_ADD_TO_ACCEPT_LIST, cmd_add_al, NULL), \ + CMD(BT_HCI_CMD_LE_REMOVE_FROM_ACCEPT_LIST, cmd_remove_al, NULL), \ CMD(BT_HCI_CMD_LE_CONN_UPDATE, cmd_conn_update, \ cmd_conn_update_complete), \ CMD(BT_HCI_CMD_LE_READ_REMOTE_FEATURES, cmd_le_read_remote_features, \ @@ -5759,10 +5759,10 @@ static void set_le_commands(struct btdev *btdev) btdev->commands[26] |= 0x04; /* LE Set Scan Parameters */ btdev->commands[26] |= 0x08; /* LE Set Scan Enable */ btdev->commands[26] |= 0x10; /* LE Create Connection */ - btdev->commands[26] |= 0x40; /* LE Read White List Size */ - btdev->commands[26] |= 0x80; /* LE Clear White List */ - btdev->commands[27] |= 0x01; /* LE Add Device to White List */ - btdev->commands[27] |= 0x02; /* LE Remove Device from White List */ + btdev->commands[26] |= 0x40; /* LE Read Accept List Size */ + btdev->commands[26] |= 0x80; /* LE Clear Accept List */ + btdev->commands[27] |= 0x01; /* LE Add Device to Accept List */ + btdev->commands[27] |= 0x02; /* LE Remove Device from Accept List */ btdev->commands[27] |= 0x04; /* LE Connection Update */ btdev->commands[27] |= 0x20; /* LE Read Remote Used Features */ btdev->commands[27] |= 0x40; /* LE Encrypt */ @@ -6070,7 +6070,7 @@ static void set_le_states(struct btdev *btdev) btdev->le_states[4] = 0xff; btdev->le_states[5] = 0x03; - wl_clear(btdev); + al_clear(btdev); rl_clear(btdev); btdev->le_rl_enable = 0x00; btdev->le_rl_timeout = 0x0384; /* 900 secs or 15 minutes */ diff --git a/emulator/le.c b/emulator/le.c index 31186ce1a1..0735b81e6e 100644 --- a/emulator/le.c +++ b/emulator/le.c @@ -34,7 +34,7 @@ #include "phy.h" #include "le.h" -#define WHITE_LIST_SIZE 16 +#define ACCEPT_LIST_SIZE 16 #define RESOLV_LIST_SIZE 16 #define SCAN_CACHE_SIZE 64 @@ -102,8 +102,8 @@ struct bt_le { uint8_t le_conn_own_addr_type; uint8_t le_conn_enable; - uint8_t le_white_list_size; - uint8_t le_white_list[WHITE_LIST_SIZE][7]; + uint8_t le_accept_list_size; + uint8_t le_accept_list[ACCEPT_LIST_SIZE][7]; uint8_t le_states[8]; uint16_t le_default_tx_len; @@ -122,27 +122,27 @@ struct bt_le { uint8_t scan_cache_count; }; -static bool is_in_white_list(struct bt_le *hci, uint8_t addr_type, +static bool is_in_accept_list(struct bt_le *hci, uint8_t addr_type, const uint8_t addr[6]) { int i; - for (i = 0; i < hci->le_white_list_size; i++) { - if (hci->le_white_list[i][0] == addr_type && - !memcmp(&hci->le_white_list[i][1], addr, 6)) + for (i = 0; i < hci->le_accept_list_size; i++) { + if (hci->le_accept_list[i][0] == addr_type && + !memcmp(&hci->le_accept_list[i][1], addr, 6)) return true; } return false; } -static void clear_white_list(struct bt_le *hci) +static void clear_accept_list(struct bt_le *hci) { int i; - for (i = 0; i < hci->le_white_list_size; i++) { - hci->le_white_list[i][0] = 0xff; - memset(&hci->le_white_list[i][1], 0, 6); + for (i = 0; i < hci->le_accept_list_size; i++) { + hci->le_accept_list[i][0] = 0xff; + memset(&hci->le_accept_list[i][1], 0, 6); } } @@ -243,10 +243,10 @@ static void reset_defaults(struct bt_le *hci) hci->commands[26] |= 0x08; /* LE Set Scan Enable */ hci->commands[26] |= 0x10; /* LE Create Connection */ hci->commands[26] |= 0x20; /* LE Create Connection Cancel */ - hci->commands[26] |= 0x40; /* LE Read White List Size */ - hci->commands[26] |= 0x80; /* LE Clear White List */ - hci->commands[27] |= 0x01; /* LE Add Device To White List */ - hci->commands[27] |= 0x02; /* LE Remove Device From White List */ + hci->commands[26] |= 0x40; /* LE Read Accept List Size */ + hci->commands[26] |= 0x80; /* LE Clear Accept List */ + hci->commands[27] |= 0x01; /* LE Add Device To Accept List */ + hci->commands[27] |= 0x02; /* LE Remove Device From Accept List */ //hci->commands[27] |= 0x04; /* LE Connection Update */ //hci->commands[27] |= 0x08; /* LE Set Host Channel Classification */ //hci->commands[27] |= 0x10; /* LE Read Channel Map */ @@ -389,8 +389,8 @@ static void reset_defaults(struct bt_le *hci) hci->le_conn_enable = 0x00; - hci->le_white_list_size = WHITE_LIST_SIZE; - clear_white_list(hci); + hci->le_accept_list_size = ACCEPT_LIST_SIZE; + clear_accept_list(hci); memset(hci->le_states, 0, sizeof(hci->le_states)); hci->le_states[0] |= 0x01; /* Non-connectable Advertising */ @@ -1208,31 +1208,31 @@ static void cmd_le_create_conn_cancel(struct bt_le *hci, &evt, sizeof(evt)); } -static void cmd_le_read_white_list_size(struct bt_le *hci, +static void cmd_le_read_accept_list_size(struct bt_le *hci, const void *data, uint8_t size) { struct bt_hci_rsp_le_read_accept_list_size rsp; rsp.status = BT_HCI_ERR_SUCCESS; - rsp.size = hci->le_white_list_size; + rsp.size = hci->le_accept_list_size; cmd_complete(hci, BT_HCI_CMD_LE_READ_ACCEPT_LIST_SIZE, &rsp, sizeof(rsp)); } -static void cmd_le_clear_white_list(struct bt_le *hci, +static void cmd_le_clear_accept_list(struct bt_le *hci, const void *data, uint8_t size) { uint8_t status; - clear_white_list(hci); + clear_accept_list(hci); status = BT_HCI_ERR_SUCCESS; cmd_complete(hci, BT_HCI_CMD_LE_CLEAR_ACCEPT_LIST, &status, sizeof(status)); } -static void cmd_le_add_to_white_list(struct bt_le *hci, +static void cmd_le_add_to_accept_list(struct bt_le *hci, const void *data, uint8_t size) { const struct bt_hci_cmd_le_add_to_accept_list *cmd = data; @@ -1247,13 +1247,13 @@ static void cmd_le_add_to_white_list(struct bt_le *hci, return; } - for (i = 0; i < hci->le_white_list_size; i++) { - if (hci->le_white_list[i][0] == cmd->addr_type && - !memcmp(&hci->le_white_list[i][1], + for (i = 0; i < hci->le_accept_list_size; i++) { + if (hci->le_accept_list[i][0] == cmd->addr_type && + !memcmp(&hci->le_accept_list[i][1], cmd->addr, 6)) { exists = true; break; - } else if (pos < 0 && hci->le_white_list[i][0] == 0xff) + } else if (pos < 0 && hci->le_accept_list[i][0] == 0xff) pos = i; } @@ -1269,15 +1269,15 @@ static void cmd_le_add_to_white_list(struct bt_le *hci, return; } - hci->le_white_list[pos][0] = cmd->addr_type; - memcpy(&hci->le_white_list[pos][1], cmd->addr, 6); + hci->le_accept_list[pos][0] = cmd->addr_type; + memcpy(&hci->le_accept_list[pos][1], cmd->addr, 6); status = BT_HCI_ERR_SUCCESS; cmd_complete(hci, BT_HCI_CMD_LE_ADD_TO_ACCEPT_LIST, &status, sizeof(status)); } -static void cmd_le_remove_from_white_list(struct bt_le *hci, +static void cmd_le_remove_from_accept_list(struct bt_le *hci, const void *data, uint8_t size) { const struct bt_hci_cmd_le_remove_from_accept_list *cmd = data; @@ -1291,9 +1291,9 @@ static void cmd_le_remove_from_white_list(struct bt_le *hci, return; } - for (i = 0; i < hci->le_white_list_size; i++) { - if (hci->le_white_list[i][0] == cmd->addr_type && - !memcmp(&hci->le_white_list[i][1], + for (i = 0; i < hci->le_accept_list_size; i++) { + if (hci->le_accept_list[i][0] == cmd->addr_type && + !memcmp(&hci->le_accept_list[i][1], cmd->addr, 6)) { pos = i; break; @@ -1306,8 +1306,8 @@ static void cmd_le_remove_from_white_list(struct bt_le *hci, return; } - hci->le_white_list[pos][0] = 0xff; - memset(&hci->le_white_list[pos][1], 0, 6); + hci->le_accept_list[pos][0] = 0xff; + memset(&hci->le_accept_list[pos][1], 0, 6); status = BT_HCI_ERR_SUCCESS; cmd_complete(hci, BT_HCI_CMD_LE_REMOVE_FROM_ACCEPT_LIST, @@ -1831,13 +1831,13 @@ static const struct { { BT_HCI_CMD_LE_CREATE_CONN_CANCEL, cmd_le_create_conn_cancel, 0, true }, { BT_HCI_CMD_LE_READ_ACCEPT_LIST_SIZE, - cmd_le_read_white_list_size, 0, true }, + cmd_le_read_accept_list_size, 0, true }, { BT_HCI_CMD_LE_CLEAR_ACCEPT_LIST, - cmd_le_clear_white_list, 0, true }, + cmd_le_clear_accept_list, 0, true }, { BT_HCI_CMD_LE_ADD_TO_ACCEPT_LIST, - cmd_le_add_to_white_list, 7, true }, + cmd_le_add_to_accept_list, 7, true }, { BT_HCI_CMD_LE_REMOVE_FROM_ACCEPT_LIST, - cmd_le_remove_from_white_list, 7, true }, + cmd_le_remove_from_accept_list, 7, true }, { BT_HCI_CMD_LE_ENCRYPT, cmd_le_encrypt, 32, true }, { BT_HCI_CMD_LE_RAND, cmd_le_rand, 0, true }, @@ -1963,7 +1963,7 @@ static void phy_recv_callback(uint16_t type, const void *data, if (hci->le_scan_filter_policy == 0x01 || hci->le_scan_filter_policy == 0x03) { - if (!is_in_white_list(hci, tx_addr_type, + if (!is_in_accept_list(hci, tx_addr_type, tx_addr)) break; } -- 2.33.0.rc1.237.g0d66db33f3-goog