Linux bluetooth development
 help / color / mirror / Atom feed
* [PATCH BlueZ 0/2] Avoid local metadata Config notifications
@ 2026-09-16 10:28 dt
  2026-09-16 10:29 ` [PATCH BlueZ 1/2] shared/bap: Skip local metadata Config callbacks dt
  2026-09-16 10:31 ` [PATCH BlueZ 2/2] unit: Test metadata during BAP client reconfig dt
  0 siblings, 2 replies; 24+ messages in thread
From: dt @ 2026-09-16 10:28 UTC (permalink / raw)
  To: linux-bluetooth@vger.kernel.org

When a client reuses a Codec Configured ASE, caching local metadata
emits a CONFIG-to-CONFIG callback before the peer reports the new
codec configuration. The profile treats that callback as completion.
If the control point response arrives before the peer ASE notification,
QoS setup can run while the stream still needs reconfiguration.

The first patch caches metadata without emitting a client CONFIG
notification. Peer notifications, server metadata handling, and initial
IDLE metadata remain unchanged. The second patch adds regressions for
both remote Sink and Source ASEs: reuse a real configured stream,
verify metadata retention, reject QoS before the peer notification,
and require successful QoS request and wire exchange afterward.

Validation on canonical and GitHub master
 e2ec6827f7bed94912c23288a34f868e7002e847:

- make -j4 check: all 35 configured unit-test programs passed,
  including all 699 BAP cases.
- Both new regressions fail at the premature QoS assertion with only
  the source fix removed, and pass with it restored.
- git diff --check and checkpatch with the documented BlueZ options
  passed without diagnostics.

Two stock BlueZ 5.87 profile-switch captures showed local QoS failure
about 0.2 ms after Codec CP success and before fresh CONFIG arrived
about 2 ms after that response. Internal flags are a source-backed
inference, not directly observable in those captures.

The equivalent fix in a private BlueZ 5.87 build passed initial duplex
and three playback/duplex round trips. Control captures showed fresh
CONFIG before each QoS request and no extra Release during new
configuration. It was subsequently retained in the reporter's local
stack; the reporter now considers ordinary-use testing satisfactory.

Hardware testing used other local kernel and PipeWire changes. It was
not an isolated stock-stack A/B test, and the refreshed upstream daemon
has not been run on hardware. Earlier intermittent transport failures
and Receiver Stop Ready errors after Release are not claimed fixed by
this change. The regression tests cover the shared API and wire
fixtures, not the complete profile scheduler or four concurrent ASEs.

This differs from b3dd59987, which addressed initial metadata in IDLE.

Derek Tern (2):
  shared/bap: Skip local metadata Config callbacks
  unit: Test metadata during BAP client reconfig

 src/shared/bap.c |   5 ++
 unit/test-bap.c  | 134 +++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 139 insertions(+)


base-commit: e2ec6827f7bed94912c23288a34f868e7002e847
-- 
2.55.0


^ permalink raw reply	[flat|nested] 24+ messages in thread
[parent not found: <IGuo=5FED6hoZcdNfKi5TCkYNNfYCJKn1CUSYS4a4ZNZ9WjaZCMI3rmBzLoslV22TvEjShB4iyBBAec3nrM4mMGI=5Fr8dHKBUfAGLjZxXmgfIE=3D@proton.me>]

