Skip to content

Commit 51ec246

Browse files
KKopyscinskiagata-ponitkaPavelVPV
authored andcommitted
Bluetooth: Tester: Add Blob, DFU and DFD tests support
Adding support for automatic testing BLOB, DFU and DFD models. Co-authored-by: Agata Ponitka <[email protected]> Co-authored-by: Pavel Vasilyev <[email protected]> Signed-off-by: Krzysztof Kopyściński <[email protected]> Signed-off-by: Pavel Vasilyev <[email protected]>
1 parent 68928e0 commit 51ec246

File tree

5 files changed

+1221
-141
lines changed

5 files changed

+1221
-141
lines changed

tests/bluetooth/tester/overlay-mesh.conf

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ CONFIG_BT_MESH_SAR_CFG_CLI=y
2020
CONFIG_BT_MESH_FRIEND=y
2121
CONFIG_BT_MESH_FRIEND_QUEUE_SIZE=32
2222
CONFIG_BT_MESH_RX_SEG_MAX=13
23-
CONFIG_BT_MESH_TX_SEG_MSG_COUNT=3
23+
CONFIG_BT_MESH_TX_SEG_MSG_COUNT=10
2424
CONFIG_BT_MESH_LPN_POLL_TIMEOUT=100
2525
CONFIG_BT_MESH_PROVISIONER=y
2626
CONFIG_BT_MESH_CDB=y
@@ -32,5 +32,11 @@ CONFIG_BT_MESH_PROVISIONER=y
3232
CONFIG_BT_MESH_RPR_SRV=y
3333
CONFIG_BT_MESH_RPR_CLI=y
3434
CONFIG_BT_MESH_RPR_AD_TYPES_MAX=2
35+
CONFIG_BT_MESH_BLOB_CLI=y
36+
CONFIG_BT_MESH_DFU_CLI=y
37+
CONFIG_BT_MESH_BLOB_SRV=y
38+
CONFIG_BT_MESH_DFU_SRV=y
39+
CONFIG_BT_MESH_DFD_SRV=y
40+
CONFIG_BT_MESH_DFU_SLOT_CNT=2
3541

3642
CONFIG_SETTINGS=y

tests/bluetooth/tester/src/btp/btp_mesh.h

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -895,6 +895,72 @@ struct btp_rpr_reprov_remote_cmd {
895895
bool comp_change;
896896
} __packed;
897897

898+
#define BTP_MMDL_DFU_INFO_GET 0x5f
899+
struct btp_mmdl_dfu_info_get_cmd {
900+
uint8_t limit;
901+
} __packed;
902+
903+
#define BTP_MMDL_BLOB_INFO_GET 0x60
904+
struct btp_mmdl_blob_info_get_cmd {
905+
uint8_t addr_cnt;
906+
uint8_t addr[];
907+
} __packed;
908+
909+
#define BTP_MMDL_DFU_UPDATE_METADATA_CHECK 0x61
910+
struct btp_mmdl_dfu_metadata_check_cmd {
911+
uint8_t index;
912+
uint8_t slot_idx;
913+
uint8_t slot_size;
914+
uint8_t fwid_len;
915+
uint8_t metadata_len;
916+
uint8_t data[];
917+
} __packed;
918+
919+
struct btp_mmdl_dfu_metadata_check_rp {
920+
uint8_t idx;
921+
uint8_t status;
922+
uint8_t effect;
923+
} __packed;
924+
925+
#define BTP_MMDL_DFU_FIRMWARE_UPDATE_GET 0x62
926+
#define BTP_MMDL_DFU_FIRMWARE_UPDATE_CANCEL 0x63
927+
#define BTP_MMDL_DFU_FIRMWARE_UPDATE_START 0x64
928+
struct btp_mmdl_dfu_firmware_update_cmd {
929+
uint8_t addr_cnt;
930+
uint8_t slot_idx;
931+
uint8_t slot_size;
932+
uint8_t fwid_len;
933+
uint8_t metadata_len;
934+
uint8_t block_size;
935+
uint16_t chunk_size;
936+
uint8_t data[];
937+
} __packed;
938+
939+
struct btp_mmdl_dfu_firmware_update_rp {
940+
uint8_t status;
941+
} __packed;
942+
943+
#define BTP_MMDL_BLOB_SRV_RECV 0x65
944+
struct btp_mmdl_blob_srv_recv_cmd {
945+
uint64_t id;
946+
uint16_t timeout;
947+
} __packed;
948+
949+
#define BTP_MMDL_BLOB_TRANSFER_START 0x66
950+
struct btp_mmdl_blob_transfer_start_cmd {
951+
uint64_t id;
952+
uint16_t size;
953+
uint8_t block_size;
954+
uint16_t chunk_size;
955+
uint16_t timeout;
956+
} __packed;
957+
958+
#define BTP_MMDL_BLOB_TRANSFER_CANCEL 0x67
959+
#define BTP_MMDL_BLOB_TRANSFER_GET 0x68
960+
#define BTP_MMDL_BLOB_SRV_CANCEL 0x69
961+
#define BTP_MMDL_DFU_FIRMWARE_UPDATE_APPLY 0x6A
962+
#define BTP_MMDL_DFU_SRV_APPLY 0x6B
963+
898964
/* events */
899965
#define BTP_MESH_EV_OUT_NUMBER_ACTION 0x80
900966
struct btp_mesh_out_number_action_ev {
@@ -996,3 +1062,5 @@ struct btp_mesh_model_recv_ev {
9961062
uint8_t payload_len;
9971063
uint8_t payload[];
9981064
} __packed;
1065+
1066+
#define MESH_EV_BLOB_LOST_TARGET 0x90

tests/bluetooth/tester/src/btp/bttester.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,9 @@ uint8_t tester_unregister_vocs(void);
7373
uint8_t tester_init_ias(void);
7474
uint8_t tester_unregister_ias(void);
7575

76+
uint8_t tester_init_mmdl(void);
77+
uint8_t tester_unregister_mmdl(void);
78+
7679
uint8_t tester_init_gap(void);
7780
uint8_t tester_unregister_gap(void);
7881

tests/bluetooth/tester/src/btp_core.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,9 @@ static uint8_t register_service(const void *cmd, uint16_t cmd_len,
127127
case BTP_SERVICE_ID_MESH:
128128
status = tester_init_mesh();
129129
break;
130+
case BTP_SERVICE_ID_MESH_MDL:
131+
status = tester_init_mmdl();
132+
break;
130133
#endif /* CONFIG_BT_MESH */
131134
#if defined(CONFIG_BT_VCP_VOL_REND) || defined(CONFIG_BT_VCP_VOL_CTLR)
132135
case BTP_SERVICE_ID_VCS:
@@ -226,6 +229,9 @@ static uint8_t unregister_service(const void *cmd, uint16_t cmd_len,
226229
case BTP_SERVICE_ID_MESH:
227230
status = tester_unregister_mesh();
228231
break;
232+
case BTP_SERVICE_ID_MESH_MDL:
233+
status = tester_unregister_mmdl();
234+
break;
229235
#endif /* CONFIG_BT_MESH */
230236
#if defined(CONFIG_BT_VCP_VOL_REND)
231237
case BTP_SERVICE_ID_VCS:

0 commit comments

Comments
 (0)