From c133cd2a5aaa3cada8d802ce4fc4af56e2886ccf Mon Sep 17 00:00:00 2001 From: Vinayak Kariappa Chettimada Date: Sun, 3 Nov 2024 05:00:26 +0100 Subject: [PATCH] tests: bsim: Bluetooth: Enable some high reliability CAP tests 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 --- .../audio/overlay-bt_ll_sw_split.conf | 2 +- ...lay-nrf5340_cpunet_iso-bt_ll_sw_split.conf | 1 + tests/bsim/bluetooth/audio/prj.conf | 2 +- .../bluetooth/audio/src/cap_acceptor_test.c | 11 +++++- .../audio/src/cap_initiator_broadcast_test.c | 8 ++--- tests/bsim/bluetooth/audio/sysbuild.cmake | 5 +++ .../audio/test_scripts/cap_broadcast_ac_12.sh | 32 ++++++++--------- .../audio/test_scripts/cap_broadcast_ac_14.sh | 34 +++++++++---------- 8 files changed, 54 insertions(+), 41 deletions(-) create mode 100644 tests/bsim/bluetooth/audio/overlay-nrf5340_cpunet_iso-bt_ll_sw_split.conf diff --git a/tests/bsim/bluetooth/audio/overlay-bt_ll_sw_split.conf b/tests/bsim/bluetooth/audio/overlay-bt_ll_sw_split.conf index f449619069d217a..e3075e6bdd4fc43 100644 --- a/tests/bsim/bluetooth/audio/overlay-bt_ll_sw_split.conf +++ b/tests/bsim/bluetooth/audio/overlay-bt_ll_sw_split.conf @@ -100,7 +100,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 diff --git a/tests/bsim/bluetooth/audio/overlay-nrf5340_cpunet_iso-bt_ll_sw_split.conf b/tests/bsim/bluetooth/audio/overlay-nrf5340_cpunet_iso-bt_ll_sw_split.conf new file mode 100644 index 000000000000000..66067388066ef89 --- /dev/null +++ b/tests/bsim/bluetooth/audio/overlay-nrf5340_cpunet_iso-bt_ll_sw_split.conf @@ -0,0 +1 @@ +CONFIG_BT_CTLR_ISO_TX_BUFFERS=18 diff --git a/tests/bsim/bluetooth/audio/prj.conf b/tests/bsim/bluetooth/audio/prj.conf index 87e99c270a9ae72..2d8a94f0b083d34 100644 --- a/tests/bsim/bluetooth/audio/prj.conf +++ b/tests/bsim/bluetooth/audio/prj.conf @@ -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=4 +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 diff --git a/tests/bsim/bluetooth/audio/src/cap_acceptor_test.c b/tests/bsim/bluetooth/audio/src/cap_acceptor_test.c index 400bda8514312e5..967fb92f9780f97 100644 --- a/tests/bsim/bluetooth/audio/src/cap_acceptor_test.c +++ b/tests/bsim/bluetooth/audio/src/cap_acceptor_test.c @@ -38,6 +38,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_ADV_CONN_CUSTOM \ + BT_LE_ADV_PARAM(BT_LE_ADV_OPT_CONN, \ + 0x00e0, 0x00e0, NULL) + extern enum bst_result_t bst_result; #define SINK_CONTEXT \ @@ -638,7 +647,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_ADV_CONN_FAST_1, NULL, &ext_adv); + err = bt_le_ext_adv_create(BT_LE_ADV_CONN_CUSTOM, NULL, &ext_adv); if (err != 0) { FAIL("Failed to create advertising set (err %d)\n", err); diff --git a/tests/bsim/bluetooth/audio/src/cap_initiator_broadcast_test.c b/tests/bsim/bluetooth/audio/src/cap_initiator_broadcast_test.c index 9b9ad2d335490e4..0b876200aa23b68 100644 --- a/tests/bsim/bluetooth/audio/src/cap_initiator_broadcast_test.c +++ b/tests/bsim/bluetooth/audio/src/cap_initiator_broadcast_test.c @@ -40,15 +40,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) diff --git a/tests/bsim/bluetooth/audio/sysbuild.cmake b/tests/bsim/bluetooth/audio/sysbuild.cmake index 1b8d10c8db30c16..5dfd594349c19b7 100644 --- a/tests/bsim/bluetooth/audio/sysbuild.cmake +++ b/tests/bsim/bluetooth/audio/sysbuild.cmake @@ -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() diff --git a/tests/bsim/bluetooth/audio/test_scripts/cap_broadcast_ac_12.sh b/tests/bsim/bluetooth/audio/test_scripts/cap_broadcast_ac_12.sh index 607d6837699a243..b7fc2721d623a52 100755 --- a/tests/bsim/bluetooth/audio/test_scripts/cap_broadcast_ac_12.sh +++ b/tests/bsim/bluetooth/audio/test_scripts/cap_broadcast_ac_12.sh @@ -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 diff --git a/tests/bsim/bluetooth/audio/test_scripts/cap_broadcast_ac_14.sh b/tests/bsim/bluetooth/audio/test_scripts/cap_broadcast_ac_14.sh index 0ac6ed685fb3052..1cb54595af03314 100755 --- a/tests/bsim/bluetooth/audio/test_scripts/cap_broadcast_ac_14.sh +++ b/tests/bsim/bluetooth/audio/test_scripts/cap_broadcast_ac_14.sh @@ -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 @@ -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 # BT_ISO_FLAGS_ERROR +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