Commit Graph

85 Commits

Author SHA1 Message Date
Lingao Meng
ab08f34fd9 Bluetooth: Mesh: Make bt_mesh_model as rodata
Since model struct most of member should not change at run time,
so mark as const will be suitable and safely.

Signed-off-by: Lingao Meng <menglingao@xiaomi.com>
2023-11-16 16:52:14 +01:00
Benjamin Cabé
155420522b doc: Fix occurrences of repeated words
Another round of repeated words cleanup. This commit tries to keep the
diff minimal and line wrapping was mostly left intact in the touched
files, as having them consistent across the documentation is probably
the topic of a future tree-wide cleanup (or not)

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2023-11-15 17:34:39 -05:00
Aleksandr Khromykh
50d17a0d52 Bluetooth: Mesh: split gatt client and solicitation pdu sending
The ability to send the solicitation PDU doesn't
depend on GATT Client role.
Commit makes independent one functionality from
another.

Signed-off-by: Aleksandr Khromykh <aleksandr.khromykh@nordicsemi.no>
2023-11-08 10:08:36 +01:00
Omkar Kulkarni
30c36525ef Doc: Bluetooth: Mesh: Specify RPR Server limitations
Specifies RPR Server limitations.

Signed-off-by: Omkar Kulkarni <omkar.kulkarni@nordicsemi.no>
2023-11-03 09:54:03 +01:00
Ludvig Jordet
596fc48509 doc: bluetooth: mesh: Improve CDP128+ docs
Improves the documentation about how CDP 128, 129 and 130, as well as
Models Metadata Page 128 are created, as well as which functions the
application will have to call to store the correct contents in the
pages.

Signed-off-by: Ludvig Jordet <ludvig.jordet@nordicsemi.no>
2023-11-02 12:24:47 +01:00
Anders Storrø
c51bb9c13b Bluetooth: Mesh: Update spec ref 1.0.1->1.1
Updates Bluetooth mesh specification references:

- Change "Profile" to "Protocol" since the main specification has
changed its name.
- Update/align formating of specification references. This will
make it easier to find spec references in the future.
- Change some section references to point to the correct section of the
newest version of the specification (v1.1).

Signed-off-by: Anders Storrø <anders.storro@nordicsemi.no>
2023-10-25 14:50:14 +02:00
Benjamin Cabé
32918ddd92 doc: Fix broken references to Kconfig options
Fixed a few occurrences of incorrect references to Kconfig options
(missing the CONFIG_ prefix)

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2023-10-17 19:50:39 +01:00
Pavel Vasilyev
b2c163e108 doc: Bluetooth: Mesh: Fix line width to 100 in mesh docs
From Codying Style guideline:
https://docs.zephyrproject.org/latest/contribute/guidelines.html#coding-style

`The line length is 100 columns or fewer. In the documentation, longer
lines for URL references are an allowed exception.`

Signed-off-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
2023-09-28 09:33:37 +02:00
Aleksandr Khromykh
236e3b64db Bluetooth: Mesh: shell supports 32 bytes static oob
Commit adds support of 32 bytes static oob in mesh shell.

Signed-off-by: Aleksandr Khromykh <aleksandr.khromykh@nordicsemi.no>
2023-09-27 15:48:08 +02:00
Mia Koen
0a0198898d doc: bluetooth: mesh: note and spec name fix
Fixed a note in Config Server model
and spec name in couple of other models

Signed-off-by: Mia Koen <mia.koen@nordicsemi.no>
2023-09-25 16:43:54 +02:00
Pavel Vasilyev
0e26a0ddb9 doc: Bluetooth: Mesh: Correct DFU and BLOB models specs names
Correct DFU and BLOB models specs names. Also mentioning that they are
experimental yet (under BT_MESH_V1d1 option).

Signed-off-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
2023-09-25 16:42:55 +02:00
Pavel Vasilyev
1146f5a8ea doc: Bluetooth: Mesh: Fix note rendering
Fix tabulation for correct note rendering.

Signed-off-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
2023-09-25 16:42:55 +02:00
Pavel Vasilyev
663a54c6d5 doc: Bluetooth: Mesh: Remove "draft" word from mesh 1.1 spec
The specification is now adopted.

Signed-off-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
2023-09-25 16:42:55 +02:00
Benjamin Cabé
fef887a7b3 doc: bluetooth: mesh: Fix LaTeX math equations
While it doesn't seem to be an issue for HTML rendering, the use of
\verb is not allowed within LaTeX equations and breaks the PDF build.

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2023-09-25 09:50:45 +02:00
Ludvig Samuelsen Jordet
b990a74f8b Bluetooth: Mesh: Add support for Upload OOB Start
This adds support for the Upload OOB Start message to the DFD server, by
providing callbacks that the application can use to hook any OOB scheme
into the model behavior.

There are also extensive changes to the dfu_slot module, to accomodate
the new needs that appeared with the support for OOB transfer (mainly,
fwid, size and metadata are no longer available when the slot is
allocated, they appear later in the handling).

Signed-off-by: Ludvig Samuelsen Jordet <ludvig.jordet@nordicsemi.no>
2023-09-18 10:55:20 +01:00
Pavel Vasilyev
422cfeeb1a doc: Bluetooth: Mesh: Align wording for models instantiation req
According to https://github.com/zephyrproject-rtos/zephyr/pull/61886#issuecomment-1713302331
we need to use "must only" for models that spec states:
`If supported, ... shall be supported by the primary element and shall
not be supported by any secondary element`.

Signed-off-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
2023-09-14 08:33:46 +02:00
Mia Koen
01f144b201 doc: bluetooth: mesh: fixed spec links
Corrected the profile specification v1.0.1 link to point to
the spec directly and not to the general specification page.
Added link to protocol specification v1.1.

Signed-off-by: Mia Koen <mia.koen@nordicsemi.no>
2023-09-12 16:30:44 +02:00
Mia Koen
0d57935d80 doc: bluetooth: mesh: doc for SAR Config models
Adding rst files describing SAR Configuration
models, SAR Configuration Client and SAR Configuration
Server.

Signed-off-by: Mia Koen <mia.koen@nordicsemi.no>
2023-09-12 16:30:44 +02:00
Mia Koen
ad57c7d621 doc: bluetooth: mesh: listed models alphabetically
Changed placement of a few models so they are
in alphabetical order

Signed-off-by: Mia Koen <mia.koen@nordicsemi.no>
2023-09-12 16:30:44 +02:00
Pavel Vasilyev
028031ec20 doc: bluetooth: mesh: Fix link to Assigned Numbers document
The previous file doesn't exist anymore and was redirecting to the new
link.

Signed-off-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
2023-09-12 09:27:02 +02:00
Pavel Vasilyev
1c2abbd7f1 doc: bluetooth: mesh: Add missing bt_mesh_dfd group to DFU doc page
Add missing bt_mesh_dfd group to the mesh DFU documentation page as it
covers all DFU models including Firmware Distribution models (called
as `dfd` in the code).

Signed-off-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
2023-09-12 09:27:02 +02:00
Anders Storrø
51707daade doc: Bluetooth: Mesh: Fix comp data doc entries
Minor cleanup of the mesh composition data pages
documentation.

Signed-off-by: Anders Storrø <anders.storro@nordicsemi.no>
2023-09-09 12:16:05 +03:00
Anders Storrø
81c6ae8908 doc: Bluetooth: Mesh: Add docs for comp data pages
Adds documentation for all supported composition data pages.

Signed-off-by: Anders Storrø <anders.storro@nordicsemi.no>
2023-09-08 14:44:25 +02:00
Pavel Vasilyev
1630323de3 docs: bluetooth: mesh: Add missing space in od_srv.rst
This fixes rendering in od_srv.rst.

Signed-off-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
2023-08-28 10:12:54 +02:00
Benjamin Cabé
c71d6af304 Revert "doc: Remove :members: on doxygengroup directives"
This reverts commit 88c1519414.

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2023-08-24 09:19:37 +01:00
Anders Storrø
254ee94fc0 Bluetooth: Mesh: Remove conflicting shell OOB func
Removes redundant mesh shell OOB implementation that makes
existing command implementation fail. Alters capabilities
CB to print provisionee caps.

Signed-off-by: Anders Storrø <anders.storro@nordicsemi.no>
2023-08-17 16:50:28 +02:00
Emil Gydesen
5b888c361d Bluetooth: BAP: Shell: Remove use of broadcast sink scan API
The broadcast sink scan API is no longer used by the BAP
shell, which handles everything related to PA sync and scan
itself now.

It has also been made easier to sync to a broadcast
source by simply using create_broadcast_sink.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2023-08-14 13:34:26 +00:00
Andreas Deininger
571f8591b9 documentation: Fix several typos
Correcting typos in various documentation files

Signed-off-by: Andreas Deininger <andreas@deininger.net>
2023-08-07 13:07:50 +02:00
Aleksandr Khromykh
9b4d080419 Bluetooth: Mesh: add shell statistic commands
Commit adds commands to get and to clear
the frame statistic.

Signed-off-by: Aleksandr Khromykh <aleksandr.khromykh@nordicsemi.no>
2023-07-07 09:20:33 +02:00
Aleksandr Khromykh
7199425792 Bluetooth: Mesh: add statistic module
PR adds the statistic module to estimate frame handling.
The module helps to understand the ratio of
the received\relayed\dropped\transmited frames.
That shows the efficiency of the current configuration\implementation.

Signed-off-by: Aleksandr Khromykh <aleksandr.khromykh@nordicsemi.no>
2023-07-07 09:20:33 +02:00
Michael Jones
88c1519414 doc: Remove :members: on doxygengroup directives
As that is not supported by docleaf. We get everything by default.

Signed-off-by: Michael Jones <m.pricejones@gmail.com>
2023-07-03 10:05:52 +00:00
Emil Gydesen
49a70aa1bb Bluetooth: TMAP: Add TMAP shell module
Add simple TMAP shell module that supports the TMAP
discovery.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2023-06-30 16:10:51 +02:00
Pavel Vasilyev
737afd31fe doc: bluetooth: mesh: Add dfu cli cancel command to doc
Add description of the `mesh model dfu cli cancel` shell command.

Signed-off-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
2023-06-29 21:07:16 +02:00
Pavel Vasilyev
5572a27468 docs: bluetooth: mesh: Add note about storing runtime configuration
All public API declared in cfg.h won't schedule storing of the change
persistently if BT_MESH_VALID flag is not set. The flag is set after the
node is provisioned.

Signed-off-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
2023-06-29 21:04:55 +02:00
Aleksandr Khromykh
cd4bfc8c43 doc: Bluetooth: Mesh: add link to adv id subclause
PR adds link to advertisement identity coexistence subclause.

Signed-off-by: Aleksandr Khromykh <aleksandr.khromykh@nordicsemi.no>
2023-06-20 09:27:23 +02:00
Aleksandr Khromykh
a322e4d20d Bluetooth: Mesh: clarification about adv local identity
BT_ID_DEFAULT is hardcoded in mesh. Added clarification about
the necessity of another local identity allocation for BLE
if it coexists with mesh.

Signed-off-by: Aleksandr Khromykh <aleksandr.khromykh@nordicsemi.no>
2023-06-19 11:01:30 +02:00
Stine Åkredalen
2921fc9d5e doc: Bluetooth: mesh: add large composition data docs
Added basic description of Large Composition Data server and
client models.

Signed-off-by: Stine Åkredalen <stine.akredalen@nordicsemi.no>
2023-05-31 10:22:32 +01:00
Pavel Vasilyev
177e9b93bf Bluetooth: Mesh: Add API to store model's user data in settings work
Mesh models may have a data that needs to be stored persistently.
Currently, the models should call bt_mesh_model_data_store and the store
will happen in the calling context. Most likely that it will be called
in BT RX thread as this is the context from which model's opcodes
handlers are called. Thus, the thread will be blocked until the store is
finished.

Another issues is that some models may have states that changes
frequently. Triggering the store on every state change may wear out
flash. Therefore, the models need to implement some postpone mechanism
to reduce the flash wear out.

The mesh stack has already implemented the mechanism of deferred store
with its own settings. The models could use it instead of implementing
their own mechanism.

In combination with the mesh settings workqueue, the models can store
their data without blocking the stack work.

Signed-off-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
2023-05-08 09:58:21 +02:00
Pavel Vasilyev
e33a4ace0f Bluetooth: Mesh: Use separate workq for storing mesh settings
Currently mesh settings are stored in the system workqueue context.
Most of other stack functionality, such that advertisements (incl
relay), loopback, transport sar, beacons transmission, etc. is also
processed in the system workqueue context. When a massive amount of
data needs to be stored and in particularly when page erase needs to
be triggered by GC of NVS subsystem to allocate flash pages, the
execution of the stack (and other functionality that uses the system
workqueue) will be blocked until storing is finished. For example,
right after the provisioning of a erased device, a node may not be
responsive for up to 400ms before it can continue sending messages.
The waiting time may increase if there is a GATT connection in the
mean time.

