The commit modifies cbor_nb_writer to handle zcbor.
Proper initialization code has been added to cbor_nb_writer_init.
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
Add a name for the choice of authentication modes so that it
can be default to a certain type in project's Kconfig.
Signed-off-by: Yong Cong Sin <yongcong.sin@gmail.com>
The commit splits the main mcumgr Kconfigs into primary Kconfig
that collect general mcumgr options for Zephyr (Zephyr specific
commands, transports, and so on), into lib/Kconfig
that collects library options and command groups' Kconfigs.
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
Previously, the hash of the firmware is checked while we are
downloading the firmware. This isn't ideal as the validity of
the firmware written into the flash is not verified and can be
corrupted. Furthermore, checking while downloading will have an
negative impact to the download speed as the CPU need to do
more work during the data transfer.
This PR removes the previous verify-hash-while-download
implementation and use the flash_img_check API instead.
Signed-off-by: Yong Cong Sin <yongcong.sin@gmail.com>
After the firmware is downloaded in hawkbit_probe, a series of
operations are done by using the fact that the conditions of
an if-else statement will be ran until a match.
This patches separate these condition into individual
if-condition for better readability
Signed-off-by: Yong Cong Sin <yongcong.sin@gmail.com>
The commit add checks whether frame received from BT transport
will really fit into allocated net_buf form mcumgr.
Fixes: #44271
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
The commit moves shell command buffer to stack and changes
initialization to just just put null at the beginning, before calling
a function that will fill in the buffer, and at the end, after the call.
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
Moves Zephyr specific code to common source file and removes
no longer needed interface headers.
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
The commit makes stats collection conditional so in case when
CBOR container encoding fails the stats collecting function
will not be called.
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
Fixes a twister test issue whereby handler_found and valid_hdr variables
are checked prior to being set.
Signed-off-by: Jamie McCrae <jamie.mccrae@lairdconnect.com>
The IMG_MGMT_VERBOSE_ERR Kconfig option has not been really working
since the SMP response that it would setup was reset in case of
error, so in any instance that it would actually be used.
Fixes#32545
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
The commit adds support for passing "rsn" explanation strings,
for "rc" code, in error SMP responses.
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
The zephyr_fs_mgmt_truncate has been replaced with fs_unlink
since there is no point to specially check for file existence
before just removing it.
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
The fs_mgmt_file_upload_rsp has been renamed fs_mgmt_file_rsp
and is used everywhere where "rc" code and "off" is placed into
response, instead of duplicating code that does the task.
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
The function has been reimplemented within stat_mgmt_list directly,
reducing execution time and code size.
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
The commit merges Zephyr specific code from zephyr_stat_mgmt.c
to stat_mgmt.c, removes *_impl_* prototypes of functions that are
used for system specific implementations.
zephyr_ prefixes have been removed from identifiers as they are
no longer needed.
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
The commit reorganizes smp_handle_single_payload function to only
open map container, in response, after request have been validated
to be processable.
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
The commit removes arg parameter from mgmt_init_writer_fn
function typedef and implementation in zephyr_smp_init_writer.
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
The commit removes arg parameter from mgmt_init_reader_fn
function typedef and implementation in zephyr_smp_init_reader.
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
The smp_make_rsp_hdr prepares new response header from request
header, sets proper frame length to it and converts it to
network format.
Because a respose buffer has now pre-allocated space for header
it is no longer required to call the smp_make_rsp_hdr,
formerly smp_init_rsp_hdr, to reserve such space before adding
data that should follow it.
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
The commit changes cbor_nb_writer_init function to reserve
SMP header size on init. The change makes call to
mgmt_streamer_reset_buf within smp_write_hdr no longer needed.
The mgmt_streamer_write_at function, that has been exclusively
used to write headers, have been replaced with mgmt_streamer_write_hdr
and zephyr_smp_write_hdr, formerly zephyr_smp_write_at, has been
reduced as it no longer needs to check and update net_buf metadata
to write header as the cbor_nb_writer_init does it now.
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
Boolean options must not start with "Enable...". Adjusted the prompt to
comply with the guidelines.
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
New CONFIG_MCUMGR_SMP_BT_PKASM has been added that enabled
SMP packet re-assembly, at transport level, to the BT.
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
The commit adds packet re-asembly to SMP that can be used to
collect packet from fragments at SMP transport level.
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
The commit fixes erase storage command so that it would return with
error code instead of bus faulting when no device is attached
to flash storage.
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
It is possible for flash partition to have no device attached
which may cause image commands to bus fault device.
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
Following #42026, the body_start pointer now points to the
start of the body fragment in the recv_buffer as long as there
is body in it, either entirely or partially.
Rename the body_start to body_frag_start to better reflect
what it represents.
Signed-off-by: Yong Cong Sin <yongcong.sin@gmail.com>
The os_mgmt_echo is supposed to return MGMT type error not
Cbor; there was missing translation.
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
The cbor_value_advance at the end of attribute parsing loop could
overwrite err with 0; this could cause loop to fail to break
on error and make cbor_internal_read_object return success, even
if parsing of input buffer failed.
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
According to Kconfig guidelines, boolean prompts must not start with
"Enable...". The following command has been used to automate the changes
in this patch:
sed -i "s/bool \"[Ee]nables\? \(\w\)/bool \"\U\1/g" **/Kconfig*
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
The commit:
- removes usage of strnlen to make taskstat code C99 compliant;
- corrects thread name len, following update description of
CONFIG_OS_MGMT_TASKSTAT_THREAD_NAME_LEN;
- reduces duplicated code.
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
The commit removes usage of strnlen from echo command to make
code C99 compliant, and allow it to compile with newlib.
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
The help for the OS_MGMT_TASKSTAT_THREAD_NAME_LEN stated that
the config includes terminating zero, but this is not true:
when thread name is encoded with CBOR it is encoded with actual
string length and is not zero terminated.
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
Kconfig options now belong to the Kconfig domain, therefore, the
:kconfig:option: role needs to be used.
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
This file defines the crypto driver API, cipher is supposed to be just
one type of capability (other can be hash) of these drivers, just
change the file name to be consistent with it.
Signed-off-by: Flavio Ceolin <flavio.ceolin@intel.com>
Extended the connection parameters negotiation procedure used in the
SMP BT module. From now on, it is possible to configure a preferable
set of all connection parameters to be used during the image transfer.
The default values are optimized for transfer throughput.
Signed-off-by: Kamil Piszczek <Kamil.Piszczek@nordicsemi.no>
The commit removes redundant memcpy operations and switches from
using TinyCBOR provided byte order converters to sys_be, native
to Zephyr.
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>