summaryrefslogtreecommitdiff
path: root/monitor/packet.c
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2021-03-19 20:29:51 +0100
committerMarcel Holtmann <marcel@holtmann.org>2021-03-19 20:29:51 +0100
commit3d9ff9d52edf0b2ad4f7c878b6197dc369240d04 (patch)
treee68482d2969bf47d9bcfc182f05fb0100c8031ea /monitor/packet.c
parent8e2d46d8b1cfa8169aa70eb50c9807add934e555 (diff)
downloadbluez-3d9ff9d52edf0b2ad4f7c878b6197dc369240d04.tar.gz
monitor: Add basic decoding for MSFT extension
Diffstat (limited to 'monitor/packet.c')
-rw-r--r--monitor/packet.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/monitor/packet.c b/monitor/packet.c
index 0c98fd766..2fdea532d 100644
--- a/monitor/packet.c
+++ b/monitor/packet.c
@@ -2638,6 +2638,16 @@ static const struct bitfield_data features_le[] = {
{ }
};
+static const struct bitfield_data features_msft[] = {
+ { 0, "RSSI Monitoring feature for BR/EDR" },
+ { 1, "RSSI Monitoring feature for LE connections" },
+ { 2, "RSSI Monitoring of LE advertisements" },
+ { 3, "Advertising Monitoring of LE advertisements" },
+ { 4, "Verifying the validity of P-192 and P-256 keys" },
+ { 5, "Continuous Advertising Monitoring" },
+ { }
+};
+
static void print_features(uint8_t page, const uint8_t *features_array,
uint8_t type)
{
@@ -2674,6 +2684,13 @@ static void print_features(uint8_t page, const uint8_t *features_array,
break;
}
break;
+ case 0xf0:
+ switch (page) {
+ case 0:
+ features_table = features_msft;
+ break;
+ }
+ break;
}
if (!features_table)
@@ -2695,6 +2712,11 @@ void packet_print_features_ll(const uint8_t *features)
print_features(0, features, 0x01);
}
+void packet_print_features_msft(const uint8_t *features)
+{
+ print_features(0, features, 0xf0);
+}
+
#define LE_STATE_SCAN_ADV 0x0001
#define LE_STATE_CONN_ADV 0x0002
#define LE_STATE_NONCONN_ADV 0x0004