Mistake on this page? Email us

Device Management Edge 0.7.1

Changes

Edge

  • Removed Mbed from documentation.
  • Removed obsolete injection of insecure RoT module in the Edge Core build.
  • Moved the include/jsonrpc/jsonrpc.h under lib/jsonrpc/jsonrpc. This header is internal.
  • Moved the include/edge-rpc/rpc.h under edge-rpc/edge-rpc. This header is internal.
  • Implemented device unregistration message sending to Device Management backend. The unregistration relies on the lifetime expiration in the Device Management backend.
  • Updated Device Management Client to version 2.1.1.
  • Implemented Protocol Translator API v2.
    • The old Protocol Translator API (v1) is still available.
    • The new API has better thread safety than the v1 API.
    • ns_list.h is not visible outside.
    • The API v2 is using a connection ID instead of a connection structure pointer.
    • The API v2 optimizes the size of the payload in communication with Device Management Edge.
  • Deprecated The Protocol Translator API v1. The API headers deprecated are under include/pt-client.
  • Removed Yocto toolchain and target. The build environments need to provide a correct toolchain and target.

Examples

  • Updated the examples to use the protocol translator API v2.
  • New Bluetooth Low Energy (BLE) protocol translator example.
  • Parameterized simple Javascript protocol translator device create, update and unregister functions with deviceId. The device ID is given in the main entry functions.

Bugfixes

  • Fixed usage for --cbor-conf also when combined with --reset-storage.
  • Fixed possible invalid pointer dereference when calling pt_client_final_cleanup after pt_client_start has returned. Migration note: The pt_client_final_cleanup API functionality has been moved inside the pt_client_start function and the pt_client_final_cleanup function has been deprecated. Any call to pt_client_final_cleanup should be removed and the pt-client/client.h" include should be removed from protocol translator as it is an internal header.
  • Fixed memory leak on PUT/WRITE request handling. The payload pointer given from Device Management Client to Edge was never freed. The payload was copied for NUL-termination and the original pointer was not freed.
  • Added a workaround for waiting Device Management Client threads to stop on Edge Core close. The underlying Device Management Client's EventOS event loop thread is not joined and occasionally it is reported as memory leak by Valgrind.

Known issues

  • Firmware update from morty version of Yocto to sumo does not work and makes devices unusable. The differences in the device trees of different versions cause problems when starting the kernel after the update.

  • Device Management Edge communicates on behalf of multiple devices. There is a underlying limitation in the CoAP communication to effectively reduce the number of requests in flight to be one. On very heavy communication cases, this introduces extra latency. An example calculation:

    • 30 mediated devices with a resource tree of 20 resources.
    • Round trip time to Device Management is 200 ms.
    • 10 KB registration message.
    • Underlying Device Management Client sends data in 1 KB blocks and waits for an acknowledgement for each block. This equals to 10 * 200 ms = 2 seconds.
    • During that time, other messages are not processed.
    • If there are lot of notification updates passed to from Edge to Device Management, the responsiveness to Device Management initated requests may be hindered.
  • There is a maximum size limit to the full registration message, which limits the number of devices Edge can host.

    • Maximum registration message size is 64 kilobytes.
    • Hosted end points with 5 typical resources will consume ~280 bytes (exact size depends on length of resource paths etc.). This would limit the maximum number to 270 devices.
    • The more resources you have, the fewer devices can be supported.
    • The Edge device resources are also included to the same registration message.
    • Please test the limits with your configuration and set guidance accordingly.
  • Protocol translators may cause side effects on devices connecting through another protocol translator if both protocol translators use the same names for the devices. Edge Core identifies the endpoint devices by their name. It is not always clear which protocol translator owns the endpoint device, and clashing names can cause unknown behavior. Ensure that devices have unique names across the protocol translators. For example, add a prefix or suffix based on the protocol translator name, which must be unique.

  • DELETE (CoAP/LwM2M) operation is not supported.

  • Devices moving between Edge instances have corner cases that are not supported. You should deregister the devices from the current Edge instance before connecting to an another Edge instance.

  • Device lifetime tracking of mediated devices is not supported. Devices have the same lifetime as the Edge device. The default is one hour. The #define to change the lifetime is MBED_CLOUD_CLIENT_LIFETIME.

Important Information for this Arm website

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies. If you are not happy with the use of these cookies, please review our Cookie Policy to learn how they can be disabled. By disabling cookies, some features of the site will not work.