Commit graph

828 commits

Author SHA1 Message Date
Damian Krolik
7e02e8c9f4 mcumgr: fix invalid condition for calling img_mgmt_dfu_stopped
In other places, img_mgmt_dfu_stopped() is called when
a failure occurs and the DFU cannot be continued. In this
place, however, the function is called on success which
does not seem to be correct.

Signed-off-by: Damian Krolik <damian.krolik@nordicsemi.no>
2022-05-25 14:21:19 +02:00
Matthias Wauer
ba14fc4745 mgmt: img_mgmt: fix typo in variable name
The correct variable name is 'action'

Signed-off-by: Matthias Wauer <matthiaswauer@gmail.com>
2022-05-16 16:56:18 +02:00
Dominik Ermel
578cb132ff mgmt/mcumgr/lib: Make version string work with CONFIG_NEWLIB_LIBC
By default the newlib does not compile with %hhu processing,
to avoid turning on additional options for newlib compilation
this commit changes formatting string to use %hu instead.
The commit fixes problem with malformed version string being
returned, by smp_svr, when CONFIG_NEWLIB_LIBC=y is set together
with CONFIG_NEWLIB_LIBC_NANO=y.

Fixes #45261

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-05-15 21:33:05 +02:00
Dominik Ermel
0c051d0dd6 mgmt/mcumgr/lib: Fix astray dot in image version
Removed the dot.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-05-15 21:33:05 +02:00
Jamie McCrae
9e6b5cdca8 mgmt: mcumgr: lib: img: Add image header to callback
This allows an application to inspect a mcumgr img upload command to
provide additional information for acceptance or rejection of it, and
makes the previous private version compare function public so that
application code can call it.

Signed-off-by: Jamie McCrae <jamie.mccrae@lairdconnect.com>
2022-05-11 20:32:52 +02:00
Jamie McCrae
6a85b1b0d3 mgmt: mcumgr: lib: fs: Add file read/write access callback
This allows an application to inspect a mcumgr file access command and
either allow it or deny it with a result code.

Signed-off-by: Jamie McCrae <jamie.mccrae@lairdconnect.com>
2022-05-11 17:10:55 +02:00
Gerard Marull-Paretas
5113c1418d subsystems: migrate includes to <zephyr/...>
In order to bring consistency in-tree, migrate all subsystems code to
the new prefix <zephyr/...>. Note that the conversion has been scripted,
refer to zephyrproject-rtos#45388 for more details.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2022-05-09 12:07:35 +02:00
Dominik Ermel
ef199e92df mgmt/mcumgr/lib: doc: Minor fixes to zcbor_bulk documentation
Little polishing here and there.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-04-19 11:35:16 +02:00
Dominik Ermel
fb4afe2112 mgmt/mcumgr/lib: Remove mcumgr_util
With replacement of (u)ll_to_s with snprintf the util is no longer
needed.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-04-19 11:34:40 +02:00
Dominik Ermel
3445c29979 mgmt/mcumgr/lib: Use snprintf instead of ll_to_s in OS group
The commit replaces usage of ll_to_s with snprintf.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-04-19 11:34:40 +02:00
Dominik Ermel
4a12570ef8 mgmt/mcumgr/lib: Allow image management list broken version str
The commit adds change to image management list where "<???>"
will be returned as version string in case when version to string
conversion fails.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-04-19 11:34:40 +02:00
Dominik Ermel
692a4a7e63 mgmt/mcumgr/lib: Replace ull_to_s with snprintf in img_mgmt_ver_str
The ull_to_s, which is used to covert ints to string, has been
replaced with snprintf.
Above also fixes a bug where ull_to_s has been given INT_MAX as allowed
output string, while it should be given maiximum allowed buffer size.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-04-19 11:34:40 +02:00
Dominik Ermel
ca60b75613 mgmt/mcumgr/lib: Remove mgmt_streamer_reset_buf
Commit removes mgmt_streamer_reset_buf from mcumgr lib,
and supporting Zephyr function zephyr_smp_reset_buf.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-04-19 11:32:56 +02:00
Jamie McCrae
d67a364ace mgmt: mcumgr: lib: os: Add reset callback
This allows an application to inspect a mcumgr os reset command and
either allow it or deny it with a result code.

Signed-off-by: Jamie McCrae <jamie.mccrae@lairdconnect.com>
2022-04-13 14:05:57 -07:00
Dominik Ermel
4e03e34138 mgmt/mcumgr/lib: Add missing inclusion of toolchain.h
The zcbor_bulk_priv.h uses STRINGIFY for some of definitions
and, due to lack of inclusion of the toolchain.h, that was causing
compilation errors when NEWLIB would be selected.

Fixes #44811.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-04-13 13:28:16 -07:00
Jamie McCrae
756a8f7a9b mgmt: mcumgr: fs: Add hash/checksum (with CRC32/SHA256) handler
This adds a hash/checksum mcumgr handler to the file management commands
which can be used to get a hask or checksum of a file, and includes
handler implementations for IEEE CRC32 and SHA256.

Signed-off-by: Jamie McCrae <jamie.mccrae@lairdconnect.com>
2022-04-12 12:05:30 +02:00
Jamie McCrae
105f8b65e9 mgmt: mcumgr: fs: Add file status handler
This adds a command handler to the file management mcumgr system to get
the status of a file without needing to return file data (currently
reporting the file size).

Signed-off-by: Jamie McCrae <jamie.mccrae@lairdconnect.com>
2022-04-12 12:05:30 +02:00
Dominik Ermel
1b92fba8e7 mgmt/mcumgr/lib: endian.h is no longer needed.
Removed.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-04-12 11:42:28 +02:00
Dominik Ermel
e7205683bd mgmt/mcumgr/lib: Replace htons/ntohs with Zephyr functions
The commit replaces htons and ntohs calls, with sys_be16_to_cpu
and sys_to_cpu_be16.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-04-12 11:42:28 +02:00
Dominik Ermel
8aa7791c53 mgmt/mcumgr/lib: Improve smp_process_request_packet documentation
The commit clarifies smp_process_request_packet behaviour.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-04-11 12:13:33 +02:00
Dominik Ermel
aff57a0a42 mgmt/mcumgr/lib: Cleanup of img_mgmt_priv.h
Fixed define and removed unneded definitions.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-04-11 12:12:03 +02:00
Dominik Ermel
bc276b1a68 mgmt/mcumgr/lib: Correct zephyr_grp log module name
The zephyr_grp log module name was incorrectly named
MGMT_SETTINGS and module registration has been using module name
mgmt_zephyr_basic, which is also incorrect.
Both have been changed to mcumgr_zephyr_grp.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-04-11 12:11:27 +02:00
Dominik Ermel
f79698a37c mgmt/mcumgr/lib: Separate Kconfig for zephyr specific commands
Kconfig options for Zephyr specific group have been moved
to zpehyr_grp/Kconfig.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-04-11 12:11:27 +02:00
Dominik Ermel
a1449521aa mgmt/mcumgr: Kconfig: Gather transport options under own menus
The commit adds transport dedicated menu and gathers all transport
options under that menu; each transport gets its own menu, witch
gathers options specific for that transport

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-04-11 12:10:39 +02:00
Dominik Ermel
b6db591a17 mgmt/mcumgr/lib: Add MCUMGR Parameters command to OS group
Adds new command that allows to retrieve MCUMGR parameters.
Currently the command returns MCUMGR buffer size and count.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-04-11 12:10:20 +02:00
Dominik Ermel
33c0995e03 mgmt/mcumgr/lib: Fix zcbor_map_decode bulk
Fixed problem with uninitialized conditional variable.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-04-08 17:43:50 +02:00
Jamie McCrae
0ea3600e5c mgmt: mcumgr: lib: Fix non-visible struct build warnings
Fixes build warnings relating to visibility of 2 structs in mcumgr

