Bluetooth: Controller: llcp: setting of CTE related content in pdu_data

The llcp_pdu_encode_cte_rsp functio didn't set pdu_data fields related
with CTE transmission. The commit fixes that.

Signed-off-by: Piotr Pryga <piotr.pryga@nordicsemi.no>
This commit is contained in:
Piotr Pryga 2022-01-04 09:18:14 +01:00 committed by Christopher Friedt
commit 569cdaa58d
3 changed files with 11 additions and 4 deletions

View file

@ -758,7 +758,7 @@ static void rp_comm_tx(struct ll_conn *conn, struct proc_ctx *ctx)
} }
if (!err_code) { if (!err_code) {
llcp_pdu_encode_cte_rsp(pdu); llcp_pdu_encode_cte_rsp(conn, pdu);
ctx->rx_opcode = PDU_DATA_LLCTRL_TYPE_CTE_RSP; ctx->rx_opcode = PDU_DATA_LLCTRL_TYPE_CTE_RSP;
} else { } else {
llcp_pdu_encode_reject_ext_ind(pdu, PDU_DATA_LLCTRL_TYPE_CTE_REQ, err_code); llcp_pdu_encode_reject_ext_ind(pdu, PDU_DATA_LLCTRL_TYPE_CTE_REQ, err_code);

View file

@ -584,7 +584,7 @@ void llcp_ntf_encode_length_change(struct ll_conn *conn,
void llcp_pdu_encode_cte_req(struct proc_ctx *ctx, struct pdu_data *pdu); void llcp_pdu_encode_cte_req(struct proc_ctx *ctx, struct pdu_data *pdu);
void llcp_ntf_encode_cte_req(struct ll_conn *conn, struct pdu_data *pdu); void llcp_ntf_encode_cte_req(struct ll_conn *conn, struct pdu_data *pdu);
void llcp_pdu_decode_cte_req(struct ll_conn *conn, struct pdu_data *pdu); void llcp_pdu_decode_cte_req(struct ll_conn *conn, struct pdu_data *pdu);
void llcp_pdu_encode_cte_rsp(struct pdu_data *pdu); void llcp_pdu_encode_cte_rsp(struct ll_conn *conn, struct pdu_data *pdu);
#endif /* CONFIG_BT_CTLR_DF_CONN_CTE_REQ */ #endif /* CONFIG_BT_CTLR_DF_CONN_CTE_REQ */
#ifdef ZTEST_UNITTEST #ifdef ZTEST_UNITTEST

View file

@ -743,11 +743,18 @@ void llcp_pdu_decode_cte_req(struct ll_conn *conn, struct pdu_data *pdu)
conn->llcp.cte_req.cte_type = pdu->llctrl.cte_req.cte_type_req; conn->llcp.cte_req.cte_type = pdu->llctrl.cte_req.cte_type_req;
} }
void llcp_pdu_encode_cte_rsp(struct pdu_data *pdu) void llcp_pdu_encode_cte_rsp(struct ll_conn *conn, struct pdu_data *pdu)
{ {
pdu->ll_id = PDU_DATA_LLID_CTRL; pdu->ll_id = PDU_DATA_LLID_CTRL;
pdu->len = pdu->len =
offsetof(struct pdu_data_llctrl, cte_rsp) + sizeof(struct pdu_data_llctrl_cte_rsp); offsetof(struct pdu_data_llctrl, cte_rsp) + sizeof(struct pdu_data_llctrl_cte_rsp);
pdu->llctrl.opcode = PDU_DATA_LLCTRL_TYPE_CTE_RSP; pdu->llctrl.opcode = PDU_DATA_LLCTRL_TYPE_CTE_RSP;
/* Set content of a PDU header first byte, that is not changed by LLL */
pdu->cp = 1U;
pdu->rfu = 0U;
pdu->cte_info.time = conn->llcp.cte_req.min_cte_len;
pdu->cte_info.type = conn->llcp.cte_req.cte_type;
} }
#endif /* CONFIG_BT_CTLR_DF_CONN_CTE_REQ */ #endif /* CONFIG_BT_CTLR_DF_CONN_CTE_REQ */