| /* |
| * Copyright (c) 2022 Demant |
| * |
| * SPDX-License-Identifier: Apache-2.0 |
| * |
| * Run this test from zephyr directory as: |
| * |
| * ./scripts/twister --coverage -p native_posix -v -T tests/bluetooth/ctrl_isoal/ |
| * |
| */ |
| |
| #ifndef _ISOAL_TEST_COMMON_H_ |
| #define _ISOAL_TEST_COMMON_H_ |
| |
| |
| #define TEST_RX_PDU_PAYLOAD_MAX (40) |
| #define TEST_RX_PDU_SIZE (TEST_RX_PDU_PAYLOAD_MAX + 2) |
| |
| #define TEST_RX_SDU_FRAG_PAYLOAD_MAX (100) |
| #define TEST_TX_PDU_PAYLOAD_MAX (40) |
| |
| #define TEST_TX_PDU_SIZE (TEST_TX_PDU_PAYLOAD_MAX + 2) |
| #define TEST_TX_SDU_FRAG_PAYLOAD_MAX (100) |
| |
| |
| #define LLID_TO_STR(llid) (llid == PDU_BIS_LLID_COMPLETE_END ? "COMPLETE_END" : \ |
| (llid == PDU_BIS_LLID_START_CONTINUE ? "START_CONT" : \ |
| (llid == PDU_BIS_LLID_FRAMED ? "FRAMED" : \ |
| (llid == PDU_BIS_LLID_CTRL ? "CTRL" : "?????")))) |
| |
| #define DU_ERR_TO_STR(err) (err == 1 ? "Bit Errors" : \ |
| (err == 2 ? "Data Lost" : \ |
| (err == 0 ? "OK" : "Undefined!"))) |
| |
| #define STATE_TO_STR(s) (s == BT_ISO_SINGLE ? "SINGLE" : \ |
| (s == BT_ISO_START ? "START" : \ |
| (s == BT_ISO_CONT ? "CONT" : \ |
| (s == BT_ISO_END ? "END" : "???")))) |
| |
| #define ROLE_TO_STR(s) (s == BT_ROLE_BROADCAST ? "Broadcast" : \ |
| (role == BT_CONN_ROLE_PERIPHERAL ? "Peripheral" : \ |
| (role == BT_CONN_ROLE_CENTRAL ? "Central" : "Undefined"))) |
| |
| #define FSM_TO_STR(s) (s == ISOAL_START ? "START" : \ |
| (s == ISOAL_CONTINUE ? "CONTINUE" : \ |
| (s == ISOAL_ERR_SPOOL ? "ERR SPOOL" : "???"))) |
| |
| #if defined(ISOAL_CONFIG_BUFFER_RX_SDUS_ENABLE) |
| #define COLLATED_RX_SDU_INFO(_non_buf, _buf) (_buf) |
| #else |
| #define COLLATED_RX_SDU_INFO(_non_buf, _buf) (_non_buf) |
| #endif /* ISOAL_CONFIG_BUFFER_RX_SDUS_ENABLE */ |
| |
| /* Maximum PDU payload for given number of PDUs */ |
| #define MAX_FRAMED_PDU_PAYLOAD(_pdus) \ |
| (TEST_TX_PDU_PAYLOAD_MAX * _pdus) - \ |
| ((PDU_ISO_SEG_HDR_SIZE * _pdus) + PDU_ISO_SEG_TIMEOFFSET_SIZE) |
| |
| struct rx_pdu_meta_buffer { |
| struct isoal_pdu_rx pdu_meta; |
| struct node_rx_iso_meta meta; |
| uint8_t pdu[TEST_RX_PDU_SIZE]; |
| }; |
| |
| struct rx_sdu_frag_buffer { |
| uint16_t write_loc; |
| uint8_t sdu[TEST_RX_SDU_FRAG_PAYLOAD_MAX]; |
| }; |
| |
| |
| struct tx_pdu_meta_buffer { |
| struct node_tx_iso node_tx; |
| union{ |
| struct pdu_iso pdu; |
| uint8_t pdu_payload[TEST_TX_PDU_PAYLOAD_MAX]; |
| }; |
| }; |
| |
| struct tx_sdu_frag_buffer { |
| struct isoal_sdu_tx sdu_tx; |
| uint8_t sdu_payload[TEST_TX_SDU_FRAG_PAYLOAD_MAX]; |
| }; |
| |
| |
| extern void isoal_test_init_rx_pdu_buffer(struct rx_pdu_meta_buffer *buf); |
| extern void isoal_test_init_rx_sdu_buffer(struct rx_sdu_frag_buffer *buf); |
| extern void isoal_test_create_unframed_pdu(uint8_t llid, uint8_t *dataptr, |
| uint8_t length, uint64_t payload_number, uint32_t timestamp, |
| uint8_t status, struct isoal_pdu_rx *pdu_meta); |
| extern uint16_t isoal_test_insert_segment(bool sc, |
| bool cmplt, uint32_t time_offset, uint8_t *dataptr, uint8_t length, |
| struct isoal_pdu_rx *pdu_meta); |
| extern void isoal_test_create_framed_pdu_base(uint64_t payload_number, |
| uint32_t timestamp, uint8_t status, struct isoal_pdu_rx *pdu_meta); |
| extern uint16_t isoal_test_add_framed_pdu_single(uint8_t *dataptr, |
| uint8_t length, uint32_t time_offset, struct isoal_pdu_rx *pdu_meta); |
| extern uint16_t isoal_test_add_framed_pdu_start(uint8_t *dataptr, |
| uint8_t length, uint32_t time_offset, struct isoal_pdu_rx *pdu_meta); |
| extern uint16_t isoal_test_add_framed_pdu_cont(uint8_t *dataptr, |
| uint8_t length, struct isoal_pdu_rx *pdu_meta); |
| extern uint16_t isoal_test_add_framed_pdu_end(uint8_t *dataptr, |
| uint8_t length, struct isoal_pdu_rx *pdu_meta); |
| extern void isoal_test_init_tx_pdu_buffer(struct tx_pdu_meta_buffer *buf); |
| extern void isoal_test_init_tx_sdu_buffer(struct tx_sdu_frag_buffer *buf); |
| extern void init_test_data_buffer(uint8_t *buf, uint16_t size); |
| |
| #endif /* _ISOAL_TEST_COMMON_H_ */ |