Bluetooth: controller: Add peripheral/central conditional compilations
Add conditional compilation on peripheral and central specific control procedure implementation. Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
This commit is contained in:
parent
abcee4dc2b
commit
d2415fcfd0
2 changed files with 57 additions and 7 deletions
|
@ -93,7 +93,9 @@ static inline void event_ch_map_prep(struct ll_conn *conn,
|
||||||
#if defined(CONFIG_BT_CTLR_LE_ENC)
|
#if defined(CONFIG_BT_CTLR_LE_ENC)
|
||||||
static bool is_enc_req_pause_tx(struct ll_conn *conn);
|
static bool is_enc_req_pause_tx(struct ll_conn *conn);
|
||||||
static inline void event_enc_prep(struct ll_conn *conn);
|
static inline void event_enc_prep(struct ll_conn *conn);
|
||||||
|
#if defined(CONFIG_BT_PERIPHERAL)
|
||||||
static int enc_rsp_send(struct ll_conn *conn);
|
static int enc_rsp_send(struct ll_conn *conn);
|
||||||
|
#endif /* CONFIG_BT_PERIPHERAL */
|
||||||
static int start_enc_rsp_send(struct ll_conn *conn,
|
static int start_enc_rsp_send(struct ll_conn *conn,
|
||||||
struct pdu_data *pdu_ctrl_tx);
|
struct pdu_data *pdu_ctrl_tx);
|
||||||
static inline bool ctrl_is_unexpected(struct ll_conn *conn, uint8_t opcode);
|
static inline bool ctrl_is_unexpected(struct ll_conn *conn, uint8_t opcode);
|
||||||
|
@ -2619,7 +2621,7 @@ static inline void event_enc_prep(struct ll_conn *conn)
|
||||||
struct node_tx *tx;
|
struct node_tx *tx;
|
||||||
|
|
||||||
if (conn->llcp.encryption.state) {
|
if (conn->llcp.encryption.state) {
|
||||||
#if !defined(CONFIG_BT_CTLR_FAST_ENC)
|
#if defined(CONFIG_BT_PERIPHERAL) && !defined(CONFIG_BT_CTLR_FAST_ENC)
|
||||||
if (lll->role &&
|
if (lll->role &&
|
||||||
(conn->llcp.encryption.state == LLCP_ENC_STATE_INIT)) {
|
(conn->llcp.encryption.state == LLCP_ENC_STATE_INIT)) {
|
||||||
struct node_rx_pdu *rx;
|
struct node_rx_pdu *rx;
|
||||||
|
@ -2662,7 +2664,7 @@ static inline void event_enc_prep(struct ll_conn *conn)
|
||||||
/* Wait for LTK reply */
|
/* Wait for LTK reply */
|
||||||
conn->llcp.encryption.state = LLCP_ENC_STATE_LTK_WAIT;
|
conn->llcp.encryption.state = LLCP_ENC_STATE_LTK_WAIT;
|
||||||
}
|
}
|
||||||
#endif /* !CONFIG_BT_CTLR_FAST_ENC */
|
#endif /* CONFIG_BT_PERIPHERAL && !CONFIG_BT_CTLR_FAST_ENC */
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -3809,6 +3811,7 @@ static inline void event_phy_upd_ind_prep(struct ll_conn *conn,
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_BT_CTLR_PHY */
|
#endif /* CONFIG_BT_CTLR_PHY */
|
||||||
|
|
||||||
|
#if defined(CONFIG_BT_PERIPHERAL)
|
||||||
static uint8_t conn_upd_recv(struct ll_conn *conn, memq_link_t *link,
|
static uint8_t conn_upd_recv(struct ll_conn *conn, memq_link_t *link,
|
||||||
struct node_rx_pdu **rx, struct pdu_data *pdu)
|
struct node_rx_pdu **rx, struct pdu_data *pdu)
|
||||||
{
|
{
|
||||||
|
@ -3904,6 +3907,7 @@ chan_map_upd_recv_exit:
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
#endif /* CONFIG_BT_PERIPHERAL */
|
||||||
|
|
||||||
static void terminate_ind_recv(struct ll_conn *conn, struct node_rx_pdu *rx,
|
static void terminate_ind_recv(struct ll_conn *conn, struct node_rx_pdu *rx,
|
||||||
struct pdu_data *pdu)
|
struct pdu_data *pdu)
|
||||||
|
@ -3916,6 +3920,7 @@ static void terminate_ind_recv(struct ll_conn *conn, struct node_rx_pdu *rx,
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(CONFIG_BT_CTLR_LE_ENC)
|
#if defined(CONFIG_BT_CTLR_LE_ENC)
|
||||||
|
#if defined(CONFIG_BT_CENTRAL)
|
||||||
static void enc_req_reused_send(struct ll_conn *conn, struct node_tx **tx)
|
static void enc_req_reused_send(struct ll_conn *conn, struct node_tx **tx)
|
||||||
{
|
{
|
||||||
struct pdu_data *pdu_ctrl_tx;
|
struct pdu_data *pdu_ctrl_tx;
|
||||||
|
@ -3949,7 +3954,9 @@ static void enc_req_reused_send(struct ll_conn *conn, struct node_tx **tx)
|
||||||
/* dont release ctrl PDU memory */
|
/* dont release ctrl PDU memory */
|
||||||
*tx = NULL;
|
*tx = NULL;
|
||||||
}
|
}
|
||||||
|
#endif /* CONFIG_BT_CENTRAL */
|
||||||
|
|
||||||
|
#if defined(CONFIG_BT_PERIPHERAL)
|
||||||
static int enc_rsp_send(struct ll_conn *conn)
|
static int enc_rsp_send(struct ll_conn *conn)
|
||||||
{
|
{
|
||||||
struct pdu_data *pdu_ctrl_tx;
|
struct pdu_data *pdu_ctrl_tx;
|
||||||
|
@ -3991,6 +3998,7 @@ static int enc_rsp_send(struct ll_conn *conn)
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
#endif /* CONFIG_BT_PERIPHERAL */
|
||||||
|
|
||||||
static int start_enc_rsp_send(struct ll_conn *conn,
|
static int start_enc_rsp_send(struct ll_conn *conn,
|
||||||
struct pdu_data *pdu_ctrl_tx)
|
struct pdu_data *pdu_ctrl_tx)
|
||||||
|
@ -5086,10 +5094,13 @@ static inline void ctrl_tx_pre_ack(struct ll_conn *conn,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
__fallthrough;
|
__fallthrough;
|
||||||
|
#if defined(CONFIG_BT_CENTRAL)
|
||||||
case PDU_DATA_LLCTRL_TYPE_ENC_REQ:
|
case PDU_DATA_LLCTRL_TYPE_ENC_REQ:
|
||||||
case PDU_DATA_LLCTRL_TYPE_ENC_RSP:
|
|
||||||
case PDU_DATA_LLCTRL_TYPE_PAUSE_ENC_REQ:
|
case PDU_DATA_LLCTRL_TYPE_PAUSE_ENC_REQ:
|
||||||
|
#endif /* CONFIG_BT_CENTRAL */
|
||||||
|
#if defined(CONFIG_BT_PERIPHERAL)
|
||||||
|
case PDU_DATA_LLCTRL_TYPE_ENC_RSP:
|
||||||
|
#endif /* CONFIG_BT_PERIPHERAL */
|
||||||
/* pause data packet tx */
|
/* pause data packet tx */
|
||||||
conn->llcp_enc.pause_tx = 1U;
|
conn->llcp_enc.pause_tx = 1U;
|
||||||
break;
|
break;
|
||||||
|
@ -5097,7 +5108,9 @@ static inline void ctrl_tx_pre_ack(struct ll_conn *conn,
|
||||||
|
|
||||||
#if defined(CONFIG_BT_CTLR_PHY)
|
#if defined(CONFIG_BT_CTLR_PHY)
|
||||||
case PDU_DATA_LLCTRL_TYPE_PHY_REQ:
|
case PDU_DATA_LLCTRL_TYPE_PHY_REQ:
|
||||||
|
#if defined(CONFIG_BT_PERIPHERAL)
|
||||||
case PDU_DATA_LLCTRL_TYPE_PHY_RSP:
|
case PDU_DATA_LLCTRL_TYPE_PHY_RSP:
|
||||||
|
#endif /* CONFIG_BT_PERIPHERAL */
|
||||||
/* pause data packet tx */
|
/* pause data packet tx */
|
||||||
conn->llcp_phy.pause_tx = 1U;
|
conn->llcp_phy.pause_tx = 1U;
|
||||||
break;
|
break;
|
||||||
|
@ -5125,6 +5138,7 @@ static inline void ctrl_tx_ack(struct ll_conn *conn, struct node_tx **tx,
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#if defined(CONFIG_BT_CTLR_LE_ENC)
|
#if defined(CONFIG_BT_CTLR_LE_ENC)
|
||||||
|
#if defined(CONFIG_BT_CENTRAL)
|
||||||
case PDU_DATA_LLCTRL_TYPE_ENC_REQ:
|
case PDU_DATA_LLCTRL_TYPE_ENC_REQ:
|
||||||
/* things from master stored for session key calculation */
|
/* things from master stored for session key calculation */
|
||||||
memcpy(&conn->llcp.encryption.skd[0],
|
memcpy(&conn->llcp.encryption.skd[0],
|
||||||
|
@ -5144,7 +5158,9 @@ static inline void ctrl_tx_ack(struct ll_conn *conn, struct node_tx **tx,
|
||||||
/* Reset enc req queued state */
|
/* Reset enc req queued state */
|
||||||
conn->llcp_enc.ack = conn->llcp_enc.req;
|
conn->llcp_enc.ack = conn->llcp_enc.req;
|
||||||
break;
|
break;
|
||||||
|
#endif /* CONFIG_BT_CENTRAL */
|
||||||
|
|
||||||
|
#if defined(CONFIG_BT_PERIPHERAL)
|
||||||
case PDU_DATA_LLCTRL_TYPE_ENC_RSP:
|
case PDU_DATA_LLCTRL_TYPE_ENC_RSP:
|
||||||
/* pause data packet tx */
|
/* pause data packet tx */
|
||||||
conn->llcp_enc.pause_tx = 1U;
|
conn->llcp_enc.pause_tx = 1U;
|
||||||
|
@ -5156,7 +5172,9 @@ static inline void ctrl_tx_ack(struct ll_conn *conn, struct node_tx **tx,
|
||||||
* alongwith this tx ack at this point in time.
|
* alongwith this tx ack at this point in time.
|
||||||
*/
|
*/
|
||||||
break;
|
break;
|
||||||
|
#endif /* CONFIG_BT_PERIPHERAL */
|
||||||
|
|
||||||
|
#if defined(CONFIG_BT_CENTRAL)
|
||||||
case PDU_DATA_LLCTRL_TYPE_PAUSE_ENC_REQ:
|
case PDU_DATA_LLCTRL_TYPE_PAUSE_ENC_REQ:
|
||||||
/* pause data packet tx */
|
/* pause data packet tx */
|
||||||
conn->llcp_enc.pause_tx = 1U;
|
conn->llcp_enc.pause_tx = 1U;
|
||||||
|
@ -5173,12 +5191,16 @@ static inline void ctrl_tx_ack(struct ll_conn *conn, struct node_tx **tx,
|
||||||
/* Reset enc req queued state */
|
/* Reset enc req queued state */
|
||||||
conn->llcp_enc.ack = conn->llcp_enc.req;
|
conn->llcp_enc.ack = conn->llcp_enc.req;
|
||||||
break;
|
break;
|
||||||
|
#endif /* CONFIG_BT_CENTRAL */
|
||||||
|
|
||||||
case PDU_DATA_LLCTRL_TYPE_PAUSE_ENC_RSP:
|
case PDU_DATA_LLCTRL_TYPE_PAUSE_ENC_RSP:
|
||||||
|
#if defined(CONFIG_BT_CENTRAL)
|
||||||
if (!conn->lll.role) {
|
if (!conn->lll.role) {
|
||||||
/* reused tx-ed PDU and send enc req */
|
/* reused tx-ed PDU and send enc req */
|
||||||
enc_req_reused_send(conn, tx);
|
enc_req_reused_send(conn, tx);
|
||||||
} else {
|
} else
|
||||||
|
#endif /* CONFIG_BT_CENTRAL */
|
||||||
|
{
|
||||||
/* pause data packet tx */
|
/* pause data packet tx */
|
||||||
conn->llcp_enc.pause_tx = 1U;
|
conn->llcp_enc.pause_tx = 1U;
|
||||||
}
|
}
|
||||||
|
@ -5264,6 +5286,7 @@ static inline void ctrl_tx_ack(struct ll_conn *conn, struct node_tx **tx,
|
||||||
conn->llcp_phy.state = LLCP_PHY_STATE_RSP_WAIT;
|
conn->llcp_phy.state = LLCP_PHY_STATE_RSP_WAIT;
|
||||||
__fallthrough;
|
__fallthrough;
|
||||||
|
|
||||||
|
#if defined(CONFIG_BT_PERIPHERAL)
|
||||||
case PDU_DATA_LLCTRL_TYPE_PHY_RSP:
|
case PDU_DATA_LLCTRL_TYPE_PHY_RSP:
|
||||||
if (conn->lll.role) {
|
if (conn->lll.role) {
|
||||||
/* select the probable PHY with longest Tx time, which
|
/* select the probable PHY with longest Tx time, which
|
||||||
|
@ -5283,12 +5306,15 @@ static inline void ctrl_tx_ack(struct ll_conn *conn, struct node_tx **tx,
|
||||||
/* resume data packet tx */
|
/* resume data packet tx */
|
||||||
conn->llcp_phy.pause_tx = 0U;
|
conn->llcp_phy.pause_tx = 0U;
|
||||||
break;
|
break;
|
||||||
|
#endif /* CONFIG_BT_PERIPHERAL */
|
||||||
|
|
||||||
|
#if defined(CONFIG_BT_CENTRAL)
|
||||||
case PDU_DATA_LLCTRL_TYPE_PHY_UPD_IND:
|
case PDU_DATA_LLCTRL_TYPE_PHY_UPD_IND:
|
||||||
conn->lll.phy_tx_time = conn->llcp.phy_upd_ind.tx;
|
conn->lll.phy_tx_time = conn->llcp.phy_upd_ind.tx;
|
||||||
/* resume data packet tx */
|
/* resume data packet tx */
|
||||||
conn->llcp_phy.pause_tx = 0U;
|
conn->llcp_phy.pause_tx = 0U;
|
||||||
break;
|
break;
|
||||||
|
#endif /* CONFIG_BT_CENTRAL */
|
||||||
#endif /* CONFIG_BT_CTLR_PHY */
|
#endif /* CONFIG_BT_CTLR_PHY */
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -5379,6 +5405,7 @@ static inline int ctrl_rx(memq_link_t *link, struct node_rx_pdu **rx,
|
||||||
#endif /* CONFIG_BT_CTLR_LE_ENC */
|
#endif /* CONFIG_BT_CTLR_LE_ENC */
|
||||||
|
|
||||||
switch (opcode) {
|
switch (opcode) {
|
||||||
|
#if defined(CONFIG_BT_PERIPHERAL)
|
||||||
case PDU_DATA_LLCTRL_TYPE_CONN_UPDATE_IND:
|
case PDU_DATA_LLCTRL_TYPE_CONN_UPDATE_IND:
|
||||||
{
|
{
|
||||||
uint8_t err;
|
uint8_t err;
|
||||||
|
@ -5417,6 +5444,7 @@ static inline int ctrl_rx(memq_link_t *link, struct node_rx_pdu **rx,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
#endif /* CONFIG_BT_PERIPHERAL */
|
||||||
|
|
||||||
case PDU_DATA_LLCTRL_TYPE_TERMINATE_IND:
|
case PDU_DATA_LLCTRL_TYPE_TERMINATE_IND:
|
||||||
if (!pdu_len_cmp(PDU_DATA_LLCTRL_TYPE_TERMINATE_IND,
|
if (!pdu_len_cmp(PDU_DATA_LLCTRL_TYPE_TERMINATE_IND,
|
||||||
|
@ -5428,6 +5456,7 @@ static inline int ctrl_rx(memq_link_t *link, struct node_rx_pdu **rx,
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#if defined(CONFIG_BT_CTLR_LE_ENC)
|
#if defined(CONFIG_BT_CTLR_LE_ENC)
|
||||||
|
#if defined(CONFIG_BT_PERIPHERAL)
|
||||||
case PDU_DATA_LLCTRL_TYPE_ENC_REQ:
|
case PDU_DATA_LLCTRL_TYPE_ENC_REQ:
|
||||||
if (!conn->lll.role ||
|
if (!conn->lll.role ||
|
||||||
!pdu_len_cmp(PDU_DATA_LLCTRL_TYPE_ENC_REQ, pdu_rx->len)) {
|
!pdu_len_cmp(PDU_DATA_LLCTRL_TYPE_ENC_REQ, pdu_rx->len)) {
|
||||||
|
@ -5479,7 +5508,9 @@ static inline int ctrl_rx(memq_link_t *link, struct node_rx_pdu **rx,
|
||||||
conn->procedure_expire = conn->procedure_reload;
|
conn->procedure_expire = conn->procedure_reload;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
#endif /* CONFIG_BT_PERIPHERAL */
|
||||||
|
|
||||||
|
#if defined(CONFIG_BT_CENTRAL)
|
||||||
case PDU_DATA_LLCTRL_TYPE_ENC_RSP:
|
case PDU_DATA_LLCTRL_TYPE_ENC_RSP:
|
||||||
if (conn->lll.role ||
|
if (conn->lll.role ||
|
||||||
!pdu_len_cmp(PDU_DATA_LLCTRL_TYPE_ENC_RSP, pdu_rx->len)) {
|
!pdu_len_cmp(PDU_DATA_LLCTRL_TYPE_ENC_RSP, pdu_rx->len)) {
|
||||||
|
@ -5515,6 +5546,7 @@ static inline int ctrl_rx(memq_link_t *link, struct node_rx_pdu **rx,
|
||||||
(*rx)->hdr.type = NODE_RX_TYPE_RELEASE;
|
(*rx)->hdr.type = NODE_RX_TYPE_RELEASE;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
#endif /* CONFIG_BT_CENTRAL */
|
||||||
|
|
||||||
case PDU_DATA_LLCTRL_TYPE_START_ENC_RSP:
|
case PDU_DATA_LLCTRL_TYPE_START_ENC_RSP:
|
||||||
if (!pdu_len_cmp(PDU_DATA_LLCTRL_TYPE_START_ENC_RSP,
|
if (!pdu_len_cmp(PDU_DATA_LLCTRL_TYPE_START_ENC_RSP,
|
||||||
|
@ -5567,6 +5599,7 @@ static inline int ctrl_rx(memq_link_t *link, struct node_rx_pdu **rx,
|
||||||
break;
|
break;
|
||||||
#endif /* CONFIG_BT_CTLR_LE_ENC */
|
#endif /* CONFIG_BT_CTLR_LE_ENC */
|
||||||
|
|
||||||
|
#if defined(CONFIG_BT_PERIPHERAL)
|
||||||
case PDU_DATA_LLCTRL_TYPE_FEATURE_REQ:
|
case PDU_DATA_LLCTRL_TYPE_FEATURE_REQ:
|
||||||
if (!conn->lll.role ||
|
if (!conn->lll.role ||
|
||||||
!pdu_len_cmp(PDU_DATA_LLCTRL_TYPE_FEATURE_REQ,
|
!pdu_len_cmp(PDU_DATA_LLCTRL_TYPE_FEATURE_REQ,
|
||||||
|
@ -5576,8 +5609,9 @@ static inline int ctrl_rx(memq_link_t *link, struct node_rx_pdu **rx,
|
||||||
|
|
||||||
nack = feature_rsp_send(conn, *rx, pdu_rx);
|
nack = feature_rsp_send(conn, *rx, pdu_rx);
|
||||||
break;
|
break;
|
||||||
|
#endif /* CONFIG_BT_PERIPHERAL */
|
||||||
|
|
||||||
#if defined(CONFIG_BT_CTLR_SLAVE_FEAT_REQ)
|
#if defined(CONFIG_BT_CENTRAL) && defined(CONFIG_BT_CTLR_SLAVE_FEAT_REQ)
|
||||||
case PDU_DATA_LLCTRL_TYPE_SLAVE_FEATURE_REQ:
|
case PDU_DATA_LLCTRL_TYPE_SLAVE_FEATURE_REQ:
|
||||||
if (conn->lll.role ||
|
if (conn->lll.role ||
|
||||||
!pdu_len_cmp(PDU_DATA_LLCTRL_TYPE_SLAVE_FEATURE_REQ,
|
!pdu_len_cmp(PDU_DATA_LLCTRL_TYPE_SLAVE_FEATURE_REQ,
|
||||||
|
@ -5587,8 +5621,9 @@ static inline int ctrl_rx(memq_link_t *link, struct node_rx_pdu **rx,
|
||||||
|
|
||||||
nack = feature_rsp_send(conn, *rx, pdu_rx);
|
nack = feature_rsp_send(conn, *rx, pdu_rx);
|
||||||
break;
|
break;
|
||||||
#endif /* CONFIG_BT_CTLR_SLAVE_FEAT_REQ */
|
#endif /* CONFIG_BT_CENTRAL && CONFIG_BT_CTLR_SLAVE_FEAT_REQ */
|
||||||
|
|
||||||
|
#if defined(CONFIG_BT_CENTRAL) || defined(CONFIG_BT_CTLR_SLAVE_FEAT_REQ)
|
||||||
case PDU_DATA_LLCTRL_TYPE_FEATURE_RSP:
|
case PDU_DATA_LLCTRL_TYPE_FEATURE_RSP:
|
||||||
if ((!IS_ENABLED(CONFIG_BT_CTLR_SLAVE_FEAT_REQ) &&
|
if ((!IS_ENABLED(CONFIG_BT_CTLR_SLAVE_FEAT_REQ) &&
|
||||||
conn->lll.role) ||
|
conn->lll.role) ||
|
||||||
|
@ -5599,8 +5634,10 @@ static inline int ctrl_rx(memq_link_t *link, struct node_rx_pdu **rx,
|
||||||
|
|
||||||
feature_rsp_recv(conn, pdu_rx);
|
feature_rsp_recv(conn, pdu_rx);
|
||||||
break;
|
break;
|
||||||
|
#endif /* CONFIG_BT_CENTRAL || CONFIG_BT_CTLR_SLAVE_FEAT_REQ */
|
||||||
|
|
||||||
#if defined(CONFIG_BT_CTLR_LE_ENC)
|
#if defined(CONFIG_BT_CTLR_LE_ENC)
|
||||||
|
#if defined(CONFIG_BT_PERIPHERAL)
|
||||||
case PDU_DATA_LLCTRL_TYPE_PAUSE_ENC_REQ:
|
case PDU_DATA_LLCTRL_TYPE_PAUSE_ENC_REQ:
|
||||||
if (!conn->lll.role ||
|
if (!conn->lll.role ||
|
||||||
!pdu_len_cmp(PDU_DATA_LLCTRL_TYPE_PAUSE_ENC_REQ,
|
!pdu_len_cmp(PDU_DATA_LLCTRL_TYPE_PAUSE_ENC_REQ,
|
||||||
|
@ -5610,6 +5647,7 @@ static inline int ctrl_rx(memq_link_t *link, struct node_rx_pdu **rx,
|
||||||
|
|
||||||
nack = pause_enc_rsp_send(conn, *rx, 1);
|
nack = pause_enc_rsp_send(conn, *rx, 1);
|
||||||
break;
|
break;
|
||||||
|
#endif /* CONFIG_BT_PERIPHERAL */
|
||||||
|
|
||||||
case PDU_DATA_LLCTRL_TYPE_PAUSE_ENC_RSP:
|
case PDU_DATA_LLCTRL_TYPE_PAUSE_ENC_RSP:
|
||||||
if (!pdu_len_cmp(PDU_DATA_LLCTRL_TYPE_PAUSE_ENC_RSP,
|
if (!pdu_len_cmp(PDU_DATA_LLCTRL_TYPE_PAUSE_ENC_RSP,
|
||||||
|
@ -5893,6 +5931,7 @@ static inline int ctrl_rx(memq_link_t *link, struct node_rx_pdu **rx,
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
#if defined(CONFIG_BT_CENTRAL)
|
||||||
case PDU_DATA_LLCTRL_TYPE_CONN_PARAM_RSP:
|
case PDU_DATA_LLCTRL_TYPE_CONN_PARAM_RSP:
|
||||||
if (conn->lll.role ||
|
if (conn->lll.role ||
|
||||||
!pdu_len_cmp(PDU_DATA_LLCTRL_TYPE_CONN_PARAM_RSP,
|
!pdu_len_cmp(PDU_DATA_LLCTRL_TYPE_CONN_PARAM_RSP,
|
||||||
|
@ -5965,6 +6004,7 @@ static inline int ctrl_rx(memq_link_t *link, struct node_rx_pdu **rx,
|
||||||
(*rx)->hdr.type = NODE_RX_TYPE_RELEASE;
|
(*rx)->hdr.type = NODE_RX_TYPE_RELEASE;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
#endif /* CONFIG_BT_CENTRAL */
|
||||||
#endif /* CONFIG_BT_CTLR_CONN_PARAM_REQ */
|
#endif /* CONFIG_BT_CTLR_CONN_PARAM_REQ */
|
||||||
|
|
||||||
case PDU_DATA_LLCTRL_TYPE_REJECT_EXT_IND:
|
case PDU_DATA_LLCTRL_TYPE_REJECT_EXT_IND:
|
||||||
|
@ -6246,6 +6286,7 @@ static inline int ctrl_rx(memq_link_t *link, struct node_rx_pdu **rx,
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
#if defined(CONFIG_BT_CENTRAL)
|
||||||
case PDU_DATA_LLCTRL_TYPE_PHY_RSP:
|
case PDU_DATA_LLCTRL_TYPE_PHY_RSP:
|
||||||
if (conn->lll.role ||
|
if (conn->lll.role ||
|
||||||
!pdu_len_cmp(PDU_DATA_LLCTRL_TYPE_PHY_RSP, pdu_rx->len)) {
|
!pdu_len_cmp(PDU_DATA_LLCTRL_TYPE_PHY_RSP, pdu_rx->len)) {
|
||||||
|
@ -6279,7 +6320,9 @@ static inline int ctrl_rx(memq_link_t *link, struct node_rx_pdu **rx,
|
||||||
(*rx)->hdr.type = NODE_RX_TYPE_RELEASE;
|
(*rx)->hdr.type = NODE_RX_TYPE_RELEASE;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
#endif /* CONFIG_BT_CENTRAL */
|
||||||
|
|
||||||
|
#if defined(CONFIG_BT_PERIPHERAL)
|
||||||
case PDU_DATA_LLCTRL_TYPE_PHY_UPD_IND:
|
case PDU_DATA_LLCTRL_TYPE_PHY_UPD_IND:
|
||||||
{
|
{
|
||||||
uint8_t err;
|
uint8_t err;
|
||||||
|
@ -6296,9 +6339,11 @@ static inline int ctrl_rx(memq_link_t *link, struct node_rx_pdu **rx,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
#endif /* CONFIG_BT_PERIPHERAL */
|
||||||
#endif /* CONFIG_BT_CTLR_PHY */
|
#endif /* CONFIG_BT_CTLR_PHY */
|
||||||
|
|
||||||
#if defined(CONFIG_BT_CTLR_MIN_USED_CHAN)
|
#if defined(CONFIG_BT_CTLR_MIN_USED_CHAN)
|
||||||
|
#if defined(CONFIG_BT_CENTRAL)
|
||||||
case PDU_DATA_LLCTRL_TYPE_MIN_USED_CHAN_IND:
|
case PDU_DATA_LLCTRL_TYPE_MIN_USED_CHAN_IND:
|
||||||
if (conn->lll.role ||
|
if (conn->lll.role ||
|
||||||
!pdu_len_cmp(PDU_DATA_LLCTRL_TYPE_MIN_USED_CHAN_IND,
|
!pdu_len_cmp(PDU_DATA_LLCTRL_TYPE_MIN_USED_CHAN_IND,
|
||||||
|
@ -6336,6 +6381,7 @@ static inline int ctrl_rx(memq_link_t *link, struct node_rx_pdu **rx,
|
||||||
(*rx)->hdr.type = NODE_RX_TYPE_RELEASE;
|
(*rx)->hdr.type = NODE_RX_TYPE_RELEASE;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
#endif /* CONFIG_BT_CENTRAL */
|
||||||
#endif /* CONFIG_BT_CTLR_MIN_USED_CHAN */
|
#endif /* CONFIG_BT_CTLR_MIN_USED_CHAN */
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -72,8 +72,12 @@ struct ll_conn {
|
||||||
#endif /* CONFIG_BT_CTLR_CONN_META */
|
#endif /* CONFIG_BT_CTLR_CONN_META */
|
||||||
uint8_t latency_cancel:1;
|
uint8_t latency_cancel:1;
|
||||||
uint8_t sca:3;
|
uint8_t sca:3;
|
||||||
|
#if defined(CONFIG_BT_CTLR_CONN_RANDOM_FORCE)
|
||||||
uint32_t force;
|
uint32_t force;
|
||||||
|
#endif /* CONFIG_BT_CTLR_CONN_RANDOM_FORCE */
|
||||||
|
#if defined(CONFIG_BT_CTLR_CONN_PARAM_REQ)
|
||||||
uint32_t ticks_to_offset;
|
uint32_t ticks_to_offset;
|
||||||
|
#endif /* CONFIG_BT_CTLR_CONN_PARAM_REQ */
|
||||||
} slave;
|
} slave;
|
||||||
#endif /* CONFIG_BT_PERIPHERAL */
|
#endif /* CONFIG_BT_PERIPHERAL */
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue