From 327d6812cd1336c437e1dfa50b706ada5f77fd43 Mon Sep 17 00:00:00 2001 From: Marcel Holtmann Date: Mon, 15 Dec 2014 02:46:42 +0100 Subject: [PATCH] monitor: Add support for peer and local private address commands --- monitor/bt.h | 20 ++++++++++++++++++++ monitor/packet.c | 40 ++++++++++++++++++++++++++++++++++++++-- 2 files changed, 58 insertions(+), 2 deletions(-) diff --git a/monitor/bt.h b/monitor/bt.h index a1f2ab32c..b265ec8cb 100644 --- a/monitor/bt.h +++ b/monitor/bt.h @@ -1913,6 +1913,26 @@ struct bt_hci_rsp_le_read_resolv_list_size { uint8_t size; } __attribute__ ((packed)); +#define BT_HCI_CMD_LE_READ_PEER_RESOLV_ADDR 0x202b +struct bt_hci_cmd_le_read_peer_resolv_addr { + uint8_t addr_type; + uint8_t addr[6]; +} __attribute__ ((packed)); +struct bt_hci_rsp_le_read_peer_resolv_addr { + uint8_t status; + uint8_t addr[6]; +} __attribute__ ((packed)); + +#define BT_HCI_CMD_LE_READ_LOCAL_RESOLV_ADDR 0x202c +struct bt_hci_cmd_le_read_local_resolv_addr { + uint8_t addr_type; + uint8_t addr[6]; +} __attribute__ ((packed)); +struct bt_hci_rsp_le_read_local_resolv_addr { + uint8_t status; + uint8_t addr[6]; +} __attribute__ ((packed)); + #define BT_HCI_CMD_LE_SET_RESOLV_ENABLE 0x202d struct bt_hci_cmd_le_set_resolv_enable { uint8_t enable; diff --git a/monitor/packet.c b/monitor/packet.c index 48055564d..70f1999d5 100644 --- a/monitor/packet.c +++ b/monitor/packet.c @@ -6058,6 +6058,38 @@ static void le_read_resolv_list_size_rsp(const void *data, uint8_t size) print_field("Size: %u", rsp->size); } +static void le_read_peer_resolv_addr_cmd(const void *data, uint8_t size) +{ + const struct bt_hci_cmd_le_read_peer_resolv_addr *cmd = data; + + print_addr_type("Address type", cmd->addr_type); + print_addr("Address", cmd->addr, cmd->addr_type); +} + +static void le_read_peer_resolv_addr_rsp(const void *data, uint8_t size) +{ + const struct bt_hci_rsp_le_read_peer_resolv_addr *rsp = data; + + print_status(rsp->status); + print_addr("Address", rsp->addr, 0x01); +} + +static void le_read_local_resolv_addr_cmd(const void *data, uint8_t size) +{ + const struct bt_hci_cmd_le_read_local_resolv_addr *cmd = data; + + print_addr_type("Address type", cmd->addr_type); + print_addr("Address", cmd->addr, cmd->addr_type); +} + +static void le_read_local_resolv_addr_rsp(const void *data, uint8_t size) +{ + const struct bt_hci_rsp_le_read_local_resolv_addr *rsp = data; + + print_status(rsp->status); + print_addr("Address", rsp->addr, 0x01); +} + static void le_set_resolv_enable_cmd(const void *data, uint8_t size) { const struct bt_hci_cmd_le_set_resolv_enable *cmd = data; @@ -6754,8 +6786,12 @@ static const struct opcode_data opcode_table[] = { { 0x202a, 278, "LE Read Resolving List Size", null_cmd, 0, true, le_read_resolv_list_size_rsp, 2, true }, - { 0x202b, 279, "LE Read Peer Resolvable Address" }, - { 0x202c, 280, "LE Read Local Resolvable Address" }, + { 0x202b, 279, "LE Read Peer Resolvable Address", + le_read_peer_resolv_addr_cmd, 7, true, + le_read_peer_resolv_addr_rsp, 7, true }, + { 0x202c, 280, "LE Read Local Resolvable Address", + le_read_local_resolv_addr_cmd, 7, true, + le_read_local_resolv_addr_rsp, 7, true }, { 0x202d, 281, "LE Set Address Resolution Enable", le_set_resolv_enable_cmd, 1, true, status_rsp, 1, true }, -- 2.47.3