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:
parent
020d44456d
commit
f023b5f611
161 changed files with 24482 additions and 81 deletions
|
@ -74,6 +74,27 @@ config BT_CTLR_TIFS_HW_SUPPORT
|
|||
config BT_CTLR_ULL_LLL_PRIO_SUPPORT
|
||||
bool
|
||||
|
||||
choice BT_LL_SW_LLCP_IMPL
|
||||
prompt "Bluetooth Low Energy Software Link Layer Control Procedure Implementation"
|
||||
default BT_LL_SW_LLCP_LEGACY
|
||||
help
|
||||
Select the Bluetooth Low Energy Software Link Layer Control Procedure implementation.
|
||||
|
||||
config BT_LL_SW_LLCP_LEGACY
|
||||
bool "Legacy implementation"
|
||||
help
|
||||
Use the Bluetooth Low Energy Software Link Layer Legacy Control Procedure implementation.
|
||||
|
||||
config BT_LL_SW_LLCP
|
||||
bool "New implementation, replacing the legacy one [EXPERIMENTAL]"
|
||||
select EXPERIMENTAL
|
||||
help
|
||||
Use the new Bluetooth Low Energy Software Link Layer Control Procedure implementation.
|
||||
It is considered experimental because it is still under development and is not qualifiable yet.
|
||||
|
||||
endchoice
|
||||
|
||||
|
||||
config BT_CTLR_RX_PRIO_STACK_SIZE
|
||||
# Controller's Co-Operative high priority Rx thread stack size.
|
||||
int "High priority Rx thread stack size"
|
||||
|
@ -461,6 +482,49 @@ config BT_CTLR_LLCP_CONN
|
|||
more than this number of connections simultaneously may cause
|
||||
instabilities.
|
||||
|
||||
if !BT_LL_SW_LLCP_LEGACY
|
||||
config BT_CTLR_LLCP_TX_PER_CONN_TX_CTRL_BUF_NUM_MAX
|
||||
int
|
||||
default 4
|
||||
help
|
||||
The theoretical maximum number of tx ctrl buffers needed for any connection, is 4.
|
||||
two for active encryption procedure plus one for rejecting a remote request
|
||||
and one for a local terminate
|
||||
|
||||
config BT_CTLR_LLCP_PER_CONN_TX_CTRL_BUF_NUM
|
||||
int "Number of tx control buffers to be reserved per connection"
|
||||
default BT_CTLR_LLCP_TX_PER_CONN_TX_CTRL_BUF_NUM_MAX
|
||||
range 0 BT_CTLR_LLCP_TX_PER_CONN_TX_CTRL_BUF_NUM_MAX
|
||||
help
|
||||
Set the number control buffers that is to be pre allocated per connection
|
||||
This defines the minimum number of buffers available for any connection
|
||||
Setting this to non zero will ensure a connection will always have access
|
||||
to buffer(s) for control procedure TX
|
||||
|
||||
config BT_CTLR_LLCP_COMMON_TX_CTRL_BUF_NUM
|
||||
int "Number of tx control buffers to be available across all connections"
|
||||
default 0
|
||||
range 0 255
|
||||
help
|
||||
Set the number control buffers that is to be available for tx.
|
||||
This defines the size of the pool of tx buffers available
|
||||
for control procedure tx. This pool is shared across all
|
||||
procedures/connections with allocation through a fifo queue.
|
||||
Configure between 0 and (4 - BT_CTLR_LLCP_PER_CONN_TX_CTRL_BUF_NUM) * BT_CTLR_LLCP_CONN
|
||||
|
||||
config BT_CTLR_LLCP_PROC_CTX_BUF_NUM
|
||||
int "Number of control procedure contexts to be available across all connections"
|
||||
default BT_CTLR_LLCP_CONN
|
||||
range 1 255
|
||||
help
|
||||
Set the number control procedure contexts that is to be available.
|
||||
This defines the size of the pool of control procedure contexts available
|
||||
for handlign control procedures. This pool is shared across all
|
||||
connections (local vs remote initiate), with allocation through a queue
|
||||
|
||||
endif #!BT_LL_SW_LLCP_LEGACY
|
||||
|
||||
|
||||
config BT_CTLR_LLID_DATA_START_EMPTY
|
||||
bool "Handle zero length L2CAP start frame"
|
||||
default y if BT_HCI_RAW
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue