This is an automated email from the ASF dual-hosted git repository.

janc pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mynewt-nimble.git


The following commit(s) were added to refs/heads/master by this push:
     new 53c2b4bd6 nimble/btp: Implement missing BAP layer commands & events
53c2b4bd6 is described below

commit 53c2b4bd6960fbf2c42a357831436075a4e854f7
Author: Szymon Czapracki <[email protected]>
AuthorDate: Wed Jul 9 13:27:12 2025 +0200

    nimble/btp: Implement missing BAP layer commands & events
    
    Bring BAP commands and events up to date with their
    corresponding counterparts in Auto-PTS.
    
    Bring file structure up to coding standards.
---
 apps/bttester/src/btp/btp_bap.h | 242 ++++++++++++++++++++++++++++++++++------
 1 file changed, 208 insertions(+), 34 deletions(-)

diff --git a/apps/bttester/src/btp/btp_bap.h b/apps/bttester/src/btp/btp_bap.h
index 804c9d4c8..ea117ac4a 100644
--- a/apps/bttester/src/btp/btp_bap.h
+++ b/apps/bttester/src/btp/btp_bap.h
@@ -29,7 +29,7 @@
 
 /* BAP Service */
 /* commands */
-#define BTP_BAP_READ_SUPPORTED_COMMANDS         0x01
+#define BTP_BAP_READ_SUPPORTED_COMMANDS 0x01
 struct btp_bap_read_supported_commands_rp {
     uint8_t data[0];
 } __packed;
@@ -58,70 +58,244 @@ struct bap_broadcast_source_setup_rp {
     uint8_t broadcast_id[3];
 } __packed;
 
-#define BTP_BAP_BROADCAST_SOURCE_RELEASE        0x05
+#define BTP_BAP_BROADCAST_SOURCE_RELEASE 0x05
 struct bap_bap_broadcast_source_release_cmd {
     uint8_t broadcast_id[3];
 } __packed;
 
-#define BTP_BAP_BROADCAST_ADV_START             0x06
+#define BTP_BAP_BROADCAST_ADV_START 0x06
 struct bap_bap_broadcast_adv_start_cmd {
     uint8_t broadcast_id[3];
 } __packed;
 
-#define BTP_BAP_BROADCAST_ADV_STOP              0x07
+#define BTP_BAP_BROADCAST_ADV_STOP 0x07
 struct bap_bap_broadcast_adv_stop_cmd {
     uint8_t broadcast_id[3];
 } __packed;
 
-#define BTP_BAP_BROADCAST_SOURCE_START          0x08
+#define BTP_BAP_BROADCAST_SOURCE_START 0x08
 struct bap_bap_broadcast_source_start_cmd {
     uint8_t broadcast_id[3];
 } __packed;
 
-#define BTP_BAP_BROADCAST_SOURCE_STOP           0x09
+#define BTP_BAP_BROADCAST_SOURCE_STOP 0x09
 struct bap_bap_broadcast_source_stop_cmd {
     uint8_t broadcast_id[3];
 } __packed;
 
-#define BTP_BAP_BROADCAST_SINK_SETUP            0x0a
+#define BTP_BAP_BROADCAST_SINK_SETUP 0x0a
+struct btp_bap_broadcast_sink_setup_cmd {
+} __packed;
+
+#define BTP_BAP_BROADCAST_SINK_RELEASE 0x0b
+struct btp_bap_broadcast_sink_release_cmd {
+} __packed;
+
+#define BTP_BAP_BROADCAST_SCAN_START 0x0c
+struct btp_bap_broadcast_scan_start_cmd {
+} __packed;
+
+#define BTP_BAP_BROADCAST_SCAN_STOP 0x0d
+struct btp_bap_broadcast_scan_stop_cmd {
+} __packed;
 
-#define BTP_BAP_BROADCAST_SINK_STOP             0x0f
+#define BTP_BAP_BROADCAST_SINK_SYNC 0x0e
+struct btp_bap_broadcast_sink_sync_cmd {
+    ble_addr_t addr;
+    uint8_t broadcast_id[3];
+    uint8_t advertiser_sid;
+    uint16_t skip;
+    uint16_t sync_timeout;
+    uint8_t past_avail;
+    uint8_t src_id;
+} __packed;
+
+#define BTP_BAP_BROADCAST_SINK_STOP 0x0f
 struct btp_bap_broadcast_sink_stop_cmd {
     ble_addr_t address;
     uint8_t broadcast_id[3];
 } __packed;
 
