Skip to content
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

tests: bsim: Bluetooth: Enable some high reliability CAP tests #80788

Open
wants to merge 7 commits into
base: main
Choose a base branch
from
Open
17 changes: 12 additions & 5 deletions subsys/bluetooth/controller/ll_sw/nordic/lll/lll_sync_iso.c
Original file line number Diff line number Diff line change
Expand Up @@ -56,9 +56,10 @@
static void isr_rx_iso_data_valid(const struct lll_sync_iso *const lll,
uint16_t handle, struct node_rx_pdu *node_rx);
static void isr_rx_iso_data_invalid(const struct lll_sync_iso *const lll,
uint8_t bn, uint16_t handle,
uint16_t latency, uint8_t bn,
uint16_t handle,
struct node_rx_pdu *node_rx);
static void isr_rx_ctrl_recv(struct lll_sync_iso *lll, struct pdu_bis *pdu);

Check notice on line 62 in subsys/bluetooth/controller/ll_sw/nordic/lll/lll_sync_iso.c

View workflow job for this annotation

GitHub Actions / Run compliance checks on patch series (PR)

You may want to run clang-format on this change

subsys/bluetooth/controller/ll_sw/nordic/lll/lll_sync_iso.c:62 -static void isr_rx_iso_data_invalid(const struct lll_sync_iso *const lll, - uint16_t latency, uint8_t bn, - uint16_t handle, - struct node_rx_pdu *node_rx); +static void isr_rx_iso_data_invalid(const struct lll_sync_iso *const lll, uint16_t latency, + uint8_t bn, uint16_t handle, struct node_rx_pdu *node_rx);

/* FIXME: Optimize by moving to a common place, as similar variable is used for
* connections too.
Expand Down Expand Up @@ -427,6 +428,7 @@
LL_ASSERT(e);

e->type = EVENT_DONE_EXTRA_TYPE_SYNC_ISO;
e->estab_failed = 0U;
e->trx_cnt = 0U;
e->crc_valid = 0U;

Expand Down Expand Up @@ -1216,7 +1218,8 @@
pdu->len = 0U;

handle = LL_BIS_SYNC_HANDLE_FROM_IDX(stream_handle);
isr_rx_iso_data_invalid(lll, bn, handle, node_rx);
isr_rx_iso_data_invalid(lll, latency_event, bn,
handle, node_rx);

iso_rx_put(node_rx->hdr.link, node_rx);
}
Expand Down Expand Up @@ -1281,6 +1284,7 @@

/* Calculate and place the drift information in done event */
e->type = EVENT_DONE_EXTRA_TYPE_SYNC_ISO;
e->estab_failed = 0U;
e->trx_cnt = trx_cnt;
e->crc_valid = crc_ok_anchor;

Expand Down Expand Up @@ -1379,9 +1383,10 @@
}

static void isr_rx_iso_data_invalid(const struct lll_sync_iso *const lll,
uint8_t bn, uint16_t handle,
uint16_t latency, uint8_t bn,
uint16_t handle,
struct node_rx_pdu *node_rx)
{

Check notice on line 1389 in subsys/bluetooth/controller/ll_sw/nordic/lll/lll_sync_iso.c

View workflow job for this annotation

GitHub Actions / Run compliance checks on patch series (PR)

You may want to run clang-format on this change

subsys/bluetooth/controller/ll_sw/nordic/lll/lll_sync_iso.c:1389 -static void isr_rx_iso_data_invalid(const struct lll_sync_iso *const lll, - uint16_t latency, uint8_t bn, - uint16_t handle, - struct node_rx_pdu *node_rx) +static void isr_rx_iso_data_invalid(const struct lll_sync_iso *const lll, uint16_t latency, + uint8_t bn, uint16_t handle, struct node_rx_pdu *node_rx)
struct lll_sync_iso_stream *stream;
struct node_rx_iso_meta *iso_meta;

Expand All @@ -1389,15 +1394,17 @@
node_rx->hdr.handle = handle;

iso_meta = &node_rx->rx_iso_meta;
iso_meta->payload_number = lll->payload_count - bn - 1U;
iso_meta->payload_number = lll->payload_count - lll->bn - bn - 1U;

stream = ull_sync_iso_lll_stream_get(lll->stream_handle[0]);
iso_meta->timestamp = HAL_TICKER_TICKS_TO_US(radio_tmr_start_get()) +
radio_tmr_aa_restore() - addr_us_get(lll->phy) -
((stream->bis_index - 1U) *
lll->sub_interval * ((lll->irc * lll->bn) +
lll->ptc));
lll->ptc)) -
(latency * lll->iso_interval *
PERIODIC_INT_UNIT_US);
iso_meta->timestamp %=

Check notice on line 1407 in subsys/bluetooth/controller/ll_sw/nordic/lll/lll_sync_iso.c

View workflow job for this annotation

GitHub Actions / Run compliance checks on patch series (PR)

You may want to run clang-format on this change

subsys/bluetooth/controller/ll_sw/nordic/lll/lll_sync_iso.c:1407 - iso_meta->timestamp = HAL_TICKER_TICKS_TO_US(radio_tmr_start_get()) + - radio_tmr_aa_restore() - addr_us_get(lll->phy) - - ((stream->bis_index - 1U) * - lll->sub_interval * ((lll->irc * lll->bn) + - lll->ptc)) - - (latency * lll->iso_interval * - PERIODIC_INT_UNIT_US); + iso_meta->timestamp = + HAL_TICKER_TICKS_TO_US(radio_tmr_start_get()) + radio_tmr_aa_restore() - + addr_us_get(lll->phy) - + ((stream->bis_index - 1U) * lll->sub_interval * ((lll->irc * lll->bn) + lll->ptc)) - + (latency * lll->iso_interval * PERIODIC_INT_UNIT_US);
HAL_TICKER_TICKS_TO_US_64BIT(BIT64(HAL_TICKER_CNTR_MSBIT + 1U));
iso_meta->status = 1U;
}
Expand Down
25 changes: 14 additions & 11 deletions subsys/bluetooth/controller/ll_sw/ull_sync_iso.c
Original file line number Diff line number Diff line change
Expand Up @@ -417,8 +417,6 @@
struct pdu_big_info *bi;
uint32_t ready_delay_us;
uint32_t ticks_expire;
uint32_t ctrl_spacing;
uint32_t pdu_spacing;
uint32_t interval_us;
uint32_t ticks_diff;
struct pdu_adv *pdu;
Expand Down Expand Up @@ -581,11 +579,6 @@
interval_us -= lll->window_widening_periodic_us;

/* Calculate ISO Receiver BIG event timings */
pdu_spacing = PDU_BIS_US(lll->max_pdu, lll->enc, lll->phy,
PHY_FLAGS_S8) +
EVENT_MSS_US;
ctrl_spacing = PDU_BIS_US(sizeof(struct pdu_big_ctrl), lll->enc,
lll->phy, PHY_FLAGS_S8);

/* Number of maximum BISes to sync from the first BIS to sync */
/* NOTE: When ULL scheduling is implemented for subevents, then update
Expand All @@ -605,22 +598,32 @@
*/

