Example

Dependencies:   FXAS21002 FXOS8700Q

Committer:
maygup01
Date:
Tue Nov 19 09:49:38 2019 +0000
Revision:
0:11cc2b7889af
Example

Who changed what in which revision?

UserRevisionLine numberNew contents of line
maygup01 0:11cc2b7889af 1 ## Changelog for Pelion Device Management Client
maygup01 0:11cc2b7889af 2
maygup01 0:11cc2b7889af 3 ### Release 2.2.1 (28.02.2019)
maygup01 0:11cc2b7889af 4
maygup01 0:11cc2b7889af 5 #### Device Management Connect client
maygup01 0:11cc2b7889af 6
maygup01 0:11cc2b7889af 7 * Fixed handling of blockwise message during concurrent notification sending.
maygup01 0:11cc2b7889af 8 * Fixed handling of content type format for PUT requests on resource level. Client only accepts `text/plain` and `opaque` content-types.
maygup01 0:11cc2b7889af 9
maygup01 0:11cc2b7889af 10 #### Factory Configurator client
maygup01 0:11cc2b7889af 11
maygup01 0:11cc2b7889af 12 * [Mbed OS] Support for injecting external entropy for devices using [KVstore](https://os.mbed.com/docs/mbed-os/v5.11/apis/kvstore.html) (internal flash).
maygup01 0:11cc2b7889af 13
maygup01 0:11cc2b7889af 14 #### Platform Adaptation Layer (PAL)
maygup01 0:11cc2b7889af 15
maygup01 0:11cc2b7889af 16 * [Mbed OS] Fixed the usage of deprecated socket APIs.
maygup01 0:11cc2b7889af 17 * Added logic to `pal_plat_initTime` to recover from data corruption due to power failure.
maygup01 0:11cc2b7889af 18 * Improved API documentation.
maygup01 0:11cc2b7889af 19 * [Mbed OS] Support for injecting external entropy for devices using [KVstore](https://os.mbed.com/docs/mbed-os/v5.11/apis/kvstore.html) (internal flash).
maygup01 0:11cc2b7889af 20
maygup01 0:11cc2b7889af 21 ### Release 2.2.0 (25.02.2019)
maygup01 0:11cc2b7889af 22
maygup01 0:11cc2b7889af 23 #### Device Management Connect client
maygup01 0:11cc2b7889af 24
maygup01 0:11cc2b7889af 25 * Updated Mbed CoAP to 4.7.4.
maygup01 0:11cc2b7889af 26 * Mbed CoAP for non-Mbed OS platforms is one patch release ahead of the Mbed OS version (5.11.3) of Mbed CoAP.
maygup01 0:11cc2b7889af 27 * Implemented DTLS fragmentation support for Device Management Client.
maygup01 0:11cc2b7889af 28 * If your device has constraints with network buffer sizes where the DTLS handshake packets cannot fit into a single MTU, this configuration allows smaller packet size (minimum fragment length of 512 bytes + DTLS headers).
maygup01 0:11cc2b7889af 29 * This feature is supported from Mbed TLS 2.15.1 onwards.
maygup01 0:11cc2b7889af 30 * To enable support, define `mbed-client-pal.pal-max-frag-len = <value>` in the `mbed_app.json` file.
maygup01 0:11cc2b7889af 31 * Value 0 = disabled, 1 = `MBEDTLS_SSL_MAX_FRAG_LEN_512`, 2= `MBEDTLS_SSL_MAX_FRAG_LEN_1024`, 3 = `MBEDTLS_SSL_MAX_FRAG_LEN_2048`.
maygup01 0:11cc2b7889af 32 * The value must be twice the defined value of `SN_COAP_MAX_BLOCKWISE_PAYLOAD_SIZE`, otherwise your client will give a compilation error with mismatching configuration options.
maygup01 0:11cc2b7889af 33 * [Edge] In Edge mode, the client can process more than one request per resource at a time.
maygup01 0:11cc2b7889af 34 * Fixed message status callback handling when using delayed response with the blockwise option.
maygup01 0:11cc2b7889af 35 * Application received multiple delivered statuses when using blockwise transfer. This issue has now been resolved.
maygup01 0:11cc2b7889af 36 * [Linux] Updated CMake minimum version to 3.5.
maygup01 0:11cc2b7889af 37 * [Mbed OS] Enabled new configuration option for selecting secure storage mechanism : `"mbed-cloud-client.external-sst-support":"<null/1>"`
maygup01 0:11cc2b7889af 38 * `"mbed-cloud-client.external-sst-support":null` means client continues using SOTP-ESFS based storage implementation.
maygup01 0:11cc2b7889af 39 * `"mbed-cloud-client.external-sst-support":1` means client uses KVStore-based storage implementation. This requires Mbed OS 5.11.4 version and higher.
maygup01 0:11cc2b7889af 40 * By default, it is set to `null` so older versions of Device Management Client example are binary compatible with this client version.
maygup01 0:11cc2b7889af 41 * For Linux, client continues using SOTP-ESFS based storage implementation.
maygup01 0:11cc2b7889af 42 * Added a configuration check for the update profile (`ARM_UC_PROFILE_MBED_CLIENT_LITE`) to prevent accidental usage of LITE profile with Device Management Client.
maygup01 0:11cc2b7889af 43 * Added the [pause and resume functionality](../connecting/device-guidelines.html#client-pause-and-resume). The APIs let you change the network interface without deregistering the client. You can also pause the client, for example, for sleeping (with RAM retention).
maygup01 0:11cc2b7889af 44 * Deprecated client APIs that use `std::string`, including the whole `SimpleM2MResourceString` and `SimpleM2MResourceInt` classes.
maygup01 0:11cc2b7889af 45 * The existing code using these APIs still compiles and works, but gives compiler warnings.
maygup01 0:11cc2b7889af 46 * This was changed because the code using C++ Standard Template Library (STL) is causing issues in some environments, where the `std::` namespace or STL is not available at all.
maygup01 0:11cc2b7889af 47 * STL also causes large ROM overhead, and disabling it saves ~15 KB on ROM budget, depending on the compiler toolchain used.
maygup01 0:11cc2b7889af 48 * To remove the deprecated APIs completely, set `MBED_CLOUD_CLIENT_STL_API` to 0.
maygup01 0:11cc2b7889af 49 * You can now disable the namespace pollution of code that includes `MbedCloudClient.h` with `using namespace std;`.
maygup01 0:11cc2b7889af 50 The behavior is left unchanged, but you can disable it by setting `MBED_CLOUD_CLIENT_STD_NAMESPACE_POLLUTION` to 0.
maygup01 0:11cc2b7889af 51 * Fixed regression on the application not receiving `value_updated()` callback for a POST message to an Object or Object Instance.
maygup01 0:11cc2b7889af 52 * Fixed stack overflow issue with local memory allocation from stack rather than heap when trying to read values from KCM.
maygup01 0:11cc2b7889af 53 * Changed network errors printing in `M2MConnectionHandlerpimpl.cpp` to use hexadecimal format for easier comparison with `mbed-client-pal/Source/PAL-Impl/Services-API/pal_errors.h`.
maygup01 0:11cc2b7889af 54 * Modified event API to use `uintptr_t` types for passing pointers instead of `uint32_t` for 64-bit compatibility.
maygup01 0:11cc2b7889af 55
maygup01 0:11cc2b7889af 56 #### Factory Configurator client
maygup01 0:11cc2b7889af 57
maygup01 0:11cc2b7889af 58 * Integration with Mbed OS 5.11 KVStore module.
maygup01 0:11cc2b7889af 59
maygup01 0:11cc2b7889af 60 #### Device Management Update client
maygup01 0:11cc2b7889af 61
maygup01 0:11cc2b7889af 62 * Support for large file download: converted notification handling to use a flag instead of a counter to avoid a deadlock in the scheduler.
maygup01 0:11cc2b7889af 63 * [Mbed OS] Enabled a new configuration option for selecting the storage location for the Update client update image.
maygup01 0:11cc2b7889af 64 * `"mbed-cloud-client.update-storage":"<mode>"`
maygup01 0:11cc2b7889af 65 * `<mode>` can be either `ARM_UCP_FLASHIAP` for internal flash or `ARM_UCP_FLASHIAP_BLOCKDEVICE` for external flash.
maygup01 0:11cc2b7889af 66 * Fixed the Update client state machine reboot state logic so that the active firmware details are not re-sent if reboot does not happen.
maygup01 0:11cc2b7889af 67 * Enabled a single HTTP request to be sent instead of multiple fragments during file download. Added a flag to guard the writing of the entire update file to pre-allocate space before the file is downloaded. The flag is disabled by default.
maygup01 0:11cc2b7889af 68 * Fixed traces from printing empty values for asynchronous DNS calls.
maygup01 0:11cc2b7889af 69 * Modified the trace and error macros in the manifest manager to use common macros.
maygup01 0:11cc2b7889af 70 * Fixed the race conditions on critical section code in the atomic-queue module.
maygup01 0:11cc2b7889af 71 * Fixed various compiler warnings.
maygup01 0:11cc2b7889af 72 * Update client calls a new `pal_plat_osGetRoT` function that reads RoT from KVStore.
maygup01 0:11cc2b7889af 73 * Added the possibility of queueing callbacks with an associated context in the Update client scheduler.
maygup01 0:11cc2b7889af 74 * Implemented an Update client scheduler API to post an error. The scheduler executes the error callback in priority over all the other callbacks in the queue.
maygup01 0:11cc2b7889af 75 * Added a compilation check for CoAP buffer size.
maygup01 0:11cc2b7889af 76 * Added trace messages to HTTP source module for debugging purposes.
maygup01 0:11cc2b7889af 77 * Fixed the Update client trace module when `mbed_trace` is off.
maygup01 0:11cc2b7889af 78 * Removed the accelerated handling of binary comparisons that relied on unaligned access.
maygup01 0:11cc2b7889af 79 * Fixed overflow in the HTTP request header.
maygup01 0:11cc2b7889af 80 * Sanitized module codes in trace messages. Defined a macro that replaces non-printable characters with a dot character. Wrapped module codes in the new macro wherever traces or debug messages are printed.
maygup01 0:11cc2b7889af 81 * Replaced calls to `mbed_tracef` with calls to `tr_debug`/`tr_error`.
maygup01 0:11cc2b7889af 82 * Added a compile time check for non-zero update storage size.
maygup01 0:11cc2b7889af 83 * Fixed page rounding issue in PAL block device.
maygup01 0:11cc2b7889af 84 * Improved trace messages in HTTP resume engine.
maygup01 0:11cc2b7889af 85 * Fixed the event API callback types to match the changes in Update client.
maygup01 0:11cc2b7889af 86 * Added support for reporting out of memory error from Mbed TLS.
maygup01 0:11cc2b7889af 87 * Removed `TRACE_GROUP` definitions from public header files.
maygup01 0:11cc2b7889af 88
maygup01 0:11cc2b7889af 89 #### Platform Adaptation Layer (PAL)
maygup01 0:11cc2b7889af 90
maygup01 0:11cc2b7889af 91 * Introduced PAL Secure Storage (SST) APIs.
maygup01 0:11cc2b7889af 92 * Added Mbed OS configuration for secure storage using KVStore through this API (PAL SST).
maygup01 0:11cc2b7889af 93 * Added more unit tests and clarified error messages in them to help in-platform porting process.
maygup01 0:11cc2b7889af 94 * Added `PAL_UNIT_TESTING_NONSTANDARD_ENTRYPOINT` for executing unit tests.
maygup01 0:11cc2b7889af 95 * Added `pal_osSetRoT` API and related `pal_plat_osSetRoT` functions for SOTP and KVstore.
maygup01 0:11cc2b7889af 96 * Remove obsolete documentation and unnecessary board-specific configuration.
maygup01 0:11cc2b7889af 97 * Added error handling of `MBEDTLS_ERR_SSL_HELLO_VERIFY_REQUIRED`.
maygup01 0:11cc2b7889af 98 * Fixed error translation in the Linux implementation of `pal_plat_getAddressInfo`.
maygup01 0:11cc2b7889af 99 * Refactored the flash simulation over file system code out of the generic flash module.
maygup01 0:11cc2b7889af 100 * Refactored the Linux-specific reboot simulation code.
maygup01 0:11cc2b7889af 101
maygup01 0:11cc2b7889af 102 ### Release 2.1.1 (19.12.2018)
maygup01 0:11cc2b7889af 103
maygup01 0:11cc2b7889af 104 * Full support for asynchronous CoAP REST response with response code and payload for GET, PUT and POST requests. You can enable this feature with `ENABLE_ASYNC_REST_RESPONSE`.
maygup01 0:11cc2b7889af 105 * Updated Mbed CoAP to 4.7.2.
maygup01 0:11cc2b7889af 106 * Added more unit tests and clarified error messages in them to help in platform porting process.
maygup01 0:11cc2b7889af 107
maygup01 0:11cc2b7889af 108 ### Release 2.1.0 (11.12.2018)
maygup01 0:11cc2b7889af 109
maygup01 0:11cc2b7889af 110 #### Pelion Device Management Client
maygup01 0:11cc2b7889af 111
maygup01 0:11cc2b7889af 112 * Added Edge-specific translated device unregistration parameter `d` to registration message body.
maygup01 0:11cc2b7889af 113 * Start reconnection if no response received for CoAP ping.
maygup01 0:11cc2b7889af 114 * Updated Mbed CoAP to 4.7.1.
maygup01 0:11cc2b7889af 115
maygup01 0:11cc2b7889af 116 #### Factory configurator client
maygup01 0:11cc2b7889af 117
maygup01 0:11cc2b7889af 118 * Fixed SOTP flash write area size to accept values larger than 8 bytes.
maygup01 0:11cc2b7889af 119
maygup01 0:11cc2b7889af 120 #### Update Client
maygup01 0:11cc2b7889af 121
maygup01 0:11cc2b7889af 122 * Implemented new error codes for the campaign metrics feature.
maygup01 0:11cc2b7889af 123 * Client reports an error if the firmware image is greater than the device flash limit.
maygup01 0:11cc2b7889af 124 * Fixed issues with 32-bit addressing limits to enable download of very large firmware images.
maygup01 0:11cc2b7889af 125 * Removed an unnecessary DNS lookup. The HTTP Source FSM implementation redid the DNS lookup on every new fragment, even though in most cases the data was expected to already be in the TCP receive buffer. This modifies the FSM to avoid that step unless it is necessary.
maygup01 0:11cc2b7889af 126 * Added logic to generate a compilation error for an invalid download protocol value.
maygup01 0:11cc2b7889af 127 * Defined additional individually enabled trace functions at compile time to reduce the resume trace ROM size.
maygup01 0:11cc2b7889af 128 * Fixed various Linux warnings.
maygup01 0:11cc2b7889af 129 * Replaced wrong licence headers to Apache 2.0 and added license headers where missing.
maygup01 0:11cc2b7889af 130 * Removed dependency to deprecated component `COMMON_PAL` in Mbed OS 5.9.
maygup01 0:11cc2b7889af 131 * Guarded `ARM_UC_cryptoDecrypt` against unnecessary calls.
maygup01 0:11cc2b7889af 132 * Removed external reference to `arm_uc_blockdevice` and used default block device instance from Mbed OS instead.
maygup01 0:11cc2b7889af 133 * Added debug messages to check the frequency of resume attempts.
maygup01 0:11cc2b7889af 134
maygup01 0:11cc2b7889af 135 #### Platform Adaptation Layer (PAL)
maygup01 0:11cc2b7889af 136
maygup01 0:11cc2b7889af 137 * Refactored internal library structure to allow more streamlined porting to new platforms.
maygup01 0:11cc2b7889af 138 * Removed limitation for setting page size for SOTP.
maygup01 0:11cc2b7889af 139 * PAL TLS: `memory allocation failed` error is passed to caller.
maygup01 0:11cc2b7889af 140 * The generated doxygen documentation has been removed from the repository. To generate the docs, use the `doxygen PAL_doxy` command in the `Docs` folder or see the [online documents](https://cloud.mbed.com/docs/current/pal/index.html).
maygup01 0:11cc2b7889af 141 * Fixed `pal_osGetDeviceKey()`'s return code on an invalid argument.
maygup01 0:11cc2b7889af 142 * RTOS: Refactored secure/weak time related code into new `Time` module.
maygup01 0:11cc2b7889af 143 * Time: Moved the SOTP-specific code out of `pal_time.c` to its own platform module.
maygup01 0:11cc2b7889af 144 * Unit test overhaul:
maygup01 0:11cc2b7889af 145 * Tests are now split into smaller libraries.
maygup01 0:11cc2b7889af 146 * Revived tests that were disabled by mistake.
maygup01 0:11cc2b7889af 147 * Fixed uninitialized memory access bugs revealed by Valgrind.
maygup01 0:11cc2b7889af 148 * Removed `ExampleBSP` code, that was used only by tests. Replaced it with common platform code provided in the [example application](https://github.com/ARMmbed/mbed-cloud-client-example/tree/master/source/platform).
maygup01 0:11cc2b7889af 149
maygup01 0:11cc2b7889af 150 ### Release 2.0.1 (12.10.2018)
maygup01 0:11cc2b7889af 151
maygup01 0:11cc2b7889af 152 #### Pelion Device Management Client
maygup01 0:11cc2b7889af 153
maygup01 0:11cc2b7889af 154 * Client now has CoAP duplication detection enabled by default. This improves the stability of client on networks like NB-IoT.
maygup01 0:11cc2b7889af 155 * For resources containing big data (blockwise CoAP), client starts sending notifications only after subscription for that resource has completed its blockwise transfer.
maygup01 0:11cc2b7889af 156
maygup01 0:11cc2b7889af 157 #### Update Client
maygup01 0:11cc2b7889af 158
maygup01 0:11cc2b7889af 159 * Firmware download now resumes after network outage when using CoAP.
maygup01 0:11cc2b7889af 160 * Added support for slow link networks when a received packet contained only a HTTP header. This was causing the resume download feature to fail.
maygup01 0:11cc2b7889af 161
maygup01 0:11cc2b7889af 162 #### Platform Adaptation Layer (PAL)
maygup01 0:11cc2b7889af 163
maygup01 0:11cc2b7889af 164 * [Mbed OS] Changed default mount point from "fs" to "default". The mount point "default" can be used with all diffrent type of storages.
maygup01 0:11cc2b7889af 165 * [Mbed OS][Mbed TLS] Tuned software AES for smaller size instead of speed. Disabled some of the speed optimizations on AES code to save 6 KB of ROM.
maygup01 0:11cc2b7889af 166 * [Mbed OS][Mbed TLS] Updated mbedtls-config to save 7.5 KB of ROM on Mbed OS.
maygup01 0:11cc2b7889af 167
maygup01 0:11cc2b7889af 168 ### Release 2.0.0 (26.09.2018)
maygup01 0:11cc2b7889af 169
maygup01 0:11cc2b7889af 170 #### Pelion Device Management Client
maygup01 0:11cc2b7889af 171
maygup01 0:11cc2b7889af 172 * This version of client has been tested with Mbed OS 5.10.0.
maygup01 0:11cc2b7889af 173 * Updated Mbed CoAP to 4.6.3.
maygup01 0:11cc2b7889af 174
maygup01 0:11cc2b7889af 175 #### Factory Configurator client
maygup01 0:11cc2b7889af 176
maygup01 0:11cc2b7889af 177 * Introduced certificate renewal feature for LwM2M and custom certificates.
maygup01 0:11cc2b7889af 178 * You can renew both LwM2M and custom certificate through the Certificate renewal service and with client side APIs.
maygup01 0:11cc2b7889af 179
maygup01 0:11cc2b7889af 180 #### Platform Adaptation Layer (PAL)
maygup01 0:11cc2b7889af 181
maygup01 0:11cc2b7889af 182 * [Mbed OS] Fixed a hardfault in a failing DNS request.
maygup01 0:11cc2b7889af 183
maygup01 0:11cc2b7889af 184 #### Update client
maygup01 0:11cc2b7889af 185
maygup01 0:11cc2b7889af 186 * The firmware is downloaded using CoAP in MbedOS and HTTP in Linux.
maygup01 0:11cc2b7889af 187 * Fixed a segfault when Linux update scripts are provided but no header exists.
maygup01 0:11cc2b7889af 188 * Added support in HTTP source to make download fragments per burst user configurable.
maygup01 0:11cc2b7889af 189 * Fixed resume engine to not block on HTTP header errors.
maygup01 0:11cc2b7889af 190 * Fixed malloc issue in URI handling.
maygup01 0:11cc2b7889af 191 * Passed HTTP URI instead of coaps to the generate-manifest script.
maygup01 0:11cc2b7889af 192 * Fixed incorrect handling of an async DNS callback that caused a download failure.
maygup01 0:11cc2b7889af 193 * Fixed the error of a campaign not completing when there is a payload hash mismatch during the firmware update operation.
maygup01 0:11cc2b7889af 194
maygup01 0:11cc2b7889af 195
maygup01 0:11cc2b7889af 196 ### Release 1.5.0 (11.09.2018)
maygup01 0:11cc2b7889af 197
maygup01 0:11cc2b7889af 198 #### Device Management Client
maygup01 0:11cc2b7889af 199
maygup01 0:11cc2b7889af 200 * Implemented a new callback to track notification and delayed post response delivery statuses.
maygup01 0:11cc2b7889af 201 * Added API `M2MBase::set_message_delivery_status_cb(message_delivery_status_cb callback, void *client_args);`.
maygup01 0:11cc2b7889af 202 * Following APIs are marked as deprecated since the new API replaces them. They will be removed in subsequential client relases:
maygup01 0:11cc2b7889af 203 * `M2MBase::send_notification_delivery_status(const M2MBase& object, const NotificationDeliveryStatus status)`
maygup01 0:11cc2b7889af 204 * `M2MBase::get_notification_msgid()`
maygup01 0:11cc2b7889af 205 * `M2MBase::set_notification_msgid(uint16_t msgid)`
maygup01 0:11cc2b7889af 206 * `M2MBase::set_notification_delivery_status_cb(notification_delivery_status_cb callback, void *client_args)`
maygup01 0:11cc2b7889af 207 * `M2MBase::get_notification_delivery_status()`
maygup01 0:11cc2b7889af 208 * `M2MBase::clear_notification_delivery_status()`
maygup01 0:11cc2b7889af 209 * Implemented a new functionality to get the internal Object list of Device Management Client.
maygup01 0:11cc2b7889af 210 * Added API `MbedCloudClient::get_object_list()`.
maygup01 0:11cc2b7889af 211
maygup01 0:11cc2b7889af 212 #### Platform Adaptation Layer (PAL)
maygup01 0:11cc2b7889af 213
maygup01 0:11cc2b7889af 214 * Fixed Coverity issues in PAL.
maygup01 0:11cc2b7889af 215 * Improved error handling and logging for network and storage.
maygup01 0:11cc2b7889af 216 * Introduced `PAL_DNS_API_VERSION` for handling DNS.
maygup01 0:11cc2b7889af 217 * 0 = synchronous DNS.
maygup01 0:11cc2b7889af 218 * 1 = asynchronous DNS.
maygup01 0:11cc2b7889af 219 * 2 = asynchronous DNS v2 (Only with Mbed OS 5.9 or later).
maygup01 0:11cc2b7889af 220 * Fixed PAL tracing implementation to allow an application to override the tracing level definitions.
maygup01 0:11cc2b7889af 221 * In `pal_isLeapYear`, fixed a bug that made the certificate times off by a day.
maygup01 0:11cc2b7889af 222 * Enforced usage of MTU limits when using DTLS and `PAL_UDP_MTU_SIZE` is defined.
maygup01 0:11cc2b7889af 223 * Added configuration for K66F.
maygup01 0:11cc2b7889af 224 * [LINUX] Improved logging for RNG generation.
maygup01 0:11cc2b7889af 225 * [LINUX] Removed the glibc-specific function `pthread_sigqueue()` and replaced it with `pthead_kill()`.
maygup01 0:11cc2b7889af 226 * [LINUX] Increased stack-size of `PAL_NOISE_TRNG_THREAD` to 32 k. Increased stack-size of `PAL_NET_TEST_ASYNC_SOCKET_MANAGER_THREAD_STACK_SIZE` to 24 k.
maygup01 0:11cc2b7889af 227 * [LINUX] Added socket event filter clearing for `pal_plat_connect()` and `pal_plat_asynchronousSocket()`.
maygup01 0:11cc2b7889af 228 * [Mbed OS] Define `PAL_USE_INTERNAL_FLASH` and `PAL_INT_FLASH_NUM_SECTIONS = 2` by default for all targets.
maygup01 0:11cc2b7889af 229 * [Mbed OS] Compatibility changes for Mbed OS 5.10.
maygup01 0:11cc2b7889af 230 * [Mbed OS] Fixed a compatibility issue with Mbed TLS 2.13.0 for ARMCC compiler.
maygup01 0:11cc2b7889af 231
maygup01 0:11cc2b7889af 232 #### Update client
maygup01 0:11cc2b7889af 233
maygup01 0:11cc2b7889af 234 * Fixed Device Management Client factory update flow by setting the default identity configuration to KCM.
maygup01 0:11cc2b7889af 235 * Added firmware update over CoAP into Device Management Client.
maygup01 0:11cc2b7889af 236 * The firmware is downloaded using HTTP by default.
maygup01 0:11cc2b7889af 237 * To download with CoAP in Mbed OS, set the flag into `"target_overrides"` section in the `mbed_app.json` as follows:
maygup01 0:11cc2b7889af 238 * "mbed-cloud-client.update-download-protocol": "MBED_CLOUD_CLIENT_UPDATE_DOWNLOAD_PROTOCOL_COAP"
maygup01 0:11cc2b7889af 239 * [LINUX] Fixed Linux update e2e failure reverting by adding "set -eu" to the Linux scripts.
maygup01 0:11cc2b7889af 240 * Fixed RTL8195 Flash R/W issue by adding `FlashIAP Init` call into initialization.
maygup01 0:11cc2b7889af 241 * Fixed long HTTP headers handling logic to support headers to split to multiple fragments.
maygup01 0:11cc2b7889af 242 * Fixed Device Management Update client versioning to work in the factory flow.
maygup01 0:11cc2b7889af 243 * Fixed Device Management Update client uninitialization logic by adding handling for state `ARM_UC_HUB_STATE_UNINITIALIZED` in the state machine.
maygup01 0:11cc2b7889af 244 * Optimized static RAM usage by reusing the static object "ManifestManagerContext" during initialization.
maygup01 0:11cc2b7889af 245 * Added support to Device Management Update client configuration to map external download protocol definition to internal configurations. This is needed to support download protocol selection in Device Management Client.
maygup01 0:11cc2b7889af 246 * Implemented resume firmware download after a connection failure.
maygup01 0:11cc2b7889af 247 * Added a scheduler trace macro.
maygup01 0:11cc2b7889af 248 * Merged two branches of Device Management Update client to one and added profile and feature flags to separate between different feature sets. The new profile flag `ARM_UC_PROFILE_MBED_CLOUD_CLIENT` is used to enable correct profile for Device Management Client.
maygup01 0:11cc2b7889af 249 * `MBED_CONF_MBED_CLIENT_DNS_USE_THREAD` removed.
maygup01 0:11cc2b7889af 250 * Fixed Linux scripts to use `-e` and `-u` parameters for "set" to propagate errors
maygup01 0:11cc2b7889af 251 * Fixed an update state machine failure that was noticed when traces were enabled. The notification state machine was changed to sequentially wait for internal asynchronous operations to complete before sending updated resource values to service and waiting for an acknowledgment from service.
maygup01 0:11cc2b7889af 252 * MCCP=3 in Device Management Client: Support for sending update resource data as part of the registration message, thereby reducing traffic to Device Management.
maygup01 0:11cc2b7889af 253 * Changed uninitialization for Device Management Update client to be done for all states past initialization states. Added null-checks for resource value settings.
maygup01 0:11cc2b7889af 254
maygup01 0:11cc2b7889af 255 #### Factory Configurator client
maygup01 0:11cc2b7889af 256
maygup01 0:11cc2b7889af 257 * The error `FCC_STATUS_STORE_ERROR` is returned upon an internal storage init failure.
maygup01 0:11cc2b7889af 258
maygup01 0:11cc2b7889af 259 ### Release 1.4.0 (13.07.2018)
maygup01 0:11cc2b7889af 260
maygup01 0:11cc2b7889af 261 * Fixed a timer initialization bug under connection handler.
maygup01 0:11cc2b7889af 262 * Linux: Updated mbed-coap to 4.5.0.
maygup01 0:11cc2b7889af 263 * This version of Cloud Client has been tested with Mbed OS 5.9.2.
maygup01 0:11cc2b7889af 264
maygup01 0:11cc2b7889af 265 #### Platform Adaptation Layer (PAL)
maygup01 0:11cc2b7889af 266
maygup01 0:11cc2b7889af 267 * Introduced support for ARIA cipher suite introduced in Mbed TLS 2.10.0.
maygup01 0:11cc2b7889af 268 * Introduced Mbed TLS configuration support for non-TRNG boards like NUCLEO-F411RE.
maygup01 0:11cc2b7889af 269 * Hook-up point for allowing application to provide its own reboot function.
maygup01 0:11cc2b7889af 270 * Defining `PAL_USE_APPLICATION_REBOOT` activates this feature.
maygup01 0:11cc2b7889af 271 * You must define the function `void pal_plat_osApplicationReboot(void)` in your application to provide the required functionality.
maygup01 0:11cc2b7889af 272 * Introduced the feature flag `PAL_USE_APPLICATION_REBOOT` for application to override generic reboot functionality, which is useful for different Linux flavors.
maygup01 0:11cc2b7889af 273 * New asynchronous DNS API (activated in application mbed_app.json via `mbed-client-pal.pal-dns-api-version : 2`) with Mbed OS 5.9.x.
maygup01 0:11cc2b7889af 274
maygup01 0:11cc2b7889af 275 #### Factory configurator client
maygup01 0:11cc2b7889af 276
maygup01 0:11cc2b7889af 277 * Chain verification failure results in `KCM_STATUS_CERTIFICATE_CHAIN_VERIFICATION_FAILED` error instead of `FCC_STATUS_CERTIFICATE_CHAIN_VERIFICATION_FAILED`.
maygup01 0:11cc2b7889af 278 * Improved robustness of factory serial communication layer.
maygup01 0:11cc2b7889af 279 * Define `KCM_MAX_NUMBER_OF_CERTITICATES_IN_CHAIN` was renamed to `KCM_MAX_NUMBER_OF_CERTIFICATES_IN_CHAIN`.
maygup01 0:11cc2b7889af 280
maygup01 0:11cc2b7889af 281 #### Mbed Cloud Update
maygup01 0:11cc2b7889af 282
maygup01 0:11cc2b7889af 283 * Improved Linux shell scripts for compatibility and robustness.
maygup01 0:11cc2b7889af 284 * Fixed an issue in `ARM_UC_HUB_Initialize()` and `ARM_UC_HUB_Uninitialize()` to prevent these functions being called when Update client is in the wrong state.
maygup01 0:11cc2b7889af 285 * Fixed compiler warnings.
maygup01 0:11cc2b7889af 286 * Removed designated initialisers from C++ code.
maygup01 0:11cc2b7889af 287 * Update results are now sent synchronously to ensure that the Update client hub is in the correct state if several LwM2M operations are performed in rapid succession.
maygup01 0:11cc2b7889af 288 * Added error messages for missing commands in `arm_update_activate.sh`.
maygup01 0:11cc2b7889af 289 * Added error reporting when there is not enough space on the device to store the firmware image candidate.
maygup01 0:11cc2b7889af 290 * Added registration for the scheduler error handler.
maygup01 0:11cc2b7889af 291
maygup01 0:11cc2b7889af 292 #### PAL Platform
maygup01 0:11cc2b7889af 293
maygup01 0:11cc2b7889af 294 * Introduced Mbed TLS 2.10.0 support for ARIA cipher suite.
maygup01 0:11cc2b7889af 295
maygup01 0:11cc2b7889af 296 ### Release 1.3.3 (08.06.2018)
maygup01 0:11cc2b7889af 297
maygup01 0:11cc2b7889af 298 #### Mbed Cloud Client
maygup01 0:11cc2b7889af 299
maygup01 0:11cc2b7889af 300 * Fixed issue: Wrong CoAP ping message. CoAP ping must be sent as an empty confirmable message.
maygup01 0:11cc2b7889af 301 * In the previous versions, the client in queue mode went to sleep while in reconnection mode. Now, it completes the connection before going to sleep.
maygup01 0:11cc2b7889af 302 * This version of Cloud Client supports Mbed OS 5.8.5 and onwards patch releases.
maygup01 0:11cc2b7889af 303 * Improvements for connection handler. Removed the usage of static pointer to class. It is now possible to allocate more than one class `M2MConnectionSecurityPimpl` in parallel.
maygup01 0:11cc2b7889af 304 * Support for new asynchronous DNS API ("mbed-client-pal.pal-dns-api-version : 2") with Mbed OS 5.9.x.
maygup01 0:11cc2b7889af 305
maygup01 0:11cc2b7889af 306 #### Factory Configurator client
maygup01 0:11cc2b7889af 307
maygup01 0:11cc2b7889af 308 * Full support for the `device generated keys` mode. You can activate the mode using the Factory Configurator Utility (FCU) or the KCM APIs.
maygup01 0:11cc2b7889af 309
maygup01 0:11cc2b7889af 310 <span class="notes">**Note:** Cloud Client and Mbed Cloud do not yet support this mode.</span>
maygup01 0:11cc2b7889af 311
maygup01 0:11cc2b7889af 312 * A certificate signed request (CSR) that is generated on the device, can be created with the `Extended key usage` extension.
maygup01 0:11cc2b7889af 313 * A new KCM API introduced:
maygup01 0:11cc2b7889af 314 * `kcm_certificate_verify_with_private_key` - a self-generated certificate can be checked against a stored private key.
maygup01 0:11cc2b7889af 315 * Fixed the `FtcdCommBase::wait_for_message` function to receive multiple messages.
maygup01 0:11cc2b7889af 316
maygup01 0:11cc2b7889af 317 #### Platform Adaptation Layer (PAL)
maygup01 0:11cc2b7889af 318
maygup01 0:11cc2b7889af 319 * The u-blox ODIN-W2 board now requires support for RSA crypto from Mbed TLS. RSA crypto has been enabled by default for the target `MODULE_UBLOX_ODIN_W2`. Enabling RSA crypto increases the flash size by 20 KB. More details in Mbed OS PR [#6963](https://github.com/ARMmbed/mbed-os/pull/6963).
maygup01 0:11cc2b7889af 320
maygup01 0:11cc2b7889af 321 ### Release 1.3.2 (22.05.2018)
maygup01 0:11cc2b7889af 322
maygup01 0:11cc2b7889af 323 #### Mbed Cloud Client
maygup01 0:11cc2b7889af 324
maygup01 0:11cc2b7889af 325 * Fixed issue: Resource does not notify with content format requested in observation.
maygup01 0:11cc2b7889af 326 * New internal API: `check_config_parameter()`, returns SUCCESS if parameter exits in KCM.
maygup01 0:11cc2b7889af 327 * Do not try to store Timezone/UTC data, if there is no data.
maygup01 0:11cc2b7889af 328 * A separate CoAP response is used only for POST operation, other ones are using piggybacked responses.
maygup01 0:11cc2b7889af 329 * Send only one notification at a time.
maygup01 0:11cc2b7889af 330 * 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.
maygup01 0:11cc2b7889af 331 * Introducing Mbed Edge specific features:
maygup01 0:11cc2b7889af 332 * M2MEndpoint class for describing endpoints behind Mbed Edge device.
maygup01 0:11cc2b7889af 333 * Allow registering M2MEndpoints and M2MObjects using the registration API.
maygup01 0:11cc2b7889af 334 * Added the `endpoint_type` attribute to the registration update message.
maygup01 0:11cc2b7889af 335 * Added the `endpoint name` attribute to the registration and registration update messages.
maygup01 0:11cc2b7889af 336 * Improved Edge performance for registration update.
maygup01 0:11cc2b7889af 337 * This optimization speeds up the registration update. It monitors which endpoints have changed and updates only
maygup01 0:11cc2b7889af 338 them.
maygup01 0:11cc2b7889af 339 * The bandwitdth of the CoAP messages is reduced. Endpoint data for the unchanged endpoints is not sent in the
maygup01 0:11cc2b7889af 340 registration update.
maygup01 0:11cc2b7889af 341
maygup01 0:11cc2b7889af 342 #### Factory configurator client
maygup01 0:11cc2b7889af 343
maygup01 0:11cc2b7889af 344 * New APIs introduced for keys and CSR generation on the device:
maygup01 0:11cc2b7889af 345 * `kcm_key_pair_generate_and_store`
maygup01 0:11cc2b7889af 346 * `kcm_csr_generate`
maygup01 0:11cc2b7889af 347 * `kcm_generate_keys_and_csr`
maygup01 0:11cc2b7889af 348 * Chain validations added.
maygup01 0:11cc2b7889af 349 * 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.
maygup01 0:11cc2b7889af 350 * 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 `fcc_verify_device_configured_4mbed_cloud` function.
maygup01 0:11cc2b7889af 351
maygup01 0:11cc2b7889af 352 #### Platform Adaptation Layer (PAL)
maygup01 0:11cc2b7889af 353
maygup01 0:11cc2b7889af 354 * Linux: Converted all timers to use signal-based timer (SIGEV_SIGNAL) instead of (SIGEV_THREAD).
maygup01 0:11cc2b7889af 355 * This fixes the Valgrind warnings for possible memory leaks caused by LIBC's internal timer helper thread.
maygup01 0:11cc2b7889af 356
maygup01 0:11cc2b7889af 357 <span class="notes">**Note**: If the client application is creating a pthread before instantiating MbedCloudClient,
maygup01 0:11cc2b7889af 358 it needs to block the PAL_TIMER_SIGNAL from it. Otherwise the thread may get an exception caused
maygup01 0:11cc2b7889af 359 by the default signal handler with a message such as "Process terminating with default action
maygup01 0:11cc2b7889af 360 of signal 34 (SIGRT2)". For a suggested way to handle this please see `mcc_platform_init()` in [here](https://github.com/ARMmbed/mbed-cloud-client-example/blob/master/source/platform/Linux/common_setup.c).</span>
maygup01 0:11cc2b7889af 361 * Linux: Fixed the Linux-specific version of `pal_accept()'s` `addressLen` parameter which previously required a platform-specific socket address structure size, not a platform independent one.
maygup01 0:11cc2b7889af 362 * Fixed a hard fault issue that occurred when calling `pal_ECKeyGenerateKey`.
maygup01 0:11cc2b7889af 363 * Return PAL_ERR_BUFFER_TOO_SMALL if the output buffer is too small for write in `pal_writePrivateKeyToDer`, `pal_writePublicKeyToDer` and `pal_x509CSRWriteDER APIs`.
maygup01 0:11cc2b7889af 364 * Fixed the missing handling for initialization failure of SOTP.
maygup01 0:11cc2b7889af 365 * New API `pal_x509CertGetHTBS`: Calculate the hash of the _To Be Signed_ part of an X509 certificate.
maygup01 0:11cc2b7889af 366
maygup01 0:11cc2b7889af 367 #### Mbed Cloud Update
maygup01 0:11cc2b7889af 368
maygup01 0:11cc2b7889af 369 * Improvements to the scheduler to ensure that events are not lost. The scheduler now uses a pool allocation mechanism and queue element locks.
maygup01 0:11cc2b7889af 370 * Implemented an API to get the active firmware details.
maygup01 0:11cc2b7889af 371 * A rollback protection error will now be reported as "Firmware update failed" (8) when MCCP=1.
maygup01 0:11cc2b7889af 372 * An error is issued when the firmware payload exceeds the maximum storage-size limit.
maygup01 0:11cc2b7889af 373 * Mbed Cloud Update now uses a constant time binary compare function.
maygup01 0:11cc2b7889af 374 * Fixed a build error for Cortex-A9 target when retrieving the current interrupt enabled state.
maygup01 0:11cc2b7889af 375
maygup01 0:11cc2b7889af 376 ### Release 1.3.1.1 (27.04.2018)
maygup01 0:11cc2b7889af 377
maygup01 0:11cc2b7889af 378 #### Mbed Cloud Client
maygup01 0:11cc2b7889af 379
maygup01 0:11cc2b7889af 380 * Fixed POST response handling. The client was sending multiple responses for the POST request received from Cloud, which would sometimes cause undefined behaviour for the POST callback on the webservice.
maygup01 0:11cc2b7889af 381
maygup01 0:11cc2b7889af 382 #### Mbed Cloud Update
maygup01 0:11cc2b7889af 383
maygup01 0:11cc2b7889af 384 * In Linux builds, Update related callbacks are now called in the context of the Update thread. Previously, it was possible to call some of these callbacks in a different thread.
maygup01 0:11cc2b7889af 385 * In Linux builds, if tracing is enabled, the update scheduler will display an error if a callback can't be added to the scheduler queue.
maygup01 0:11cc2b7889af 386
maygup01 0:11cc2b7889af 387 #### Platform Adaptation Layer (PAL)
maygup01 0:11cc2b7889af 388
maygup01 0:11cc2b7889af 389 * Linux: Replaced `fflush(NULL)` with `sync()` in `pal_osReboot` which was causing deadlock in Raspberry Pi3.
maygup01 0:11cc2b7889af 390
maygup01 0:11cc2b7889af 391 ### Release 1.3.1 (19.04.2018)
maygup01 0:11cc2b7889af 392
maygup01 0:11cc2b7889af 393 #### Mbed Cloud Client
maygup01 0:11cc2b7889af 394
maygup01 0:11cc2b7889af 395 * Improved tracing of CoAP packages.
maygup01 0:11cc2b7889af 396 * Added an API to enable sending of the resource value as a part of the registration message.
maygup01 0:11cc2b7889af 397 * Only the following value types are allowed:
maygup01 0:11cc2b7889af 398 * STRING
maygup01 0:11cc2b7889af 399 * INTEGER
maygup01 0:11cc2b7889af 400 * FLOAT
maygup01 0:11cc2b7889af 401 * BOOLEAN
maygup01 0:11cc2b7889af 402 * A fix for sending an empty ACK with blockwise messages.
maygup01 0:11cc2b7889af 403 * Replaced TCP_KEEPALIVE with CoAP PING.
maygup01 0:11cc2b7889af 404 * Fixed the possible overflow in bootstrap errors.
maygup01 0:11cc2b7889af 405 * Now, a token is used to verify BS, register, update register and unregister responses.
maygup01 0:11cc2b7889af 406 * A fix for sending empty CoAP requests.
maygup01 0:11cc2b7889af 407 * A fix for the internal timer.
maygup01 0:11cc2b7889af 408 * PAL is used for asyncronous handling of DNS.
maygup01 0:11cc2b7889af 409
maygup01 0:11cc2b7889af 410 #### Mbed Cloud Update
maygup01 0:11cc2b7889af 411
maygup01 0:11cc2b7889af 412 Using PAL for asyncronous handling of DNS enables firmware update with mesh.
maygup01 0:11cc2b7889af 413
maygup01 0:11cc2b7889af 414 #### Platform Adaptation Layer (PAL)
maygup01 0:11cc2b7889af 415
maygup01 0:11cc2b7889af 416 * A fix to crash when enabling mbed-tls traces.
maygup01 0:11cc2b7889af 417 * Removed the thread-priority requirement.
maygup01 0:11cc2b7889af 418 * Fixed the compatibility issues with Mbed OS 5.8/5.9.
maygup01 0:11cc2b7889af 419
maygup01 0:11cc2b7889af 420 ### Release 1.3.0 (27.3.2018)
maygup01 0:11cc2b7889af 421
maygup01 0:11cc2b7889af 422 * Initial public release.
maygup01 0:11cc2b7889af 423