-#define BTP_BAP_SET_BROADCAST_CODE              0x17
+#define BTP_BAP_BROADCAST_SINK_BIS_SYNC 0x10
+struct btp_bap_broadcast_sink_bis_sync_cmd {
+    ble_addr_t address;
+    uint8_t broadcast_id[3];
+    uint32_t requested_bis_sync;
+} __packed;
+
+#define BTP_BAP_DISCOVER_SCAN_DELEGATOR 0x11
+struct btp_bap_discover_scan_delegator_cmd {
+    ble_addr_t address;
+} __packed;
+
+#define BTP_BAP_BROADCAST_ASSISTANT_SCAN_START 0x12
+struct btp_bap_broadcast_assistant_scan_start_cmd {
+    ble_addr_t address;
+} __packed;
+
+#define BTP_BAP_BROADCAST_ASSISTANT_SCAN_STOP 0x13
+struct btp_bap_broadcast_assistant_scan_stop_cmd {
+    ble_addr_t address;
+} __packed;
+
+#define BTP_BAP_ADD_BROADCAST_SRC 0x14
+struct btp_bap_add_broadcast_src_cmd {
+    ble_addr_t address;
+    ble_addr_t broadcaster_address;
+    uint8_t advertiser_sid;
+    uint8_t broadcast_id[3];
+    uint8_t padv_sync;
+    uint16_t padv_interval;
+    uint8_t num_subgroups;
+    uint8_t subgroups[0];
+} __packed;
+
+#define BTP_BAP_REMOVE_BROADCAST_SRC 0x15
+struct btp_bap_remove_broadcast_src_cmd {
+    ble_addr_t address;
+    uint8_t source_id;
+} __packed;
+
+#define BTP_BAP_MODIFY_BROADCAST_SRC 0x16
+struct btp_bap_modify_broadcast_src_cmd {
+    ble_addr_t address;
+    uint8_t source_id;
+    uint8_t padv_sync;
+    uint16_t padv_interval;
+    uint8_t num_subgroups;
+    uint8_t subgroups[0];
+} __packed;
+
+#define BTP_BAP_SET_BROADCAST_CODE 0x17
 struct btp_bap_set_broadcast_code_cmd {
     ble_addr_t addr;
     uint8_t source_id;
     uint8_t broadcast_code[16];
 } __packed;
 
-#define BTP_BAP_BROADCAST_SINK_RELEASE          0x0b
-#define BTP_BAP_BROADCAST_SCAN_START            0x0c
-#define BTP_BAP_BROADCAST_SCAN_STOP             0x0d
-#define BTP_BAP_BROADCAST_SINK_SYNC             0x0e
-#define BTP_BAP_BROADCAST_SINK_BIS_SYNC         0x10
-#define BTP_BAP_DISCOVER_SCAN_DELEGATOR         0x11
-#define BTP_BAP_BROADCAST_ASSISTANT_SCAN_START  0x12
-#define BTP_BAP_BROADCAST_ASSISTANT_SCAN_STOP   0x13
-#define BTP_BAP_ADD_BROADCAST_SRC               0x14
-#define BTP_BAP_REMOVE_BROADCAST_SRC            0x15
-#define BTP_BAP_MODIFY_BROADCAST_SRC            0x16
-#define BTP_BAP_SET_BROADCAST_CODE              0x17
-#define BTP_BAP_SEND_PAST                       0x18
-
-#define BTP_BAP_EV_DISCOVERY_COMPLETED          0x80
-#define BTP_BAP_EV_CODEC_CAP_FOUND              0x81
-#define BTP_BAP_EV_ASE_FOUND                    0x82
-#define BTP_BAP_EV_STREAM_RECEIVED              0x83
-#define BTP_BAP_EV_BAA_FOUND                    0x84
-#define BTP_BAP_EV_BIS_FOUND                    0x85
-#define BTP_BAP_EV_BIS_SYNCED                   0x86
-#define BTP_BAP_EV_BIS_STREAM_RECEIVED          0x87
-#define BTP_BAP_EV_SCAN_DELEGATOR_FOUND         0x88
-#define BTP_BAP_EV_BROADCAST_RECEIVE_STATE      0x89
-#define BTP_BAP_EV_PA_SYNC_REQ                  0x8a
+#define BTP_BAP_SEND_PAST 0x18
+struct btp_bap_send_past_cmd {
+    ble_addr_t address;
+    uint8_t src_id;
+} __packed;
+
+#define BTP_BAP_BROADCAST_SOURCE_SETUP_V2 0x19
+struct btp_bap_broadcast_source_setup_v2_cmd {
+    uint8_t broadcast_id[3];
+    uint8_t streams_per_subgroup;
+    uint8_t subgroups;
+    uint8_t sdu_interval[3];
+    uint8_t framing;
+    uint16_t max_sdu;
+    uint8_t retransmission_num;
+    uint16_t max_transport_latency;
+    uint8_t presentation_delay[3];
+    uint8_t coding_format;
+    uint16_t vid;
+    uint16_t cid;
+    uint8_t cc_ltvs_len;
+    uint8_t cc_ltvs[];
+} __packed;
+struct btp_bap_broadcast_source_setup_v2_rp {
+    uint32_t gap_settings;
+} __packed;
+
+#define BTP_BAP_EV_DISCOVERY_COMPLETED 0x80
+struct btp_bap_discovery_completed_ev {
+    ble_addr_t address;
+    uint8_t status;
+} __packed;
+
+#define BTP_BAP_EV_CODEC_CAP_FOUND 0x81
+struct btp_bap_codec_cap_found_ev {
+    ble_addr_t address;
+    uint8_t dir;
+    uint8_t coding_format;
+    uint16_t frequencies;
+    uint8_t frame_durations;
+    uint32_t octets_per_frame;
+    uint8_t channel_counts;
+} __packed;
+
+#define BTP_BAP_EV_ASE_FOUND 0x82
+struct btp_bap_ase_found_ev {
+    ble_addr_t address;
+    uint8_t dir;
+    uint8_t ase_id;
+} __packed;
+
+#define BTP_BAP_EV_STREAM_RECEIVED 0x83
+struct btp_bap_stream_received_ev {
+    ble_addr_t address;
+    uint8_t ase_id;
+    uint8_t data_len;
+    uint8_t data[];
+} __packed;
+
+#define BTP_BAP_EV_BAA_FOUND 0x84
+struct btp_bap_baa_found_ev {
+    ble_addr_t address;
+    uint8_t broadcast_id[3];
+    uint8_t advertiser_sid;
+    uint16_t padv_interval;
+} __packed;
+
+#define BTP_BAP_EV_BIS_FOUND 0x85
+struct btp_bap_bis_found_ev {
+    ble_addr_t address;
+    uint8_t broadcast_id[3];
+    uint8_t presentation_delay[3];
+    uint8_t subgroup_id;
+    uint8_t bis_id;
+    uint8_t coding_format;
+    uint16_t vid;
+    uint16_t cid;
+    uint8_t cc_ltvs_len;
+    uint8_t cc_ltvs[];
+} __packed;
+
+#define BTP_BAP_EV_BIS_SYNCED 0x86
+struct btp_bap_bis_synced_ev {
+    ble_addr_t address;
+    uint8_t broadcast_id[3];
+    uint8_t bis_id;
+} __packed;
+
+#define BTP_BAP_EV_BIS_STREAM_RECEIVED 0x87
+struct btp_bap_bis_stream_received_ev {
+    ble_addr_t address;
+    uint8_t broadcast_id[3];
+    uint8_t bis_id;
+    uint8_t data_len;
+    uint8_t data[];
+} __packed;
+
+#define BTP_BAP_EV_SCAN_DELEGATOR_FOUND 0x88
+struct btp_bap_scan_delegator_found_ev {
+    ble_addr_t address;
+} __packed;
+
+#define BTP_BAP_EV_BROADCAST_RECEIVE_STATE 0x89
+struct btp_bap_broadcast_receive_state_ev {
+    ble_addr_t address;
+    uint8_t source_id;
+    ble_addr_t broadcaster_address;
+    uint8_t advertiser_sid;
+    uint8_t broadcast_id[3];
+    uint8_t pa_sync_state;
+    uint8_t big_encryption;
+    uint8_t num_subgroups;
+    uint8_t subgroups[0];
+} __packed;
+
+#define BTP_BAP_EV_PA_SYNC_REQ 0x8a
+struct btp_bap_pa_sync_req_ev {
+    ble_addr_t address;
+    uint8_t source_id;
+    uint8_t advertiser_sid;
+    uint8_t broadcast_id[3];
+    uint8_t past_avail;
+    uint16_t pa_interval;
+} __packed;
 
 #endif /* H_BTP_BAP_                        */

Reply via email to