Bluetooth: controller: Add CIS-related LL control PDU types

Add definitions for LL_CIS_REQ, LL_CIS_RSP, and LL_CIS_IND PDUs.

Signed-off-by: Wolfgang Puffitsch <wopu@demant.com>
This commit is contained in:
Wolfgang Puffitsch 2021-01-25 17:15:44 +01:00 committed by Anas Nashif
commit 45bdff1509

View file

@ -432,6 +432,10 @@ enum pdu_data_llctrl_type {
PDU_DATA_LLCTRL_TYPE_PHY_RSP = 0x17,
PDU_DATA_LLCTRL_TYPE_PHY_UPD_IND = 0x18,
PDU_DATA_LLCTRL_TYPE_MIN_USED_CHAN_IND = 0x19,
PDU_DATA_LLCTRL_TYPE_CIS_REQ = 0x1F,
PDU_DATA_LLCTRL_TYPE_CIS_RSP = 0x20,
PDU_DATA_LLCTRL_TYPE_CIS_IND = 0x21,
PDU_DATA_LLCTRL_TYPE_CIS_TERMINATE_IND = 0x22,
};
struct pdu_data_llctrl_conn_update_ind {
@ -584,6 +588,69 @@ struct pdu_data_llctrl_min_used_chans_ind {
uint8_t min_used_chans;
} __packed;
struct pdu_data_llctrl_cis_req {
uint8_t cig_id;
uint8_t cis_id;
uint8_t c_phy;
uint8_t p_phy;
#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
uint16_t c_max_sdu:12;
uint16_t rfu0:3;
uint16_t framed:1;
uint16_t p_max_sdu:12;
uint16_t rfu1:4;
#elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
uint16_t framed:1;
uint16_t rfu0:3;
uint16_t c_max_sdu:12;
uint16_t rfu1:4;
uint16_t p_max_sdu:12;
#else
#error "Unsupported endianness"
#endif
uint8_t c_sdu_interval[3];
uint8_t p_sdu_interval[3];
uint16_t c_max_pdu;
uint16_t p_max_pdu;
uint8_t nse;
uint8_t sub_interval[3];
#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
uint8_t c_bn:4;
uint8_t p_bn:4;
#elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
uint8_t p_bn:4;
uint8_t c_bn:4;
#else
#error "Unsupported endianness"
#endif
uint8_t c_ft;
uint8_t p_ft;
uint16_t iso_interval;
uint8_t cis_offset_min[3];
uint8_t cis_offset_max[3];
uint16_t conn_event_count;
} __packed;
struct pdu_data_llctrl_cis_rsp {
uint8_t cis_offset_min[3];
uint8_t cis_offset_max[3];
uint16_t conn_event_count;
} __packed;
struct pdu_data_llctrl_cis_ind {
uint32_t aa;
uint8_t cis_offset[3];
uint8_t cig_sync_delay[3];
uint8_t cis_sync_delay[3];
uint16_t conn_event_count;
} __packed;
struct pdu_data_llctrl_cis_terminate_ind {
uint8_t cig_id;
uint8_t cis_id;
uint8_t error_code;
} __packed;
struct pdu_data_llctrl {
uint8_t opcode;
union {
@ -613,6 +680,10 @@ struct pdu_data_llctrl {
struct pdu_data_llctrl_phy_rsp phy_rsp;
struct pdu_data_llctrl_phy_upd_ind phy_upd_ind;
struct pdu_data_llctrl_min_used_chans_ind min_used_chans_ind;
struct pdu_data_llctrl_cis_req cis_req;
struct pdu_data_llctrl_cis_rsp cis_rsp;
struct pdu_data_llctrl_cis_ind cis_ind;
struct pdu_data_llctrl_cis_terminate_ind cis_terminate_ind;
} __packed;
} __packed;