Device Management Edge 0.7.1
- Removed obsolete injection of insecure RoT module in the Edge Core build.
- Moved the
lib/jsonrpc/jsonrpc. This header is internal.
- Moved the
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.his 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
- Removed Yocto toolchain and target. The build environments need to provide a correct toolchain and target.
- Updated the examples to use the protocol translator API v2.
- New Bluetooth Low Energy (BLE) protocol translator example.
deviceId. The device ID is given in the main entry functions.
- Fixed usage for
--cbor-confalso when combined with
- Fixed possible invalid pointer dereference when calling
pt_client_starthas returned. Migration note: The
pt_client_final_cleanupAPI functionality has been moved inside the
pt_client_startfunction and the
pt_client_final_cleanupfunction has been deprecated. Any call to
pt_client_final_cleanupshould 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.
Firmware update from
mortyversion of Yocto to
sumodoes 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
#defineto change the lifetime is