lkml.org 
[lkml]   [2021]   [Apr]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH v1] Bluetooth: Return whether a connection is outbound
From
Date
Hi Yu,

> When an MGMT_EV_DEVICE_CONNECTED event is reported back to the user
> space we will set the flags to tell if the established connection is
> outbound or not. This is useful for the user space to log better metrics
> and error messages.
>
> Reviewed-by: Miao-chen Chou <mcchou@chromium.org>
> Reviewed-by: Alain Michaud <alainm@chromium.org>
> Signed-off-by: Yu Liu <yudiliu@google.com>
> ---
>
> Changes in v1:
> - Initial change
>
> include/net/bluetooth/mgmt.h | 2 ++
> net/bluetooth/mgmt.c | 5 +++++
> 2 files changed, 7 insertions(+)
>
> diff --git a/include/net/bluetooth/mgmt.h b/include/net/bluetooth/mgmt.h
> index a7cffb069565..7cc724386b00 100644
> --- a/include/net/bluetooth/mgmt.h
> +++ b/include/net/bluetooth/mgmt.h
> @@ -885,6 +885,8 @@ struct mgmt_ev_new_long_term_key {
> struct mgmt_ltk_info key;
> } __packed;
>
> +#define MGMT_DEV_CONN_INITIATED_CONNECTION 0x08
> +

I would just add this to MGMT_DEV_FOUND_INITIATED_CONN 0x08. And yes, I realize that this is a bit weird, but then all values are in one place.

> #define MGMT_EV_DEVICE_CONNECTED 0x000B
> struct mgmt_ev_device_connected {
> struct mgmt_addr_info addr;
> diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c
> index 09e099c419f2..77213e67e8e4 100644
> --- a/net/bluetooth/mgmt.c
> +++ b/net/bluetooth/mgmt.c
> @@ -8774,6 +8774,11 @@ void mgmt_device_connected(struct hci_dev *hdev, struct hci_conn *conn,
> bacpy(&ev->addr.bdaddr, &conn->dst);
> ev->addr.type = link_to_bdaddr(conn->type, conn->dst_type);

So the prototype of mgmt_device_connected needs to be changed to remove the flags parameter. It is not used at all.

>
> + if (conn->out)
> + flags |= MGMT_DEV_CONN_INITIATED_CONNECTION;
> + else
> + flags &= ~MGMT_DEV_CONN_INITIATED_CONNECTION;
> +

And then this should be just this:

if (conn->out)
flags |= MGMT_DEV_CONN_INITIATED_CONNECTION;

> ev->flags = __cpu_to_le32(flags);
>
> /* We must ensure that the EIR Data fields are ordered and

Regards

Marcel

\
 
 \ /
  Last update: 2021-04-09 16:14    [W:0.034 / U:2.072 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site