Skip to content

Commit

Permalink
bluetooth: tester: Add ASCS and BAP tests handling
Browse files Browse the repository at this point in the history
Support for tests that use ASCS operations Codec Config, Config QOS,
Enable, Disable, Update Metadata, Release.

Signed-off-by: Magdalena Kasenberg <magdalena.kasenberg@codecoup.pl>
  • Loading branch information
mkasenberg authored and carlescufi committed Apr 5, 2023
1 parent 9772e03 commit 196261d
Show file tree
Hide file tree
Showing 9 changed files with 1,453 additions and 23 deletions.
2 changes: 1 addition & 1 deletion tests/bluetooth/tester/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,6 @@ if(CONFIG_BT_IAS OR CONFIG_BT_IAS_CLIENT)
target_sources(app PRIVATE src/btp_ias.c)
endif()

if(CONFIG_BT_PACS)
if(CONFIG_BT_BAP_UNICAST)
target_sources(app PRIVATE src/btp_bap.c)
endif()
14 changes: 14 additions & 0 deletions tests/bluetooth/tester/overlay-le-audio.conf
Original file line number Diff line number Diff line change
@@ -1,5 +1,19 @@
CONFIG_BT_AUDIO=y
CONFIG_BT_EXT_ADV=y
CONFIG_BT_BAP_UNICAST_SERVER=y
CONFIG_BT_BAP_UNICAST_CLIENT=y
CONFIG_BT_BAP_UNICAST_CLIENT_ASE_SNK_COUNT=2
CONFIG_BT_BAP_UNICAST_CLIENT_ASE_SRC_COUNT=2

# ASCS
CONFIG_BT_ASCS_ASE_SNK_COUNT=2
CONFIG_BT_ASCS_ASE_SRC_COUNT=2

# Required for BAP PTS tests with low latency
CONFIG_BT_CTLR_CONN_ISO_LOW_LATENCY_POLICY=y

# Support an ISO channel per ASE
CONFIG_BT_ISO_MAX_CHAN=4

# PACS
CONFIG_BT_PAC_SNK_LOC_WRITEABLE=y
Expand Down
6 changes: 5 additions & 1 deletion tests/bluetooth/tester/src/btp/btp.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@
#include "btp_aics.h"
#include "btp_vocs.h"
#include "btp_ias.h"
#include "btp_pacs.h"
#include "btp_ascs.h"
#include "btp_bap.h"

#define BTP_MTU 1024
Expand All @@ -41,7 +43,9 @@
#define BTP_SERVICE_ID_AICS 10
#define BTP_SERVICE_ID_VOCS 11
#define BTP_SERVICE_ID_PACS 12
#define BTP_SERVICE_ID_MAX BTP_SERVICE_ID_PACS
#define BTP_SERVICE_ID_ASCS 13
#define BTP_SERVICE_ID_BAP 14
#define BTP_SERVICE_ID_MAX BTP_SERVICE_ID_BAP

#define BTP_STATUS_SUCCESS 0x00
#define BTP_STATUS_FAILED 0x01
Expand Down
88 changes: 88 additions & 0 deletions tests/bluetooth/tester/src/btp/btp_ascs.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
/* btp_bap.h - Bluetooth tester headers */

/*
* Copyright (c) 2023 Codecoup
*
* SPDX-License-Identifier: Apache-2.0
*/

/* ASCS commands */
#define BTP_ASCS_READ_SUPPORTED_COMMANDS 0x01
struct btp_ascs_read_supported_commands_rp {
uint8_t data[0];
} __packed;

#define BTP_ASCS_CONFIGURE_CODEC 0x02
struct btp_ascs_configure_codec_cmd {
bt_addr_le_t address;
uint8_t ase_id;
uint8_t coding_format;
uint8_t freq;
uint8_t frame_duration;
uint32_t audio_locations;
uint16_t octets_per_frame;
} __packed;

#define BTP_ASCS_CONFIGURE_QOS 0x03
struct btp_ascs_configure_qos_cmd {
bt_addr_le_t address;
uint8_t ase_id;
uint8_t cig_id;
uint8_t cis_id;
uint16_t sdu_interval;
uint8_t framing;
uint16_t max_sdu;
uint8_t retransmission_num;
uint8_t max_transport_latency;
} __packed;

#define BTP_ASCS_ENABLE 0x04
struct btp_ascs_enable_cmd {
bt_addr_le_t address;
uint8_t ase_id;
} __packed;

#define BTP_ASCS_RECEIVER_START_READY 0x05
struct btp_ascs_receiver_start_ready_cmd {
bt_addr_le_t address;
uint8_t ase_id;
} __packed;

#define BTP_ASCS_RECEIVER_STOP_READY 0x06
struct btp_ascs_receiver_stop_ready_cmd {
bt_addr_le_t address;
uint8_t ase_id;
} __packed;

#define BTP_ASCS_DISABLE 0x07
struct btp_ascs_disable_cmd {
bt_addr_le_t address;
uint8_t ase_id;
} __packed;

#define BTP_ASCS_RELEASE 0x08
struct btp_ascs_release_cmd {
bt_addr_le_t address;
uint8_t ase_id;
} __packed;

#define BTP_ASCS_UPDATE_METADATA 0x09
struct btp_ascs_update_metadata_cmd {
bt_addr_le_t address;
uint8_t ase_id;
} __packed;

/* ASCS events */
#define BTP_ASCS_EV_OPERATION_COMPLETED 0x80
struct btp_ascs_operation_completed_ev {
bt_addr_le_t address;
uint8_t ase_id;
uint8_t opcode;
uint8_t status;

/* RFU */
uint8_t flags;
} __packed;

#define BTP_ASCS_STATUS_SUCCESS 0x00
#define BTP_ASCS_STATUS_FAILED 0x01
44 changes: 32 additions & 12 deletions tests/bluetooth/tester/src/btp/btp_bap.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,40 @@
* SPDX-License-Identifier: Apache-2.0
*/

/* PACS commands */
#define BTP_PACS_READ_SUPPORTED_COMMANDS 0x01
struct btp_pacs_read_supported_commands_rp {
/* BAP commands */
#define BTP_BAP_READ_SUPPORTED_COMMANDS 0x01
struct btp_bap_read_supported_commands_rp {
uint8_t data[0];
} __packed;

#define BTP_PACS_CHARACTERISTIC_SINK_PAC 0x01
#define BTP_PACS_CHARACTERISTIC_SOURCE_PAC 0x02
#define BTP_PACS_CHARACTERISTIC_SINK_AUDIO_LOCATIONS 0x03
#define BTP_PACS_CHARACTERISTIC_SOURCE_AUDIO_LOCATIONS 0x04
#define BTP_PACS_CHARACTERISTIC_AVAILABLE_AUDIO_CONTEXTS 0x05
#define BTP_PACS_CHARACTERISTIC_SUPPORTED_AUDIO_CONTEXTS 0x06
#define BTP_BAP_DISCOVER 0x02
struct btp_bap_discover_cmd {
bt_addr_le_t address;
} __packed;

#define BTP_BAP_DISCOVERY_STATUS_SUCCESS 0x00
#define BTP_BAP_DISCOVERY_STATUS_FAILED 0x01

/* BAP events */
#define BTP_BAP_EV_DISCOVERY_COMPLETED 0x80
struct btp_bap_discovery_completed_ev {
bt_addr_le_t address;
uint8_t status;
} __packed;

#define BTP_BAP_EV_CODEC_CAP_FOUND 0x81
struct btp_bap_codec_cap_found_ev {
bt_addr_le_t address;
uint8_t dir;
uint8_t coding_format;
uint16_t frequencies;
uint8_t frame_durations;
uint32_t octets_per_frame;
} __packed;

#define BTP_PACS_UPDATE_CHARACTERISTIC 0x02
struct btp_pacs_update_characteristic_cmd {
uint8_t characteristic;
#define BTP_BAP_EV_ASE_FOUND 0x82
struct btp_ascs_ase_found_ev {
bt_addr_le_t address;
uint8_t dir;
uint8_t ase_id;
} __packed;
25 changes: 25 additions & 0 deletions tests/bluetooth/tester/src/btp/btp_pacs.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
/* btp_bap.h - Bluetooth tester headers */

/*
* Copyright (c) 2023 Codecoup
*
* SPDX-License-Identifier: Apache-2.0
*/

/* PACS commands */
#define BTP_PACS_READ_SUPPORTED_COMMANDS 0x01
struct btp_pacs_read_supported_commands_rp {
uint8_t data[0];
} __packed;

#define BTP_PACS_CHARACTERISTIC_SINK_PAC 0x01
#define BTP_PACS_CHARACTERISTIC_SOURCE_PAC 0x02
#define BTP_PACS_CHARACTERISTIC_SINK_AUDIO_LOCATIONS 0x03
#define BTP_PACS_CHARACTERISTIC_SOURCE_AUDIO_LOCATIONS 0x04
#define BTP_PACS_CHARACTERISTIC_AVAILABLE_AUDIO_CONTEXTS 0x05
#define BTP_PACS_CHARACTERISTIC_SUPPORTED_AUDIO_CONTEXTS 0x06

#define BTP_PACS_UPDATE_CHARACTERISTIC 0x02
struct btp_pacs_update_characteristic_cmd {
uint8_t characteristic;
} __packed;
6 changes: 6 additions & 0 deletions tests/bluetooth/tester/src/btp/bttester.h
Original file line number Diff line number Diff line change
Expand Up @@ -78,5 +78,11 @@ uint8_t tester_unregister_gap(void);

void tester_init_core(void);

uint8_t tester_init_pacs(void);
uint8_t tester_unregister_pacs(void);

uint8_t tester_init_ascs(void);
uint8_t tester_unregister_ascs(void);

uint8_t tester_init_bap(void);
uint8_t tester_unregister_bap(void);
Loading

0 comments on commit 196261d

Please sign in to comment.