-
Notifications
You must be signed in to change notification settings - Fork 6.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Bluetooth: Host: Application-managed L2CAP credits #57485
Comments
To fix this regression, we need to make The Host could interpret the But sometimes, the application layer has more information than the Host, and wishes to use credits a specialized fashion. So this is an opportunity define an alternative simplified API for L2CAP that presents the application directly with L2CAP PDUs and allows the application to control the credits explicitly. In the case of ASHA, the specification guarantees that no L2CAP segmentation will occur, so this is perfect. This simplified API would allow applications that have this kind of guarantee to omit compiling in code for L2CAP fragmentation. This API would also benefit applications wish to optimize throughput by making use of some known guarantees or at the cost of reliability. |
This is an alternative API for the L2CAP receive functionality. It allows an application the receive L2CAP segments directly and manage credits explictly. The API is guarded by an experimental kconfig option. Fixes: zephyrproject-rtos#57485 Signed-off-by: Aleksander Wasaznik <aleksander.wasaznik@nordicsemi.no>
This is an alternative API for the L2CAP receive functionality. It allows an application the receive L2CAP segments directly and manage credits explictly. The API is guarded by an experimental kconfig option. Fixes: zephyrproject-rtos#57485 Signed-off-by: Aleksander Wasaznik <aleksander.wasaznik@nordicsemi.no>
This is an alternative API for the L2CAP receive functionality. It allows an application the receive L2CAP segments directly and manage credits explictly. The API is guarded by an experimental kconfig option. Fixes: zephyrproject-rtos#57485 Signed-off-by: Aleksander Wasaznik <aleksander.wasaznik@nordicsemi.no>
This is an alternative API for the L2CAP receive functionality. It allows an application the receive L2CAP segments directly and manage credits explictly. The API is guarded by an experimental kconfig option. Fixes: zephyrproject-rtos#57485 Signed-off-by: Aleksander Wasaznik <aleksander.wasaznik@nordicsemi.no>
This is an alternative API for the L2CAP receive functionality. It allows an application the receive L2CAP segments directly and manage credits explictly. The API is guarded by an experimental kconfig option. Fixes: zephyrproject-rtos#57485 Signed-off-by: Aleksander Wasaznik <aleksander.wasaznik@nordicsemi.no>
This is an alternative API for the L2CAP receive functionality. It allows an application the receive L2CAP segments directly and manage credits explictly. The API is guarded by an experimental kconfig option. Fixes: zephyrproject-rtos#57485 Signed-off-by: Aleksander Wasaznik <aleksander.wasaznik@nordicsemi.no>
This is an alternative API for the L2CAP receive functionality. It allows an application the receive L2CAP segments directly and manage credits explictly. The API is guarded by an experimental kconfig option. Fixes: zephyrproject-rtos#57485 Signed-off-by: Aleksander Wasaznik <aleksander.wasaznik@nordicsemi.no>
This is an alternative API for the L2CAP receive functionality. It allows an application the receive L2CAP segments directly and manage credits explictly. The API is guarded by an experimental kconfig option. Fixes: zephyrproject-rtos#57485 Signed-off-by: Aleksander Wasaznik <aleksander.wasaznik@nordicsemi.no>
This is an alternative API for the L2CAP receive functionality. It allows an application the receive L2CAP segments directly and manage credits explictly. The API is guarded by an experimental kconfig option. Fixes: zephyrproject-rtos#57485 Signed-off-by: Aleksander Wasaznik <aleksander.wasaznik@nordicsemi.no>
This is an alternative API for the L2CAP receive functionality. It allows an application the receive L2CAP segments directly and manage credits explictly. The API is guarded by an experimental kconfig option. Fixes: #57485 Signed-off-by: Aleksander Wasaznik <aleksander.wasaznik@nordicsemi.no>
This is an alternative API for the L2CAP receive functionality. It allows an application the receive L2CAP segments directly and manage credits explictly. The API is guarded by an experimental kconfig option. (cherry picked from commit 92fcd9e) Original-Fixes: zephyrproject-rtos/zephyr#57485 Original-Signed-off-by: Aleksander Wasaznik <aleksander.wasaznik@nordicsemi.no> GitOrigin-RevId: 92fcd9e Change-Id: I25cb29c539c194a638aadb31a6abcd5015b0a723 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/zephyr/+/4566174 Commit-Queue: Keith Short <keithshort@chromium.org> Tested-by: CopyBot Service Account <copybot.service@gmail.com> Reviewed-by: Keith Short <keithshort@chromium.org> Tested-by: Keith Short <keithshort@chromium.org>
Android ASHA requires an initial credit count of 8. It is not possible to satisfy this requirement in Zephyr after the change in the L2CAP credit fix. This requirement is vital for interoperability with current software1.
Footnotes
The Android implementation does actually not enforce 8 initial credits, but uses the actual received initial credits in a calculation. This calculation does not deal well with just 1 initial credit. ↩
The text was updated successfully, but these errors were encountered: