The smp_process_request_packet has been checking return code from
mgmt_streamer_init_writer where Zephyr implementation of the
callback always returns 0.
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
Since this CRC uses the 0x1021 poly with no reflection, a faster
implementation is available in the crc16_itu_t() function, which is
O(n).
Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
Guard call to k_thread_abort() to ensure it's not called with an
uninitialized thread and fix improper use of inet_pton() with
INADDR_ANY passed in place of a dotted-decimal string. Both of these
would otherwise lead to NULL pointer dereferences.
Signed-off-by: Berend Ozceri <berend@recogni.com>
The commit fixes smp_process_request_packet failing to decrement
message_size, of read stream, by number of bytes it trims from
an input buffer.
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
The commit fixes smp_process_request_packet not checking header
stated message length against actual message length.
This could lead to an erratic behavior of an application when it tries
to parse CBOR data beyond actual size of message or potential
Zephyr crash.
When application has asserts enabled the error leads to inevitable
Zephyr crash, caused by net_buf checks.
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
The changes smp_process_request_packet to return MGMT_ERR_ECORRUPT
in case when failed to read header.
This helps to recognize that there will not be any response sent
from mcumgr to the buffer given to smp_process_request_packet as
it has not been recognized as valid request.
It also removes redundant check on mgmt_streamer_init_reader which
always returns 0 (no failure) in Zephyr.
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
The mcumgr image upload uses buffed flash writes with use of stream
flash, which makes flash alignment check unneded.
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
The commit fixes bug in compile time calculation of file download
chunk, FS_MGMT_DL_CHUNK_SIZE, that is permitted within selected
mcumgr buffer size, where the mcumgr header length has not been
taken into account.
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
The commit removes internal names given to Kconfig options,
in img_mgmt_config.h, and modifies code to use the Kconfig options
directly.
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
The commit removes internal names given to Kconfig options,
in fs_mgmt_config.h, and modifies code to use the Kconfig options
directly.
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
The tasktat code filling reposes with use of CBOR has been modified,
utilizing lazy evaluation of C '||' operator, to terminate CBOR
encoding as soon as first error appears.
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
The commit adds OS_MGMT_TASKSTAT_STACK_INFO Kconfig option
that allows to skip, when disabled, "stksz" and "stkuse" reports,
in "taskstat" command responses.
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
The commit adds Kconfig options and supporting code that allows
to select characteristic that will be used for thread name
in taskstat from:
- thread name, when THREAD_NAME is enabled;
- thread ID/index;
- thread priority.
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
By default the mcumgr taskstat responses send task priorities
as unsigned integers, while Zephyr uses int8_t as priority type.
This commit adds OS_MGMT_TASKSTAT_SIGNED_PRIORITY Kconfig option
that allows to switch to use signed priorities in responses.
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
The change adds OS_MGMT_THREAD_NAME_LEN that allows to set length of
thread name that is returned in taskstat response.
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
The commit changes taskstat code to directly process thread information
from Zephyr structures, instead of translating them to system agnostic
layer, before formatting response.
It also moves the takstat code to os_mgmt.c.
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
The commit removes os_mgmt_config.h that has been translating Kconfig
options to mgmt internal definitions for constants, and replaces
usage of these constants with direct use of Kconfig options.
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
OS_MGMT_TASKSTAT depends on THREAD_MONITOR, so when it defaults to y
and THREAD_MONITOR is disabled we get a build error.
Add a depends on to enforce a correct configuration.
Remove default y, as features should be default n.
Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no>
zephyr_os_mgmt_task_at and friends are ifdef'ing on a feature they
depend on instead of their own Kconfig option.
Which is not correct.
ifdef on CONFIG_OS_MGMT_TASKSTAT instead.
Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no>
This change adds a posibility to enable low latency connection
parameters for BT when SMP commands are handled.
Support for this functionality is disabled by the default and
can be enabled by CONFIG_MCUMGR_SMP_BT_LATENCY_CONTROL=y option.
Signed-off-by: Emil Obalski <emil.obalski@nordicsemi.no>
MCUMgr sample was failing to build due to including a deprecated header.
Replace it with the new header file to fix the build.
Fixes#41050
Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
The commit adds CONFIG_OS_MGMT_TASKSTAT_ONLY_SUPPORTED_STATS
Kconfig option that disables code filling in task statistics, for
mcumgr command `taskstat`, that are not collected or supported by
Zephyr.
Setting this option to y will skip following statistics in response:
"runtime", "cswcnt", "last_checkin" and "next_checkin".
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
Since 581c20e242 ("drivers: uart: Cleanup not supported API handling")
uart_fifo_read() returns -ve on errors. Correct the check on its return
value to work with this new API.
CID: 240662
Fixes: #39840
Signed-off-by: Siddharth Chandrasekaran <sidcha.dev@gmail.com>
The commit fixes the issue where duplicated code in
img_mgmt_impl_upload_inspect caused redirecting all image uploads,
in multi-image configuration, to the first image.
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
The commit adds Kconfig options that enables "frugal status list";
when enabled, the status list will be sent with zero, empty and false
values omitted, slightly reducing number of bytes sent as response
from device.
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
References to Mynewt have been removed and README for Zephyr has been
merged directly to the README.
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
The commit removes MYNEWT sepcific code and code that has been
conditionally compiled with "ifndef _ZEPHYR_".
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
The commit copies code of mcumgr, as a lib, under subsys/mgmt/mcumgr.
Only source files relevant for Zephyr have been copied, and changes
to source files have been limited only to path changes, where
required.
Samples have been left out as the only relevant sample, smp_svr,
is already within Zephyr source tree.
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
The mcumgr_serial_parse_op has been called to extract marker and
check if it is valid, just for the caller mcumgr_serial_process_frag
to process the marker again.
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
The commit fixes problem with UART TX frame processing, which was
caused by incorrect output buffer size evaulation, where input buffer
of certain len would cause entire output frame to be filled with no
place left for CRC causing a transmission to hang.
The commit, additionally, moves input buffer reminder processing out of
the input buffer processing loop.
Fixes#37893
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
Removed some of variables used within the function, and some of
the redundant arithmetic operations.
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
The commit adds missing static to the zephyr_smp_alloc_rsp
function definition; it also reorders some of definitions
and removes no longer needed block of forward declarations
of functions.
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
Allow SMP messages to be sent from user space.
For example, a user defined command can be sent when a value changes
so the client doesn't have to poll.
Signed-off-by: Andrew Hedin <andrew.hedin@lairdconnect.com>
The commit adds IMG_MGMT_UPDATABLE_IMAGE_NUMBER Kconfig option, int,
that allows to select how many images are supported by mcumgr.
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
Add a warning if the image is unconfirmed. Add a delay before rebooting
so that the user knows what happened.
Signed-off-by: Yong Cong Sin <yongcong.sin@gmail.com>
The current HAWKBIT_PROBE & HAWKBIT_PROBE_DEPLOYMENT_BASE response
handlers aren't able to handle multipacket response from Hawkbit
server. This commit fixes it by using the implementation from
HAWKBIT_DOWNLOAD.
Signed-off-by: Yong Cong Sin <yongcong.sin@gmail.com>
Signed-off-by: Joep Buruma <burumaj50@gmail.com>
The commit adds CONFIG_IMG_MGMT_DIRECT_IMAGE_UPLOAD that allows
to turn on the direct image upload.
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>