[RFC v3 00/12] LE auto connection and connection parameters
From: Andre Guedes <hidden>
Date: 2013-11-20 22:08:48
Hi all,
The main changes from the previous version are:
* Debugfs interface to add auto connect address instead of new mgmt
commands.
* We always stop LE scanning in favor of connection establishment even if
the controller supports scanning and connection at the same time.
* Background scanning is now controlled in one single place (hci_update_
background_scan function).
* RCU was replaced by hdev->lock to protect hdev->le_conn_params list. After
all the changes since the original version of this patch set, I realized
we always operate on hdev->le_conn_params with hdev->lock held so there is
no point in use RCU to protect this list.
In order to test the LE auto connection mechanism please follow the
instructions below.
To add a new auto connection address we write on le_auto_conn file following
the format <address> <address type> <auto_connect>.
The <address type> values are:
* 0 for public address
* 1 for random address
The <auto_connect> values are (for more details see struct hci_conn_params):
* 0 for disabled
* 1 for always
* 2 for link loss
So for instance, if you want the kernel autonomously establishes connections
with device AA:BB:CC:DD:EE:FF (public address) every time the device enters in
connectable mode (starts advertising), you should run the command:
$ echo "AA:BB:CC:DD:EE:FF 0 1" > /sys/kernel/debug/bluetooth/hci0/le_auto_conn
To get the list of connection parameters configured in kernel, read the
le_auto_conn file:
$ cat /sys/kernel/debug/bluetooth/hci0/le_auto_conn
Finally, to clear the connection parameters list, write an empty string:
$ echo "" > /sys/kernel/debug/bluetooth/hci0/le_auto_conn
Regards,
Andre Guedes
Andre Guedes (12):
Bluetooth: Save connection interval parameters in hci_conn
Bluetooth: Group list_head fields from strcut hci_dev together
Bluetooth: Introduce connection parameters list
Bluetooth: Use connection parameters if any
Bluetooth: Stop scanning on LE connection
Bluetooth: Introduce hdev->pend_le_conn list
Bluetooth: Introduce LE auto connection infrastructure
Bluetooth: Re-enable background scan in case of error
Bluetooth: Temporarily stop background scanning on discovery
Bluetooth: Auto connection and power on
Bleutooth: Add support for auto connect options
Bluetooth: Add le_auto_conn file on debugfs
include/net/bluetooth/hci_core.h | 43 +++++-
net/bluetooth/hci_conn.c | 39 ++++-
net/bluetooth/hci_core.c | 318 +++++++++++++++++++++++++++++++++++++++
net/bluetooth/hci_event.c | 60 ++++++++
net/bluetooth/mgmt.c | 25 ++-
5 files changed, 473 insertions(+), 12 deletions(-)
--
1.8.4