[RFC] BasicManagement:2 implementation for rygel



Hi all,

Christophe Giuraud and I have been working on implementing UPnP
BasicManagement service for rygel and would like to get comments on it
and hopefully get the code integrated into Rygel.

* Background

BasicManagement:2 service [1] contains a bunch of tools to indicate
overall device status, perform maintenance functions (e.g. reboot) and
to run some diagnostic tools (e.g. Ping). Typically this service would
be running on the same device as a renderer. There is ongoing work at
DLNA in this area but unfortunately that is not public yet. I will
post again with more info when that changes.


* Status

We have working code for Ping and NSLookup and the infrastructure
needed to start these tasks, query their state, and query the results.
The plan is to implement Traceroute next and leave the rest for later.
The feature is currently implemented in rygel-core and then used in
rygel-renderer (much like ConnectionManager), but we're naturally open
to suggestions on the design.

We've been working in github so far but I've just pushed a
"wip/basic-management" branch [2] to rygel git (based on a chat with
Jens last week) and plan to continue there until it hopefully is good
enough for master.


* Open issues / To-do list

- How to enable/disable the feature: We're thinking this should be
disabled by default as it's not very useful until it gets used in DLNA
environments, and because adding UPnP APIs invariably makes the
'attack surface' bigger. A setting to enable it for the renderer in
the config file perhaps?
- See if replacing system calls with own code is worth it: currently
we just call e.g. system "ping" and expect it to support the options
we use and have the output we can parse. The problem with doing ping
and traceroute in code is not only the complexity but also that they
require CAP_NET_RAW capability (or suid) for the binary.
- Make sure the system calls we do work at least on busybox
- Implement Traceroute
- Add tests


That's it. Comments on design and/or bug reports are welcome.

- Jussi


[1] http://upnp.org/specs/dm/UPnP-dm-BasicManagement-v2-Service.pdf
[2] https://git.gnome.org/browse/rygel/?h=wip%2Fbasic-management


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]