Pushes all work done in the topic-ble-llcp branch into main branch This is a refactoring of the LL control procedures; the refactored control procedures are hidden behind a KConfig option and per default disabled Goal of the refactoring: close issue Link Layer Control Procedure overhaul #15256 make it easier to add/update control procedures Refactoring consists in principal of writing explicit state machines for the control procedures. To reduce the risk of regression errors unit-tests have been added Following control procedures are implemented: Connection update procedure Channel map update procedure Encryption procedure Feature exchange procedure Version exchange procedure ACL termination procedure Connection parameters request procedure LE Ping procedure Data Length Update procedure PHY update procedure Min. nr. Of channels used procedure Constant Tone extension request procedure This is a joined work by the people listed in the signed-off-by list (in alphabetical order) Signed-off-by: Andries Kruithof Andries.Kruithof@nordicsemi.no Signed-off-by: Erik Brockhoff erbr@oticon.com Signed-off-by: Piotr Pryga piotr.pryga@nordicsemi.no Signed-off-by: Szymon Janc szymon.janc@codecoup.pl Signed-off-by: Thomas Ebert Hansen thoh@oticon.com Signed-off-by: Tommie Skriver tosk@demant.com Signed-off-by: Andries Kruithof <Andries.Kruithof@nordicsemi.no>
38 lines
1.8 KiB
C
38 lines
1.8 KiB
C
/*
|
|
* Copyright (c) 2020 Nordic Semiconductor ASA
|
|
* Copyright (c) 2020 Demant
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
void test_print_conn(struct ll_conn *conn);
|
|
|
|
void test_set_role(struct ll_conn *conn, uint8_t role);
|
|
void test_setup(struct ll_conn *conn);
|
|
void event_prepare(struct ll_conn *conn);
|
|
void event_tx_ack(struct ll_conn *conn, struct node_tx *tx);
|
|
void event_done(struct ll_conn *conn);
|
|
uint16_t event_counter(struct ll_conn *conn);
|
|
|
|
#define lt_tx(_opcode, _conn, _param) lt_tx_real(__FILE__, __LINE__, _opcode, _conn, _param)
|
|
#define lt_rx(_opcode, _conn, _tx_ref, _param) \
|
|
lt_rx_real(__FILE__, __LINE__, _opcode, _conn, _tx_ref, _param)
|
|
#define lt_rx_q_is_empty(_conn) lt_rx_q_is_empty_real(__FILE__, __LINE__, _conn)
|
|
|
|
#define ut_rx_pdu(_opcode, _ntf_ref, _param) \
|
|
ut_rx_pdu_real(__FILE__, __LINE__, _opcode, _ntf_ref, _param)
|
|
#define ut_rx_node(_opcode, _ntf_ref, _param) \
|
|
ut_rx_node_real(__FILE__, __LINE__, _opcode, _ntf_ref, _param)
|
|
#define ut_rx_q_is_empty() ut_rx_q_is_empty_real(__FILE__, __LINE__)
|
|
|
|
void lt_tx_real(const char *file, uint32_t line, enum helper_pdu_opcode opcode,
|
|
struct ll_conn *conn, void *param);
|
|
void lt_rx_real(const char *file, uint32_t line, enum helper_pdu_opcode opcode,
|
|
struct ll_conn *conn, struct node_tx **tx_ref, void *param);
|
|
void lt_rx_q_is_empty_real(const char *file, uint32_t line, struct ll_conn *conn);
|
|
void ut_rx_pdu_real(const char *file, uint32_t line, enum helper_pdu_opcode opcode,
|
|
struct node_rx_pdu **ntf_ref, void *param);
|
|
void ut_rx_node_real(const char *file, uint32_t line, enum helper_node_opcode opcode,
|
|
struct node_rx_pdu **ntf_ref, void *param);
|
|
void ut_rx_q_is_empty_real(const char *file, uint32_t line);
|