Skip to content

Commit

Permalink
tests: bsim: Bluetooth: Enable some high reliability CAP tests
Browse files Browse the repository at this point in the history
Enable some high reliability CAP tests by increasing ISO Tx
buffer counts in the Controller to sufficiently generate
number of complete when multiple SDUs are transmitted in
single ISO interval with use of pre-transmissions.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
  • Loading branch information
cvinayak committed Nov 15, 2024
1 parent 4123443 commit 58ddb33
Show file tree
Hide file tree
Showing 9 changed files with 61 additions and 42 deletions.
2 changes: 1 addition & 1 deletion tests/bsim/bluetooth/audio/overlay-bt_ll_sw_split.conf
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ CONFIG_BT_CTLR_CONN_ISO_LOW_LATENCY_POLICY=y

# ISO Transmissions
CONFIG_BT_CTLR_ISOAL_SOURCES=4
CONFIG_BT_CTLR_ISO_TX_BUFFERS=12
CONFIG_BT_CTLR_ISO_TX_BUFFERS=18
CONFIG_BT_CTLR_ISO_TX_BUFFER_SIZE=255

# ISO Receptions
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# In theory, CONFIG_BT_ISO_TX_BUF_COUNT=1, should be sufficient but this count
# is used in the context of IPC which falls into a "Newton's Cradle" effect
# where probably (CONFIG_BT_CTLR_ISO_TX_BUFFERS - CONFIG_BT_ISO_TX_BUF_COUNT)
# buffers get throttled. Hence, always have the value equal or greater.
CONFIG_BT_ISO_TX_BUF_COUNT=18

CONFIG_BT_CTLR_ISO_TX_BUFFERS=18
2 changes: 1 addition & 1 deletion tests/bsim/bluetooth/audio/prj.conf
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ CONFIG_BT_BAP_BROADCAST_SRC_SUBGROUP_COUNT=1
CONFIG_BT_BAP_BROADCAST_SNK_SUBGROUP_COUNT=1
CONFIG_BT_BAP_BROADCAST_SNK_STREAM_COUNT=2
CONFIG_BT_ISO_PERIPHERAL=y
CONFIG_BT_ISO_TX_BUF_COUNT=8
CONFIG_BT_ISO_TX_BUF_COUNT=36
CONFIG_BT_ISO_MAX_CHAN=4
CONFIG_BT_ISO_TX_MTU=310
CONFIG_BT_ISO_RX_MTU=310
Expand Down
11 changes: 10 additions & 1 deletion tests/bsim/bluetooth/audio/src/cap_acceptor_test.c
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,15 @@
#include "bap_common.h"

#if defined(CONFIG_BT_CAP_ACCEPTOR)
/* Zephyr Controller works best while Extended Advertising interval to be a multiple
* of the ISO Interval minus 10 ms (max. advertising random delay). This is
* required to place the AUX_ADV_IND PDUs in a non-overlapping interval with the
* Broadcast ISO radio events.
*/
#define BT_LE_EXT_ADV_CONN_CUSTOM \
BT_LE_ADV_PARAM(BT_LE_ADV_OPT_EXT_ADV | BT_LE_ADV_OPT_CONN, \
0x00e0, 0x00e0, NULL)

extern enum bst_result_t bst_result;

#define SINK_CONTEXT \
Expand Down Expand Up @@ -654,7 +663,7 @@ void test_start_adv(void)
struct bt_le_ext_adv *ext_adv;

