[LEDE-DEV] [OpenWrt] TR-069 for OpenWrt
Wouter Cloetens
wouter.cloetens at softathome.com
Tue May 31 14:36:14 PDT 2016
Weighing in on the discussion with what we have.
The SoftAtHome TR-069 client solution, that we have recently offered,
has several layers.
The first is the TR-069 protocol layer. It supports TR-069 as well as
TR-181.
Most of our customer base consists of Tier 1 Internet Service Providers,
who use TR-069 intensively for monitoring and configuration, with an
extensive level of custom objects and parameters which cannot be found
in the BBF data model. To deal with the need for extreme
configurability, we have a layer that takes care of data model translation.
There is some development being done to make that layer applicable not
only to TR-069, but to anything. We have, for example, an IPC bridge to
D-Bus, a web server that can handle both web services calls and REST,
and various custom translations to customer-specific protocols. The
ability to customise what is exposed through these protocol terminations
gives us a huge amount of flexibility, in an isolated manner, i.e.
without having to resort to hacking the protocol code itself. This would
also work for SNMP, Netconf, CoAP, ...
The early version of this code uses XML for configuration (but it could
be JSON for all we care). We have another pass through the code planned,
where we will check if a pure configuration interface provides enough
flexibility, or if code is required. Our old mechanism is based on code,
which means that it can do anything; do queries to find where mappings
need to terminate, translate object paths, parameters, parameter values,
spread the parameters of object instances across multiple back-end
services, add additional, calculated parameters, ...
The final layer is, of course, the IPC mechanism.
Another final note is that TR-069 itself is not entirely cleanly
separated from the data model (as defined in TR-098, TR-181, TR-104).
This limits the admirable goal of being back-end agnostic somewhat.
There is a basic assumption that
{InternetGatewayDevice|Device}.DeviceInfo is present.
For manageable devices behind the gateway,
ManagementServer.ManageableDevice must be present. ACS's demand specific
behaviour to set up port forwardings for these devices, which has
firewall implications.
The ConnectionRequest mechanism also has a firewall implication.
Software upgrade functionality, as well as other file upload/download,
is mostly managed outside the data model.
bfn, Wouter
More information about the Lede-dev
mailing list