bluetooth: controller: Add ISO-AL TX unframed fragmentation

- Implemented ISO-AL TX interface functions for fragmentation of
  unframed PDUs
- Implemented ISO-AL source construct and its creation for an input
  data path

Signed-off-by: Nirosharn Amarasinghe <niag@demant.com>
This commit is contained in:
Nirosharn Amarasinghe 2022-03-18 09:35:17 +01:00 committed by Carles Cufí
commit 3cdaf72d9d
8 changed files with 914 additions and 36 deletions

View file

@ -0,0 +1,12 @@
# Bluetooth Controller configuration options for ISO-AL Unit Tests
# Copyright (c) 2022 Oticon A/S
# SPDX-License-Identifier: Apache-2.0
config BT_CTLR_ISOAL_SINKS
int "Number of Isochronous Adaptation Layer sinks (for unittest)"
config BT_CTLR_ISOAL_SOURCES
int "Number of Isochronous Adaptation Layer sinks (for unittest)"
source "Kconfig.zephyr"

View file

@ -6,3 +6,6 @@ CONFIG_ZTEST_MOCKING=y
CONFIG_ZTEST_PARAMETER_COUNT=32
CONFIG_ZTEST_ASSERT_HOOK=y
CONFIG_BT_CTLR_ISOAL_SINKS=4
CONFIG_BT_CTLR_ISOAL_SOURCES=4

View file

@ -515,7 +515,7 @@ void test_unframed_long_pdu_short_sdu(void)
*/
void test_sink_create_destroy(void)
{
isoal_sink_handle_t hdl[ISOAL_SINKS_MAX];
isoal_sink_handle_t hdl[CONFIG_BT_CTLR_ISOAL_SINKS];
struct isoal_sink_config *config_ptr;
err = isoal_init();
@ -526,7 +526,7 @@ void test_sink_create_destroy(void)
uint8_t dummy_role = BT_CONN_ROLE_CENTRAL;
for (int i = 0; i < ISOAL_SINKS_MAX; i++) {
for (int i = 0; i < CONFIG_BT_CTLR_ISOAL_SINKS; i++) {
/* Create a sink based on global parameters */
err = isoal_sink_create(handle, dummy_role,
burst_number, flush_timeout,
@ -545,7 +545,7 @@ void test_sink_create_destroy(void)
dummy_role = (dummy_role + 1) % (BT_ROLE_BROADCAST + 1);
}
for (int i = 0; i < ISOAL_SINKS_MAX; i++) {
for (int i = 0; i < CONFIG_BT_CTLR_ISOAL_SINKS; i++) {
/* Destroy sink */
isoal_sink_destroy(hdl[i]);
}
@ -564,7 +564,7 @@ void test_sink_create_err(void)
isoal_sink_handle_t hdl;
for (int i = 0; i < ISOAL_SINKS_MAX; i++) {
for (int i = 0; i < CONFIG_BT_CTLR_ISOAL_SINKS; i++) {
/* Create a sink based on global parameters */
err = isoal_sink_create(handle, role,
burst_number, flush_timeout,