Skip to content

Commit 45bdff1

Browse files
wopu-otnashif
authored andcommitted
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 <[email protected]>
1 parent 119d22a commit 45bdff1

File tree

1 file changed

+71
-0
lines changed
  • subsys/bluetooth/controller/ll_sw

1 file changed

+71
-0
lines changed

subsys/bluetooth/controller/ll_sw/pdu.h

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -432,6 +432,10 @@ enum pdu_data_llctrl_type {
432432
PDU_DATA_LLCTRL_TYPE_PHY_RSP = 0x17,
433433
PDU_DATA_LLCTRL_TYPE_PHY_UPD_IND = 0x18,
434434
PDU_DATA_LLCTRL_TYPE_MIN_USED_CHAN_IND = 0x19,
435+
PDU_DATA_LLCTRL_TYPE_CIS_REQ = 0x1F,
436+
PDU_DATA_LLCTRL_TYPE_CIS_RSP = 0x20,
437+
PDU_DATA_LLCTRL_TYPE_CIS_IND = 0x21,
438+
PDU_DATA_LLCTRL_TYPE_CIS_TERMINATE_IND = 0x22,
435439
};
436440

437441
struct pdu_data_llctrl_conn_update_ind {
@@ -584,6 +588,69 @@ struct pdu_data_llctrl_min_used_chans_ind {
584588
uint8_t min_used_chans;
585589
} __packed;
586590

591+
struct pdu_data_llctrl_cis_req {
592+
uint8_t cig_id;
593+
uint8_t cis_id;
594+
uint8_t c_phy;
595+
uint8_t p_phy;
596+
#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
597+
uint16_t c_max_sdu:12;
598+
uint16_t rfu0:3;
599+
uint16_t framed:1;
600+
uint16_t p_max_sdu:12;
601+
uint16_t rfu1:4;
602+
#elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
603+
uint16_t framed:1;
604+
uint16_t rfu0:3;
605+
uint16_t c_max_sdu:12;
606+
uint16_t rfu1:4;
607+
uint16_t p_max_sdu:12;
608+
#else
609+
#error "Unsupported endianness"
610+
#endif
611+
uint8_t c_sdu_interval[3];
612+
uint8_t p_sdu_interval[3];
613+
uint16_t c_max_pdu;
614+
uint16_t p_max_pdu;
615+
uint8_t nse;
616+
uint8_t sub_interval[3];
617+
#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
618+
uint8_t c_bn:4;
619+
uint8_t p_bn:4;
620+
#elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
621+
uint8_t p_bn:4;
622+
uint8_t c_bn:4;
623+
#else
624+
#error "Unsupported endianness"
625+
#endif
626+
uint8_t c_ft;
627+
uint8_t p_ft;
628+
uint16_t iso_interval;
629+
uint8_t cis_offset_min[3];
630+
uint8_t cis_offset_max[3];
631+
uint16_t conn_event_count;
632+
} __packed;
633+
634+
struct pdu_data_llctrl_cis_rsp {
635+
uint8_t cis_offset_min[3];
636+
uint8_t cis_offset_max[3];
637+
uint16_t conn_event_count;
638+
} __packed;
639+
640+
struct pdu_data_llctrl_cis_ind {
641+
uint32_t aa;
642+
uint8_t cis_offset[3];
643+
uint8_t cig_sync_delay[3];
644+
uint8_t cis_sync_delay[3];
645+
uint16_t conn_event_count;
646+
} __packed;
647+
648+
struct pdu_data_llctrl_cis_terminate_ind {
649+
uint8_t cig_id;
650+
uint8_t cis_id;
651+
uint8_t error_code;
652+
} __packed;
653+
587654
struct pdu_data_llctrl {
588655
uint8_t opcode;
589656
union {
@@ -613,6 +680,10 @@ struct pdu_data_llctrl {
613680
struct pdu_data_llctrl_phy_rsp phy_rsp;
614681
struct pdu_data_llctrl_phy_upd_ind phy_upd_ind;
615682
struct pdu_data_llctrl_min_used_chans_ind min_used_chans_ind;
683+
struct pdu_data_llctrl_cis_req cis_req;
684+
struct pdu_data_llctrl_cis_rsp cis_rsp;
685+
struct pdu_data_llctrl_cis_ind cis_ind;
686+
struct pdu_data_llctrl_cis_terminate_ind cis_terminate_ind;
616687
} __packed;
617688
} __packed;
618689

0 commit comments

Comments
 (0)