Friendly IoT Embedded Clients:
- LWM2M Embedded Client – Friendly’s Lightweight M2M (OMA-LWM2M) embedded client is designed for management of constrained IoT devices and sensors.
- OMA-DM Embedded Client – Friendly’s OMA-DM embedded client is designed for devices with more resources and additional requirements.
- TR-069 Embedded Client – provides CWMP PRC functionality an is designed for CPE devices running embedded Linux.
- Friendly's Lightweight M2M (OMA-LWM2M) embedded client is designed for management of constrained IoT and M2M devices and sensors.
- Friendly’s OMA-LWM2M client has a notably small CPU and memory footprint designed specifically with the IoT concept in mind, and it targets LTE Category 1, Category 0 and Category M devices.
- The OMA-LWM2M Client includes the Client itself which is provided as an object code and the SDK which is provided as a source code with integration samples.
- Our technical team is available for integration assistance. Additionally, Friendly Technologies can provide an OMA-LWM2M server for lab testing and commercial deployments.
Target Market
- Device manufacturers who want to offer remote management for their devices based on industry standard protocols.
- IoT and Mobile service providers who are interested in remote management of devices, and wish to use one standard Client for their devices.
Main Features
- Device registration
- Support of standard data model
- SDK for customization and additional development
- Remote device configuration
- Firmware upgrade
- Device location tracking
- Device monitoring
- Reset/ reboot device
Technical Specs
- The client footprint is less than 100K
- Supported OS : Android, Linux and non-Linux OS (please contact us)
- Interfaces
- Bootstrapping : Pre-provisioned or Client/Server Initiated
- Registration : Register the Client and its Objects
- Management & Service Enablement : Server access to Object or Resource
- Information Reporting : Notifications with new Resource values
- Based on efficient, secure IETF standards
- CoAP and DTLS with UDP and SMS bindings
Interfaces
- Bootstrapping : Pre-provisioned or Client/Server Initiated
- Registration : Register the Client and its Objects
- Management & Service Enablement : Server access to Object or Resource
- Information Reporting : Notifications with new Resource values
Object Model
- Object defines Resources, each can have Instances
- Defining a new Object is straightforward
- Object IDs are registered with the OMA Naming Authority (OMNA)
- Efficient Payloads :Plain text for individual resources
- Friendly OMA-DM Embedded Client and SDK (FOCS) is a framework implementing OMA-DM 1.2 protocol.
- Friendly's OMA-DM Embedded Client is designed for devices with more resources and additional requirements.
- The OMA-DM embedded client is ideal for device manufacturers and mobile carriers and allows the deployment of embedded clients for device management and support—specifically for devices that run on a Linux/Android OS, such as dongles, gateways, 4G routers, healthcare and security devices, and cars.
- The Friendly OMA-DM Client supports advanced features and has been successfully tested and deployed by major US-based carriers.
Main Features
Friendly OMA-DM Embedded Client provides a rich feature set to support device's manageability:
- Full support of the OMA-DM and OMA-CP protocol
- Extensive SDK with implementation samples
- Support of OMA-DM data model
- Support of Linux and non-Linux OS
- Provisioning
- Bootstrap
- FUMO - Firmware Upgrade over the air
- Configuration Management
- SCOMO - Software Management and Update
- Lock-And-Wipe
- High level security
Standard Compliance
- OMA-DM v1.2
- OMA-FUMO v1.0.2
- OMA-SCOMO v1.0
- OMA-LAWMO v1.0
OMA-DM v2, is planned for next version.
Security
Friendly OMA-DM Embedded Client is designed to support different security requirements:
- HTTP and WSP to provide an alternative authentication based on shared secrets
- SSL 3.x and TLS 1.x
- Basic Authentication type (Logging)
- Digest Authentication type (MD5)
- HMAC Authentication type
- SOCKS 5 proxy tunneling
OS Support
- Embedded Linux with kernels compatible with v 2.6.x and above
- Porting layers available to port the software to non-Linux operating systems.
Technology
Technology
- Friendly OMA-DM Embedded Client is implemented using C programming language.
Foot Print
- Friendly OMA-DM Client SDK with sample plugin management objects has storage foot-print of 2MB. Run-time foot-print should be assessed according to implementation, please contact us for assistance.
Architecture
- Friendly OMA-DM Embedded Client includes management core (Engine API, OMA-DM protocol support, Management Tree API, Utils) and plug-in management objects
References
- OMA-DM 1.2 communication protocol for management of various types of devices
- OMA-DM Management Object - an integral part of OMA-DM Management Tree
- SCOMO 1.0 - OMA-DM subset of requirements to implement software component management operations on devices
- FUMO 1.0.2 - OMA-DM subset of requirements to implement firmware update on devices
- LAWMO 1.0 - OMA-DM subset of requirements to implement lock-n-wipe, factory reset operations on devices
- connection request via WAP push - sending notification message via WAP/SMS gateway to initiate connection from OMA-DM client device to OMA-DM server
- OMA-CP 1.1 provisioning support - specification for client provisioning with device settings via WAP/SMS gateway
- Today, manufacturers of CPE’s, including modem/routers, Smart Home hubs, IPTV STBs, ATA/VoIP, storage devices, media centers, Femtocell, IP-phones, and cameras are expected to allow remote management of these devices through the TR-069 standard.
- The standard allows service providers, such as ISP’s, Telco’s etc., to streamline the provisioning, maintenance and support of these CPE devices on a single platform, thereby reducing their support and maintenance costs while increasing customer satisfaction.
- Friendly TR-069 client provides CWMP RPC functionality as defined by TR-069 Issue 1, Amendment 5, Protocol Version 1.3, between the host CPE device and an Auto Configuration Server (ACS).
- Friendly TR69 client implementation is targeted at CPE devices running embedded Linux. Other environments are a straightforward implementation.
- The OEM client package includes the source code for multiple data models with stubbed off getter/setter functions that normally will run on the target platform once the cross-compile issues are resolved.
- This source provides a jump-start on the TR-069 implementation. Executable demonstration versions of this code are available for X86 Linux workstations.
- Friendly Technologies provides a code generation tool that processes the TR-106 compatible data model definitions and generates the source code for the data model tables and getter/setter stubs for the TR-069 client.
- Instances of TR-106 data model definitions are TR-098, TR-181, and TR-104. The code generation tool allows customization of the data models as required for the target CPE devices.
- The client supports both the Root data models, InternetGatewayDevice:1 and Device:2, as defined by TR-106 and the various data model definitions.
RPC Message Implementation
- Friendly TR-069 client currently implements the baseline RPC messages defined in TR-069 Amendment 4.
- The Connection Request via NAT Gateway (STUN) functionality defined by Annex G is also implemented and is optionally included based on compile-time options.
- Friendly TR-069 client implements the SOAP RPCs as summarized in the following table.
- Friendly TR-069 client CPE methods that are marked “Supported/Optional” may be included or excluded at compile time.
SOAP Implementation
- A relaxed parsing of the SOAP RPC is performed to avoid ACS capability problems. Friendly TR-069 client implements versions 1.0, 1.1, 1.2 and version 1.3 of the CPE WAN Management Protocol.
Certificate Support
- Friendly TR-069 client has support for both client and server Certificates. The native CPE software must provide a mechanism to manage the certificates.
HTTP Authentication Support
- Friendly TR-069 client supports both Basic and Digest Authentication for the connection to the ACS. The client always uses digest authentication to challenge the Connection Request connections.
HTTPS Protocol
- Friendly TR-069 client image may optionally be built with SSL to provide secure socket communications with the ACS.
- This compile time option includes the OpenSSL package (http://www.openssl.org/) to support the SSL communications and server certificate authentication. This is the only extra package used by Friendly TR-069 client with the exception of the Linux standard C libraries.
Upload and Download Transfers
- Friendly TR-069 client framework supports HTTP and HTTPS protocols for Uploads and Downloads. Basic and Digest Authentication are supported on transfer requests.
- Multiple queued transfer requests are supported. Interfaces to native transfer protocols such as, FTP and TFTP, are provided.
- The jump-start versions of the Friendly TR-069 client contains the source code for interfacing to the native transfer utilities.
TR-106 Data Model Support
- Friendly TR-069 client is designed to support the CPE data model templates defined in TR-106.
- Friendly TR-069 client protocol framework is independent of the CPE data model.
- Only a few parameters within the Management Server Common Object as defined by TR-106 are used internally by the Friendly TR-069 client framework; for example, the ManagementServer.URL.
- The parameter get and set functions are defined in a set of tables that represent the parameter tree for the required data model.
- The parameter tables define the attributes of the parameter and control how the client handles the calls to the getter and setter functions for the associated parameters.
- A utility program is provided that can process a file of parameter definitions to create the getter/setter function stubs, the parameter tables, the string constant tables that define the parameter names and the necessary header files that provide the prototype definitions for the getter/setter functions. The majority of the work of implementing the TR-069 protocol on a CPE is in the implementation of the getter/setter parameter functions and the add/delete object functions.
- The jump-start source code files containing parameter definitions and getter/setter functions are supplied for TR-069, TR-098, TR-104, and WT-135 version 5 are included with the source.
Supported Data Models
- TR-069 Amendment 1,2,3,4,5 – CPE WAN Management Protocol
- TR-098 - Internet Gateway Device Data Model for TR-069
- TR-104 - LTE/WiMAX Home™ Provisioning Parameters for VoIP CPE/UE
- TR-106 - Data Model Template for TR-069 Enabled Devices - provides the template for extending TR-069 remote management to other digital home devices
- TR-110 Issue 1.01 - DSLHome™ Reference Models for VoIP Configurations in the DSL Home
- TR-111 - Applying TR-069 to Remote Management of Home Networking Devices - makes it easier for an auto-configuration server (ACS) to interact with home-based devices that live behind a NAT router
- TR-135 - Data Model for a TR-069 Enabled STB
- TR-140 Issue 1.1 - TR-069 Data Model for Storage Service Enabled Devices
- TR-142 - Framework for TR-069 enabled PON devices
- TR-143 - Specifies diagnostics objects for use in data models
- TR-156 - Using GPON Access in the context of TR-101
- TR-157 - Specifies Component objects for use in data models
- TR-181i1 - Specifies Device:1
- TR-181i2 - Specifies Device:2
- TR-196 - Femto Access Point Service Data Model
Security
Typical measures employed in the Friendly TR-069 client solution to ensure security include:
- Authentication –username and password are required to connect to the ACS
- HTTPS – HTTP over SSL/TLS xSP is used for data transfer
- Signed certificates – policy can require firmware files to have signed certificates
Friendly TR-069 client process environment
- Friendly TR-069 client runs as a separate application or process thread that is linked to a set of CPE supplied functions to provide access to the CPE configuration parameters.
- Friendly TR-069 client depends on CPE functions for providing configuration data persistence across reboot and power on/off cycles.
- The majority of this data is the configuration data that corresponds to the TR-106 data model of the device, with a minor amount required to provide state information for the client application.
- An example of this CPE Wrapper implementation is provided in the jump-start source.
- Friendly TR-069 client supports management of Component Objects as defined by TR-157.
- This feature is included at compile time by setting compile time options.
- The quick-start implementation provides an example of how a CPE device could use the downloaded Component Objects by downloading and installing a sample OSGi framework.
- If the TR-157 option is included the client creates a separate process thread to manage the installation, starting, stopping and uninstalling of the component objects.
LAN Device Management
Friendly TR-069 client supports the three types of connection of devices behind a NAT as defined in TR-069. These are:
● STUN as defined by Annex G of TR-069 :
● XMPP as defined by Annex K and Appendix III of TR-069.
- The STUN method can be excluded by the conditional compilation of the client.
- The XMPP method is implemented by sending inter-process messages between the client and an XMPP client process. The XMPP client process is based on the Google txmpp open-source project and is included with the development package.
TR-143 Network Throughput Performance Testing and Statistical Monitoring
- The requirements of network throughput performance are defined by TR-143 and the TR-181 and TR-098 data models.
- The performance testing and monitoring tool is implemented as a single threaded application that is started by the Friendly TR-069 client when requested by the ACS.
- The output of the performance monitoring application is used to populate the parameter values of the performance measuring objects defined in the TR-143.
Source Control and Release
- A CVS repository of the Friendly TR-069 client code, data models are maintained.
- The majority of the client framework is self-contained in one directory and should not need to be modified when implementing a customer’s CPE solution.
- This code is updated continuously to fix problems and implement clarifications to the specification. In general, a customer can update this portion of the client code from the CVS without impacting their specific CPE implementation.