All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH BlueZ v1 00/11] Cover a BAP stream to a coordinated set
@ 2026-09-15 21:15 Luiz Augusto von Dentz
  2026-09-15 21:15 ` [PATCH BlueZ v1 01/11] shared/bass: add a ready callback Luiz Augusto von Dentz
                   ` (11 more replies)
  0 siblings, 12 replies; 15+ messages in thread
From: Luiz Augusto von Dentz @ 2026-09-15 21:15 UTC (permalink / raw)
  To: linux-bluetooth

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

These add the functional test cases for a BAP unicast stereo stream to
a coordinated set of two acceptors, one taking the left channel and one
the right, which is what a pair of earbuds does, together with the
fixes they turned out to need.

Covering a set takes three hosts talking to each other, which the
emulator does not get right: every device assigns its own connection
handles, but the events and the data delivered to the peer carried the
handle of the sender, so everything beyond the first link referred to a
handle the receiving side knows nothing about and was dropped. It is
invisible with two devices, as both sides then assign the same handles,
and it is what kept the second member of the set from exchanging
anything at all. A CIG was also limited to three CIS, one less than a
stereo stream to a set of two needs.

Encrypting the SIRK gave a value the initiator was unable to decrypt,
so the set was resolved under a SIRK that is not the one the members
were configured with: LE legacy pairing distributes one long term key
per role, and only the last one to arrive was kept, so the two sides
did not necessarily encrypt and decrypt with the same key.

The auto agent registers with no capability, which is KeyboardDisplay,
so a peer may well choose the entry of a passkey, a method the auto
agent has no answer for: the pairing then only completes once the
request times out, as a failure. A capability can now be given after
the name, e.g. auto:NoInputNoOutput, to pair Just Works instead.

The first two patches are a fix of their own, for a source pushed to a
BASS session before it is ready, and the rest of the test changes make
a failure easier to tell: a test now fails as soon as an operation
does, instead of waiting for its timeout, and reports what it is
waiting for while it waits.

The tests pass with "make check-functional", on their own as well as
alongside the others.

Luiz Augusto von Dentz (11):
  shared/bass: add a ready callback
  bass: wait for the session to be ready before pushing a source
  test: functional: report what a test is waiting for
  test: functional: answer the notification registered by the victim
  doc: describe the BAP coordinated set test cases
  emulator: use the handle of the receiving side
  emulator: allow the maximum number of CIS of a CIG
  device: keep the long term key of both roles
  client: allow a capability with the auto agent
  test: functional: fail as soon as an operation fails
  test: functional: add the BAP coordinated set tests

 client/agent.c                       |  14 +-
 client/main.c                        |  14 +-
 client/scripts/bap-sink-lc3-left.bt  |  30 ++++
 client/scripts/bap-sink-lc3-right.bt |  30 ++++
 doc/bluetoothctl.rst                 |   6 +-
 doc/functional-bap.rst               | 111 ++++++++++++
 emulator/btdev.c                     |  89 +++++++---
 profiles/audio/bass.c                | 124 +++++++++++--
 src/device.c                         |  45 +++--
 src/shared/bass.c                    | 107 +++++++++++
 src/shared/bass.h                    |   6 +
 test/functional/conftest.py          | 201 +++++++++++++++++++++
 test/functional/test_avrcp.py        |  13 ++
 test/functional/test_bap.py          | 256 ++++++++++++++++++++++++++-
 14 files changed, 987 insertions(+), 59 deletions(-)
 create mode 100644 client/scripts/bap-sink-lc3-left.bt
 create mode 100644 client/scripts/bap-sink-lc3-right.bt

-- 
2.55.0


^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2026-09-16 18:31 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-15 21:15 [PATCH BlueZ v1 00/11] Cover a BAP stream to a coordinated set Luiz Augusto von Dentz
2026-09-15 21:15 ` [PATCH BlueZ v1 01/11] shared/bass: add a ready callback Luiz Augusto von Dentz
2026-09-15 21:58   ` Cover a BAP stream to a coordinated set bluez.test.bot
2026-09-16  0:55   ` bluez.test.bot
2026-09-15 21:15 ` [PATCH BlueZ v1 02/11] bass: wait for the session to be ready before pushing a source Luiz Augusto von Dentz
2026-09-15 21:15 ` [PATCH BlueZ v1 03/11] test: functional: report what a test is waiting for Luiz Augusto von Dentz
2026-09-15 21:15 ` [PATCH BlueZ v1 04/11] test: functional: answer the notification registered by the victim Luiz Augusto von Dentz
2026-09-15 21:15 ` [PATCH BlueZ v1 05/11] doc: describe the BAP coordinated set test cases Luiz Augusto von Dentz
2026-09-15 21:15 ` [PATCH BlueZ v1 06/11] emulator: use the handle of the receiving side Luiz Augusto von Dentz
2026-09-15 21:15 ` [PATCH BlueZ v1 07/11] emulator: allow the maximum number of CIS of a CIG Luiz Augusto von Dentz
2026-09-15 21:15 ` [PATCH BlueZ v1 08/11] device: keep the long term key of both roles Luiz Augusto von Dentz
2026-09-15 21:15 ` [PATCH BlueZ v1 09/11] client: allow a capability with the auto agent Luiz Augusto von Dentz
2026-09-15 21:15 ` [PATCH BlueZ v1 10/11] test: functional: fail as soon as an operation fails Luiz Augusto von Dentz
2026-09-15 21:15 ` [PATCH BlueZ v1 11/11] test: functional: add the BAP coordinated set tests Luiz Augusto von Dentz
2026-09-16 18:30 ` [PATCH BlueZ v1 00/11] Cover a BAP stream to a coordinated set patchwork-bot+bluetooth

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.