/* Create a connectable non-scannable advertising set */
err = bt_le_ext_adv_create(BT_LE_EXT_ADV_CONN, NULL, &ext_adv);
err = bt_le_ext_adv_create(BT_LE_EXT_ADV_CONN_CUSTOM, NULL, &ext_adv);
if (err != 0) {
FAIL("Failed to create advertising set (err %d)\n", err);

Expand Down
2 changes: 1 addition & 1 deletion tests/bsim/bluetooth/audio/src/cap_commander_test.c
Original file line number Diff line number Diff line change
Expand Up @@ -298,7 +298,7 @@ static bool scan_check_and_sync_broadcast(struct bt_data *data, void *user_data)

printk("Found broadcaster with ID 0x%06X and addr %s and sid 0x%02X\n", broadcast_id,
le_addr, info->sid);
printk("Adv type %02X interval %u", info->adv_type, info->interval);
printk("Adv type %02X interval %u\n", info->adv_type, info->interval);

SET_FLAG(flag_broadcaster_found);

Expand Down
8 changes: 4 additions & 4 deletions tests/bsim/bluetooth/audio/src/cap_initiator_broadcast_test.c
Original file line number Diff line number Diff line change
Expand Up @@ -41,15 +41,15 @@
*/
#define BT_LE_EXT_ADV_CUSTOM \
BT_LE_ADV_PARAM(BT_LE_ADV_OPT_EXT_ADV, \
0x0080, 0x0080, NULL)
0x00e0, 0x00e0, NULL)

#define BT_LE_PER_ADV_CUSTOM \
BT_LE_PER_ADV_PARAM(0x0048, \
0x0048, \
BT_LE_PER_ADV_PARAM(0x0078, \
0x0078, \
BT_LE_PER_ADV_OPT_NONE)

#define BROADCAST_STREMT_CNT CONFIG_BT_BAP_BROADCAST_SRC_STREAM_COUNT
#define BROADCAST_ENQUEUE_COUNT 2U
#define BROADCAST_ENQUEUE_COUNT 18U
#define TOTAL_BUF_NEEDED (BROADCAST_ENQUEUE_COUNT * BROADCAST_STREMT_CNT)
#define CAP_AC_MAX_STREAM 2
#define LOCATION (BT_AUDIO_LOCATION_FRONT_LEFT | BT_AUDIO_LOCATION_FRONT_RIGHT)
Expand Down
5 changes: 5 additions & 0 deletions tests/bsim/bluetooth/audio/sysbuild.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,11 @@ if(SB_CONFIG_NET_CORE_IMAGE_HCI_IPC)
CACHE INTERNAL ""
)

set(${NET_APP}_EXTRA_CONF_FILE
${APP_DIR}/overlay-nrf5340_cpunet_iso-bt_ll_sw_split.conf
CACHE INTERNAL ""
)

native_simulator_set_child_images(${DEFAULT_IMAGE} ${NET_APP})
endif()

Expand Down
32 changes: 16 additions & 16 deletions tests/bsim/bluetooth/audio/test_scripts/cap_broadcast_ac_12.sh
Original file line number Diff line number Diff line change
Expand Up @@ -51,19 +51,19 @@ Execute_AC_12 48_5_1
Execute_AC_12 48_6_1

