Find Ethernet readers via SLP

With Service Location Protocol (SLP)call_made, you can locate all ID-engine XE readers in the network and retrieve their basic properties including IP address, serial number, and firmware version.

Readers must not be protected by a firewall.

If you run your application in server mode and want to use SLP to deploy your configuration, please use USB or ConfigCard deployment instead.

Send SLP requests

We recommend you use the open-source implementation OpenSLPcall_made. The following sections show how to send requests using OpenSLP's command line tool slptool.

Retrieve service URL

A reader's service URL consists of its IP address and port. You can retrieve it by sending a service request.

  • Service request: slptool findsrvs service:x-proxreader

    The parameters <predicate> and <SLP SLI> are not supported.

  • Reply: service:x-proxreader://[address]:[portnumber]

    • [address] is the reader's IP address in dotted decimal notation.
    • [port] is 2939, which is the port for BRP over TCP.

SLP service request sent to BALTECH readers performed with OpenSLP

Retrieve attribute list

The attribute list characterizes a specific reader and helps to identify it. You can retrieve it by sending an attribute request.

  • Attribute request:

    • To address all readers:
      slptool findattrs service:x-proxreader
    • To address a specific reader:
      slptool findattrs service:x-proxreader://[address]:[portnumber]

    The parameters <tag-list> and <SLP SLI> are not supported.

  • Reply: The reader replies with its full attribute list as shown in the table below.

SLP attribute request sent to BALTECH readers performed with OpenSLP

Attribute Source
  • fix: hardcoded in firmware/hardware
  • config: stored in reader configuration
  • state: depends on current state of network protocol stack
    Type Description
    x-schema-version fix integer Version of the attribute definition specification (currently: 1)
    x-ip-settings-type config* integer
    • 1: Static IP address
    • 3: Non-static IP address (DHCP or link-local)
    x-ip-address-status state string Bitmask indicating current IP address status:
    • 0x01: No static address available
    • 0x02: No DHCP address available
    • 0x04: No link-local address available
    x-configuration config* string String in the format #####-####-####-## indicating the deployed project configuration or, if not available, base configuration of the reader
    x-friendly-name config* string Name assigned to this specific reader to allow end users to identify it
    x-firmware-info fix string A string in the format #### ######### #.##.## ##/##/## (firmware id, firmware name, firmware version, creation date) characterising the deployed firmware
    x-host config* string Hostname or IP address of primary host
    x-althost config* string Hostname or IP address of secondary host
    x-serialnumber fix string Decimal serial number of the device (8 digits)

    * Attributes whose source is config are only included in the reply if they are actually specified in the configuration.

    Scopes

    SLP scopes allow administrators to create functional SLP "domains" for administrative and scalability purposes. BALTECH readers support the following scopes:

    • DEFAULT: This is an all-encompassing scope that is available by default. To search for readers in this scope, you don't need to specify it in your request.

      You can replace the default scope by 1 custom scope of max. 10 characters.

    • BALTECH: This is the scope encompassing all BALTECH readers. You can't replace or change it. This is to ensure that BALTECH ToolSuite can always reach readers via this scope, even if you replace the DEFAULT scope with a custom one.
      To search for readers in this scope, specify it using the -s option in slptool:

    SLP attribute request sent to BALTECH readers in the BALTECH scope, performed with OpenSLP

    Addressing methods

    For all requests, you can use the following addressing methods:

    • Unicast
    • Broadcast
    • Multicast; supported protocol: IGMP v1

    Network coverage and device roles

    You can send SLP requests to an individual reader, all readers in a subnet, or all readers across multiple subnets. Depending on the intended coverage, you need to assign the appropriate role to the device that searches for readers. This can e.g. be a maintenance laptop.

    Coverage Device role Procedure
    Individual reader Before installation User Agent (UA) Connect the UA to the reader in maintenance mode
    Readers in the same subnet After installation User Agent (UA) Connect the UA to the subnet
    Readers across subnets After installation Directory Agent (DA) Place a DA in each subnet

    User Agent (UA) vs. Directory Agent (DA)

    A DA is a device that caches services information. DAs are recommended for larger networks to reduce the amount of traffic and extend SLP coverage to subnets. If you have DAs, User Agents (UAs) are required to communicate with them instead of communicating with readers directly.

    DA registration

    You can specify a DA in the reader configuration or set it via DHCP. The DHCP-defined DA overwrites a configured DA. Readers also find DAs dynamically using active and passive DA discovery. As soon as a reader finds a new DA, it registers with it. Registration is restarted after 75% of the lifetime has expired. A maximum of 2 DAs is supported per network.

    Reducing SLP network load

    By default, SLP as well as active and passive DA discovery are enabled. If you want to reduce network load, we recommend you disable DA discovery: In this case, the SLP service agent of the reader will only respond to service requests, but will no longer send out messages for DA discovery and registration.

    Don't disable SLP entirely

    BALTECH ToolSuite uses SLP and would no longer work.