Mbed Cloud Client 1.3.2 General Availability (GA)
Changes since the previous release
Mbed Cloud Client
- Fixed issue: Resource does not notify with content format requested in observation.
- New internal API:
check_config_parameter(), returns SUCCESS if parameter exits in KCM.
- Do not try to store Timezone/UTC data, if there is no data.
- A separate CoAP response is used only for POST operation, other ones are using piggybacked responses.
- Send only one notification at a time.
- Fixes the issue with an application changing multiple resource values at a same time causing the client to lose notifications from earlier resources. This change ensures that the latest value is always sent to the server.
- Introducing Mbed Edge specific features:
- M2MEndpoint class for describing endpoints behind Mbed Edge device.
- Allow registering M2MEndpoints and M2MObjects using the registration API.
- Added the
endpoint_typeattribute to the registration update message.
- Added the
endpoint nameattribute to the registration and registration update messages.
- Improved Edge performance for registration update.
- This optimization speeds up the registration update. It monitors which endpoints have changed and updates only them.
- The bandwitdth of the CoAP messages is reduced. Endpoint data for the unchanged endpoints is not sent in the registration update.
Factory configurator client
- New APIs introduced for keys and CSR generation on the device:
- Chain validations added.
- A chain is validated when it is stored. Each certificate in the chain is validated against its issuer. An error is returned if the chain is not valid.
- If the device certificate (bootstrap or LwM2M) or the update authentication certificate is saved as a chain, the expiration of all certificates is checked in the
Platform Adaptation Layer (PAL)
- Linux: Converted all timers to use signal-based timer (SIGEV_SIGNAL) instead of (SIGEV_THREAD).
This fixes the Valgrind warnings for possible memory leaks caused by LIBC's internal timer helper thread.
Note: If the client application is creating a pthread before instantiating MbedCloudClient, it needs to block the PAL_TIMER_SIGNAL from it. Otherwise the thread may get an exception caused by the default signal handler with a message such as "Process terminating with default action of signal 34 (SIGRT2)". For a suggested way to handle this please see
- Linux: Fixed the Linux-specific version of
addressLenparameter which previously required a platform-specific socket address structure size, not a platform independent one.
- Fixed a hard fault issue that occurred when calling
- Return PAL_ERR_BUFFER_TOO_SMALL if the output buffer is too small for write in
- Fixed the missing handling for initialization failure of SOTP.
- New API
pal_x509CertGetHTBS: Calculate the hash of the To Be Signed part of an X509 certificate.
Mbed Cloud Update
- Improvements to the scheduler to ensure that events are not lost. The scheduler now uses a pool allocation mechanism and queue element locks.
- Implemented an API to get the active firmware details.
- A rollback protection error will now be reported as "Firmware update failed" (8) when MCCP=1.
- An error is issued when the firmware payload exceeds the maximum storage-size limit.
- Mbed Cloud Update now uses a constant time binary compare function.
- Fixed a build error for Cortex-A9 target when retrieving the current interrupt enabled state.
Mbed Cloud Client example
- Updated easy-connect to v1.2.9.
- Updated to Mbed OS 5.8.4.
- Added the
partition_modeconfiguration. It is enabled by default and supposed to be used with a data storage, such as an SD card.
- Linux: Updated Mbedtls to 2.7.1 in pal-platform.
- Linux: Fixed CMake generation and performed generic cleanup in pal-platform scripts.
Hard faults have been observed to occur with Cloud Client running in Thread (Mesh) network stack. This is under investigation and will be resolved in a future release.
- DTLS handshake fails on Ublox ODIN-W2, issue #6545.
- Cloud Client registration does not work with IAR compiled binary if using Thread or 6LoWPAN, issue #3466.
glibcversions 2.23 and 2.24 have a bug in thread creation. It can cause random crashes with Linux.
- If possible, update
glibcto version 2.25 (or newer). See the sourceware issue 20116 for details.
- We have implemented a workaround for this issue to decrease its likelihood. This issue may still occur in certain circumstances.
- If possible, update
- The Mbed Cloud Client application must run as
rootto have access rights to perform the firmware update.
- This is not the most secure way to handle this issue and a more secure implementation will come later.
- Yocto distribution has only been tested with the developer certificate mode.
Mbed Cloud Client 1.3.2 Third Party IP report
Mbed Cloud Client uses some open source Third Party IP (TPIP). This table lists the TPIPs whose sources we included:
|cn-cbor||MIT||factory configurator client uses cn-cbor: A constrained node implementation of CBOR in C - with slight modifications. The code is located in mbed-cloud-client/factory-configurator-client/secsrv-cbor.|
|Unity||MIT||Platform Adaptation Layer (PAL) tests use Unity framework from ThrowTheSwitch. The code is located in mbed-cloud-client/mbed-client-pal/Test/Unity.|