[LEDE-DEV] [OpenWrt-Devel] TR-069 for OpenWrt
Delbar Jos
Jos.Delbar at technicolor.com
Mon May 30 01:51:07 PDT 2016
David Lang <david at lang.hm> wrote:
> I wasn't questioning why it's useful to support TR-069. The only part I was
> questioning was the statement that OpenWRT needed work to make it
> support remote management.
>
> There are already many tools to remotely manage/monitor OpenWRT
>
> But that's why I'm saying that it seems like most of the work is in the protocol
> interface. If there is already a daemon that does the network protocol
> properly, that should make things very easy. If such a daemon needs to be
> written, that would be the place I would suggest that they focus. There are a
> lot of people who can do the plumbing work to make the daemon do the
> right thing on the system, who are not in a position to work on the network
> protocol side and make sure that it works properly with the management
> software.
Listing some of the things that come to mind:
* Data models. The language that TR-069 uses to describe a certain feature or function is not the same language that OpenWrt uses. The translation is often not straightforward.
* Events/notifications. This boils down to the TR-069 protocol agent notifying the ACS when something on the CPE changes. Now imagine that a change occurs to a configuration parameter in UCI, like the wireless SSID. How to address this?
* Commit and apply. When the ACS changes the configuration of the CPE, it also expects this configuration to be applied soon after. Updating the configuration in UCI is not enough.
* Transactional behavior. A set of TR-069 configuration changes is either applied successfully or not at all. UCI has a commit function but how to check if a configuration change in UCI will also be successfully applied by the system? Now one can debate what "successful" means but you get the point.
* Persistent indices. TR-069 expects that a certain object in an array, like "the second network interface", retains its index "the second" during the lifetime of the CPE (barring a factory reset) even if "the first network interface" is deleted. The way that lists work in UCI doesn't make this trivial. Using named instances or aliases are possible ways out.
We've attempted to overcome these challenges in our TR-069 solution within the confines of OpenWrt. I'm sure that other management systems (local ones like LuCi or remote ones) are solving similar problems in different ways. Instead of doing all the heavy lifting on the protocol side, I'm hopeful that we can carve out a common subset of requirements that apply to management systems in general and come to better and more reusable frameworks.
Jos
More information about the Lede-dev
mailing list