Signed-off-by: Jamie McCrae <jamie.mccrae@lairdconnect.com>
2022-04-08 15:49:36 +02:00
Dominik Ermel
f36b6d8552 mgmt/mcumgr/lib: Deprecate CONFIG_IMG_MGMT_UL_CHUNK_SIZE
The IMG_MGMT_UL_CHUNK_SIZE is no longer used to control size of
intermediate buffer used for application image chunk processing,
instead directly request trasport buffer is used.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-04-08 13:49:55 +02:00
Dominik Ermel
756c34659b mgmt/mcumgr/lib: Deprecate CONFIG_OS_MGMT_ECHO_LENGTH
The echo sentence is now directly copied from request transport
buffer to response buffer, without use of intermediate buffer.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-04-08 13:49:55 +02:00
Dominik Ermel
057f7a2ffd mgmt/mcumgr/lib: Deprecate FS_MGMT_UL_CHUNK_SIZE
Now the chunk of uploaded file is directly read from the transport
buffer, net_buf, and is no longer copied into intermediate buffer
so the real size of chunk is actually how much the sender could
fit into MCUMGR_BUF_SIZE, less the other fields.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-04-08 13:49:55 +02:00
Dominik Ermel
7d27f8dd58 mgmt/mcumgr: Remove dependency on TinyCBOR
Mcumgr now wholy uses zcbor for decoding/encoding SMP
requests/responses.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-04-08 13:49:55 +02:00
Dominik Ermel
05b4142637 mgmt/mcumgr/lib: Remove cborattr from mcumgr
No longer used by mcumgr.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-04-08 13:49:55 +02:00
Dominik Ermel
265382931f mgmt/mcumgr/lib: Remove mgmt_err_from_cbor function
No longer needed.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-04-08 13:49:55 +02:00
Dominik Ermel
a3793cbfa7 mgmt/mcumgr: Move Zephyr specific group to zcbor
Replacing TinyCBOR with zcbor.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-04-08 13:49:55 +02:00
Dominik Ermel
18f0db5bd0 mgmt/mcumgr/lib: Move FS command group request processing to zcbor
The commit moves processing of SMP requests from TinyCBOR to zcbor.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-04-08 13:49:55 +02:00
Dominik Ermel
9f1a8cbbb4 mgmt/mcumgr/lib: Move IMG mgmt group request processing to zcbor
The TinyCBOR, in processing SMP requests, have been replaced
with zcbor.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-04-08 13:49:55 +02:00
Dominik Ermel
40462946a9 mgmt/mcumgr/lib: Add utility zcbor_map_decode_bulk
The commit adds private, for internal mcumgr use only, utility
function for bulk processing of CBOR map entries.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-04-08 13:49:55 +02:00
Dominik Ermel
ebc62e9bf9 mgmt/mcumgr/lib: Move SHELL mgmt request processing to zcbor
The commit replaces TinyCBOR for request processing within
SHELL command group.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-04-08 13:49:55 +02:00
Dominik Ermel
784d929761 mgmt/mcumgr/lib: Move STAT group request processing to zcbor
The STAT command group request processing has been moved from
TinyCBOR to zcbor.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-04-08 13:49:55 +02:00
Dominik Ermel
df028e7ee6 mgmt/mcumgr/lib: Switch OS group request processing to zcbor
The commit switches OS group commands to use zcbor instead
of TinyCBOR for processing SMP requests.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-04-08 13:49:55 +02:00
Dominik Ermel
4f9f694398 mgmt/mcumgr/lib: Remove TinyCBOR state objects from mgmt_ctxt
Removes no longer needed elements of struct mgmt_ctxt.
Removes mgmt_ctxt_init, mgmt_streamer_init_reader and init_reader
from struct mgmt_streamer_cfg as they are no longer needed.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-04-08 13:49:55 +02:00
Dominik Ermel
9675d94119 mgmt/mcumgr/lib: Switch smp_process_request_packet to net_buf
Drops usage of mgmt_streamer.reader in favour of direct access
to net_buf.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-04-08 13:49:55 +02:00
Dominik Ermel
6bddb0305a mgmt/mcumgr: Switch cbor_nb_reader to zcbor
The commit removes cbor_decoder_reader from cbo_nb_reader and
adds zcbor state variable to the structure.
All the code that has been supporting the cbor_decder_reader
has been removed and/or replaced with zcbor/net_buf specific.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-04-08 13:49:55 +02:00
Dominik Ermel
d0445aa4a9 mgmt/mcumgr/lib: Replace cbor_decoder_reader with cbor_nb_reader
Replaces TinyCBOR cbor_decoder_reader with cbor_nb_reader in
SMP processing code.
The SMP source code has been relying on internal elements of the
cbor_decoder_reader and had to be rewritten to use net_buf
structures, that are part of cbor_nb_reader, instead.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-04-08 13:49:55 +02:00
Dominik Ermel
1c9395f3b9 mgmt/mcumgr/lib: Replace calls to mgmt_streamer_init_writer
The calls have been replaced with direct invocations of
cbor_nb_writer_init.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-04-08 13:49:55 +02:00
Dominik Ermel
bff015feff mgmt/mcumgr/lib: Remove cbor_encoder_writer from usage
With transition to zcbor, the cbor_encoder_writer structure of
TinyCBOR is no longer used.
This commit replaces the structure with cbor_nb_writer, which
gathers zcbor processing structure with netbuf into one object.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-04-08 13:49:55 +02:00
Dominik Ermel
7cac9ef413 mgmt/mcumgr/lib: Use zcbor in OS command group responses
The commit switches processing of OS command group responses
to zcbor.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-04-08 13:49:55 +02:00
Dominik Ermel
f9a7ba38b1 mgmt/mcumgr/lib: Encode IMAGE command group responses with zcbor
The commit moves encoding of IMAGE command group responses to zcbor.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-04-08 13:49:55 +02:00
Dominik Ermel
2c66849401 mgmt/mcumgr/lib: Encode FS command group responses with zcbor
The commit moves encoding of FS command group responses to zcbor.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-04-08 13:49:55 +02:00
Dominik Ermel
8cb52b26c1 mgmt/mcumgr/lib: Encode SHELL command group responses with zcbor
The commit moves SHELL command group responses encoding to zcbor.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2022-04-08 13:49:55 +02:00