# High reliability
# Execute_AC_12 8_1_2 # BT_ISO_FLAGS_ERROR
# Execute_AC_12 8_2_2 # BT_ISO_FLAGS_ERROR
# Execute_AC_12 16_1_2 # BT_ISO_FLAGS_ERROR
# Execute_AC_12 16_2_2 # BT_ISO_FLAGS_ERROR
# Execute_AC_12 24_1_2 # BT_ISO_FLAGS_ERROR
# Execute_AC_12 24_2_2 # BT_ISO_FLAGS_ERROR
# Execute_AC_12 32_1_2 # BT_ISO_FLAGS_ERROR
# Execute_AC_12 32_2_2 # BT_ISO_FLAGS_ERROR
# Execute_AC_12 441_1_2 # BT_ISO_FLAGS_ERROR
# Execute_AC_12 441_2_2 # BT_ISO_FLAGS_ERROR
# Execute_AC_12 48_1_2 # BT_ISO_FLAGS_ERROR
# Execute_AC_12 48_2_2 # BT_ISO_FLAGS_ERROR
# Execute_AC_12 48_3_2 # BT_ISO_FLAGS_ERROR
# Execute_AC_12 48_4_2 # BT_ISO_FLAGS_ERROR
# Execute_AC_12 48_5_2 # BT_ISO_FLAGS_ERROR
# Execute_AC_12 48_6_2 # BT_ISO_FLAGS_ERROR
Execute_AC_12 8_1_2
Execute_AC_12 8_2_2
Execute_AC_12 16_1_2
Execute_AC_12 16_2_2
Execute_AC_12 24_1_2
Execute_AC_12 24_2_2
Execute_AC_12 32_1_2
Execute_AC_12 32_2_2
# Execute_AC_12 441_1_2 # BT_ISO_FLAGS_LOST
# Execute_AC_12 441_2_2 # BT_ISO_FLAGS_LOST
Execute_AC_12 48_1_2
Execute_AC_12 48_2_2
Execute_AC_12 48_3_2
Execute_AC_12 48_4_2
Execute_AC_12 48_5_2
Execute_AC_12 48_6_2
34 changes: 16 additions & 18 deletions tests/bsim/bluetooth/audio/test_scripts/cap_broadcast_ac_14.sh
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,7 @@ Execute_AC_14 24_1_1
Execute_AC_14 24_2_1
Execute_AC_14 32_1_1
Execute_AC_14 32_2_1
# ASSERTION FAIL [err == ((isoal_status_t) 0x00) || err == ((isoal_status_t) 0x04)]
# @ WEST_TOPDIR/zephyr/subsys/bluetooth/controller/hci/hci_driver.c:513
# Execute_AC_14 441_1_1
Execute_AC_14 441_1_1
# ASSERTION FAIL [err == ((isoal_status_t) 0x00) || err == ((isoal_status_t) 0x04)]
# @ WEST_TOPDIR/zephyr/subsys/bluetooth/controller/hci/hci_driver.c:513
# Execute_AC_14 441_2_1
Expand All @@ -55,19 +53,19 @@ Execute_AC_14 48_5_1
Execute_AC_14 48_6_1

# High reliability
# Execute_AC_14 8_1_2 # BT_ISO_FLAGS_ERROR
# Execute_AC_14 8_2_2 # BT_ISO_FLAGS_ERROR
# Execute_AC_14 16_1_2 # BT_ISO_FLAGS_ERROR
# Execute_AC_14 16_2_2 # BT_ISO_FLAGS_ERROR
# Execute_AC_14 24_1_2 # BT_ISO_FLAGS_ERROR
# Execute_AC_14 24_2_2 # BT_ISO_FLAGS_ERROR
# Execute_AC_14 32_1_2 # BT_ISO_FLAGS_ERROR
# Execute_AC_14 32_2_2 # BT_ISO_FLAGS_ERROR
# Execute_AC_14 441_1_2 # BT_ISO_FLAGS_ERROR
Execute_AC_14 8_1_2
Execute_AC_14 8_2_2
Execute_AC_14 16_1_2
Execute_AC_14 16_2_2
Execute_AC_14 24_1_2
Execute_AC_14 24_2_2
Execute_AC_14 32_1_2
Execute_AC_14 32_2_2
# Execute_AC_14 441_1_2 # BT_ISO_FLAGS_LOST
# Execute_AC_14 441_2_2 # BT_ISO_FLAGS_ERROR
# Execute_AC_14 48_1_2 # BT_ISO_FLAGS_ERROR
# Execute_AC_14 48_2_2 # BT_ISO_FLAGS_ERROR
# Execute_AC_14 48_3_2 # BT_ISO_FLAGS_ERROR
# Execute_AC_14 48_4_2 # BT_ISO_FLAGS_ERROR
# Execute_AC_14 48_5_2 # BT_ISO_FLAGS_ERROR
# Execute_AC_14 48_6_2 # BT_ISO_FLAGS_ERROR
Execute_AC_14 48_1_2
Execute_AC_14 48_2_2
Execute_AC_14 48_3_2
Execute_AC_14 48_4_2
# Execute_AC_14 48_5_2 # BT_ISO_FLAGS_ERROR
# Execute_AC_14 48_6_2 # BT_ISO_FLAGS_ERROR

0 comments on commit 58ddb33

Please sign in to comment.