When To Run slpd
OpenSLP User's Guide » Advanced Topics » When To Run slpd

slpd provides SA (and possibly DA) functionality along with the ability to maintain a consistent state with respect to the locations of other SLP agents on the network.  The SLP library (libslp.so) provides UA functionality internally on a per process basis with out the need to communicate with slpd. This means that in certain cases, the slp daemon does not always have to be loaded on every machine.  We're not sure if this will be a valuable feature to a majority of users, but at least it offers the additional flexibility to minimize the overhead for SLP for those machines that will only need UA capabilities.  (If you're wondering about the meaning of DA, SA, and UA, you should probably read An Introduction to SLP).

When is slpd needed?

  • slpd must be running on all machines that will be registering services.  In other words, slpd is required on all machines that run applications that make calls to one of the following SLP APIs SLPReg(), SLPDeReg(), or SLPDelAttrs().  See the OpenSLP Programmers Guide for details.
  • slpd is the process that maintains static registrations from the /etc/slp.reg file.  If you expect the registrations for this file to be available to other machines, you must run slpd.
  • slpd is required for automatic DA and scope discovery to work correctly.  If you do not run slpd, then DAs and scopes can only be discovered via DHCP or the /etc/slp.conf file. (Note: Due to a lack of a standard DHCP API DA discovery via DHCP is not yet supported).

When is slpd not needed?

  • slpd is not needed if a machine will only be requesting services.  In other words, slpd is not required on machines if a call will never be made to SLPReg(), SLPDeReg(), or SLPDelAttrs().
  • slpd is not needed on a machine if manual or DHCP DA or scope discovery is sufficient.