Commit graph

9787 commits

Author SHA1 Message Date
Joakim Andersson
acd0555f50 Bluetooth: host: Convert allowed_cmds to an array of atomic_t of size 1
Convert allowed_cmds to an array of atomic_t of size 1.
This makes it future proof in case more commands are added.
Possibly silences coverity false positives on array vs singleton usage.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
2021-03-04 13:11:47 +01:00
Lingao Meng
e5bee34b39 Bluetooth: Mesh: Fix cfg_cli Format and CID use problem
Fix some format warning in cfg_cli.c.
Fix use CID_VNAL as param when use vendor models.

This is a resubmission of PR (#30086)

Signed-off-by: Lingao Meng <menglingao@xiaomi.com>
2021-03-04 14:10:56 +02:00
Lingao Meng
e0d2309589 Bluetooth: Mesh: Fix config message result print format
Add line breaks to make the results more intuitive

This is a resubmission of PR (#30086)

Signed-off-by: Lingao Meng <menglingao@xiaomi.com>
2021-03-04 14:10:56 +02:00
Lingao Meng
71fd8e1d01 Bluetooth: Mesh: Add CDB handle key refresh phase
Fixed some undesired or incorrect macros, which
can cause build error.

This is a resubmission of PR (#30086)

Signed-off-by: Lingao Meng <menglingao@xiaomi.com>
2021-03-04 14:10:56 +02:00
Lingao Meng
0841ee69f2 Bluetooth: Mesh: Fix provisioner provisioning
Correct format errors, such as oob action 2-octers
should use 0x%04x, and action in prov capalilities pdu
big-ending. When every call `bt_mesh_auth_method_set<*>`
should also clear auth value, otherwise will case confirm
failed.

Provisioner role expect peer public key should be sent
immediately, instead of requiring ACK. After all, ACK may
be lost, and the other device’s public key will be sent
over, and provisioning procedure will be failed..

This is a resubmission of PR (#30086)

Signed-off-by: Lingao Meng <menglingao@xiaomi.com>
2021-03-04 14:10:56 +02:00
Vinayak Kariappa Chettimada
21e83e40ad Bluetooth: controller: Fix ticker job_guard
Move the ticker job_guard reset to after
ticker_job_compare_update, so that the ticks_current and
ticks_slot_previous are updated before ticker_worker gets
to execute. Without this fix, there is a possibility that
ticker_worker will use incorrect ticks_slot_previous and
ticks_current value under race conditions.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-03-02 15:51:48 +01:00
Vinayak Kariappa Chettimada
ebecca7c47 Bluetooth: controller: Fix ticker to avoid recursive ticker_job
Fix ticker job to defer itself to avoid recursive
invocation to itself due to ticker interface calls from
inside the ticker operation callbacks.

The recursive use was exposed when using ticker stop
operation callback of stopping an auxiliary PDU to stop
the primary PDU scheduling as part of generation of
Advertising Terminate event.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-03-02 15:51:48 +01:00
Vinayak Kariappa Chettimada
f9511079b2 Bluetooth: controller: Remove vendor specific internal LLL include
Remove inclusion of vendor specific internal LLL include
files in ULL source code.

Prefix `lll/` include file path to correctly include vendor
defined types and function implementation.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-03-01 11:24:40 +01:00
Vinayak Kariappa Chettimada
92f5b68f2c Bluetooth: Use bt_id_get function to get count
Allow NULL pointer to be passed to bt_id_get function so
that only count can be fetched.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-02-26 08:12:43 -05:00
Peter Bigot
84334badfb bluetooth: host: improve documentation on stack override
There's a prompt to set the TX stack size, that's documented as an
advanced setting, but attempts to override it it are rejected unless
you add another setting that allows it to be change.  Tell the user
how to make changes work.

Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>
2021-02-25 16:53:35 +02:00
Piotr Pryga
deeecaaa8f Bluetooth: host: direction: Remove compilation warning
Remove compilation warning caused by currently not used
hci_df_set_conn_cte_tx_param function.
Code is sorrounded by #ifdef CONFIG_BT_CTLR_DF_CONN_CTE_RSP.
The CONFIG_BT_CTLR_DF_CONN_CTE_RSP is changed to be disabled
by default (until complete implementation of the feature is
provided).

Signed-off-by: Piotr Pryga <piotr.pryga@nordicsemi.no>
2021-02-25 14:53:27 +01:00
Piotr Pryga
8dcf8c111f dts: bindings: net: wireless: Change dfe-ant-num property name
Change dfe-ant-num propert name to dfe-antenna-num.
The change is conde to keep the same naming style
for all properies, like dfe-pdu-antenna property.

Signed-off-by: Piotr Pryga <piotr.pryga@nordicsemi.no>
2021-02-25 14:53:27 +01:00
Piotr Pryga
64cb4bbc37 Bluetooth: controller: LLL: DF add initialization of ant switching GPIOs
Add initialization of GPIOs that are used for antenna switching.
GPIOs provided to DFE extension in Radio peripheral, to drive
antenna switching, should be initialized in GPIO peripheral beforehand.
The initialization is optional and may be disabled by Kconfig.

Signed-off-by: Piotr Pryga <piotr.pryga@nordicsemi.no>
2021-02-25 14:53:27 +01:00
Piotr Pryga
e91a54799e Bluetooth: controller: LLL: Fix not switching antennas in AoD mode
Antenna switching done by Radio with use of GPIOs provided in
PSEL.DFEGPIO registers. Registers were initialized once during
controller initialization.
At preparation of new radio event, Radio peripheral is powered
down and up to resset its registers. It is related with multi
protocol handling and possible leftovers in Radio registers.

Due to that, PSEL.DFEGPIO registers should be initialized
at the preparation of every event that will transmit
or receive CTE and run antenna switching.

Signed-off-by: Piotr Pryga <piotr.pryga@nordicsemi.no>
2021-02-25 14:53:27 +01:00
Piotr Pryga
9b3c941d4d Bluetooth: controller: Kconfig: Disable ant switching when CTE Rx not supp
Anternna switching should be disabled when CTE Rx is not supported
or disabled. Added missing dependency on BT_CTLR_DF_CTE_RX.

Signed-off-by: Piotr Pryga <piotr.pryga@nordicsemi.no>
2021-02-25 14:53:27 +01:00
Piotr Pryga
dee17b0bca Bluetooth: controller: Fix compilation errors related with DF code
Add missing declarations of functions that are compiled in when
CONFIG_BT_CTLR_ADV_EXT_PDU_EXTRA_DATA_MEMORY is selected
Add missing include of header file.

Signed-off-by: Piotr Pryga <piotr.pryga@nordicsemi.no>
2021-02-25 14:53:27 +01:00
Vinayak Kariappa Chettimada
8806225cb2 Bluetooth: controller: openisa: Fix unsupported ISR profiling
Fix duplicate include of lll_test.c file under the
unsupported ISR profiling feature in OpenISA port.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-02-25 12:54:35 +01:00
Vinayak Kariappa Chettimada
a0e34a1477 Bluetooth: controller: Fix missing cond. compile of adv extra data
Fix missing conditional compilation of Advertising PDU's
exta data member.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-02-25 12:54:20 +01:00
Vinayak Kariappa Chettimada
298b3ca467 Bluetooth: controller: #if defined(...) vs #if IS_ENABLED(..)
Use `#if defined(...)` instead of `#if IS_ENABLED(..)` when
conditional compilation of definitions in source code.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-02-25 12:54:13 +01:00
Johan Hedberg
0ba9437938 Bluetooth: L2CAP: Fix missing buffer length check for sdu_len
We should verify that the buffer has sufficient data before attempting
to parse the SDU length field. If we get a too short packet just
disconnect the channel.

Fixes #32497

Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2021-02-24 23:52:43 +02:00
Vinayak Kariappa Chettimada
8ded9c2487 Bluetooth: controller: Fix undeclared BT_CTLR_SCAN_SET
Fix undeclared BT_CTLR_SCAN_SET when BT_OBSERVER is
disabled.

Regression in commit bee6aa325b ("Bluetooth: controller:
Increased thread context operation queue count").

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-02-24 13:46:31 -06:00
Joakim Andersson
f8005c7ba9 Bluetooth: host: Fix array overrun of client features bitset
Fix array overrun of client features bitset, where CF_BYTE_LAST was
incorrectly defined as 2 using module instead of divide.
Also fix additional bit-logic when number of bits would exceed a byte:
 - Inner for loop iterates from 0 to number of bits on a single byte.
 - Same bitmask used for all bytes.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
2021-02-24 10:37:45 -05:00
Vinayak Kariappa Chettimada
9cb07ab413 Bluetooth: controller: Use define for common ext. header minimum size
Use define for the common extended header format's minimum
length value.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-02-24 15:53:56 +01:00
Vinayak Kariappa Chettimada
c3befdc771 Bluetooth: controller: Handle ACAD in Periodic Advertising
Handle ACAD field in when updating the Advertising Data in
Periodic Advertising PDU.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-02-24 15:53:56 +01:00
Martí Bolívar
31c1dc58ad Bluetooth: controller: fix typo
A macro is misspelled.

Fixes: #32599
Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
2021-02-24 07:21:48 -05:00
Joakim Andersson
61584fb35f Bluetooth: host: Don't auto-update device name and document behavior
Don't auto-update the device name in the advertising data as that
would clear any other scan-response data set by the application.
Document the behavior of the advertise with device name option
and the need to update data by the application to make sure
advertising data does not get cleared.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
2021-02-23 20:08:51 +01:00
Joakim Andersson
84dffe5b3c Bluetooth: host: Fix endianness issue in reading CPF descriptor
Fix endianness issue in reading CPF descriptor not converting from
native endianess to little-endian on the 'unit' and 'description'
fields.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
2021-02-23 20:07:53 +01:00
Joakim Andersson
22218129a6 Bluetooth: host: Use definitions of UUID values instead of constants
Use the definitions of UUID values instead of magic constants with
explanation in comment.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
2021-02-23 20:07:53 +01:00
Vinayak Kariappa Chettimada
27b7c27dca Bluetooth: controller: Use Ext. Advertising association for BIG created
Check for associated Extended Advertising set to determine
whether Broadcast ISO Group instance has been already
created.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-02-23 19:36:41 +01:00
Vinayak Kariappa Chettimada
fc2e71dfec Bluetooth: controller: Add association between adv, sync and iso
Add association between extended advertising, periodic
advertising and broadcast ISO instance, so that attempts to
create and terminate BIG can detect error conditions.

Error conditions being, trying to create BIG without a valid
periodic advertising train, or terminating BIG without prior
creation.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-02-23 19:36:41 +01:00
Vinayak Kariappa Chettimada
bee6aa325b Bluetooth: controller: Increased thread context operation queue count
When ticker job is disabled inside radio events then all
advertising, scanning, and slave latency cancel ticker
operations will be deferred, requiring increased ticker
thread context operation queue count.

Relates to #32430.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-02-23 13:01:20 +01:00
Vinayak Kariappa Chettimada
03ea3463c9 Bluetooth: controller: Facilitate reuse of BT_CTLR_MAX_CONNECTABLE
Minor rearrange order of definition BT_CTLR_MAX_CONNECTABLE
to better reuse it.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-02-23 13:01:20 +01:00
Vinayak Kariappa Chettimada
73308a3333 Bluetooth: controller: Consistent use of internal BT_CTLR_ADV_SET
Consistently use the internal BT_CTLR_ADV_SET value in the
controller's implementation.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-02-23 13:01:20 +01:00
Piotr Pryga
1785129a3d Bluetooth: controller: pdu: Add offset_adjust filed to pdu_adv_sync_info
Add missing offset_adjust filed to pdu_adv_sync_info.
Add handling of the field when sync_info is added to advertising PDU.

Signed-off-by: Piotr Pryga <piotr.pryga@nordicsemi.no>
2021-02-23 12:37:06 +01:00
Vinayak Kariappa Chettimada
ca220e4a9d Bluetooth: controller: Fix tertiary PDU and extended header length
Fix the tertiary PDU and extended header length value after
the refactoring in the commit c8475b9a3e ("Bluetooth:
controller: ULL: enable TX of CTE with per. adv. PDU").

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-02-23 10:22:21 +01:00
Wolfgang Puffitsch
1a7157d316 Bluetooth: controller: Add missing compilation guard
Add missing compilation guard for initialization of "force" flag in
ull_slave.

Signed-off-by: Wolfgang Puffitsch <wopu@demant.com>
2021-02-19 07:32:01 -05:00
Vinayak Kariappa Chettimada
8e75fff580 Bluetooth: controller: Move auto variables closer to local reference
Move auto variables closer to their locality of reference.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-02-19 10:29:10 +01:00
Vinayak Kariappa Chettimada
69869d1834 Bluetooth: controller: Move ull_adv_sync_pdu_set_clear
Move ull_adv_sync_pdu_set_clear function after LL interface
functions.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-02-19 10:28:55 +01:00
Vinayak Kariappa Chettimada
b230d23938 Bluetooth: controller: Rename pdu_biginfo to pdu_big_info
Rename struct pdu_biginfo to struct pdu_big_info.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-02-19 10:28:41 +01:00
Vinayak Kariappa Chettimada
4b4267fa09 Bluetooth: controller: Rearrange LL interface functions
Rearrange the LL interface functions in the ll.h file to
group functions use by HCI separate from other buffer and
control flow related functions.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-02-19 10:28:11 +01:00
Vinayak Kariappa Chettimada
cba60c56bd Bluetooth: controller: Minor rearrange LLL Adv structures
Minor refactoring/rearranging of LLL adv structures.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-02-19 10:27:48 +01:00
Vinayak Kariappa Chettimada
9527c04c60 Bluetooth: controller: Move version define to ll_feat.h file
Move the controller version define into ll_feat.h file to
keep the version number and featureset bitmaps together.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-02-19 10:26:48 +01:00
Wolfgang Puffitsch
9b3c0572cb Bluetooth: controller: Align include paths in hci.c
Align include paths for LLL include files in hci.c.

Signed-off-by: Wolfgang Puffitsch <wopu@demant.com>
2021-02-18 12:03:13 -05:00
Wolfgang Puffitsch
cfa668fd51 Bluetooth: controller: Restructure LLL include files
Move LLL header files for all roles to common folder. Move
vendor-specific content to internal header files, in particular ADV
buffer handling. Define the vendor-specific type lll_adv_pdu in a
separate header file lll_adv_pdu.h to avoid cyclic dependency when
moving ADV buffer handling to internal header file. Make sure all
internal header files are in vendor-specific folders.

The goal is to have a more consistent structure for LLL header files
and allow unconditional inclusion of non-internal LLL header files.

Signed-off-by: Wolfgang Puffitsch <wopu@demant.com>
2021-02-18 12:03:13 -05:00
Joakim Andersson
a4f0ca8649 Bluetooth: host: Refactor host ECC handling to own source file
Move the host ECC handling under BT_ECC to its own source file.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
2021-02-18 13:50:22 +01:00
Joakim Andersson
4a25fb7136 Bluetooth: host: Remove dependency on host emulation for debug ECC keys
Remove the depency on host emulation of ECC for the Use debug keys
option.
This allows the application to use debug keys without shifting the
ECC from the controller to the host, which could potentially alter
the behavior of the application and make debugging this way less useful.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
2021-02-18 13:50:22 +01:00
Joakim Andersson
9235b1b8b3 Bluetooth: Refactor ECC emulation supported commands bits
Refactor the ECC emulation setting the supported command bits in order
to group the supported commands together with the implementation of
these commands.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
2021-02-18 13:50:22 +01:00
Morten Priess
5412f61ac6 Bluetooth: controller: Introduce separate done memq
In order to avoid stalling LLCP procedures blocking done event
processing, done events are now put in a separate memory queue,
and processed by own mayfly function.
This ensures prepare/done refcount balancing and prevents assertion
due to lack of done events.

Signed-off-by: Morten Priess <mtpr@oticon.com>
2021-02-18 13:42:43 +01:00
Andrzej Kaczmarek
def2d7cf4e Bluetooth: controller: Fix reset with ext adv enabled
We need to make sure aux is cleared on reset, otherwise we may end up
with legacy advertising with aux.

Signed-off-by: Andrzej Kaczmarek <andrzej.kaczmarek@codecoup.pl>
2021-02-18 13:29:37 +01:00
Andrzej Kaczmarek
74d6b9fae9 Bluetooth: controller: Improve readability
Create shortcuts to set and lll to make code easier to read.

Signed-off-by: Andrzej Kaczmarek <andrzej.kaczmarek@codecoup.pl>
2021-02-18 13:29:37 +01:00