Re: [BlueZ PATCH v2] lib: Add definitions for advertisement monitor features

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Miao,

On Mon, May 18, 2020 at 8:14 PM Miao-chen Chou <mcchou@xxxxxxxxxxxx> wrote:
>
> This adds the following command opcodes, event codes and the corresponding
> structures.
> - MGMT_OP_READ_ADV_MONITOR_FEATURES
> - MGMT_OP_ADD_ADV_PATTERNS_MONITOR
> - MGMT_OP_REMOVE_ADV_MONITOR
> - MGMT_EV_ADV_MONITOR_ADDED
> - MGMT_EV_ADV_MONITOR_REMOVED
> ---
>
> Changes in v2:
> - Fix build failures.
>
>  lib/mgmt.h | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 51 insertions(+)
>
> diff --git a/lib/mgmt.h b/lib/mgmt.h
> index b4fc72069..6d7441ccc 100644
> --- a/lib/mgmt.h
> +++ b/lib/mgmt.h
> @@ -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 {
> +       uint32_t supported_features;
> +       uint32_t enabled_features;
> +       uint16_t max_num_handles;
> +       uint8_t max_num_patterns;
> +       uint16_t num_handles;
> +       uint16_t handles[0];
> +}  __packed;
> +
> +struct mgmt_adv_pattern {
> +       uint8_t ad_type;
> +       uint8_t offset;
> +       uint8_t length;
> +       uint8_t value[31];
> +} __packed;
> +
> +#define MGMT_OP_ADD_ADV_PATTERNS_MONITOR       0x004C
> +struct mgmt_cp_add_adv_patterns_monitor {
> +       uint8_t pattern_count;
> +       struct mgmt_adv_pattern patterns[0];
> +} __packed;
> +struct mgmt_rp_add_adv_patterns_monitor {
> +       uint16_t monitor_handle;
> +} __packed;
> +
> +#define MGMT_OP_REMOVE_ADV_MONITOR             0x004D
> +struct mgmt_cp_remove_adv_monitor {
> +       uint16_t monitor_handle;
> +} __packed;
> +struct mgmt_rp_remove_adv_monitor {
> +       uint16_t 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 {
> +       uint16_t monitor_handle;
> +}  __packed;
> +
> +#define MGMT_EV_ADV_MONITOR_REMOVED    0x0029
> +struct mgmt_ev_adv_monitor_removed {
> +       uint16_t 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[] = {
> --
> 2.26.2
>

Applied, thanks. Note I did adjust the opcodes so it matches the ones
used in the documentation, I've also dropped the pattern term from the
add command since we can assume a monitor will always be filtering
based on patterns and it is not used for the event.

-- 
Luiz Augusto von Dentz



[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux