From: Andreas Kemnade <andreas@kemnade.info>
To: Carey Sonsino <csonsino@gmail.com>
Cc: Marcel Holtmann <marcel@holtmann.org>,
Johan Hedberg <johan.hedberg@gmail.com>,
Jamie Mccrae <Jamie.Mccrae@lairdconnect.com>,
"linux-bluetooth@vger.kernel.org"
<linux-bluetooth@vger.kernel.org>
Subject: Re: [PATCH 1/1] bluetooth: update default BLE connection interval bounds
Date: Fri, 23 Aug 2019 15:45:59 +0200 [thread overview]
Message-ID: <20190823154559.1f203fac@aktux> (raw)
In-Reply-To: <1c707bb9-999b-7ca3-3c91-7b183dacfdd5@gmail.com>
Hi,
On Tue, 20 Aug 2019 11:01:41 -0600
Carey Sonsino <csonsino@gmail.com> wrote:
> Update the default BLE connection interval min/max bounds to the full
> range of permitted values (6-3200, corresponding to 7.25-4000ms).
>
> Commit c49a8682fc5d298d44e8d911f4fa14690ea9485e introduced a bounds
> check on connection interval update requests, but the default min/max
> values were left at 24-40 (30-50ms) which caused problems for devices
> that want to negotiate connection intervals outside of those bounds.
>
> Setting the default min/max connection interval to the full allowable
> range in the bluetooth specification restores the default Linux behavior
> of allowing remote devices to negotiate their desired connection
> interval, while still permitting the system administrator to later
> narrow the range.
>
> Fixes c49a8682fc5d: (validate BLE connection interval updates)
>
Trying pair XX:XX:XX:XX:XX:XX in bluetoothctl
leads to create connection commands containing
le_conn_max_interval > le_supv_timeout (4000ms > 420ms) which the
controller does not like and is imho not allowed.
< HCI Command: LE Create Connection (0x08|0x000d) plen 25
bdaddr XX:XX:XX:XX:XX:XX type 0
interval 96 window 96 initiator_filter 0
own_bdaddr_type 0 min_interval 6 max_interval 3200
latency 0 supervision_to 42 min_ce 0 max_ce 0
> HCI Event: Command Status (0x0f) plen 4
LE Create Connection (0x08|0x000d) status 0x12 ncmd 1
Error: Invalid HCI Command Parameters
> Signed-off-by: Carey Sonsino <csonsino@gmail.com>
>
> ---
>
> diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c
> index 04bc79359a17..f4f2f712c527 100644
> --- a/net/bluetooth/hci_core.c
> +++ b/net/bluetooth/hci_core.c
> @@ -3181,8 +3181,8 @@ struct hci_dev *hci_alloc_dev(void)
> hdev->le_adv_max_interval = 0x0800;
> hdev->le_scan_interval = 0x0060;
> hdev->le_scan_window = 0x0030;
> - hdev->le_conn_min_interval = 0x0018;
> - hdev->le_conn_max_interval = 0x0028;
> + hdev->le_conn_min_interval = 0x0006;
> + hdev->le_conn_max_interval = 0x0c80;
> hdev->le_conn_latency = 0x0000;
> hdev->le_supv_timeout = 0x002a;
> hdev->le_def_tx_len = 0x001b;
hmm, what happened with the tabs here? I needed to manually apply it.
Regards,
Andreas
next prev parent reply other threads:[~2019-08-23 13:46 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-08-20 17:01 [PATCH 1/1] bluetooth: update default BLE connection interval bounds Carey Sonsino
2019-08-23 10:52 ` Johan Hedberg
2019-08-23 13:45 ` Andreas Kemnade [this message]
2019-08-23 17:50 ` Carey Sonsino
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190823154559.1f203fac@aktux \
--to=andreas@kemnade.info \
--cc=Jamie.Mccrae@lairdconnect.com \
--cc=csonsino@gmail.com \
--cc=johan.hedberg@gmail.com \
--cc=linux-bluetooth@vger.kernel.org \
--cc=marcel@holtmann.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.