monitor: Decode BR/EDR Secure Connections commands and events

This commit is contained in:
Marcel Holtmann 2013-12-07 03:11:48 -08:00
parent 312c8f49be
commit cb1326cd73

View File

@ -1002,7 +1002,6 @@ static void print_afh_mode(uint8_t mode)
case 0x01:
str = "Enabled";
break;
break;
default:
str = "Reserved";
break;
@ -1049,6 +1048,31 @@ static void print_ssp_debug_mode(uint8_t mode)
print_field("Debug mode: %s (0x%2.2x)", str, mode);
}
static void print_secure_conn_support(uint8_t support)
{
const char *str;
switch (support) {
case 0x00:
str = "Disabled";
break;
case 0x01:
str = "Enabled";
break;
default:
str = "Reserved";
break;
}
print_field("Support: %s (0x%2.2x)", str, support);
}
static void print_auth_payload_timeout(uint16_t timeout)
{
print_field("Timeout: %d msec (0x%4.4x)",
btohs(timeout) * 10, btohs(timeout));
}
static void print_pscan_rep_mode(uint8_t pscan_rep_mode)
{
const char *str;
@ -3298,6 +3322,17 @@ static void flow_spec_modify_cmd(const void *data, uint8_t size)
print_flow_spec("RX", cmd->rx_flow_spec);
}
static void remote_oob_ext_data_request_reply_cmd(const void *data, uint8_t size)
{
const struct bt_hci_cmd_remote_oob_ext_data_request_reply *cmd = data;
print_bdaddr(cmd->bdaddr);
print_hash("P-192", cmd->hash192);
print_randomizer("P-192", cmd->randomizer192);
print_hash("P-256", cmd->hash256);
print_randomizer("P-256", cmd->randomizer256);
}
static void hold_mode_cmd(const void *data, uint8_t size)
{
const struct bt_hci_cmd_hold_mode *cmd = data;
@ -4249,6 +4284,64 @@ static void read_sync_train_params_rsp(const void *data, uint8_t size)
print_field("Service Data: 0x%2.2x", rsp->service_data);
}
static void read_secure_conn_support_rsp(const void *data, uint8_t size)
{
const struct bt_hci_rsp_read_secure_conn_support *rsp = data;
print_status(rsp->status);
print_secure_conn_support(rsp->support);
}
static void write_secure_conn_support_cmd(const void *data, uint8_t size)
{
const struct bt_hci_cmd_write_secure_conn_support *cmd = data;
print_secure_conn_support(cmd->support);
}
static void read_auth_payload_timeout_cmd(const void *data, uint8_t size)
{
const struct bt_hci_cmd_read_auth_payload_timeout *cmd = data;
print_handle(cmd->handle);
}
static void read_auth_payload_timeout_rsp(const void *data, uint8_t size)
{
const struct bt_hci_rsp_read_auth_payload_timeout *rsp = data;
print_status(rsp->status);
print_handle(rsp->handle);
print_auth_payload_timeout(rsp->timeout);
}
static void write_auth_payload_timeout_cmd(const void *data, uint8_t size)
{
const struct bt_hci_cmd_write_auth_payload_timeout *cmd = data;
print_handle(cmd->handle);
print_auth_payload_timeout(cmd->timeout);
}
static void write_auth_payload_timeout_rsp(const void *data, uint8_t size)
{
const struct bt_hci_rsp_write_auth_payload_timeout *rsp = data;
print_status(rsp->status);
print_handle(rsp->handle);
}
static void read_local_oob_ext_data_rsp(const void *data, uint8_t size)
{
const struct bt_hci_rsp_read_local_oob_ext_data *rsp = data;
print_status(rsp->status);
print_hash("P-192", rsp->hash192);
print_randomizer("P-192", rsp->randomizer192);
print_hash("P-256", rsp->hash256);
print_randomizer("P-256", rsp->randomizer256);
}
static void read_local_version_rsp(const void *data, uint8_t size)
{
const struct bt_hci_rsp_read_local_version *rsp = data;
@ -5130,7 +5223,9 @@ static const struct opcode_data opcode_table[] = {
{ 0x0442, 249, "Set Connectionless Slave Broadcast Receive" },
{ 0x0443, 250, "Start Synchronization Train" },
{ 0x0444, 251, "Receive Synchronization Train" },
{ 0x0445, 257, "Remote OOB Extended Data Request Reply" },
{ 0x0445, 257, "Remote OOB Extended Data Request Reply",
remote_oob_ext_data_request_reply_cmd, 70, true,
status_bdaddr_rsp, 7, true },
/* OGF 2 - Link Policy */
{ 0x0801, 33, "Holde Mode",
@ -5417,11 +5512,21 @@ static const struct opcode_data opcode_table[] = {
null_cmd, 0, true,
read_sync_train_params_rsp, 8, true },
{ 0x0c78, 256, "Write Synchronization Train Parameters" },
{ 0x0c79, 258, "Read Secure Connections Host Support" },
{ 0x0c7a, 259, "Write Secure Connections Host Support" },
{ 0x0c7b, 260, "Read Authenticated Payload Timeout" },
{ 0x0c7c, 261, "Write Authenticated Payload Timeout" },
{ 0x0c7d, 262, "Read Local OOB Extended Data" },
{ 0x0c79, 258, "Read Secure Connections Host Support",
null_cmd, 0, true,
read_secure_conn_support_rsp, 2, true },
{ 0x0c7a, 259, "Write Secure Connections Host Support",
write_secure_conn_support_cmd, 1, true,
status_rsp, 1, true },
{ 0x0c7b, 260, "Read Authenticated Payload Timeout",
read_auth_payload_timeout_cmd, 2, true,
read_auth_payload_timeout_rsp, 5, true },
{ 0x0c7c, 261, "Write Authenticated Payload Timeout",
write_auth_payload_timeout_cmd, 4, true,
write_auth_payload_timeout_rsp, 3, true },
{ 0x0c7d, 262, "Read Local OOB Extended Data",
null_cmd, 0, true,
read_local_oob_ext_data_rsp, 65, true },
{ 0x0c7e, 264, "Read Extended Page Timeout" },
{ 0x0c7f, 265, "Write Extended Page Timeout" },
{ 0x0c80, 266, "Read Extended Inquiry Length" },
@ -6297,6 +6402,13 @@ static void amp_status_change_evt(const void *data, uint8_t size)
print_amp_status(evt->amp_status);
}
static void auth_payload_timeout_expired_evt(const void *data, uint8_t size)
{
const struct bt_hci_evt_auth_payload_timeout_expired *evt = data;
print_handle(evt->handle);
}
static void le_conn_complete_evt(const void *data, uint8_t size)
{
const struct bt_hci_evt_le_conn_complete *evt = data;
@ -6617,7 +6729,8 @@ static const struct event_data event_table[] = {
{ 0x54, "Slave Page Response Timeout" },
{ 0x55, "Connectionless Slave Broadcast Channel Map Change" },
{ 0x56, "Inquiry Response Notification" },
{ 0x57, "Authenticated Payload Timeout Expired" },
{ 0x57, "Authenticated Payload Timeout Expired",
auth_payload_timeout_expired_evt, 2, true },
{ 0xfe, "Testing" },
{ 0xff, "Vendor", vendor_evt, 0, false },
{ }