After we received a unicast IP address, we can start telling advertising our services (if we are some piece of lighting equipment) or to discover the devices which are attached to the network (if we are a lighting controller).

The Service Location Protocol provides a framework to allow networking applications to discover the existence, location, and configuration of networked services (e.g. lighting equipment). In the ACN protocol suite it is used to implement an autodetection mechanism to enable lighting controllers to automatically detect fixtures attached to the network (as well as secondary or backup consoles).

Systems providing services to other hosts are called Service Agent (SA). All devices attached to the network (lighting controllers as well as lighting equipment) are service agents and announce their presence via SLP. Systems interested in using offered remote services are called User Agents (UA). User agents can send querys to the network in order to find services. Furthermore the network may contain Directory Agents (DA) which provide some caching mechanism for SA advertisements. If DA are present in the network, querys are directly addressed to these agents instead of broadcasting them to all hosts in the network segment.

When the lighting console is turned on, it sends a multicast/broadcast query to all hosts asking if there are any directory agents available in the network. If it gets a response from a DA, all future queries are sent directly to the DA. If no DAs are present, the UA continues to send further queries as multicast/broadcast to all hosts.

Next, the console will typically send a query asking for all devices, which support ACN “service:acn.esta". The DA or the SAs in the network will respond with a list of component indentifiers (CIDs). Each CID is a unique 16 byte number (GUID), representing a single device in the network. The GUID is provided by the manufacturer for each fixture. By using 16 byte long numbers it is very unlikely, that two devices in the network will have the same GUID.

 

Advertise means, that each device provides it's unicast IP address and one or multiple component identifiers (CIDs). CIDs name one particular communication endpoint (component) within the device. Usually each device provides exactly one CID, but complex gear may also register multiple CIDs within the network. As CIDs are unique they give the user the ability to recognize components, even if their IP addresses have changed after reconfiguration. Thus the "scanner in the leftmost corner" remains the "scanner in the leftmost corner" even if the DHCP server has allocated new IP addresses for all hosts.

 

 

References:

Service Location Protocol

RFC 2608, Internet Engineering Task Force (IETF)

DHCP Options for Service Location Protocol

RFC 2610, Internet Engineering Task Force (IETF)

IGMP (Internet Group Management Protocol)

RFC 2236, Internet Engineering Task Force (IETF)

 

Open Source Implementation

OpenSLP