@@ -628,6 +628,42 @@ struct mgmt_rp_set_exp_feature {
uint32_t flags;
} __packed;
+#define MGMT_ADV_MONITOR_FEATURE_MASK_OR_PATTERNS (1 << 0)
+
+#define MGMT_OP_READ_ADV_MONITOR_FEATURES 0x004B
+struct mgmt_rp_read_adv_monitor_features {
+ __u32 supported_features;
+ __u32 enabled_features;
+ __u16 max_num_handles;
+ __u8 max_num_patterns;
+ __16 num_handles;
+ __16 handles[0];
+} __packed;
+
+struct mgmt_adv_pattern {
+ __u8 ad_type;
+ __u8 offset;
+ __u8 length;
+ __u8 value[31];
+} __packed;
+
+#define MGMT_OP_ADD_ADV_PATTERNS_MONITOR 0x004C
+struct mgmt_cp_add_adv_patterns_monitor {
+ __u8 pattern_count;
+ struct mgmt_adv_pattern patterns[0];
+} __packed;
+struct mgmt_rp_add_adv_patterns_monitor {
+ __u16 monitor_handle;
+} __packed;
+
+#define MGMT_OP_REMOVE_ADV_MONITOR 0x004D
+struct mgmt_cp_remove_adv_monitor {
+ __u16 monitor_handle;
+} __packed;
+struct mgmt_rp_remove_adv_monitor {
+ __u16 monitor_handle;
+} __packed;
+
#define MGMT_EV_CMD_COMPLETE 0x0001
struct mgmt_ev_cmd_complete {
uint16_t opcode;
@@ -857,6 +893,16 @@ struct mgmt_ev_exp_feature_changed {
uint32_t flags;
} __packed;
+#define MGMT_EV_ADV_MONITOR_ADDED 0x0028
+struct mgmt_ev_adv_monitor_added {
+ __u16 monitor_handle;
+} __packed;
+
+#define MGMT_EV_ADV_MONITOR_REMOVED 0x0029
+struct mgmt_ev_adv_monitor_removed {
+ __u16 monitor_handle;
+} __packed;
+
static const char *mgmt_op[] = {
"<0x0000>",
"Read Version",
@@ -933,6 +979,9 @@ static const char *mgmt_op[] = {
"Read Security Information", /* 0x0048 */
"Read Experimental Features Information",
"Set Experimental Feature",
+ "Read Advertisement Monitor Features",
+ "Add Advertisement Patterns Monitor",
+ "Remove Advertisement Monitor",
};
static const char *mgmt_ev[] = {
@@ -976,6 +1025,8 @@ static const char *mgmt_ev[] = {
"Extended Controller Information Changed",
"PHY Configuration Changed",
"Experimental Feature Changed",
+ "Advertisement Monitor Added", /* 0x0028 */
+ "Advertisement Monitor Removed",
};
static const char *mgmt_status[] = {