diff --git a/monitor/bt.h b/monitor/bt.h
index a1f2ab3..b265ec8 100644
--- a/monitor/bt.h
+++ b/monitor/bt.h
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 4805556..70f1999 100644
--- a/monitor/packet.c
+++ b/monitor/packet.c
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;
{ 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 },