diff --git a/monitor/packet.c b/monitor/packet.c
index f260ee0..c30b52b 100644
--- a/monitor/packet.c
+++ b/monitor/packet.c
{ }
};
-static void print_features(uint8_t page, const uint8_t *features_array)
+static const struct features_data features_le[] = {
+ { 0, "LE Encryption" },
+ { }
+};
+
+static void print_features(uint8_t page, const uint8_t *features_array,
+ uint8_t type)
{
const struct features_data *features_table = NULL;
uint64_t mask, features = 0;
print_field("Features:%s", str);
- switch (page) {
- case 0:
- features_table = features_page0;
- break;
- case 1:
- features_table = features_page1;
+ switch (type) {
+ case 0x00:
+ switch (page) {
+ case 0:
+ features_table = features_page0;
+ break;
+ case 1:
+ features_table = features_page1;
+ break;
+ case 2:
+ features_table = features_page2;
+ break;
+ }
break;
- case 2:
- features_table = features_page2;
+ case 0x01:
+ switch (page) {
+ case 0:
+ features_table = features_le;
+ break;
+ }
break;
}
const struct bt_hci_rsp_read_local_features *rsp = data;
print_status(rsp->status);
- print_features(0, rsp->features);
+ print_features(0, rsp->features, 0x00);
}
static void read_local_ext_features_cmd(const void *data, uint8_t size)
print_status(rsp->status);
print_field("Page: %d/%d", rsp->page, rsp->max_page);
- print_features(rsp->page, rsp->features);
+ print_features(rsp->page, rsp->features, 0x00);
}
static void read_buffer_size_rsp(const void *data, uint8_t size)
const struct bt_hci_rsp_le_read_local_features *rsp = data;
print_status(rsp->status);
- print_features(0, rsp->features);
+ print_features(0, rsp->features, 0x01);
}
static void le_set_random_address_cmd(const void *data, uint8_t size)
print_status(evt->status);
print_handle(evt->handle);
- print_features(0, evt->features);
+ print_features(0, evt->features, 0x00);
}
static void remote_version_complete_evt(const void *data, uint8_t size)
print_status(evt->status);
print_handle(evt->handle);
print_field("Page: %d/%d", evt->page, evt->max_page);
- print_features(evt->page, evt->features);
+ print_features(evt->page, evt->features, 0x00);
}
static void sync_conn_complete_evt(const void *data, uint8_t size)
const struct bt_hci_evt_remote_host_features_notify *evt = data;
print_bdaddr(evt->bdaddr);
- print_features(1, evt->features);
+ print_features(1, evt->features, 0x00);
}
static void phy_link_complete_evt(const void *data, uint8_t size)
print_status(evt->status);
print_handle(evt->handle);
- print_features(0, evt->features);
+ print_features(0, evt->features, 0x01);
}
static void le_long_term_key_request_evt(const void *data, uint8_t size)