Configuration Guide

Unicast Resolver Network Options

The image below shows a simplified relationship between the primary unicast resolver network options.

If using multiple lbmrd instances with a single context, you can configure resolver_unicast_interface and resolver_unicast_port_low/high and omit the Interface:LocalPort section of resolver_unicast_daemon.

See also Unicast UDP Topic Resolution for general information on Unicast Topic Resolution.

# Reference <-

## resolver_unicast_daemon (context) <-

  Enable Unicast UDP-based Topic Resolution and add one or more unicast resolver daemon (lbmrd) specifications to the current lbmrd list. Unlike most other UM options, every time this option is supplied, it adds one or more daemon specifications to the list, and does NOT overwrite previous specifications.

  Setting this option Disables Multicast UDP-based TR, but does not affect whether TCP-based TR is enabled or disabled. See UDP-Based Topic Resolution Details.

  For the configuration file as well as string API method of setting this option, the string value consists of one or more lbmrd specifications separated by commas or semicolons, formatted as follows:

      [Iface[:Src_Port]->]IP:Dest_Port[,...]

  - `Iface` is the interface to use (previously set via resolver_unicast_interface (context)).
  - `Src_Port` is the source port to use (previously resolver_unicast_port (context)). Normally only specified if firewalls require specific source ports be used.
  - `IP` is the resolver daemon's IP address (previously resolver_unicast_address (context)).
  - `Dest_Port` is the resolver daemon's UDP port (previously resolver_unicast_destination_port (context)).

  You can omit either the `Src_Port` or both the `Iface` and `Src_Port`, in which case the default settings resolver_unicast_interface (context) and resolver_unicast_port (context) are used.

  Because each entry adds a new daemon specification and does not overwrite previous values, a special construct must be used to clear a previously-specified list. An entry with the IP address of 0.0.0.0 and port of 0 removes all previous daemon specifications. This can be useful if multiple configuration files are used, and a later file should override the daemon list from an earlier file.

  Possible formats of each entry are as follows:

      Interface:LocalPort->DaemonIP:RemotePort
      Interface->DaemonIP:RemotePort
      DaemonIP:RemotePort

  You can specify `Interface` in any of the ways described in Specifying Interfaces.

  When the binary form of option setting is used, UM does NOT expect an array of structures. Instead, only one lbmrd specification can be supplied for each call to lbm_context_attr_setopt(). However, when the binary form of option retrieval lbm_context_attr_getopt() is used, the list of lbmrds is returned as an array, and the `optlen` parameter should be set as:

      optlen = (max_num_lbmrds * sizeof(lbm_ucast_resolver_entry_t));

  Scope: | context
  Type: | lbm_ucast_resolver_entry_t
  When to Set: | Can only be set during object initialization.
  Version: | This option was implemented in UMS 5.0

## resolver_unicast_interface (context) <-

  Specifies the network interface over which UM receives unicast Topic Resolution messages.

  You can specify full IP address of interface, or just network part (see Specifying Interfaces for details).

  Default is set to default_interface (context), if specified. Otherwise, it is set to INADDR_ANY, meaning that it will accept unicast Topic Resolution messages on any interface.

  Note: if specifying an interface name in an XML-format file, see Interface Device Names and XML.

  Scope: | context
  Type: | lbm_ipv4_address_mask_t
  Default value: | 0.0.0.0 (INADDR_ANY)
  When to Set: | Can only be set during object initialization.

## resolver_unicast_port_high (context) <-

  The highest local UDP port in a range of ports used for unicast topic resolution messages.

  The UM resolution daemon (lbmrd) sends unicast topic resolution messages to the UDP port range defined by this option and resolver_unicast_port_low (context).

  See Port Assignments for more information about configuring ports.

  Scope: | context
  Type: | lbm_uint16_t
  Default value: | 14406
  Byte order: | Host
  When to Set: | Can only be set during object initialization.

## resolver_unicast_port_low (context) <-

  The lowest local UDP port in a range of ports used for unicast topic resolution messages.

  The UM resolution daemon (lbmrd) sends unicast topic resolution messages to the UDP port range defined by this option and resolver_unicast_port_high (context).

  See Port Assignments for more information about configuring ports.

  Scope: | context
  Type: | lbm_uint16_t
  Default value: | 14402
  Byte order: | Host
  When to Set: | Can only be set during object initialization.

## resolver_unicast_receiver_socket_buffer (context) <-

  Value used to set the SO_RCVBUF socket option for the topic resolution receiving socket.

  In some cases the OS will not allow all of this value to be used.

  A value of 0 instructs UM to use the default OS values. See ref socketbuffersizes for platform-dependent information.

  Scope: | context
  Type: | lbm_ulong_t
  Units: | bytes
  Default value: | 8388608 (8MB)
  When to Set: | Can only be set during object initialization.