Commit graph

22,555 commits

Author SHA1 Message Date
Mark Wang
c11ef74605 Bluetooth: SDP: add one API bt_sdp_get_add_proto_param
The bt_sdp_get_add_proto_param is used to get the protocol
parameter from Additional Protocol Descriptor List.
In order to implement it, one parameter
(proto_profile_index) is added to sdp_get_uuid_data_index
to get the indexed item.
Fix one bug in sdp_get_uuid_data because there may be more
than 2 consequent "seq len item".

Signed-off-by: Mark Wang <yichang.wang@nxp.com>
2021-08-23 15:11:24 +03:00
Joakim Andersson
d76bba4b5e Bluetooth: host: Device name handling of invalid length
Add a build assert if the device name has been misconfigured. The device
name has a max length of 248. When configured as dynamic make sure that
the initial device length can fit in the dynamic max length.
This prevents us from having to handle length overflow when setting
device name in advertising data which has an 8-bit length field.

Log a warning if failing to set the device name in bt_enable.
Remove unused defines in the shell.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
2021-08-20 18:56:38 -04:00
Joakim Andersson
8672976120 Bluetooth: shell: Fix adv-data command hex data input
Fix adv-data command when given arbitrary advertising data in
hexadecimal format. The data_len field should contain the length of the
data which does not include the data type. Instead the AD len field in
the data was given. This caused the AD len field to be increased by 1
in the advertising dat.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
2021-08-20 18:56:38 -04:00
Rubin Gerritsen
1aa3a77130 bluetooth: smp: Fix duplicate pairing_failed callback
In the case where keys are distributed on an unencrypted link,
we got the following call trace:
  - bt_smp_recv()
    - smp_error()
    - smp_pairing_complete()
      - bt_conn_security_changed()
      - smp_pairing_complete()
        - bt_auth->pairing_failed()
        - smp_reset()
      - bt_auth->pairing_failed()
      - smp_reset()

To avoid the second call to bt_auth->pairing_failed()
we validate the that smp flags before calling the callback.

Signed-off-by: Rubin Gerritsen <rubin.gerritsen@nordicsemi.no>
2021-08-20 18:55:33 -04:00
Emil Gydesen
aa9a2aac0c Bluetooth: host: Remove reset of conn handle on disconnect
(Re)setting the connection handle in hci_disconn_complete
should not be done as the handle are used for
logging/debugging purposes after this, and makes it
impossible to lookup the handle of disconnected
connections.

The connection handle is set to 0 during bt_conn_new
in any case.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2021-08-20 12:54:39 +02:00
Krzysztof Kopyściński
852656d1ff Bluetooth: host: initialise mps_reduced to false in ecred reconf req
No initialisation will lead to undefined behaviour in check for
BT_L2CAP_RECONF_INVALID_MPS.

This is affecting L2CAP/ECFC/BV-23-C

Signed-off-by: Krzysztof Kopyściński <krzysztof.kopyscinski@codecoup.pl>
2021-08-20 12:54:29 +02:00
Vinayak Kariappa Chettimada
80f382e51e Bluetooth: Controller: Fix sync of primary and auxiliary adv terminate
Fix missing synchronization when stopping primary and
auxiliary PDU scheduling.

Added implementation to ensure primary and auxiliary event
count match when terminating extended advertising on maximum
number of events or on duration.

Fixes #37571.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-08-20 12:49:43 +02:00
Vinayak Kariappa Chettimada
462ac6dcd1 Bluetooth: Controller: Minor refactor of extra done type set function
Minor refactor of extra done memory get and type set
functions.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-08-20 12:49:43 +02:00
Vinayak Kariappa Chettimada
76d7f6364e Bluetooth: Controller: Correctly initialize max events and duration
Max events and duration parameter are not used in high duty
cycle directed, hence correctly initialized them and not
depend on the caller of advertising start API to set them
to zeroes.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-08-20 12:49:43 +02:00
Trond Einar Snekvik
69fcaaa592 Bluetooth: Mesh: Use separate net_bufs for bt_mesh_app_decrypt in friend
unseg_app_sdu_decrypt decrypts messages in place using a single net_buf.
While this is safe in terms of data access, the buffer state is
manipulated with the assumption that they're two different buffers, and
the output buffer's length field is increased at the end. When
assertions are enabled and the pdu length is 11 or 12 bytes, this
triggers the net_buf length assert, as the decrypt function attempts to
add the pdu length to the out buffer, with the assumption that it was
reset before decryption was started.

Create a separate output buffer with len = 0 to avoid triggering the
assert. Improve readability of the unseg_app_sdu functions to highlight
the need for the additional buffer.

Fixes #37519.

Signed-off-by: Trond Einar Snekvik <Trond.Einar.Snekvik@nordicsemi.no>
2021-08-20 12:49:28 +02:00
Joakim Andersson
ce2fdd84ff Bluetooth: host: Allow app to set scannable when not providing scan data
Allow the application to configure the advertiser as scannable when it
does not provide scan data in the call to bt_le_adv_start. This makes it
possible for the application to later add scan response data in the
bt_le_adv_update_data call.
This aligns the legacy code path with the extended code path which
already had this behavior.

This also stops a directed connectable advertiser from being marked
internally in the host as scannable. This appears to not have been
causing any issues.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
2021-08-20 12:49:06 +02:00
Joakim Andersson
750782ba46 Bluetooth: host: Fix non-connectable advertiser configured as scannable
Fix non-connectable advertiser configured as ADV_SCAN_IND when
configured by application to have the device name appear in the
advertising data instead of the scan response data.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
2021-08-20 12:49:06 +02:00
Joakim Andersson
5ab34fab13 Bluetooth: host: Fail create ext scannable advertiser with name in AD
Disallow creating an extended scannable advertiser with the device name
configured to appear in the advertising data.
This would fail in either the call to bt_le_ext_adv_start or
bt_le_ext_adv_set_data when the host would try to set advertising data
in the controller.
Instead this now fails in the bt_le_ext_adv_create call.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
2021-08-20 12:49:06 +02:00
Joakim Andersson
2ad039d9d0 Bluetooth: shell: Add option to set name in advertising data
Add advertising option to set the force advertising name in advertising
data option.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
2021-08-20 12:49:06 +02:00
Lingao Meng
4a8a1577ef Bluetooth: Mesh: Redefine callback registration
There is a problem with the previous method, that is,
we use the same label(bt_mesh_subnet_cb_subnet_evt) and
put it in the same section, which is not friendly for debugging.

Signed-off-by: Lingao Meng <menglingao@xiaomi.com>
2021-08-20 06:28:12 -04:00
Torsten Rasmussen
1cccc8a8fe cmake: increase minimal required version to 3.20.0
Move to CMake 3.20.0.

At the Toolchain WG it was decided to move to CMake 3.20.0.

The main reason for increasing CMake version is better toolchain
support.

Better toolchain support is added in the following CMake versions:
- armclang, CMake 3.15
- Intel oneAPI, CMake 3.20
- IAR, CMake 3.15 and 3.20

Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
2021-08-20 09:47:34 +02:00
Asbjørn Sæbø
252a9bad9a Bluetooth: ots: Fix output formatting
Fix output formatting after changes in
https://github.com/zephyrproject-rtos/zephyr/pull/36653/
causes Twister build fails in pending le-audio code.

Signed-off-by: Asbjørn Sæbø <asbjorn.sabo@nordicsemi.no>
2021-08-19 10:20:37 -04:00
Omkar Kulkarni
f868ca3497 bluetooth: mesh: Fix IVU duration counter update
When device is first provisioned with IV Update
flag is set to 0, it should wait for minimum of
96 hours before going into IV Update In Progress
state. Such limit does not apply, if device is
provisioned with IV Update flag is set to 1.

Signed-off-by: Omkar Kulkarni <omkar.kulkarni@nordicsemi.no>
2021-08-19 10:19:43 -04:00
Meng xianglin
f039cc44a1 pm: refine defination of pm_dump_debug_info()
Provide dummy implementation of pm_dump_debug_info() as a
static inline function in pm.h.

Signed-off-by: Meng xianglin <xianglinx.meng@intel.com>
2021-08-19 10:19:24 -04:00
Pavel Vasilyev
0e9d668970 Bluetooth: Mesh: Add API to discard subscription in vendor model
This commit adds missing API that allows to discard the Subscription
List of a vendor model.

Signed-off-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
2021-08-19 10:19:02 -04:00
Pavel Vasilyev
538f97f737 Bluetooth: Mesh: Clarify name length in bt_mesh_model_data_store
Name length can't be longer than 8 bytes. This needs to be clarified
in the bt_mesh_model_data_store() documentation.

Signed-off-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
2021-08-19 10:19:02 -04:00
Emil Gydesen
03c3a31be9 Bluetooth: Iso: Change set CIG parameters fail to unref
Change the fail handling of setting the CIG parameters
(or when allocating the CIS) to unref the ISO conns
instead of calling cleanup on them directly.

This fixes an issue that if the CIG parameters failed,
then the iso conns would not be unref'ed and we could
not try again.

Unref'ing an iso conn will call cleanup once it hits 0
refs.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2021-08-19 10:18:28 -04:00
Emil Gydesen
393436c773 Bluetooth: ISO: Add log if cleanup fails to remove the CIG
Add an warning log message if the CIG failed to be removed.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2021-08-19 10:18:28 -04:00
Emil Gydesen
a0cec00807 Bluetooth: ISO: Add iso channel state check for unbind
A channel should only be allowed to unbind when in
the BT_ISO_BOUND state. If it is in a disconnected state,
then it the function would have meaning. If it is a connected
state, unbinding it would generate an error when removing
the CIG, which would fail silently.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2021-08-19 10:18:28 -04:00
Piotr Pryga
a947d5aa24 Bluetooth: controller: Extend HCI TX cmd buf size for CTE rx param cmd
LE Set Connection CTE Receive Parameters HCI command size may not fit
into HCI TX command buffer size, which default value is 65 bytes.
For platforms other than Nordic there may be up to 75 antenna IDs
put into the command.
Added new default value for SOCs not compatible with Nordic to
extend default TX buf size to 83 bytes (75 bytes for antena IDs,
5 bytes for other command parameters, 3 bytes for command header).

Signed-off-by: Piotr Pryga <piotr.pryga@nordicsemi.no>
2021-08-18 20:11:10 -04:00
Piotr Pryga
0b07a7812e Bluetooth: controller: add functions to enable CTE req LLCP
Add functions that handle enable CTE request control procedure
request from host.
Implementation of ll_df_set_conn_cte_req_enable in ULL is partial.
It will be integrated with refactored implementation of control
procedures.

Signed-off-by: Piotr Pryga <piotr.pryga@nordicsemi.no>
2021-08-18 20:11:10 -04:00
Piotr Pryga
8382d6e5be Bluetooth: controller: Add CTE Rx params struct to lll_conn declaration
Add struct ll_df_conn_rx_params sturcutre to struct lll_conn.
This is storage for parametrers required to configure radio
for CTE reception in connected mode by lower link layer.

Add required includes to make the controller code compilable
after change struct ll_conn.

Signed-off-by: Piotr Pryga <piotr.pryga@nordicsemi.no>
2021-08-18 20:11:10 -04:00
Piotr Pryga
52ec547894 Bluetooth: controller: Add handling for HCI set CTE Rx parameters
HCI_LE_Set_Connection_CTE_Receive_Parameters handling is required to
enable sampling of Constant Tone Extension in connected mode.

The commit adds handling for HCI_LE_Set_Connection_CTE_Receive_-
-Parameters command.

Signed-off-by: Piotr Pryga <piotr.pryga@nordicsemi.no>
2021-08-18 20:11:10 -04:00
Piotr Pryga
ee71d95011 Bluetooth: controller: Add CTE Rx params struct to ll_conn declaration
Add struct ll_df_conn_rx_params sturcutre to struct ll_conn.
This is storage for parametrers required to configure radio
for CTE reception in connected mode.

Add required includes to make the controller code compilable
after change struct ll_conn.

Signed-off-by: Piotr Pryga <piotr.pryga@nordicsemi.no>
2021-08-18 20:11:10 -04:00
Piotr Pryga
3a9d809d0d Bluetooth: controller: add struct for conf of CTE rx in conn mode
Add new strcture type for storage of CTE receive parameters.
The structure will be used in to store parameters for connected mode.

The parameters provided by HCI commands for receiving CTE
in connected mode and disconnected mode are a bit different.
There is common subset of parameters but extraction of those
into common structure would increase of size of other stuctures
that aggregate them.

Signed-off-by: Piotr Pryga <piotr.pryga@nordicsemi.no>
2021-08-18 20:11:10 -04:00
Piotr Pryga
d159646e9b Bluetooth: controller: ull_df.c code re-arrange
Code related with connected mode was in middle between connectionless
RX and TX. Moved to the bottom of the file.

Added missing compilation guards for ll_df_set_conn_cte_tx_params.

Signed-off-by: Piotr Pryga <piotr.pryga@nordicsemi.no>
2021-08-18 20:11:10 -04:00
Piotr Pryga
6a848ec91b Bluetooth: controller: Add LE features for CTE req and resp
Add features: connection CTE request, connection CTE response
and receiving constant tone extensions; to HCI and features
supported by controller.
The features are not enabled yet.

Signed-off-by: Piotr Pryga <piotr.pryga@nordicsemi.no>
2021-08-18 20:11:10 -04:00
Piotr Pryga
2aa3fbb579 Bluetooth: controller: Add option to enable conn. CTE request feature
Add Kconfig option that enables BT v5.1 Connection CTE request feature.

Signed-off-by: Piotr Pryga <piotr.pryga@nordicsemi.no>
2021-08-18 20:11:10 -04:00
Yong Cong Sin
d156fa754e subsys/mgmt/hawkbit: Compute & compare image hash
Compute the SHA256 hash of the downloaded image and compare that with
the hash in the deploymentBase to guarantee that only the correctly
downloaded image will be flashed.

Signed-off-by: Yong Cong Sin <yongcong.sin@gmail.com>
2021-08-18 20:10:21 -04:00
Yong Cong Sin
eaa29d9d71 subsys/mgmt/hawkbit: Prevent multiple instances of hawkbit_probe
Use a semaphore to prevent the hawkbit_probe from running more than once
at the same time since it reset the hawkbit context on entry and will
affect other running instance.

Signed-off-by: Yong Cong Sin <yongcong.sin@gmail.com>
2021-08-18 20:10:21 -04:00
Yong Cong Sin
17dd9f4928 subsys/mgmt/hawkbit: Check if the download completed
Remove the unused semaphore and use a boolean variable to check if the
download is complete.

Signed-off-by: Yong Cong Sin <yongcong.sin@gmail.com>
2021-08-18 20:10:21 -04:00
Yong Cong Sin
73668323cf subsys/mgmt/hawkbit: Use dts for "storage" partition
Use devicetree for the "storage" partition.

Signed-off-by: Yong Cong Sin <yongcong.sin@gmail.com>
2021-08-18 20:10:21 -04:00
Yong Cong Sin
7c8de26f45 samples/subsys/mgmt/hawkbit: Remove unused definition
Remove unused NETWORK_TIMEOUT definition.

Signed-off-by: Yong Cong Sin <yongcong.sin@gmail.com>
2021-08-18 20:10:21 -04:00
Yong Cong Sin
1409b90c90 subsys/mgmt/hawkbit: Fix typos
Fix multiple typos and make the sample's log output consistent
with the subsys.

Signed-off-by: Yong Cong Sin <yongcong.sin@gmail.com>
Co-Authored-By: Sylvio Alves <sylviojalves@gmail.com>
2021-08-18 20:10:21 -04:00
Yong Cong Sin
a5f49ac943 subsys/mgmt/hawkbit: Add missing CONFIG_HAWKBIT_LOG_LEVEL
Add missing CONFIG_HAWKBIT_LOG_LEVEL so that its verbosity can be
configured.

Signed-off-by: Yong Cong Sin <yongcong.sin@gmail.com>
2021-08-18 20:10:21 -04:00
Dominik Ermel
33a7c98789 fs/fatfs: Apply changes required for version 0.14b
The commit applies changes that are required by update of ELM Chan's
FAT FS driver update to version 0.14b.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2021-08-17 17:52:55 -04:00
Martí Bolívar
041099f67c Bluetooth: Controller: clean up nRF DFE
The way we currently handle direction finding extension (DFE) support
on Nordic nRF5 controllers relies on required devicetree properties
related to DFE in the "nordic,nrf-radio" node.

That doesn't make sense on radios without DFE support, though.
Any .dtsi for an SoC without DFE support which has such a node would
require extraneous DFE related properties like dfe-antenna-num.

Instead of making the properties required, mark them optional. We
indicate the presence of DFE support via a new 'dfe-supported' boolean
property which the SoC .dtsi files can set (or not) depending on
support.

This gives us the opportunity to do some cleanup in the Kconfig,
removing CONFIG_HAS_HW_NRF_RADIO_BLE_DF since we know from the
devicetree whether DFE support is available.

Handle that change appropriately in radio_df.c. This gives us an
opportunity to improve readability in the devicetree-related macro
magic in that file.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
2021-08-17 17:52:43 -04:00
Vinayak Kariappa Chettimada
2cbc97d047 Bluetooth: Controller: Extended Active Scanning review rework
Miscellaneous review rework changes.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-08-17 17:36:19 +02:00
Vinayak Kariappa Chettimada
58b07c719a Bluetooth: Controller: Explicitly cast to void memq_dequeue calls
Explicitly cast to void memq_dequeue function calls.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-08-17 17:36:19 +02:00
Vinayak Kariappa Chettimada
1cd8eb3a81 Bluetooth: Controller: Fix scan_data_status value
Fix scan_data_status value from being incorrected OR-ed with
the advertising data status.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-08-17 17:36:19 +02:00
Vinayak Kariappa Chettimada
0fdac865e5 Bluetooth: Controller: Simplify LLL scheduling decision
Simplify the implementation deciding the use of LLL
scheduling for scanning PDUs with close auxiliary offsets.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-08-17 17:36:19 +02:00
Vinayak Kariappa Chettimada
2feffaf719 Bluetooth: Controller: Release LLL scheduling aux on incomplete data
Add implementation to release Auxiliary Context on failure
to receive auxiliary chain being in LLL scheduling.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-08-17 17:36:19 +02:00
Andrzej Kaczmarek
48ee84ffda Bluetooth: Controller: Fix aux scheduling from LLL
We need to alloc node prior to calling lll_scan_aux_setup, otherwise
the same node will be peeked inside that function and it will overwrite
some data in our node (e.g. "extra" field).

Signed-off-by: Andrzej Kaczmarek <andrzej.kaczmarek@codecoup.pl>
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-08-17 17:36:19 +02:00
Vinayak Kariappa Chettimada
d879861d44 Bluetooth: Controller: LLL scheduling for active scanning and initiator
Implementation to use LLL scheduling for close auxiliary
offsets when active scanning and initiating connections.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-08-17 17:36:19 +02:00
Vinayak Kariappa Chettimada
369dfd50ad Bluetooth: Controller: Fix tag name should be unique violation
Fix tag name should be unique violation.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2021-08-17 17:36:19 +02:00