if (IS_ENABLED(CONFIG_BT_CTLR_SYNC_ISO_RESERVE_MAX)) {
/* Maximum time reservation for both sequential and interleaved
uint32_t ctrl_spacing;

/* Maximum time reservation for sequential and interleaved
* packing.
*/
slot_us = (pdu_spacing * lll->nse * num_bis) + ctrl_spacing;
if (lll->bis_spacing >= (lll->sub_interval * lll->nse)) {
slot_us = lll->sub_interval * lll->nse * num_bis;
} else {
slot_us = lll->bis_spacing * lll->nse * num_bis;
}

ctrl_spacing = PDU_BIS_US(sizeof(struct pdu_big_ctrl), lll->enc,
lll->phy, PHY_FLAGS_S8);
slot_us += ctrl_spacing;

Check notice on line 614 in subsys/bluetooth/controller/ll_sw/ull_sync_iso.c

View workflow job for this annotation

GitHub Actions / Run compliance checks on patch series (PR)

You may want to run clang-format on this change

subsys/bluetooth/controller/ll_sw/ull_sync_iso.c:614 - ctrl_spacing = PDU_BIS_US(sizeof(struct pdu_big_ctrl), lll->enc, - lll->phy, PHY_FLAGS_S8); + ctrl_spacing = + PDU_BIS_US(sizeof(struct pdu_big_ctrl), lll->enc, lll->phy, PHY_FLAGS_S8);

} else if (lll->bis_spacing >= (lll->sub_interval * lll->nse)) {
/* Time reservation omitting PTC subevents in sequential
* packing.
*/
slot_us = pdu_spacing * ((lll->nse * num_bis) - lll->ptc);
slot_us = lll->sub_interval * ((lll->nse * num_bis) - lll->ptc);

} else {
/* Time reservation omitting PTC subevents in interleaved
* packing.
*/
slot_us = pdu_spacing * ((lll->nse - lll->ptc) * num_bis);
slot_us = lll->bis_spacing * ((lll->nse - lll->ptc) * num_bis);
}

/* Add radio ready delay */
Expand Down
93 changes: 81 additions & 12 deletions tests/bsim/bluetooth/audio/overlay-bt_ll_sw_split.conf
Original file line number Diff line number Diff line change
@@ -1,45 +1,114 @@
# Controller Settings
CONFIG_BT_CTLR_SCAN_DATA_LEN_MAX=255
# Host and Controller common dependencies
CONFIG_BT_BROADCASTER=y
CONFIG_BT_OBSERVER=y
CONFIG_BT_EXT_ADV=y
CONFIG_BT_PER_ADV=y
CONFIG_BT_PER_ADV_SYNC=y
CONFIG_BT_PER_ADV_SYNC_MAX=2
CONFIG_BT_CENTRAL=y
CONFIG_BT_PERIPHERAL=y
CONFIG_BT_MAX_CONN=3

# Broadcast and Connected ISO
CONFIG_BT_ISO_BROADCASTER=y
CONFIG_BT_ISO_SYNC_RECEIVER=y
CONFIG_BT_ISO_CENTRAL=y
CONFIG_BT_ISO_PERIPHERAL=y

# ISO Streams
CONFIG_BT_ISO_TX_MTU=310
CONFIG_BT_ISO_RX_MTU=310
CONFIG_BT_ISO_MAX_CHAN=4
# CONFIG_BT_ISO_TX_BUF_COUNT=1
# CONFIG_BT_ISO_RX_BUF_COUNT=1

# Controller
CONFIG_BT_LL_SW_SPLIT=y

# Rx ACL and Adv Reports
CONFIG_BT_CTLR_RX_BUFFERS=9
CONFIG_BT_CTLR_DATA_LENGTH_MAX=251

# Coded PHY support
CONFIG_BT_CTLR_PHY_CODED=y

# Advertising Sets and Extended Scanning
CONFIG_BT_CTLR_ADV_EXT=y
CONFIG_BT_CTLR_ADV_SET=3
CONFIG_BT_CTLR_ADV_DATA_LEN_MAX=191
CONFIG_BT_CTLR_SCAN_DATA_LEN_MAX=1650

# Controller advanced options
CONFIG_BT_CTLR_ADVANCED_FEATURES=y
CONFIG_BT_CTLR_ADV_AUX_SET=3
CONFIG_BT_CTLR_ADV_AUX_PDU_BACK2BACK=y
CONFIG_BT_CTLR_ADV_SYNC_SET=3
CONFIG_BT_CTLR_ADV_SYNC_PDU_BACK2BACK=y
CONFIG_BT_CTLR_ADV_DATA_BUF_MAX=6

# Increase the below to receive interleaved advertising chains
CONFIG_BT_CTLR_SCAN_AUX_SET=1
# CONFIG_BT_CTLR_SCAN_AUX_USE_CHAINS=y
# CONFIG_BT_CTLR_SCAN_AUX_CHAIN_COUNT=1

CONFIG_BT_CTLR_ADV_RESERVE_MAX=n
CONFIG_BT_CTLR_ADV_ISO_RESERVE_MAX=y
CONFIG_BT_CTLR_SCAN_AUX_SYNC_RESERVE_MIN=y
CONFIG_BT_CTLR_SYNC_PERIODIC_SKIP_ON_SCAN_AUX=n
CONFIG_BT_CTLR_SYNC_ISO_RESERVE_MAX=n
CONFIG_BT_CTLR_CENTRAL_RESERVE_MAX=n
CONFIG_BT_CTLR_PERIPHERAL_RESERVE_MAX=n
CONFIG_BT_CTLR_PERIPHERAL_ISO_RESERVE_MAX=n
CONFIG_BT_CTLR_EVENT_OVERHEAD_RESERVE_MAX=y
CONFIG_BT_CTLR_SLOT_RESERVATION_UPDATE=n
CONFIG_BT_CTLR_SCAN_UNRESERVED=y
CONFIG_BT_TICKER_NEXT_SLOT_GET_MATCH=y
CONFIG_BT_TICKER_EXT=y
CONFIG_BT_TICKER_EXT_SLOT_WINDOW_YIELD=y

# Control Procedure
CONFIG_BT_CTLR_LLCP_LOCAL_PROC_CTX_BUF_NUM=6

# ISO Broadcaster Controller
CONFIG_BT_CTLR_ADV_EXT=y
CONFIG_BT_CTLR_ADV_PERIODIC=y
CONFIG_BT_CTLR_SYNC_TRANSFER_SENDER=y
CONFIG_BT_CTLR_ADV_ISO=y
CONFIG_BT_CTLR_ADV_ISO_PDU_LEN_MAX=247
CONFIG_BT_CTLR_ADV_ISO_SET=2
CONFIG_BT_CTLR_ADV_ISO_STREAM_COUNT=4
CONFIG_BT_CTLR_ADV_ISO_STREAM_MAX=2
CONFIG_BT_CTLR_ADV_ISO_STREAM_COUNT=2
CONFIG_BT_CTLR_ADV_ISO_PDU_LEN_MAX=247

# ISO Receive Controller
CONFIG_BT_CTLR_ADV_EXT=y
CONFIG_BT_CTLR_SYNC_PERIODIC=y
CONFIG_BT_CTLR_SYNC_TRANSFER_RECEIVER=y
CONFIG_BT_CTLR_SYNC_ISO=y
CONFIG_BT_CTLR_SYNC_ISO_PDU_LEN_MAX=251
CONFIG_BT_CTLR_SCAN_SYNC_ISO_SET=1
CONFIG_BT_CTLR_SYNC_ISO_STREAM_COUNT=2
CONFIG_BT_CTLR_SYNC_ISO_STREAM_MAX=2
CONFIG_BT_CTLR_SYNC_ISO_PDU_LEN_MAX=251

# ISO Connection Oriented
CONFIG_BT_CTLR_CENTRAL_ISO=y
CONFIG_BT_CTLR_PERIPHERAL_ISO=y
CONFIG_BT_CTLR_CONN_ISO_STREAMS=2
CONFIG_BT_CTLR_CONN_ISO_GROUPS=1
CONFIG_BT_CTLR_CONN_ISO_STREAMS_PER_GROUP=2
CONFIG_BT_CTLR_CONN_ISO_SDU_LEN_MAX=247
CONFIG_BT_CTLR_CONN_ISO_PDU_LEN_MAX=251
CONFIG_BT_CTLR_CONN_ISO_LOW_LATENCY_POLICY=y

