Configuration Guide

TCP-Based Resolver Operation Options

See TCP-Based Topic Resolution Details for general information on TCP-based Topic Resolution.

# Reference <-

## resolver_service (context) <-

  Enable TCP-based Topic Resolution and add one or more (up to 5) Stateful Resolver Service (SRS) specifications to the current SRS list.

  The SRS is used to provide TCP-based TR services. For general information on Topic Resolution, see Topic Resolution Description.

  Unlike most other UM options, every time this option is supplied, it adds one or more service specifications to the list, and does NOT overwrite previous specifications. Multiple SRS instances are recommended for fault tolerance. See TCP-Based TR and Fault Tolerance.

  Setting this option does not affect whether UDP-based TR is enabled or disabled. It is appropriate in many use cases to have both TCP and UDP TR enabled. For example, see TCP-Based TR Version Interoperability.

  When all of your UM components are upgraded to UM 6.14 and beyond, you can use the resolver_disable_udp_topic_resolution (context) configuration option to turn off UDP-based TR.

Warning
  When using TCP-based TR, do not configure applications without a resolver cache. I.e. leave resolver_cache (context) set to 1. Also, configure applications with a valid interface. See default_interface (context).

  For the configuration file as well as string API method of setting this option, the string value consists of one or more (up to 5) SRS specifications separated by commas or semicolons, formatted as follows:

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

  - `Iface` is the interface to use.
  - `Src_Port` is the source port to use. Normally only specified if firewalls require specific source ports be used.
  - `IP` is the SRS's IP address.
  - `Dest_Port` is the SRS's TCP listening port.

  You can omit either the `Src_Port` or both the `Iface` and `Src_Port`, in which case the interface defaults to default_interface (context), if specified, and the port defaults to 0, which allocates an ephemeral port.

  Because each entry adds a new SRS 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 SRS specifications. This can be useful if multiple configuration files are used, and a later file should override the SRS list from an earlier file.

  Possible formats of each entry are as follows:

      Interface:LocalPort->SrsIP:RemotePort
      Interface->SrsIP:RemotePort
      SrsIP: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 SRS 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 SRSes is returned as an array, and the `optlen` parameter should be set as:

      optlen = (max_num_srs * sizeof(lbm_resolver_service_entry_t));

  Scope: | context
  Type: | lbm_resolver_service_entry_t
  When to Set: | Can only be set during object initialization.
  Version: | This option was implemented in UMQ 6.12

## resolver_service_interest_mode (context) <-

  Allows an SRS to perform interest-based filtering of source advertisements (SIRs).

  With filter mode enabled, the SRS will only send SIRs for sources that the context is interested in (has a receiver for). This reduces the Topic Resolution traffic to the context.

  With flood mode, the SRS will send SIRs for all topics to the context. This mode is normally not needed, except when the resolver_source_notification_function (context) or resolver_event_function features are used.

  See TCP-Based TR Interest for more information.

  Scope: | context
  Type: | lbm_uint8_t
  Default value: | 1
  When to Set: | Can only be set during object initialization.
  Version: | This option was implemented in UM 6.13

  String value | Integer value | Description
  --- | --- | ---
  "filter" | LBM_CTX_ATTR_INTEREST_MODE_FILTER | Filter Mode. The SRS sends SIRs for sources the context is interested in. Default for all.
  "flood" | LBM_CTX_ATTR_INTEREST_MODE_FLOOD | Flood Mode. The SRS sends SIRs for all topics.