Skip to content

Releases: PelionIoT/mbed-cloud-client

Device Management Client 4.13.2 General Availability

11 Dec 07:07
660b307
Compare
Choose a tag to compare

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

16 Feb 10:30
cdacedb
Compare
Choose a tag to compare

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_VERSION flag to 0.
    • [Zephyr] Change the default DNS to synchronous, by setting DNS API selection to POSIX.
      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.

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

21 Nov 17:12
bed292c
Compare
Choose a tag to compare

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_VERSION flag to 0.
    • For Zephyr devices, set the DNS API selection to POSIX.

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_COMPLIANT mode, 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_PORT added.
    • 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 443 can be used as an alternative customer port with Izuma Networks.

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

01 Mar 18:00
54282bc
Compare
Choose a tag to compare

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_VERSION flag to 0.
    • For Zephyr devices, set the DNS API selection to POSIX.

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_COMPLIANT flag that enables connection to any LwM2M compliant bootstrap and device management services. Disabled by default.
    • Introduce a new DISABLE_SERVER_CERT_VERIFY flag that disables the server certificate verification during the TLS handshake. Disabled by default.

Device Management Client 4.11.2 General Availability

01 Dec 10:11
08d12fb
Compare
Choose a tag to compare

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_VERSION flag to 0.
    • For Zephyr devices, set the DNS API selection to POSIX.

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

13 Oct 09:09
8a30590
Compare
Choose a tag to compare

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_VERSION flag to 0.
    • For Zephyr devices, set the DNS API selection to POSIX.

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

21 Sep 09:10
105a184
Compare
Choose a tag to compare

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_VERSION flag to 0.
    • For Zephyr devices, set the DNS API selection to POSIX.

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 as set_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.
  • 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_SUPPORT macro 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_COMPONENTS defines 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 the fota_comp_verify_cb_t callback instead.
    • Deprecated the installation callback for non-Linux targets (fota_candidate_iterate_handler_t). Use the fota_comp_install_cb_t callback instead.
    • Deprecated the installation callback for Linux targets for component update (fota_app_on_install_candidate). For component update, use the fota_comp_install_cb_t callback. To update the main application, use fota_app_on_install_candidate.
    • Added the fota_comp_finalize_cb_t installation finalization callback for future use (not in use yet).

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

08 Jul 11:42
d7edc52
Compare
Choose a tag to compare

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 the MbedCloudClient::on_registered()callback.
  • Added sleep state for MbedCloudClient::on_status_changed().
    This makes MbedCloudClient::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_TIMEOUT flag.
    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_SUPPORT macro.
    • Limitation: Not supported when MBED_CLOUD_CLIENT_FOTA_CANDIDATE_BLOCK_SIZE is not 1024.
  • Changes to the implementation of update candidate image encryption:
    • Added a new FOTA_USE_ENCRYPTED_ONE_TIME_FW_KEY option to the MBED_CLOUD_CLIENT_FOTA_KEY_ENCRYPTION macro.
    • Replaced FOTA_USE_DEVICE_KEY with FOTA_USE_ENCRYPTED_ONE_TIME_FW_KEY as the default value for MBED_CLOUD_CLIENT_FOTA_KEY_ENCRYPTION following a security vulnerability found in FOTA_USE_DEVICE_KEY.
    • Deprecated the FOTA_USE_DEVICE_KEY option, which will be removed in a future version.
  • Changed fota_app_defer() behavior so that candidate image download or install resumes only after the device application explicitly calls fota_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() after fota_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

17 Jun 14:35
7e45d92
Compare
Choose a tag to compare

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

Device Management Client 4.9.0

21 May 12:48
64904a1
Compare
Choose a tag to compare

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 a race condition in the handling of message status callback (particularly the handling of MESSAGE_STATUS_SENT). Previously, it was getting reported just before the operation had finished successfully.
  • Added support for TLV to single resource.
  • PUT to a resource 1/0/1 now triggers a registration update.
  • POST to a resource 1/0/4 now triggers a deregister process.
  • Removed deprecated STL APIs. These APIs and classes were removed:
    • SimpleM2MResource*.
    • MbedCloudClient::set_device_resource_value(M2MDevice::DeviceResource resource, const std::string &value).
    • MbedCloudClient::register_update_callback(string route, SimpleM2MResourceBase* resource).
  • Added new API MbedCloudClient::alert() to send high-priority messages.
    • In alert mode, Device Management Client halts all data sendings/active operations and waits for priority data to be sent.
  • Added new status callback API MbedCloudClient::on_status_changed(), which replaces these callback APIs:
    • MbedCloudClient::on_registered().
    • MbedCloudClient::on_unregistered().
    • MbedCloudClient::on_registration_updated().
    • The old APIs are deprecated and will be removed in a future release.
  • Added option to reduce traffic in bootstrap flow:
    • MBED_CONF_MBED_CLIENT_BOOTSTRAP_PIGGYBACKED_RESPONSE flag added to control whether delay or piggybacked response is used. By default, piggybacked response type is used.
    • Piggybacked response can be disabled by setting mbed-client.bootstrap-piggybacked-response" : 0 in mbed_app.json.
  • Fixed register and register update content type to COAP_CT_LINK_FORMAT (Core Link Format).
  • Fixed a memory leak when setup() and close() were called multiple times in row.

Device Management Update client

  • Removed the need_reboot = false option in the fota_component_add() API. When registering a component, the need_reboot option must always be true.
  • Fixed storage erase calculations for boards with a non-uniform sector map.
  • Fixed the FOTA defer download behavior. Device registration update won't cause the client to resume FOTA download after the application calls the fota_app_defer() API.

Platform Adaptation Layer (PAL)

  • Added new PAL_DNS_API_VERSION 3. It's an asynchronous DNS API that can return multiple DNS results.
    • This feature is currently implemented only for the Linux platform and is disabled by default. You can enable it by defining PAL_DNS_API_VERSION=3. In future releases, this feature will be enabled by default for Linux.

Release notes can be found from:
https://cloud.mbed.com/docs/current/release-notes/device-management-client.html