Re: [PATCH v1] Bluetooth: Return whether a connection is outbound

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

 



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@xxxxxxxxxxxx>
> Reviewed-by: Alain Michaud <alainm@xxxxxxxxxxxx>
> Signed-off-by: Yu Liu <yudiliu@xxxxxxxxxx>
> ---
> 
> 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




[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