Draft
Remove unnecessary ISO Rx/Tx ack serialization#16
Conversation
Co-authored-by: cvinayak <6350656+cvinayak@users.noreply.github.com>
Co-authored-by: cvinayak <6350656+cvinayak@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Add iso_ack MFIFO for context-safe ISO TX acknowledgment
Add iso_ack MFIFO for context-safe ISO TX acknowledgment
Jan 29, 2026
Co-authored-by: cvinayak <6350656+cvinayak@users.noreply.github.com>
Copilot
AI
changed the title
Add iso_ack MFIFO for context-safe ISO TX acknowledgment
Remove unnecessary ISO Rx/Tx ack serialization
Jan 29, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
ISO TX acknowledgments were being serialized with RX processing in
rx_demux(), similar to ACL connections. This serialization is unnecessary for ISO—TX acks can be processed independently.Changes
Removed ISO from rx_demux (ull.c)
rx_demux_iso_tx_ack()functionAdded independent ISO TX ack handler (ull_iso.c)
iso_tx_ack_demux()processes ISO TX acks in separate mayfly contextull_iso_lll_ack_enqueue()now schedules independent processing after MFIFO enqueueCleaned up exports (ull_iso_internal.h)
Architecture
Before:
After:
ISO TX acks now follow the same independent processing pattern as ISO RX (
iso_rx_demux()), eliminating unnecessary coupling between ISO RX and TX paths.Net: -48 lines
Original prompt
Add iso_ack MFIFO for Context-Safe ISO TX Acknowledgment
Problem Statement
The current implementation in
subsys/bluetooth/controller/ll_sw/ull_iso.chas architectural violations where LLL (Link Layer Low) context directly calls ULL (Upper Link Layer) functions:Current Unsafe Pattern
Design Requirement
Implement an iso_ack MFIFO similar to the existing conn_ack MFIFO pattern used for ACL connections to provide context-safe handoff between LLL and ULL.
Reference: ACL TX Ack Design Pattern
File:
subsys/bluetooth/controller/ll_sw/ull_conn.cProcessing in ULL context (ull.c lines 2700-2760):
rx_demux()callsrx_demux_conn_tx_ack()in ULL contextll_tx_ack_put()safely in ULL contextImplementation Design
Step 1: Define iso_ack MFIFO
File:
subsys/bluetooth/controller/ll_sw/ull_iso.cAdd after existing includes and before function definitions:
Step 2: Modify LLL Enqueue Function
Replace
ull_iso_lll_ack_enqueue()(lines 1469-1508) to use MFIFO:Step 3: Add ULL Dequeue Functions
Add helper functions for ULL to process iso_ack MFIFO: