[PATCH BlueZ v1 00/12] Add support for Shorter Connection Interval (SCI)
Luiz Augusto von Dentz <[email protected]> Fri, 24 Jul 2026 15:12:13 -0400
| Newsgroups | org.kernel.vger.linux-bluetooth |
|---|---|
| Message-ID | <[email protected]> |
From: Luiz Augusto von Dentz <[email protected]> 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