# ISO Transmissions
CONFIG_BT_ISO_TX_MTU=310
CONFIG_BT_ISO_TX_BUF_COUNT=4
CONFIG_BT_CTLR_ISO_TX_BUFFERS=8
CONFIG_BT_CTLR_ISOAL_SOURCES=4
CONFIG_BT_CTLR_ISO_TX_BUFFERS=18
CONFIG_BT_CTLR_ISO_TX_BUFFER_SIZE=255
CONFIG_BT_CTLR_ISOAL_SOURCES=2

# ISO Receptions
CONFIG_BT_ISO_RX_MTU=310
CONFIG_BT_CTLR_ISO_RX_BUFFERS=8
CONFIG_BT_CTLR_ISOAL_SINKS=2
CONFIG_BT_CTLR_ISO_RX_BUFFERS=8

# Tx Power Dynamic Control
CONFIG_BT_CTLR_TX_PWR_DYNAMIC_CONTROL=y

# Ignore HCI ISO data Tx sequence numbers
# CONFIG_BT_CTLR_ISOAL_PSN_IGNORE=y
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
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=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
Expand Down
17 changes: 10 additions & 7 deletions tests/bsim/bluetooth/audio/src/cap_acceptor_test.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)

Check notice on line 49 in tests/bsim/bluetooth/audio/src/cap_acceptor_test.c

View workflow job for this annotation

GitHub Actions / Run compliance checks on patch series (PR)

You may want to run clang-format on this change

tests/bsim/bluetooth/audio/src/cap_acceptor_test.c:49 -#define BT_LE_ADV_CONN_CUSTOM \ - BT_LE_ADV_PARAM(BT_LE_ADV_OPT_CONN, \ - 0x00e0, 0x00e0, NULL) +#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 \
Expand Down Expand Up @@ -638,7 +647,7 @@
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);

Expand Down Expand Up @@ -752,12 +761,6 @@
bt_cap_stream_ops_register(&unicast_streams[i], &unicast_stream_ops);
}

err = bt_le_adv_start(BT_LE_ADV_CONN_FAST_1, cap_acceptor_ad,
ARRAY_SIZE(cap_acceptor_ad), NULL, 0);
if (err != 0) {
FAIL("Advertising failed to start (err %d)\n", err);
return;
}
test_start_adv();
}

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 @@ -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)

Check notice on line 49 in tests/bsim/bluetooth/audio/src/cap_initiator_broadcast_test.c

View workflow job for this annotation

GitHub Actions / Run compliance checks on patch series (PR)

You may want to run clang-format on this change

tests/bsim/bluetooth/audio/src/cap_initiator_broadcast_test.c:49 -#define BT_LE_EXT_ADV_CUSTOM \ - BT_LE_ADV_PARAM(BT_LE_ADV_OPT_EXT_ADV, \ - 0x00e0, 0x00e0, NULL) - -#define BT_LE_PER_ADV_CUSTOM \ - BT_LE_PER_ADV_PARAM(0x0078, \ - 0x0078, \ - BT_LE_PER_ADV_OPT_NONE) +#define BT_LE_EXT_ADV_CUSTOM BT_LE_ADV_PARAM(BT_LE_ADV_OPT_EXT_ADV, 0x00e0, 0x00e0, NULL) + +#define BT_LE_PER_ADV_CUSTOM 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
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

SIMULATION_ID="bap_broadcast_audio_assistant_incorrect_code"
VERBOSITY_LEVEL=2
EXECUTE_TIMEOUT=180

source ${ZEPHYR_BASE}/tests/bsim/sh_common.source

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

SIMULATION_ID="unicast_audio"
VERBOSITY_LEVEL=2
EXECUTE_TIMEOUT=120

source ${ZEPHYR_BASE}/tests/bsim/sh_common.source

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

SIMULATION_ID="unicast_audio_acl_disconnect"
VERBOSITY_LEVEL=2
EXECUTE_TIMEOUT=120

source ${ZEPHYR_BASE}/tests/bsim/sh_common.source

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
Loading
Loading