When write or erase operation is triggered, the flash driver waits for
Bluetooth controller to allocate a time needed to perform the operation.
During the whole operation, the context from which the operation was
triggered is put to sleep. This allows other threads to run until
Bluetooth controller finds the time for the flash driver. In other words,
every settings_save_one or settings_delete should be considered as
rescheduling points.

Considering this, Bluetooth mesh can use another thread to store its
settings, thus releasing the system workqueue for other tasks including
the operation of the stack itself.

The consistency of the data to be stored is guaranteed by the current
implementation where the data is copied to another struct before calling
settings_save_one. The pending flag of a particular module is dropped in
settings.c before starting to store the corresponding data. Thus, if
during the sleep the node receives a message that triggers a change in a
module which data is currently being stored, the pending flag will be
restored and the new change will be stored eventually.

Having this option enabled including with the partial erase, will make
the node more responsive in the described situations.

Signed-off-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
2023-05-08 09:58:21 +02:00
Stine Åkredalen
80158c1428 doc: Bluetooth: Mesh: update proxy solicitation docs
Updated related docs. Small fix in mesh/Kconfig and shell.rst.

Signed-off-by: Stine Åkredalen <stine.akredalen@nordicsemi.no>
2023-04-28 20:37:45 +02:00
Anders Storrø
fc49ad3ac6 Bluetooth: Mesh: Shell: Align parameter docs
Aligns Bluetooth mesh shell parameter documentation to use the
same syntax, abbrevations and formating.

Signed-off-by: Anders Storrø <anders.storro@nordicsemi.no>
2023-04-12 13:04:42 +02:00
Anders Storrø
1026ec5b38 Bluetooth: Mesh: Shell: Change pub cmd period arg
Changes the implementation and documentation in config client shell
command for Config Model Publication Set and Config Model Publication
Virtual Address Set to accept period resolution and period steps as
separate arguments to make it more user friendly.

Signed-off-by: Anders Storrø <anders.storro@nordicsemi.no>
2023-04-12 13:04:42 +02:00
Anders Storrø
2356195ae7 Doc: Bluetooth: Mesh: Add RPR docs
Adds documentation for the Remote provisioning server and client
models.

Signed-off-by: Anders Storrø <anders.storro@nordicsemi.no>
2023-03-23 15:43:29 +01:00
Pavel Vasilyev
2e53128d52 doc: bluetooth: mesh: Relocate foundation models
Solicitation PDU RPL and On-Demand Private GATT Proxy models are
foundation models.

Signed-off-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
2023-03-22 09:34:53 +01:00
Hanf Gai
b8d3e9c50e doc: connectivity: bluetooth: sync function name
sync function name `bt_conn_le_create` with the code.

Signed-off-by: Hanf Gai <gaihanfu@live.com>
2023-03-21 18:09:03 +00:00
Emil Gydesen
4eb92f2d29 doc: Bluetooth: Add CAP documentation
Add documentation for CAP by adding the reference to the API
document.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2023-03-21 09:35:05 +01:00
Ingar Kulbrandstad
b652c8d3dd Doc: Bluetooth: Mesh: Added shell remote provisioning documentation
Add description all shell commands related to remote provisioning.

Signed-off-by: Ingar Kulbrandstad <ingar.kulbrandstad@nordicsemi.no>
2023-03-17 11:49:13 +01:00
Emil Gydesen
5704b83ea7 Bluetooth: Audio: Shell: Add location to cmd_config
Add support for setting the location value
(BT_CODEC_CONFIG_LC3_CHAN_ALLOC) in the codec configuration.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2023-03-15 09:12:33 +01:00
Emil Gydesen
53912795ba Bluetooth: Audio: Shell: Update BAP shell documentation
Update the BAP shell documentation to be more up to date.
There are still several BAP commands that do not have
examples of further documentation, but that is still
a TODO.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2023-03-15 09:12:33 +01:00
Emil Gydesen
e36caf48b7 Bluetooth: Audio: Rename audio shell commands to bap
Change the shell commands from "audio ..." to "bap ...".

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2023-03-07 16:21:44 +01:00