Personal tools
The Open Lighting Project has moved!

We've launched our new site at www.openlighting.org. This wiki will remain and be updated with more technical information.

OLA SLP Server

From wiki.openlighting.org

Jump to: navigation, search

Proposal: Write our own SLP implementation to better support the needs of OLA w.r.t E1.33.

Pros

  • Allows verbose logs which make debugging other SLP implementations easier.
  • When run in DA mode, our own implementation would support an RPC notification mechanism so we discover devices faster.
  • Faster release schedule.
  • Will setuid to a non-root user for security.
  • Work on Mac OS X without requiring reverse hostname lookups
  • Avoid other problems with openslp

Cons

  • Takes time
  • Won't support SLPv1
  • Will conflict with the existing slpd on installed systems. For example
# debian packages that use slpd and won't we able to be installed
$ apt-rdepends -r slpd | grep -v "^ "
libslp1
cups
bluez-cups
cups-dbg
cups-driver-gutenprint
cups-pdf
hpijs-ppds
hplip
hplip-dbg
hplip-gui
hplip-cups
splix
libroar-compat0
libroar-dev
roaraudio-dbg
libroar0
roaraudio
roaraudio-extra
libslp-dev
nis
slapd
bdii
bdii4
phamm-ldap
phamm-ldap-amavis
phamm-ldap-vacation
slapd-dbg
slapd-smbk5pwd
slptool

Of these the only one I'm concerned about is cups. However the latest E1.33 discussion is leaning towards running slp on a non-privileged port (so that Android & IOS devices) work. So this may be a non-issue.

Design

  • SLPServer is the class which implements the SLP functionality.
  • SLPDaemon is a class which wraps the SLPServer with a RPC & web server.
  • DATracker keeps track of the known DAs on the network
  • SLPStore holds the registations in SA or DA mode