Re: [PATCH v1 1/5] Bluetooth: advmon offload MSFT add rssi support

From: Marcel Holtmann
Date: Thu Dec 03 2020 - 09:04:32 EST


Hi Archie,

> MSFT needs rssi parameter for monitoring advertisement packet,
> therefore we should supply them from mgmt.
>
> Signed-off-by: Archie Pusaka <apusaka@xxxxxxxxxxxx>
> Reviewed-by: Miao-chen Chou <mcchou@xxxxxxxxxxxx>
> Reviewed-by: Yun-Hao Chung <howardchung@xxxxxxxxxx>

I don’t need any Reviewed-by if they are not catching an obvious user API breakage.

> ---
>
> include/net/bluetooth/hci_core.h | 9 +++++++++
> include/net/bluetooth/mgmt.h | 9 +++++++++
> net/bluetooth/mgmt.c | 8 ++++++++
> 3 files changed, 26 insertions(+)
>
> diff --git a/include/net/bluetooth/hci_core.h b/include/net/bluetooth/hci_core.h
> index 9873e1c8cd16..42d446417817 100644
> --- a/include/net/bluetooth/hci_core.h
> +++ b/include/net/bluetooth/hci_core.h
> @@ -246,8 +246,17 @@ struct adv_pattern {
> __u8 value[HCI_MAX_AD_LENGTH];
> };
>
> +struct adv_rssi_thresholds {
> + __s8 low_threshold;
> + __s8 high_threshold;
> + __u16 low_threshold_timeout;
> + __u16 high_threshold_timeout;
> + __u8 sampling_period;
> +};
> +
> struct adv_monitor {
> struct list_head patterns;
> + struct adv_rssi_thresholds rssi;
> bool active;
> __u16 handle;
> };
> diff --git a/include/net/bluetooth/mgmt.h b/include/net/bluetooth/mgmt.h
> index d8367850e8cd..dc534837be0e 100644
> --- a/include/net/bluetooth/mgmt.h
> +++ b/include/net/bluetooth/mgmt.h
> @@ -763,9 +763,18 @@ struct mgmt_adv_pattern {
> __u8 value[31];
> } __packed;
>
> +struct mgmt_adv_rssi_thresholds {
> + __s8 high_threshold;
> + __le16 high_threshold_timeout;
> + __s8 low_threshold;
> + __le16 low_threshold_timeout;
> + __u8 sampling_period;
> +} __packed;
> +
> #define MGMT_OP_ADD_ADV_PATTERNS_MONITOR 0x0052
> struct mgmt_cp_add_adv_patterns_monitor {
> __u8 pattern_count;
> + struct mgmt_adv_rssi_thresholds rssi;
> struct mgmt_adv_pattern patterns[];
> } __packed;

This is something we can not do. It breaks an userspace facing API. Is the mgmt opcode 0x0052 in an already released kernel?

Regards

Marcel