Bluetooth: controller: push topic branch to main

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>
This commit is contained in:
Andries Kruithof 2021-11-15 09:41:12 +01:00 committed by Anas Nashif
commit f023b5f611
161 changed files with 24482 additions and 81 deletions

View file

@ -28,6 +28,15 @@ struct node_tx {
uint8_t pdu[];
};
#if defined(CONFIG_BT_CTLR_DATA_LENGTH)
struct data_pdu_length {
uint16_t max_tx_octets;
uint16_t max_rx_octets;
uint16_t max_tx_time;
uint16_t max_rx_time;
};
#endif /* CONFIG_BT_CTLR_DATA_LENGTH */
struct lll_conn {
struct lll_hdr hdr;
@ -78,6 +87,8 @@ struct lll_conn {
};
#if defined(CONFIG_BT_CTLR_DATA_LENGTH)
#ifdef CONFIG_BT_LL_SW_LLCP_LEGACY
uint16_t max_tx_octets;
uint16_t max_rx_octets;
@ -85,7 +96,16 @@ struct lll_conn {
uint16_t max_tx_time;
uint16_t max_rx_time;
#endif /* CONFIG_BT_CTLR_PHY */
#else /* CONFIG_BT_LL_SW_LLCP_LEGACY */
struct {
struct data_pdu_length local;
struct data_pdu_length remote;
struct data_pdu_length eff;
uint8_t update;
} dle;
#endif /* CONFIG_BT_CTLR_DATA_LENGTH */
#endif/* CONFIG_BT_LL_SW_LLCP_LEGACY */
#if defined(CONFIG_BT_CTLR_PHY)
uint8_t phy_tx:3;