Linux bluetooth development
 help / color / mirror / Atom feed
From: Luiz Augusto von Dentz <luiz.dentz@gmail.com>
To: linux-bluetooth@vger.kernel.org
Subject: [PATCH BlueZ v1 00/12] Add support for Shorter Connection Interval (SCI)
Date: Fri, 24 Jul 2026 15:12:13 -0400	[thread overview]
Message-ID: <20260724191225.1815634-1-luiz.dentz@gmail.com> (raw)

From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>

This series adds support for the Shorter Connection Interval (SCI) feature
introduced in Bluetooth Core Specification 6.2 and used by HIDS 1.1 / HOGP
v1.2.

SCI allows an LE ACL connection to use very short connection intervals (as
low as 1.25 ms) combined with a subrating factor, so a device such as a HID
peripheral can achieve low input latency while keeping power consumption
manageable. The connection rate parameters (connection interval range,
subrate factor range, peripheral latency, continuation number and
supervision timeout) are negotiated with the LE Connection Rate Request
procedure.

The series covers the full stack:

- HIDS 1.1 GATT discovery: the HID SCI Mode (0x2C39) and HID SCI Information
  (0x2C3A) characteristics, and the SCI flags in the HID Information
  characteristic.

- Management interface: a new Shorter Connection Interval setting (bit 25) to
  advertise controller support, a Load Connection Subrate command (0x005C) to
  load per-device connection subrate parameters, and a Connection Subrate
  event (0x0033) to report rate changes. Parameters are persisted per device
  in the [ConnectionSubrate] storage group.

- bluetoothctl: a conn-subrate command in the mgmt submenu to load subrate
  parameters, pre or post connection.

- monitor (btmon) decoding for the new command, setting and event.

- Emulation and tests: btdev and bthost gain SCI command/event support, and
  mgmt-tester and l2cap-tester cover the setting, the Load Connection Subrate
  command and connections for each of the four HOGP v1.2 recommended modes
  (Fast, Default, Low Power and Full Range), on both the client (central) and
  server (peripheral) side.

The corresponding kernel support (HCI commands/events, the SCI feature init
sequence and the MGMT Load Connection Subrate command) has already been
submitted separately.

HCI reference for the feature this series builds on:

  Commands (OGF 0x08):
    HCI_LE_Connection_Rate_Request              0x00A1 (octet 48 bit 5)
    HCI_LE_Set_Default_Rate_Parameters          0x00A2 (octet 48 bit 6)
    HCI_LE_Read_Min_Supported_Conn_Interval     0x00A3 (octet 48 bit 7)

  Event:
    LE Connection Rate Change                   subevent 0x37

  Feature bits (LE feature page 1, via LE Read All Local Features):
    Shorter Connection Intervals                page 1 bit 8
    Shorter Connection Intervals (Host Support) page 1 bit 9

Luiz Augusto von Dentz (12):
  input/hog-lib: Add discovery support for HIDS 1.1 SCI attributes
  emulator/btdev: Add emulation support for HIDS 1.1 SCI commands
  mgmt: Add Shorter Connection Interval setting and Load Connection
    Subrate
  mgmt-tester: Add tests for SCI setting and Load Connection Subrate
  adapter: Add support for loading connection subrate parameters
  monitor: Add decoding for Load Connection Subrate, SCI setting and
    event
  doc: Document ConnectionSubrate storage format
  client/mgmt: Add conn-subrate command
  mgmt-tester: Add HIDS recommended SCI parameter tests
  l2cap-tester: Add SCI mode tests for LE client connections
  emulator/bthost: Add LE Connection Rate Request support
  l2cap-tester: Add SCI mode tests for LE server connections

 client/mgmt.c             |  88 ++++++++++++++++++
 doc/bluetoothctl-mgmt.rst |  21 +++++
 doc/mgmt-protocol.rst     | 125 ++++++++++++++++++++++++++
 doc/settings-storage.txt  |  22 +++++
 emulator/btdev.c          | 107 ++++++++++++++++++++++
 emulator/btdev.h          |   1 +
 emulator/bthost.c         |  36 ++++++++
 emulator/bthost.h         |  14 +++
 emulator/hciemu.c         |   3 +
 emulator/hciemu.h         |   1 +
 lib/bluetooth/mgmt.h      |  31 +++++++
 monitor/packet.c          |  62 +++++++++++++
 profiles/input/hog-lib.c  | 106 +++++++++++++++++++++-
 src/adapter.c             | 172 ++++++++++++++++++++++++++++++++++++
 tools/l2cap-tester.c      | 181 ++++++++++++++++++++++++++++++++++++++
 tools/mgmt-tester.c       | 163 ++++++++++++++++++++++++++++++++++
 16 files changed, 1132 insertions(+), 1 deletion(-)

-- 
2.54.0


             reply	other threads:[~2026-07-24 19:12 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-24 19:12 Luiz Augusto von Dentz [this message]
2026-07-24 19:12 ` [PATCH BlueZ v1 01/12] input/hog-lib: Add discovery support for HIDS 1.1 SCI attributes Luiz Augusto von Dentz
2026-07-24 20:41   ` Add support for Shorter Connection Interval (SCI) bluez.test.bot
2026-07-24 19:12 ` [PATCH BlueZ v1 02/12] emulator/btdev: Add emulation support for HIDS 1.1 SCI commands Luiz Augusto von Dentz
2026-07-24 19:12 ` [PATCH BlueZ v1 03/12] mgmt: Add Shorter Connection Interval setting and Load Connection Subrate Luiz Augusto von Dentz
2026-07-24 19:12 ` [PATCH BlueZ v1 04/12] mgmt-tester: Add tests for SCI " Luiz Augusto von Dentz
2026-07-24 19:12 ` [PATCH BlueZ v1 05/12] adapter: Add support for loading connection subrate parameters Luiz Augusto von Dentz
2026-07-24 19:12 ` [PATCH BlueZ v1 06/12] monitor: Add decoding for Load Connection Subrate, SCI setting and event Luiz Augusto von Dentz
2026-07-24 19:12 ` [PATCH BlueZ v1 07/12] doc: Document ConnectionSubrate storage format Luiz Augusto von Dentz
2026-07-24 19:12 ` [PATCH BlueZ v1 08/12] client/mgmt: Add conn-subrate command Luiz Augusto von Dentz
2026-07-24 19:12 ` [PATCH BlueZ v1 09/12] mgmt-tester: Add HIDS recommended SCI parameter tests Luiz Augusto von Dentz
2026-07-24 19:12 ` [PATCH BlueZ v1 10/12] l2cap-tester: Add SCI mode tests for LE client connections Luiz Augusto von Dentz
2026-07-24 19:12 ` [PATCH BlueZ v1 11/12] emulator/bthost: Add LE Connection Rate Request support Luiz Augusto von Dentz
2026-07-24 19:12 ` [PATCH BlueZ v1 12/12] l2cap-tester: Add SCI mode tests for LE server connections Luiz Augusto von Dentz

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=20260724191225.1815634-1-luiz.dentz@gmail.com \
    --to=luiz.dentz@gmail.com \
    --cc=linux-bluetooth@vger.kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox