Releases: PelionIoT/mbed-cloud-client
Device Management Client 4.13.3 General Availability
Device Management Client
Changes:
- Bugfix - incorrect firmware download progress
Device Management Client 4.13.2 General Availability
Device Management Client
Changes:
- PAL_MAX_FOLDER_DEPTH_CHAR increased from 66 to 128 bytes for Linux targets.
- [Linux]: Bugfix - update with large images and a short lifetime was failing.
The downloading of the image happens only after the FOTA state is being updated in the service to FOTA_SOURCE_STATE_DOWNLOADING.
The FOTA state auto-observable resource is kept observable even upon CoAP RESET message from the service.
Release notes can be found here:
https://developer.izumanetworks.com/docs/device-management/current/release-notes/device-management-client.html
Device Management Client 4.13.1 General Availability
Device Management Client
Known issues:
- [Linux/Zephyr] Asynchronous DNS does not work well, and the device fails to reconnect to the cloud if some of the pods are restarted. In such a scenario, the device needs to be restarted.
Changes:
- Improved error logging for certificate enrollment misconfiguration.
- Fixed a failure in FOTA for developer flow in PSA mode. The mechanism of going through a storage reset if the compiled credential file differs from the stored credentials did not work well with PSA. Read a certificate instead of a private key that we can't read in PSA mode.
- Only synchronous DNS is currently supported.
- [Linux] Change the default DNS to synchronous, by setting
PAL_DNS_API_VERSIONflag to 0. - [Zephyr] Change the default DNS to synchronous, by setting
DNS APIselection toPOSIX.
Note: For Linux devices with version >= 4.11.0, or Zephyr device with version >= 4.9.0 you should override the default DNS setting to synchronous in the application level.
- [Linux] Change the default DNS to synchronous, by setting
Release notes can be found here:
https://developer.izumanetworks.com/docs/device-management/current/release-notes/device-management-client.html
Device Management Client 4.13.0 General Availability
Device Management Client
Known issues:
- [Linux/Zephyr] Asynchronous DNS does not work well, and the device fails to reconnect to the cloud if some of the pods are restarted. In such a scenario, the device needs to be restarted.
To address this issue, the default DNS settings should be overridden to synchronous DNS in the application level:- For Linux devices, set the
PAL_DNS_API_VERSIONflag to 0. - For Zephyr devices, set the
DNS APIselection to POSIX.
- For Linux devices, set the
Changes:
- Izuma branding changes.
- Support for multiple ciphers via config flag
PAL_MAX_ALLOWED_CIPHER_SUITES.- This is required for improved LwM2M compliance.
- Please ensure your TLS configuration also enables the required ciphers.
- Add support for parsing Pkcs#7 certificate format. This format is used in EST flow.
- This is required for improved LwM2M compliance.
- Developer flow only: The device goes through a storage reset if the compiled credential file differs from the stored credentials.
- In
LWM2M_COMPLIANTmode, use Bootstrap server CA as LwM2M server CA for enabling server certificate verification during TLS handshake. - Fix compilation issue with glibc 2.34 and newer where PTHREAD stack sizes have been changed to runtime variables.
- Alternating port fallback function for
MBED_CLOUD_CLIENT_CUSTOM_URI_PORTadded.- If a socket error is encountered, the next try will be done with the original CoaP port
5684. - After 2nd failure, we alternate back to the custom port.
- NOTE! Only port
443can be used as an alternative customer port with Izuma Networks.
- If a socket error is encountered, the next try will be done with the original CoaP port
Release notes can be found here:
https://developer.izumanetworks.com/docs/device-management/current/release-notes/device-management-client.html
Device Management Client 4.12.0 General Availability
Device Management Client
Known issues:
- [Linux/Zephyr] Asynchronous DNS does not work well, and the device fails to reconnect to the cloud if some of the pods are restarted. In such a scenario, the device needs to be restarted.
To address this issue, the default DNS settings should be overridden to synchronous DNS in the application level:- For Linux devices, set the
PAL_DNS_API_VERSIONflag to 0. - For Zephyr devices, set the
DNS APIselection to POSIX.
- For Linux devices, set the
Changes:
- [Linux] Security improvement - the update encryption key is stored in the NVM and not in the header.
- Enable connection to any LwM2M compliant bootstrap and device management services.
- Introduce a new
LWM2M_COMPLIANTflag that enables connection to any LwM2M compliant bootstrap and device management services. Disabled by default. - Introduce a new
DISABLE_SERVER_CERT_VERIFYflag that disables the server certificate verification during the TLS handshake. Disabled by default.
- Introduce a new
Device Management Client 4.11.2 General Availability
Device Management Client
Known issues:
- [Linux/Zephyr] Asynchronous DNS does not work well, and the device fails to reconnect to the cloud if some of the pods are restarted. In such a scenario, the device needs to be restarted.
To address this issue, the default DNS settings should be overridden to synchronous DNS in the application level:- For Linux devices, set the
PAL_DNS_API_VERSIONflag to 0. - For Zephyr devices, set the
DNS APIselection to POSIX.
- For Linux devices, set the
Changes:
- Fixed a potential dead-lock situation in sn_nsdl.c CoAP tracing when tracing is enabled but trace-level is set below INFO. This fixes a regression introduced in 4.11.0 release.
Release notes can be found from:
https://cloud.mbed.com/docs/current/release-notes/device-management-client.html
Device Management Client 4.11.1 General Availability
Device Management Client
Known issues:
- [Linux/Zephyr] Asynchronous DNS does not work well, and the device fails to reconnect to the cloud if some of the pods are restarted. In such a scenario, the device needs to be restarted.
To address this issue, the default DNS settings should be overridden to synchronous DNS in the application level:- For Linux devices, set the
PAL_DNS_API_VERSIONflag to 0. - For Zephyr devices, set the
DNS APIselection to POSIX.
- For Linux devices, set the
Changes:
- [Remote logging] Fixed internal flash configuration to perform a full storage erase before using it.
- Fixed compiler warnings.
Release notes can be found from:
https://cloud.mbed.com/docs/current/release-notes/device-management-client.html
Device Management Client 4.11.0 General Availability
Known issues:
- [Linux/Zephyr] Asynchronous DNS does not work well, and the device fails to reconnect to the cloud if some of the pods are restarted. In such a scenario, the device needs to be restarted.
To address this issue, the default DNS settings should be overridden to synchronous DNS in the application level:- For Linux devices, set the
PAL_DNS_API_VERSIONflag to 0. - For Zephyr devices, set the
DNS APIselection to POSIX.
- For Linux devices, set the
Device Management Client
- Removed content type
ct=field from the register message payload. - Bootstrap LWM2M compliance:
- Bootstrap message parsing extracts instance ID from Uri-Path or from the payload.
- Security instance IDs are no longer hardcoded but are in line with the bootstrap-server resource boolean value.
- Extended DELETE to paths other than 0 and 0/0.
- Updated to ignore and not fail when not supported optional resources are included in bootstrap PUT requests.
- Bootstrap done is triggered on receiving ACK to separate CHANGED response to the bs finish POST request. Previously, bootstrap done was relying only on ssl peer close notification.
- Client has a new configuration flag
MBED_CLIENT_DYNAMIC_OBSERVABLE, which controls APIs such asset_observable(). The purpose of these features is to control whether the resource can be observed from the cloud. When enabled, the Client also appends the "obs" parameter to the resources as part of the registration message. If disabled, all resources are always observable, and you don't need to specify such capability separately. As part of improving LwM2M compliance and cleaning up the code base, this feature is wrapped behind this feature flag that is currently enabled by default. In the future, we plan to disable and eventually remove the feature completely.
- Add support to collect and store trace output to NVM for later review.
- You can enable this option by defining compile-time macro
MBED_CONF_MBED_CLIENT_DYNAMIC_LOGGING_BUFFER_SIZE. This defines the size of a RAM buffer. When the buffer is full or trace level trigger is found, the buffer content is stored in NVM. - When enabled, these resources are published, and you can use them to control logging:
- 33456/0/1 Start log capture.
- 33456/0/2 Stop log capture.
- 33456/0/3 Read current logs from NVM.
- 33456/0/4 Erase existing logs from NVM.
- 33456/0/5 Trace level output. Accepted values are: CMD (0), ERROR (1), WARN (2), INFO (3), and DEBUG(4).
- 33456/0/6 Trace level trigger. Accepted values are: DISABLED(0), ERROR (1), and WARN (2). The default value is ERROR. If disabled, all trace lines defined by trace level are stored in NVM.
- 33456/0/7 Size of the NVM in bytes.
- 33456/0/8 Auto erase NVM when full, disabled by default.
- 33456/0/9 Is capture currently enabled/disabled.
- 33456/0/10 Size of unread logs in NVM.
- 33456/0/11 Error, SUCCESS(0), STORAGE FULL(1), READ FAILURE(2), WRITE FAILURE(3), ABORTED(4), OUT OF MEMORY(5).
- 33456/0/12 Total size if logs in NVM.
- The application can also start and stop capture using
MbedCloudClient::set_dynamic_logging_state(bool state)API.
- You can enable this option by defining compile-time macro
- Extended the
MbedCloudClient::setup()API to allow the application to trigger full registration.
Device Management Update Client
- [Linux] Added support for FOTA combined update, a coordinated and simultaneous installation of multiple images on a device. The new
MBED_CLOUD_CLIENT_FOTA_SUB_COMPONENT_SUPPORTmacro enables this. To enable a combined update on a device, register a device component that consists of the relevant subcomponents that need to be updated together.FOTA_MAX_NUM_OF_SUB_COMPONENTSdefines the maximum number of supported sub-components. - Deprecated component update callback prototypes. Customers using Pelion Device Management Client 4.11 and higher should use the new component update callbacks.
- Deprecated the verify-after-installation callback (
fota_component_verify_install_handler_t). Use thefota_comp_verify_cb_tcallback instead. - Deprecated the installation callback for non-Linux targets (
fota_candidate_iterate_handler_t). Use thefota_comp_install_cb_tcallback instead. - Deprecated the installation callback for Linux targets for component update (
fota_app_on_install_candidate). For component update, use thefota_comp_install_cb_tcallback. To update the main application, usefota_app_on_install_candidate. - Added the
fota_comp_finalize_cb_tinstallation finalization callback for future use (not in use yet).
- Deprecated the verify-after-installation callback (
Platform Adaptation Layer (PAL)
[Linux] Enabled PAL_DNS_API_VERSION 3 by default for Linux configurations.
Release notes can be found from:
https://cloud.mbed.com/docs/current/release-notes/device-management-client.html
Device Management Client 4.10.0 General Availability
Known issues:
- [Zephyr] Asynchronous DNS does not work well. The device fails to reconnect to the cloud if some of the pods are restarted. In such a scenario, the device needs to be restarted. To address this issue, the default DNS settings should be overridden to synchronous DNS in the application level by setting the DNS API selection to POSIX in the application's configuration settings.
Device Management Client
- Updated Mbed CoAP to v5.1.11.
- Improved handling of "Bad requests" during bootstrapping. Now the client handles the recovery internally without reporting fatal certificate errors to the upper level.
Previously these errors resulted in factory resets because they were handled as fatal storage failures. - Fixed duplication of sent notifications, which sometimes happened if the application called
set_value()in theMbedCloudClient::on_registered()callback. - Added sleep state for
MbedCloudClient::on_status_changed().
This makesMbedCloudClient::set_queue_sleep_handler(callback_handler handler)redundant. It's marked as deprecated. - Added support for LwM2M Discover.
- Allowed the application to control the maximum reconnection timeout using the
MBED_CONF_MBED_CLIENT_MAX_RECONNECT_TIMEOUTflag.
This flag ensures that the reconnection time doesn't go above the set maximum value. The default value is 4hrs, and the lowest acceptable value is 5min.
Device Management Update Client
- Added support for updating device firmware with a server-encrypted update image.
- Enabled by the new
MBED_CLOUD_CLIENT_FOTA_ENCRYPTION_SUPPORTmacro. - Limitation: Not supported when
MBED_CLOUD_CLIENT_FOTA_CANDIDATE_BLOCK_SIZEis not 1024.
- Enabled by the new
- Changes to the implementation of update candidate image encryption:
- Added a new
FOTA_USE_ENCRYPTED_ONE_TIME_FW_KEYoption to theMBED_CLOUD_CLIENT_FOTA_KEY_ENCRYPTIONmacro. - Replaced
FOTA_USE_DEVICE_KEYwithFOTA_USE_ENCRYPTED_ONE_TIME_FW_KEYas the default value forMBED_CLOUD_CLIENT_FOTA_KEY_ENCRYPTIONfollowing a security vulnerability found inFOTA_USE_DEVICE_KEY. - Deprecated the
FOTA_USE_DEVICE_KEYoption, which will be removed in a future version.
- Added a new
- Changed
fota_app_defer()behavior so that candidate image download or install resumes only after the device application explicitly callsfota_app_resume(). When the device reboots, the client invokes the download or install callbacks to request the device application’s approval to continue the download or installation. - Added support for calling
fota_app_reject()afterfota_app_defer(). - Added the
fota_app_postpone_reboot()API. Calling this API postpones device reboot, which is required to complete the FOTA process until the device application explicitly initiates reboot. - Fix: Resuming download from the last successfully downloaded fragment was not previously supported on devices with an SD card, like the K64F.
- Fix: Support for resuming installation after an unexpected interruption (for example, power loss):
- Of the main or component image on Linux.
- Of a component image on an Mbed OS devices.
- Fix: Removed the candidate image file from its original path in Linux after FOTA completion.
Release notes can be found from:
https://cloud.mbed.com/docs/current/release-notes/device-management-client.html
Device Management Client 4.9.1 General Availability
Known issues:
- [Zephyr] Asynchronous DNS does not work well. The device fails to reconnect to the cloud if some of the pods are restarted. In such a scenario, the device needs to be restarted. To address this issue, the default DNS settings should be overridden to synchronous DNS in the application level by setting the DNS API selection to POSIX in the application's configuration settings.
Device Management Client
- Fixed the incorrect overriding of CoAP retransmission buffer size.
Platform Adaptation Layer (PAL)
- [Zephyr] Fixed a memory leak on DNs handling.
Release notes can be found from:
https://cloud.mbed.com/docs/current/release-notes/device-management-client.html