diff --git a/monitor/bt.h b/monitor/bt.h
index 7c4cafc..220cb0c 100644
--- a/monitor/bt.h
+++ b/monitor/bt.h
uint16_t handle;
uint8_t ltk[16];
} __attribute__ ((packed));
+struct bt_hci_cmd_le_ltk_req_reply_rsp {
+ uint8_t status;
+ uint16_t handle;
+} __attribute__ ((packed));
#define BT_HCI_CMD_LE_LTK_REQ_NEG_REPLY 0x201b
struct bt_hci_cmd_le_ltk_req_neg_reply {
uint16_t handle;
} __attribute__ ((packed));
+struct bt_hci_cmd_le_ltk_req_neg_reply_rsp {
+ uint8_t status;
+ uint16_t handle;
+} __attribute__ ((packed));
#define BT_HCI_CMD_LE_READ_SUPPORTED_STATES 0x201c
struct bt_hci_rsp_le_read_supported_states {
diff --git a/monitor/packet.c b/monitor/packet.c
index f964b92..e5b3987 100644
--- a/monitor/packet.c
+++ b/monitor/packet.c
}
+static void le_ltk_req_reply_rsp(const void *data, uint8_t size)
+{
+ const struct bt_hci_cmd_le_ltk_req_reply_rsp *rsp = data;
+
+ print_status(rsp->status);
+ print_handle(rsp->handle);
+}
+
static void le_ltk_req_neg_reply(const void *data, uint8_t size)
{
const struct bt_hci_cmd_le_ltk_req_neg_reply *cmd = data;
print_handle(cmd->handle);
}
+static void le_ltk_req_neg_reply_rsp(const void *data, uint8_t size)
+{
+ const struct bt_hci_cmd_le_ltk_req_neg_reply_rsp *rsp = data;
+
+ print_status(rsp->status);
+ print_handle(rsp->handle);
+}
+
static void le_read_supported_states_rsp(const void *data, uint8_t size)
{
const struct bt_hci_rsp_le_read_supported_states *rsp = data;
{ 0x2019, 224, "LE Start Encryption",
le_start_encrypt, 28, true },
{ 0x201a, 225, "LE Long Term Key Request Reply",
- le_ltk_req_reply, 18, true },
+ le_ltk_req_reply, 18, true,
+ le_ltk_req_reply_rsp, 3, true },
{ 0x201b, 226, "LE Long Term Key Request Neg Reply",
- le_ltk_req_neg_reply, 2, true },
+ le_ltk_req_neg_reply, 2, true,
+ le_ltk_req_neg_reply_rsp, 3, true },
{ 0x201c, 227, "LE Read Supported States",
null_cmd, 0, true,
le_read_supported_states_rsp, 9, true },