end of thread, other threads:[~2026-10-02 21:01 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-16 10:28 [PATCH BlueZ 0/2] Avoid local metadata Config notifications dt
2026-09-16 10:29 ` [PATCH BlueZ 1/2] shared/bap: Skip local metadata Config callbacks dt
2026-09-16 15:28   ` Avoid local metadata Config notifications bluez.test.bot
2026-09-16 17:11   ` [PATCH BlueZ 1/2] shared/bap: Skip local metadata Config callbacks Luiz Augusto von Dentz
2026-09-16 17:29   ` Luiz Augusto von Dentz
2026-09-17 14:35     ` dt
2026-09-17 14:37     ` [PATCH BlueZ v2 " dt
2026-09-17 14:39       ` [PATCH BlueZ v2 2/2] unit: Test metadata during BAP client reconfig dt
2026-10-01 15:44   ` Avoid local metadata Config notifications bluez.test.bot
2026-09-16 10:31 ` [PATCH BlueZ 2/2] unit: Test metadata during BAP client reconfig dt
2026-09-17 14:47   ` Luiz Augusto von Dentz
2026-09-17 15:28     ` [PATCH BlueZ v3 1/2] shared/bap: Skip local metadata Config callbacks dt
2026-09-17 15:30       ` [PATCH BlueZ v3 2/2] test-functional: Cover BAP metadata reconfiguration dt
2026-09-17 16:21         ` Luiz Augusto von Dentz
2026-09-17 17:00           ` [PATCH BlueZ v4 1/2] shared/bap: Skip local metadata Config callbacks dt
2026-09-17 17:03             ` [PATCH BlueZ v4 2/2] test-functional: Cover BAP metadata reconfiguration dt
2026-09-17 17:32               ` Luiz Augusto von Dentz
2026-09-17 19:12                 ` [PATCH BlueZ v5 1/3] shared/bap: Skip local metadata Config callbacks dt
2026-09-17 19:15                   ` [PATCH BlueZ v5 2/3] client: Pass unicast preset metadata to config dt
2026-09-17 19:19                   ` [PATCH BlueZ v5 3/3] test-functional: Cover BAP metadata reconfiguration dt
2026-09-17 21:11                   ` [BlueZ,v5,1/3] shared/bap: Skip local metadata Config callbacks bluez.test.bot
2026-09-18 17:20                   ` [PATCH BlueZ v5 1/3] " patchwork-bot+bluetooth
2026-10-02 21:01                   ` [BlueZ,v5,1/3] " bluez.test.bot
2026-09-17 18:06       ` [BlueZ,v3,1/2] " bluez.test.bot
     [not found] <IGuo=5FED6hoZcdNfKi5TCkYNNfYCJKn1CUSYS4a4ZNZ9WjaZCMI3rmBzLoslV22TvEjShB4iyBBAec3nrM4mMGI=5Fr8dHKBUfAGLjZxXmgfIE=3D@proton.me>
     [not found] ` <pEIogdpm1KrQokz6n7Vp2rMm4FqyjlQ2X2YtxXFBhhWy=5FIaqXXNp8K7EwDeohmT6yelHFNOy7IuYYi7ooLtT2zeODVf8LPoBiOTrs7ua3O4=3D@proton.me>
     [not found]   ` <CABBYNZ+hzc=5Fv=5Ft5xtwsMPDzrhFgLzUwcN6QmABy=5F=3DGqJjMHEHg@mail.gmail.com>
     [not found]     ` <6TMaqpYkRT0WXnrX1OlkxzNfaStK17vM4wQJWLFJWEP4ZZ=5FVRyfVhUEMg8KwzWWQzOsyUY8zEzSg1SBT04BDh9F9yC4Y9rft9GtBAzekwF4=3D@proton.me>
     [not found]       ` <70Tk7oozT7RMA83SmYEKlhm5sNES1V664l63179SDXwOnzZnXOurvxWa-gGmSDBQ=5FOS7=5F2m1ibyKcUr1=5FCBNoNFsnm-PdGGSOWGeXsgBH9k=3D@proton.me>
     [not found]         ` <CABBYNZ+OqjfHErzn96k6vw=5Fend=5FLLM8uECOgyeuncTxt0MJFFA@mail.gmail.com>
     [not found]           ` <BL2ma9jjRAUeT3MnEg6XM7bojQ-aauPDy75cebC98yo5E9OVFN0uhsKtemymwe6669o08bpgH5T9=5Ftqgx9tZ9NISnATcThQ8fJ4qujO7fZE=3D@proton.me>

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox