Dynamic Routing Guide

DRO Configuration Reference

For controlling/configuring each DRO, you use a XML DRO configuration file, which also contains references to UM configuration files to extract needed information about the TRDs interfaced by endpoint portals.

An overview of the file format can be seen in the DRO Configuration DTD.

An XML DRO configuration file follows standard XML conventions. Element declarations or a pointer to a DTD file are not needed, as these are handled by the DRO.

# File Structure <-

An XML DRO configuration file generally comprises two primary elements: `<daemon>` and `<portals>`. Organized and contained within these are option value assignments. `<daemon>` sub-containers let you set options global to the DRO. `<portals>` sub-containers let you configure each portal in the DRO individually.

In general, the order of the elements is important. Please refer to the examples and ensure proper element ordering.

XML DRO configuration files use the high-level structure shown in the following example. This example includes only some container elements, and only some options.

<?xml version="1.0" encoding="UTF-8" ?>
<tnw-gateway version="1.0">
<daemon>
<log type="console"/>
<uid>0</uid>
<gid>0</gid>
<pidfile>/path/file.pid</pidfile>
<lbm-license-file>/path/file.lic</lbm-license-file>
<topicmap/>
<patternmap/>
<monitor>
<transport-module/>
<format-module/>
</monitor>
<web-monitor>*:21000</web-monitor>
<propagation-delay/>
<xml-config>sample-config.xml</xml-config>
</daemon>
<portals>
<endpoint>
<name>Endpoint_1</name>
<domain-id>1</domain-id>
<cost>1</cost>
<lbm-config>endpoint2.cfg</lbm-config>
<lbm-attributes>
<option name="context_name" scope="context" value="endpt_1" />
</lbm-attributes>
<acl>
<inbound>
<ace match="accept">
<topic>ABC123</topic>
<pcre-pattern >pattern</pcre-pattern >
<regex-pattern >pattern</regex-pattern >
<transport/>
<source-ip/>
<multicast-group/>
<udp-source-port/>
<udp-destination-port/>
<tcp-source-port/>
<xport-id/>
</ace>
</inbound>
<outbound>
<ace match="accept">
<topic>ABC123</topic>
<pcre-pattern >pattern</pcre-pattern >
<regex-pattern >pattern</regex-pattern >
<transport/>
<source-ip/>
<multicast-group/>
<udp-source-port/>
<udp-destination-port/>
<tcp-source-port/>
<xport-id/>
</ace>
</outbound>
</acl>
</endpoint>
<peer>
<name>Peer_1</name>
<cost>1</cost>
<single-tcp>
<interface>
<receive-buffer>
<send-buffer>
<keepalive>
<nodelay>
<initiator>
<address>
<port>
</initiator>
<acceptor>
<listen-port>
</acceptor>
</single-tcp>
<max-queue>
<max-datagram>
<batching>
<min-length>
<batch-interval>
</batching>
<lbm-config>peer1.cfg</lbm-config>
<lbm-attributes>
<option name="name" scope="scope" value="value" />
</lbm-attributes>
<acl> (see above)
<topic-purge>
<topic-interest-generate>
<topic-domain-activity>
<pattern-purge>
<pattern-interest-generate>
<pattern-domain-activity>
<topic-use-check/>
<pattern-use-check>
<source-context-name>
<receiver-context-name>
<sqn-window>
<context-query>
<gateway-keepalive>
</peer>
</portals>
</tnw-gateway>

# Share/Merge DRO XML Files with XInclude <-

The XInclude mechanism can be used to merge or share XML files for UM library configuration, Store configuration, and DRO configuration. This is typically done to avoid duplicating groups of configuration options in multiple places.

To include an external file from a DRO configuration file, use the following syntax:

<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="FILEPATH" />

Where FILEPATH can be a local file name, or a network path starting with "http:" or "ftp:". For example:

<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="/um/conf/TRD1.xml" />
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="http://myweb.mydomain.com/umconf/TRD1.xml" />
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="ftp://myftp.mydomain.com/umconf/TRD1.xml" />

Note that secure forms of network paths ("https:" or "sftp:") are not supported.

Files to be included must be formatted such that all elements are enclosed in a single container element.

Example of an invalid file:

<pcre-pattern>global/.*</pcre-pattern>
<pcre-pattern>price/us/.*</pcre-pattern>
<topic>health_check</topic>
...

Example of valid file:

<ace match="accept">
<pcre-pattern>global/.*</pcre-pattern>
<pcre-pattern>price/us/.*</pcre-pattern>
<topic>health_check</topic>
...
</ace>

## Common DRO XInclude Use Case <-

DRO configuration files do not support templates. It is common that groups of configuration options need to be repeated across many DRO configurations.

For example consider the DRO configuration file "dro1_conf.xml":

...
<endpoint>
<name>...</name>
...
<acl>
<inbound>
<ace match="accept">
<pcre-pattern>global/.*</pcre-pattern>
<pcre-pattern>price/us/.*</pcre-pattern>
<topic>health_check</topic>
...
</ace>
</inbound>
</acl>
</endpoint>
...

If this same ACL needs to be applied to many different DROs, it can be a lot of repeated content across every DRO's configuration file.

The XInclude feature can be used to reduce duplicate content by creating a second file "dro_ace.xml":

<ace match="accept">
<pcre-pattern>global/.*</pcre-pattern>
<pcre-pattern>price/us/.*</pcre-pattern>
<topic>health_check</topic>
...
</ace>

Now "dro1_conf.xml" (and others) can be coded as:

...
<endpoint>
<name>...</name>
...
<acl>
<inbound>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="./dro_ace.xml" />
</inbound>
</acl>
</endpoint>
...

# Elements Reference <-

## Router Element "<tnw-gateway>" <-

Container for all options residing in the XML DRO configuration file. This is the top-level element.

- Children: <daemon>, <portals>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
version | The version of the DTD, which is currently. (This is not the product version.) | `"1.0"` - Current version of DTD. | (no default; must be specified)

Example:

<tnw-gateway version="1.0">
<daemon>
...
</daemon>
<portals>
...
</portals>
</tnw-gateway>

## Router Element "<portals>" <-

Container for all endpoint and peer portal configuration information.

- Parent: <tnw-gateway>
- Children: <endpoint>, <peer>

Example:

<tnw-gateway version="1.0">
<daemon>
...
</daemon>
<portals>
<endpoint>
...
</endpoint>
...
</portals>
</tnw-gateway>

## Router Element "<peer>" <-

Container element for all configuration options of a single peer portal.

- Parent: <portals>
- Children: <name>, <cost>, <sourcemap>, <tcp>, <single-tcp>, <udp>, <source-deletion-delay>, <max-queue>, <uim-max-queue>, <smart-batch>, <max-datagram>, <batching>, <lbm-config>, <lbm-attributes>, <acl>, <topic-purge>, <topic-interest-generate>, <topic-domain-activity>, <pattern-purge>, <pattern-interest-generate>, <pattern-domain-activity>, <topic-use-check>, <pattern-use-check>, <source-context-name>, <receiver-context-name>, <sqn-window>, <context-query>, <gateway-keepalive>, <publishing-interval>

Example:

<tnw-gateway version="1.0">
<daemon>
...
</daemon>
<portals>
<peer>
...
</peer>
...
</portals>
</tnw-gateway>

## Router Element "<publishing-interval>" <-

DEPRECATED: Configures the rate at which Daemon Statistics messages are published. See daemonstatistics for general information on Daemon Statistics.

Informatica requests users to migrate to using the UM configuration file to enable automatic monitoring with Protocol Buffer monitoring format for Store and DRO by setting monitor_format (context) to "pb". See Automatic Monitoring.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <endpoint>, <peer>, <daemon-monitor>
- Children: <group>

Example:

<tnw-gateway version="1.0">
<daemon>
<daemon-monitor topic="umrouter.1">
<lbm-config>/path/umrouter_monitor.cfg</lbm-config>
<publishing-interval>
<group name="default" ivl="5"/>
<group name="gateway-config" ivl="30"/>
<group name="portal-config" ivl="30"/>
</publishing-interval>
...
</daemon-monitor>
</daemon>
...
</tnw-gateway>

## Router Element "<group>" <-

Configures the rate at which one particular grouping of Daemon Statistics messages are published. See daemonstatistics for general information on Daemon Statistics.

- Parent: <publishing-interval>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
name | Name of statistics group being configured. | `"default"` - Sets a default interval for all message types. `"gateway-config"` - Sets the interval for messages of type tnwg_dstat_gatewaycfg_msg_t. `"route-manager-topology"` - Sets the interval for messages of types tnwg_rm_stat_grp_msg_t. `"malloc-info"` - Sets the interval for messages of type tnwg_dstat_mallinfo_msg_t. `"portal-config"` - Sets the interval for messages of type tnwg_pcfg_stat_grp_msg_t. `"portal-stats"` - Sets the interval for messages of type tnwg_dstat_portalstats_msg_t | (no default; must be specified)
ivl | Time, in seconds, between publishing the statistics group being configured. | string | (no default; must be specified)

Example:

<tnw-gateway version="1.0">
<daemon>
<daemon-monitor topic="umrouter.1">
<lbm-config>/path/umrouter_monitor.cfg</lbm-config>
<publishing-interval>
<group name="default" ivl="5"/>
<group name="gateway-config" ivl="30"/>
<group name="portal-config" ivl="30"/>
</publishing-interval>
...
</daemon-monitor>
</daemon>
...
</tnw-gateway>

## Router Element "<gateway-keepalive>" <-

Contains parameters for the keepalive signals sent from this peer portal. This is a DRO-level keepalive, not to be confused with the TCP-level <keepalive> element.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <peer>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
idle | Determines if DRO keepalives should be sent only if no traffic has been sent or received in the last interval. | `"yes"` - Send only if no traffic has been exchanged. `"no"` - Send always, even of traffic has been exchanged. | `"yes"`
interval | Minimum interval, in milliseconds, between keepalive messages sent. Informatica recommends setting this to 2000 or greater. A value of 0 (zero) disables keepalives. | string | `"5000"`
timeout | Maximum time, in milliseconds, a peer can receive nothing from the companion before determining the connection is dead and disconnecting. We recommend setting this to 3 times the interval value. | string | `"15000"`

Example:

<tnw-gateway version="1.0">
...
<portals>
<peer>
<gateway-keepalive idle="no" interval="1000"/>
</peer>
</portals>
</tnw-gateway>

## Router Element "<context-query>" <-

Determines timing characteristics for context name queries generated at this portal.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <endpoint>, <peer>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
periodic-interval | Interval (in milliseconds) at which context queries are generated. Before changing the value of this option, please contact UM Support. | string | `"300000"`
max-contexts | Maximum number of contexts for which queries are generated at one time. Before changing the value of this option, please contact UM Support. | string | `"20"`
interval | Interval (in milliseconds) between groups of context queries. Before changing the value of this option, please contact UM Support. | string | `"200"`
timeout | Minimum time (in seconds) a context query must be unanswered before it is removed for the portal. Before changing the value of this option, please contact UM Support. | string | `"900"`

Example:

<tnw-gateway version="1.0">
...
<portals>
<endpoint>
<context-query periodic-interval="25000" max-contexts="15" interval="180" timeout="875"/>
</endpoint>
</portals>
</tnw-gateway>

## Router Element "<sqn-window>" <-

Specifies the portal's awareness of received message sequence numbers, for the purpose of detecting duplicates.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <endpoint>, <peer>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
size | Determines the maximum number of topic (fragment) sequence numbers maintained in the window, for any given source. Must be a multiple of 8. Before changing the value of this option, please contact UM Support. | string | `"16384"`
increment | Determines the minimum increment, in topic (fragment) sequence numbers, by which the sequence number window is moved when the window size (below) is exceeded. Must be a multiple of 8, an even divisor of the window size, and less the window size. Before changing the value of this option, please contact UM Support. | string | `"2048"`

Example:

<tnw-gateway version="1.0">
...
<portals>
<endpoint>
<sqn-window size="1024" increment="512"/>
</endpoint>
</portals>
</tnw-gateway>

## Router Element "<receiver-context-name>" <-

Specifies the portal receiver context name.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <endpoint>, <peer>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
xml:space | Specifies how whitespace (tabs, spaces, linefeeds) are handled in the element content. See xml:space Attribute. | `"default"` - Trim whitespace. `"preserve"` - Retain whitespace exactly as entered. | default

Example:

<tnw-gateway version="1.0">
...
<portals>
<endpoint>
<receiver-context-name>RcvContext01</source-context-name>
</endpoint>
</portals>
</tnw-gateway>

## Router Element "<source-context-name>" <-

Specifies the portal source context name.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <endpoint>, <peer>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
xml:space | Specifies how whitespace (tabs, spaces, linefeeds) are handled in the element content. See xml:space Attribute. | `"default"` - Trim whitespace. `"preserve"` - Retain whitespace exactly as entered. | default

Example:

<tnw-gateway version="1.0">
...
<portals>
<endpoint>
<source-context-name>SourceContext01</source-context-name>
</endpoint>
</portals>
</tnw-gateway>

## Router Element "<pattern-use-check>" <-

Checks for interest in patterns at periodic intervals. This element is deprecated and has no function.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <peer>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
periodic-interval | The interval (in milliseconds) at which source pattern are checked to determine if there is no more interest. This element is deprecated and has no function. | string | `"300000"`

## Router Element "<topic-use-check>" <-

Checks for interest in topics at periodic intervals. This element is deprecated and has no function.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <peer>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
periodic-interval | The interval (in milliseconds) at which source topics are checked to determine if there is no more interest. This element is deprecated and has no function. | string | `"300000"`

## Router Element "<pattern-domain-activity>" <-

Determines how long a domain remains quiescent until it is determined inactive. This element is deprecated and has no function.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <endpoint>, <peer>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
timeout | Minimum time (in seconds) domain interest for a pattern must be refreshed before interest is removed for that domain. This element is deprecated and has no function. | string | `"900"`

## Router Element "<pattern-interest-generate>" <-

Determines timing characteristics for interest message generation at this portal. This element is deprecated and has no function.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <endpoint>, <peer>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
periodic-interval | Interval (in milliseconds) at which pattern interest is generated. This element is deprecated and has no function. | string | `"300000"`
max-patterns | Maximum patterns for which interest is generated at one time. This element is deprecated and has no function. | string | `"300000"`
interval | Interval (in milliseconds) between groups of patterns. This element is deprecated and has no function. | string | `"200"`

## Router Element "<pattern-purge>" <-

Determines when this portal's proxy receivers can purge pattern. This element is deprecated and has no function.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <endpoint>, <peer>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
periodic-interval | Interval (in milliseconds) at which receiver patterns are checked to determine if they can be purged. This element is deprecated and has no function. | string | `"6000"`

## Router Element "<topic-domain-activity>" <-

Determines how long a domain remains quiescent until it is determined inactive. This element is deprecated and has no function.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <endpoint>, <peer>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
timeout | Minimum time (in seconds) domain interest for a topic must be refreshed before interest is removed for that domain. This element is deprecated and has no function. | string | `"900"`

## Router Element "<topic-interest-generate>" <-

Determines timing characteristics for interest message generation at this portal. This element is deprecated and has no function.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <endpoint>, <peer>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
periodic-interval | Interval (in milliseconds) at which topic interest is generated. This element is deprecated and has no function. | string | `"300000"`
max-topics | Maximum topics for which interest is generated at one time. This element is deprecated and has no function. | string | `"20"`
interval | Interval (in milliseconds) between groups of topics. This element is deprecated and has no function. | string | `"200"`

## Router Element "<topic-purge>" <-

Determines when this portal's proxy receivers can purge topics. This element is deprecated and has no function.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <endpoint>, <peer>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
periodic-interval | Interval (in milliseconds) at which receiver topics are checked to determine if they can be purged. This element is deprecated and has no function. | string | `"6000"`

## Router Element "<acl>" <-

Contains elements (inbound and outbound ACEs) that specify how an ACL (Access Control List) filters messages.

See Access Control Lists (ACL) for information on how ACLs work.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <endpoint>, <peer>
- Children: <inbound>, <outbound>

Example:

<tnw-gateway version="1.0">
...
<portals>
<endpoint>
<acl>
<inbound>
<ace>
<topic>AAA</topic>
</ace>
</inbound>
</acl>
</endpoint>
</portals>
</tnw-gateway>

## Router Element "<outbound>" <-

Container for ACE elements, to separate outbound ACEs from inbound ACEs.

See Access Control Lists (ACL) for information on how ACLs work.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <acl>
- Children: <ace>

Example:

Only forward messages for topics AAA and ABA.

<tnw-gateway version="1.0">
...
<portals>
<endpoint>
<acl>
<outbound>
<ace>
<pcre-pattern>^A[AB]A$</pcre-pattern>
</ace>
</outbound>
</acl>
</endpoint>
</portals>
</tnw-gateway>

## Router Element "<ace>" <-

Within an inbound or outbound ACL, you can have one or more "<ace>" elements. Each ACE (Access Control Entry) lets you match and accept or reject messages based on access control conditional elements, which are the elements contained within an "<ace>" element.

See Access Control Lists (ACL) for information on how ACLs work.

- Parent: <inbound>, <outbound>
- Children: <topic>, <pcre-pattern>, <regex-pattern>, <transport>, <source-ip>, <multicast-group>, <udp-source-port>, <udp-destination-port>, <tcp-source-port>, <xport-id>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
match | This required attribute determines what to do with matched messages. | `"accept"` - Pass the message. `"reject"` - Block the message. | (no default; must be specified)

Example:

<tnw-gateway version="1.0">
<portals>
<endpoint>
<name>LAN1</name>
<lbm-config>lan1.cfg</lbm-config>
<domain-id>1</domain-id>
<acl>
<inbound>
<ace match="accept">
<topic>ABC</topic>
</ace>
<ace match="accept">
<topic>DEF</topic>
<transport value=lbt-rm comparison=eq/>
</ace>
<ace match="accept">
<topic>GHI</topic>
</ace>
</inbound>
</acl>
</endpoint>
...

## Router Element "<xport-id>" <-

Defines a condition used in an ACE. Specifically, this matches the message's transport ID number (see transport_lbtipc_id (source)). This applies only to LBT-IPC transports.

Note
  The message's originating source might be remote (i.e. not be in this DRO portal's TRD). In that case, this condition matches the TRD-local proxy source's characteristic, not the originating source.

This conditional element can only be used in inbound ACLs.

See Access Control Lists (ACL) for information on how ACLs work.

- Parent: <ace>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
value | The xport ID number to be compared. | string | (no default; must be specified)
comparison | Defines a match condition. | `"eq"` - Matches if equal. `"equal"` - Matches if equal. `"ne"` - Matches if not equal. `"notequal"` - Matches if not equal. `"lt"` - Matches if less than. `"lessthan"` - Matches if less than. `"le"` - Matches if less than or equal to. `"lessthanequal"` - Matches if less than or equal to. `"gt"` - Matches if greater than. `"greaterthan"` - Matches if greater than. `"ge"` - Matches if greater than or equal to. `"greaterthanequal"` - Matches if greater than or equal to. | (no default; must be specified)

Example:

<ace match="accept">
<xport-id comparison="equal" value="1234"/>
</ace>

## Router Element "<tcp-source-port>" <-

Defines a condition used in an ACE. Specifically, this matches the message's TCP source port number (see transport_tcp_port (source)). This applies only to TCP transports.

Note
  The message's originating source might be remote (i.e. not be in this DRO portal's TRD). In that case, this condition matches the TRD-local proxy source's characteristic, not the originating source.

This conditional element can only be used in inbound ACLs.

See Access Control Lists (ACL) for information on how ACLs work.

- Parent: <ace>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
value | The xport ID number to be compared. | string | (no default; must be specified)
comparison | Defines a match condition. | `"eq"` - Matches if equal. `"equal"` - Matches if equal. `"ne"` - Matches if not equal. `"notequal"` - Matches if not equal. `"lt"` - Matches if less than. `"lessthan"` - Matches if less than. `"le"` - Matches if less than or equal to. `"lessthanequal"` - Matches if less than or equal to. `"gt"` - Matches if greater than. `"greaterthan"` - Matches if greater than. `"ge"` - Matches if greater than or equal to. `"greaterthanequal"` - Matches if greater than or equal to. | (no default; must be specified)

Example:

<ace match="accept">
<tcp-source-port comparison="equal" value="1234"/>
</ace>

## Router Element "<udp-destination-port>" <-

Defines a condition used in an ACE. Specifically, this matches the message's UDP destination port number (see transport_lbtrm_destination_port (source)). This applies only to LBT-RM transports.

Note
  The message's originating source might be remote (i.e. not be in this DRO portal's TRD). In that case, this condition matches the TRD-local proxy source's characteristic, not the originating source.

This conditional element can only be used in inbound ACLs.

See Access Control Lists (ACL) for information on how ACLs work.

- Parent: <ace>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
value | The xport ID number to be compared. | string | (no default; must be specified)
comparison | Defines a match condition. | `"eq"` - Matches if equal. `"equal"` - Matches if equal. `"ne"` - Matches if not equal. `"notequal"` - Matches if not equal. `"lt"` - Matches if less than. `"lessthan"` - Matches if less than. `"le"` - Matches if less than or equal to. `"lessthanequal"` - Matches if less than or equal to. `"gt"` - Matches if greater than. `"greaterthan"` - Matches if greater than. `"ge"` - Matches if greater than or equal to. `"greaterthanequal"` - Matches if greater than or equal to. | (no default; must be specified)

Example:

<ace match="accept">
<udp-destination-port comparison="equal" value="1234"/>
</ace>

## Router Element "<udp-source-port>" <-

Defines a condition used in an ACE. Specifically, matches the message's UDP source port number (see transport_lbtrm_source_port_low (context) and transport_lbtru_port (source)). This applies only to LBT-RM and LBT-RU transports.

Note
  The message's originating source might be remote (i.e. not be in this DRO portal's TRD). In that case, this condition matches the TRD-local proxy source's characteristic, not the originating source.

This conditional element can only be used in inbound ACLs.

See Access Control Lists (ACL) for information on how ACLs work.

- Parent: <ace>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
value | The xport ID number to be compared. | string | (no default; must be specified)
comparison | Defines a match condition. | `"eq"` - Matches if equal. `"equal"` - Matches if equal. `"ne"` - Matches if not equal. `"notequal"` - Matches if not equal. `"lt"` - Matches if less than. `"lessthan"` - Matches if less than. `"le"` - Matches if less than or equal to. `"lessthanequal"` - Matches if less than or equal to. `"gt"` - Matches if greater than. `"greaterthan"` - Matches if greater than. `"ge"` - Matches if greater than or equal to. `"greaterthanequal"` - Matches if greater than or equal to. | (no default; must be specified)

Example:

<ace match="accept">
<udp-source-port comparison="equal" value="1234"/>
</ace>

## Router Element "<multicast-group>" <-

Defines a condition used in an ACE. Specifically, this matches the message's multicast group address (see transport_lbtrm_multicast_address (source)). This applies only to LBT-RM transports.

Note
  The message's originating source might be remote (i.e. not be in this DRO portal's TRD). In that case, this condition matches the TRD-local proxy source's characteristic, not the originating source.

This conditional element can only be used in inbound ACLs.

See Access Control Lists (ACL) for information on how ACLs work.

- Parent: <ace>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
value | The xport ID number to be compared. | string | (no default; must be specified)
comparison | Defines a match condition. | `"eq"` - Matches if equal. `"equal"` - Matches if equal. `"ne"` - Matches if not equal. `"notequal"` - Matches if not equal. `"lt"` - Matches if less than. `"lessthan"` - Matches if less than. `"le"` - Matches if less than or equal to. `"lessthanequal"` - Matches if less than or equal to. `"gt"` - Matches if greater than. `"greaterthan"` - Matches if greater than. `"ge"` - Matches if greater than or equal to. `"greaterthanequal"` - Matches if greater than or equal to. | (no default; must be specified)

Example:

<ace match="accept">
<multicast-group comparison="equal" value="1234"/>
</ace>

## Router Element "<source-ip>" <-

Defines a condition used in an ACE. Specifically, this matches the message's source IP address. This applies only to TCP, LBT-RM, and LBT-RU transports.

Note
  The message's originating source might be remote (i.e. not be in this DRO portal's TRD). In that case, this condition matches the TRD-local proxy source's characteristic, not the originating source.

This conditional element can only be used in inbound ACLs.

See Access Control Lists (ACL) for information on how ACLs work.

- Parent: <ace>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
value | The xport ID number to be compared. | string | (no default; must be specified)
comparison | Defines a match condition. | `"eq"` - Matches if equal. `"equal"` - Matches if equal. `"ne"` - Matches if not equal. `"notequal"` - Matches if not equal. `"lt"` - Matches if less than. `"lessthan"` - Matches if less than. `"le"` - Matches if less than or equal to. `"lessthanequal"` - Matches if less than or equal to. `"gt"` - Matches if greater than. `"greaterthan"` - Matches if greater than. `"ge"` - Matches if greater than or equal to. `"greaterthanequal"` - Matches if greater than or equal to. | (no default; must be specified)

Example:

<ace match="accept">
<source-ip comparison="equal" value="1234"/>
</ace>

## Router Element "<transport>" <-

Defines a condition used in an ACE. Specifically, this matches a UM transport type (see transport (source)).

Note
  The message's originating source might be remote (i.e. not be in this DRO portal's TRD). In that case, this condition matches the TRD-local proxy source's characteristic, not the originating source.

This conditional element can only be used in inbound ACLs.

See Access Control Lists (ACL) for information on how ACLs work.

- Parent: <ace>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
value | The transport type to be matched. | `"tcp"` - TCP transport. `"lbt-rm"` - LBT-RM transport. `"lbtrm"` - LBT-RM transport. `"lbt-ru"` - LBT-RU transport. `"lbtru"` - LBT-RU transport. `"lbt-ipc"` - IPC transport. `"lbtipc"` - IPC transport. | (no default; must be specified)
comparison | Defines a match condition. | `"eq"` - Matches if equal. `"equal"` - Matches if equal. `"ne"` - Matches if not equal. `"notequal"` - Matches if not equal. | (no default; must be specified)

Example:

<ace match="accept">
<transport comparison="equal" value="lbtrm"/>
</ace>

## Router Element "<regex-pattern>" <-

Defines a condition used in an ACE. Specifically, this is a match pattern for one or more topics using a POSIX regular expression.

This element is deprecated. Please use <pcre-pattern> .

See Access Control Lists (ACL) for information on how ACLs work.

- Parent: <ace>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
xml:space | Specifies how whitespace (tabs, spaces, linefeeds) are handled in the element content. See xml:space Attribute. | `"default"` - Trim whitespace. `"preserve"` - Retain whitespace exactly as entered. | default

## Router Element "<pcre-pattern>" <-

Defines a condition used in an ACE. Specifically, this is a match pattern for one or more topics using a Perl Compatible Regular Expression (PCRE).

This conditional element can be use in both inbound and outbound ACLs.

See Access Control Lists (ACL) for information on how ACLs work.

- Parent: <ace>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
xml:space | Specifies how whitespace (tabs, spaces, linefeeds) are handled in the element content. See xml:space Attribute. | `"default"` - Trim whitespace. `"preserve"` - Retain whitespace exactly as entered. | default

Example 1:

This example will match patterns "ABC", "ABC789", and "ABC". It will not match "abc" or "123ABC".

<ace match="accept">
<pcre-pattern>
^ABC.*
</pcre-pattern>
</ace>

Example 2:

In this example, match any topic that has one or more spaces anywhere in the topic name. Note that the "xml:space" attribute defaults to "default", which trims leading and trailing spaces. Therefore that attribute must set to "preserve", and the pattern must be combined onto a single line (to avoid newlines in the pattern):

<ace match="accept">
<pcre-pattern xml:space="preserve"> </pcre-pattern>
</ace>

## Router Element "<topic>" <-

Defines a condition used in an ACE. Specifically, this matches a topic name.

This conditional element can be use in both inbound and outbound ACLs.

See Access Control Lists (ACL) for information on how ACLs work.

- Parent: <ace>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
xml:space | Specifies how whitespace (tabs, spaces, linefeeds) are handled in the element content. See xml:space Attribute. | `"default"` - Trim whitespace. `"preserve"` - Retain whitespace exactly as entered. | default

Example 1:

Accept messages for topic "ABC":

<ace match="accept">
<topic>ABC</topic>
</ace>

Example 2:

To match a topic name that includes a trailing space, you must use the change the xml:space attribute value:

<ace match="accept">
<topic xml:space="preserve">ABC </topic>
</ace>

## Router Element "<inbound>" <-

Container for ACE elements, to separate inbound ACEs from outbound ACEs.

See Access Control Lists (ACL) for information on how ACLs work.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <acl>
- Children: <ace>

Example:

<tnw-gateway version="1.0">
...
<portals>
<endpoint>
<acl>
<inbound>
<ace>
<topic>AAA</topic>
</ace>
</inbound>
</acl>
</endpoint>
</portals>
</tnw-gateway>

## Router Element "<lbm-attributes>" <-

Container for individual UM-option-setting elements. It lets you set individual UM attributes without referencing a UM configuration file. These values override any values set via files referenced by <lbm-config>.

Note
  Due to the order in which configuration options are processed, options specified in <lbm-attributes> do not override defaults set in <xml-config>. UM XML configuration files are flexible enough to allow proper overriding of common templates using named contexts. See <receiver-context-name> and <source-context-name>.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <endpoint>, <peer>
- Children: <option>

Example:

<tnw-gateway version="1.0">
...
<portals>
<endpoint>
<name>E2</name>
<domain-id>1</domain-id>
<lbm-attributes>
<option scope="context" name="request_tcp_interface" value="10.28.5.5" />
<option scope="context" name="response_tcp_interface" value="127.0.0.1" />
</lbm-attributes>
...
</endpoint>
</portals>
</tnw-gateway>

## Router Element "<option>" <-

Lets you set an individual UM configuration option without referencing a UM configuration file. This value overrides any values set via files referenced by <lbm-config>.

Note
  Some UM options specify interfaces, which can be done by supplying the device name of the interface. Special care must be taken when supplying device names. See Interface Device Names and XML for details.

- Parent: <lbm-attributes>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
scope | The type of object to which an option can apply. | `"receiver"` - Receiver option. `"context"` - Context option. `"source"` - Source option. `"wildcard_receiver"` - Wildcard Receiver option. `"event_queue"` - Event queue option. | (no default; must be specified)
name | The name of the option. | attr_name | (no default; must be specified)
value | The value for the option. | string | (no default; must be specified)

Example:

<tnw-gateway version="1.0">
...
<portals>
<endpoint>
<name>E2</name>
<domain-id>1</domain-id>
<lbm-attributes>
<option scope="context" name="request_tcp_interface" value="10.28.5.5" />
<option scope="context" name="response_tcp_interface" value="127.0.0.1" />
</lbm-attributes>
...
</endpoint>
</portals>
</tnw-gateway>

## Router Element "<lbm-config>" <-

Specifies the UM configuration file that contains configuration options associated with this portal.

Note that as of UM version 6.13, if one or more errors are discovered in the UM configuration file, the errors are written to the log file and the DRO continues running. I.e. errors in the UM configuration file are treated as warnings. See Configuration Error Handling for an explanation.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <endpoint>, <peer>, <daemon-monitor>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
xml:space | Specifies how whitespace (tabs, spaces, linefeeds) are handled in the element content. See xml:space Attribute. | `"default"` - Trim whitespace. `"preserve"` - Retain whitespace exactly as entered. | default

Example:

<tnw-gateway version="1.0">
...
<portals>
<endpoint>
<name>E2</name>
<domain-id>1</domain-id>
<lbm-config>/path/endpoint2.cfg</lbm-config>
...
</endpoint>
</portals>
</tnw-gateway>

## Router Element "<batching>" <-

Contains batching size and timing parameters for peer link implicit batching. This applies to data messages only: the DRO sends control messages immediately (flushing any batched data messages). Note: worst-case latency can be dramatically reduced by combining batching with <smart-batch>.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <peer>
- Children: <min-length>, <batch-interval>

Example:

<tnw-gateway version="1.0">
. . .
. . .
<portals>
<peer>
<batching>
<min-length>4096</min-length>
<batch-interval>500</batch-interval>
</batching>
</peer>
</portals>
</tnw-gateway>

## Router Element "<batch-interval>" <-

Specifies the maximum interval (in milliseconds) between when the first message of a batch is queued until the batch is sent. A message stays in the batch queue until this value or <min-length> is met or exceeded (whichever occurs first). The minimum allowed value is 3 milliseconds.

If not specified, it defaults to 200 milliseconds.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <batching>

Example:

<tnw-gateway version="1.0">
...
<portals>
<peer>
<batching>
<min-length>4096</min-length>
<batch-interval>500</batch-interval>
</batching>
</peer>
</portals>
</tnw-gateway>

## Router Element "<min-length>" <-

Specifies the minimum length of a set of batched messages. When the total length of the batched messages reaches or exceeds this value, the batch is sent.

If not specified, it defaults to 8192 bytes.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <batching>

Example:

<tnw-gateway version="1.0">
...
<portals>
<peer>
<batching>
<min-length>4096</min-length>
<batch-interval>500</batch-interval>
</batching>
</peer>
</portals>
</tnw-gateway>

## Router Element "<max-datagram>" <-

Specifies the maximum datagram size a peer portal will allow the peer link batcher to construct.

Note that this does not actually limit the size of the datagrams that can transit the peer link, it only limits the batching. For example, if this element is set to 4,000 and a series of 1K messages are sent, approximately 4 messages will be batched (depending on overhead) and forwarded across the peer link. However, if an 8K message is sent, it will be forwarded across the peer link as an 8K datagram.

Before changing the value of this option, please contact UM Support.

If not specified, it defaults to 65500, which is also the maximum allowable value.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <peer>

Example:

<tnw-gateway version="1.0">
...
<portals>
<peer>
<max-datagram>50000</max-datagram>
</peer>
</portals>
</tnw-gateway>

## Router Element "<smart-batch>" <-

Enables the smart batching algorithm used by the DRO when forwarding messages from one portal to another. Possible values are 0 (disable) and 1 (enable).

If not specified, it defaults to 0 (disabled).

In general, batching algorithms are used to increase throughput, but many such algorithms can produce latency outliers. The Smart Batching algorithm is designed to ensure low latencies by flushing the batching buffer when no more messages are waiting to be sent out the portal.

Smart batching works with both endpoint and peer portals. For endpoint portals, a UM configuration file may be provided to set the implicit_batching_minimum_length (source) option to a large value. For peer portals, the <batching> element may be used to set the <min-length> to a large value. In either case, large values are recommended and will not produce significant latency outliers.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <endpoint>, <peer>

Example:

<tnw-gateway version="1.0">
. . .
. . .
<portals>
<peer>
<smart-batch>1</smart-batch>
<batching>
<min-length>4096</min-length>
</batching>
</peer>
</portals>
</tnw-gateway>

## Router Element "<uim-max-queue>" <-

Sets the maximum buffer size in bytes for UIM messages.

If not specified, it defaults to 0 which implements legacy uim-queue-size behavior of 10% of queue-size.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <peer>

Example:

<tnw-gateway version="1.0">
<daemon>
...
</daemon>
<portals>
<endpoint>
<name>E1</name>
<domain-id>1</domain-id>
<uim-max-queue>500000</max-queue>
...
</endpoint>
</portals>
</tnw-gateway>

## Router Element "<max-queue>" <-

Sets the maximum buffer size in bytes for blocking messages.

If not specified, this defaults to 1000000 bytes.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <endpoint>, <peer>

Example:

<tnw-gateway version="1.0">
<daemon>
...
</daemon>
<portals>
<endpoint>
<name>E1</name>
<domain-id>1</domain-id>
<max-queue>500000</max-queue>
...
</endpoint>
</portals>
</tnw-gateway>

## Router Element "<source-deletion-delay>" <-

Sets the time in milliseconds to wait after a source is detected as deleted before deleting the proxy source. Applies to both endpoint and peer portals.

Sources can be detected as being deleted by an EOS event at an endpoint portal, or by a route map change. Note that a route map change could be due to failure of a DRO or link within a network.

If not specified, source-deletion-delay defaults to 1000 milliseconds.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <endpoint>, <peer>

Example:

<tnw-gateway version="1.0">
<daemon>
...
</daemon>
<portals>
<endpoint>
<name>E1</name>
<domain-id>1</domain-id>
<source-deletion-delay>2000</source-deletion-delay>
...
</endpoint>
</portals>
</tnw-gateway>

## Router Element "<udp>" <-

Enables the UDP Peer Link functionality.

Adds a UDP-based protocol, similar to Transport LBT-RU, to the peer link for message data. Note that the TCP peer link is still needed for command and control of the peer link.

At a minimum you must configure the port number using Router Element "<port>". Note that the port number supplied under "<udp>" is independent from the port number supplied under <single-tcp>.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <peer>
- Children: <port>, <receive-buffer>, <send-buffer>, <multiple-receive-max-datagrams>, <coalesce-threshold>, <transmission-window>, <peer-rate-limit>, <nak-handling>, <session-message>, <connect>

Example:

<tnw-gateway version="1.0">
...
<portals>
<peer>
<single-tcp>
...
</single-tcp>
<udp>
<port>12000</port>
...
</udp>
</peer>
</portals>
</tnw-gateway>

## Router Element "<connect>" <-

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <udp>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
attempt-interval | Time, in milliseconds, between connect retry attempts. | string | `"200"`
max-attempts | Number of times the UDP link will be retried before the portal gives up and re-initializes. Note that when the portal re-initializes, the initiator will again try to start both the TCP and the UDP links. | string | `"10"`

Controls the algorithms used to establish a connection for the UDP Peer Link. This element has no base value, but has several attributes that control the connection algorithms.

Example:

<tnw-gateway version="1.0">
...
<portals>
<peer>
<single-tcp>
...
</single-tcp>
<udp>
...
<connect attempt-interval="200" max-attempts="10"/>
...
</udp>
</peer>
</portals>
</tnw-gateway>

## Router Element "<session-message>" <-

Controls the sending of session (keep alive) messages for the UDP Peer Link. This element has no base value, but has several attributes that control the session messages.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <udp>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
min-interval | The minimum time in milliseconds between session messages. Corresponds to transport_lbtru_sm_minimum_interval (source). | string | `"200"`
max-interval | The maximum time in milliseconds between session messages. Corresponds to transport_lbtru_sm_maximum_interval (source). | string | `"10000"`
activity-timeout | The time in milliseconds during which a lack of messages (data or session) indicates that the connection is terminated. Corresponds to transport_lbtru_activity_timeout (receiver). | string | `"60000"`

Example:

<tnw-gateway version="1.0">
...
<portals>
<peer>
<single-tcp>
...
</single-tcp>
<udp>
...
<session-message min-interval="200" max-interval="10000" activity-timeout="60000"/>
...
</udp>
</peer>
</portals>
</tnw-gateway>

## Router Element "<nak-handling>" <-

Controls the algorithms used to repair lost datagrams for the UDP Peer Link. This element has no base value, but has several attributes that control the NAK algorithms.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <udp>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
initial-backoff-interval | The interval in milliseconds between the detection of loss and the transmission of the first NAK. Corresponds to transport_lbtru_nak_initial_backoff_interval (receiver). | string | `"0"`
backoff-interval | The maximum interval in milliseconds between NAKs for a given datagram, after the first NAK. Corresponds to transport_lbtru_nak_backoff_interval (receiver). | string | `"200"`
suppress-interval | The time in milliseconds that peer link receiver will suppress sending a NAK for a given missing datagram after an NCF is received from the peer. Corresponds to transport_lbtru_nak_suppress_interval (receiver). | string | `"1000"`
generation-interval | The maximum time in milliseconds that a lost datagram may be outstanding before the datagram is declared unrecoverable. Corresponds to transport_lbtru_nak_generation_interval (receiver). | string | `"10000"`
send-naks | Controls the sending of NAKs for missing packets. Corresponds to transport_lbtru_send_naks (receiver). | `"yes"` - Send NAKs to recover missing packets. `"no"` - Do not send NAKs to recover missing packets. (Missing packets will not be recovered.) | `"yes"`
ignore-interval | The interval in milliseconds that a sender will ignore additional NAKs after a retransmission is sent. Corresponds to transport_lbtru_ignore_interval (source). | string | `"100"`

Example:

<tnw-gateway version="1.0">
...
<portals>
<peer>
<single-tcp>
...
</single-tcp>
<udp>
...
<nak-handling initial-backoff-interval="0" backoff-interval="200"
suppress-interval="1000" generation-interval="10000"
ignore-interval="100" send-naks="yes"/>
...
</udp>
</peer>
</portals>
</tnw-gateway>

## Router Element "<peer-rate-limit>" <-

Controls the rate limiter for the UDP Peer Link. This element has no base value, but has several attributes that control the rate limiter.

Note that each peer portal of a DRO that uses a UDP peer link has an independent rate limiter. I.e. traffic sent on one peer link does not count against the rate limiter for a different peer link.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <udp>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
data | Maximum transmission rate (in bits per second) for the UDP data sent by this peer portal, including internal overhead bytes. Corresponds to transport_lbtru_data_rate_limit (context). | string | `"10000000"`
retransmit | Maximum transmission rate (in bits per second) for the UDP data re-sent by this peer portal, including internal overhead bytes. Data is re-sent if it is lost and the peer requests retransmission by sending NAKs. Corresponds to transport_lbtru_retransmit_rate_limit (context). | string | `"5000000"`
interval | Period (in milliseconds) that the UDP peer link rate limiter runs. Corresponds to transport_lbtru_rate_interval (context). | string | `"100"`

Example:

<tnw-gateway version="1.0">
...
<portals>
<peer>
<single-tcp>
...
</single-tcp>
<udp>
...
<peer-rate-limit data="10000000" retransmit="5000000" interval="100"/>
...
</udp>
</peer>
</portals>
</tnw-gateway>

## Router Element "<transmission-window>" <-

Controls the UDP Peer Link memory buffer used to retransmit datagrams that are lost/dropped. This element has no base value, but has several attributes that control the transmission window.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <udp>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
size | Number of bytes of user message data to store in the transmission window, not including internal overhead bytes. Corresponds to transport_lbtru_transmission_window_size (source). | string | `"25165824"`
limit | Limit on memory used by transmission window, including internal overhead bytes. Value of 0 indicates no limit (but the "size" attribute imposes its own limit). Corresponds to transport_lbtru_transmission_window_limit (source). | string | `"0"`

Example:

<tnw-gateway version="1.0">
...
<portals>
<peer>
<single-tcp>
...
</single-tcp>
<udp>
...
<transmission-window size="25165824" limit="0"/>
...
</udp>
</peer>
</portals>
</tnw-gateway>

## Router Element "<coalesce-threshold>" <-

Sets the coalesce threshold for the UDP Peer Link.

Corresponds to transport_lbtru_coalesce_threshold (source).

This should normally be left at its default (15).

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <udp>

Example:

<tnw-gateway version="1.0">
...
<portals>
<peer>
<single-tcp>
...
</single-tcp>
<udp>
...
<coalesce-threshold>15</coalesce-threshold>
...
</udp>
</peer>
</portals>
</tnw-gateway>

## Router Element "<multiple-receive-max-datagrams>" <-

Enables the Receive Multiple Datagrams feature for the UDP Peer Link and specifies the maximum number of datagrams to read at a time.

See multiple_receive_maximum_datagrams (context) for more details.

Note that each peer portal of a DRO that uses a UDP peer link has an independent setting for multiple-receive-max-datagrams. I.e. different portals can have different values configured.

If not specified, the default value is 0, which disables receiving multiple datagrams.

For high-throughput applications, Informatica recommends setting this between 10 and 100 (larger values will consume more memory).

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <udp>

Example:

<tnw-gateway version="1.0">
...
<portals>
<peer>
<single-tcp>
...
</single-tcp>
<udp>
...
<multiple-receive-max-datagrams>
0
</multiple-receive-max-datagrams>
...
</udp>
</peer>
</portals>
</tnw-gateway>

## Router Element "<send-buffer>" <-

Contains the size of the send-side socket buffer.

The default value depends on the parent element:

- For Router Element "<single-tcp>", the default is 0, which allows the OS to do TCP autotuning. If not specified, the DRO uses the system default size.
- For Router Element "<udp>", the default is 1048576.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <tcp>, <single-tcp>, <udp>

Example:

<tnw-gateway version="1.0">
...
<portals>
<peer>
<single-tcp>
<send-buffer>128000</send-buffer>
...
</single-tcp>
</peer>
</portals>
</tnw-gateway>

## Router Element "<receive-buffer>" <-

Contains the size of the receive-side socket buffer.

The default value depends on the parent element:

- For Router Element "<single-tcp>", the default is 0, which allows the OS to do TCP autotuning. If not specified, the DRO uses the system default size.
- For Router Element "<udp>", the default is 8388608.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <tcp>, <single-tcp>, <udp>

Example:

<tnw-gateway version="1.0">
...
<portals>
<peer>
<single-tcp>
<receive-buffer>128000</receive-buffer>
...
</single-tcp>
</peer>
</portals>
</tnw-gateway>

## Router Element "<port>" <-

Used by the peer link for both <single-tcp> and the optional <udp> elements.

For TCP, contains the IP port used by the initiator to connect to the acceptor portal's Router Element "<listen-port>".

For UDP, contains the IP port that the portal uses for both incoming and outgoing data.

The TCP and UDP ports are independent of each other.

(As of UM version 6.10, dual TCP (<tcp>) is no longer supported. Please use <single-tcp> instead.)

- Parent: <companion>, <initiator>, <udp>

Example:

<tnw-gateway version="1.0">
...
<portals>
<peer>
<single-tcp>
<initiator>
<address>10.28.3.91</address>
<port>25000</port>
</initiator>
...
</single-tcp>
</peer>
</portals>
</tnw-gateway>

## Router Element "<single-tcp>" <-

Contains elements for a peer portal's tcp settings, when configuring the peer.

Note: the term "single-tcp" is an unfortunate artifact from earlier versions of UM that also supported a dual TCP peer link. That feature was eliminated, leaving "single-tcp" as the only available type of peer link. The name "single-tcp" does not imply "tcp-only"; the optional Router Element "<udp>" is available under <single-tcp>.

- Parent: <peer>
- Children: <interface>, <receive-buffer>, <send-buffer>, <keepalive>, <nodelay>, <compression>, <tls>, <initiator>, <acceptor>

Example:

<tnw-gateway version="1.0">
...
<portals>
<peer>
<single-tcp>
<interface>10.28.5.5/24</interface>
<acceptor>
<listen-port>23746</listen-port>
</acceptor>
...
</single-tcp>
</peer>
</portals>
</tnw-gateway>

## Router Element "<acceptor>" <-

Contains the listen port address of the corresponding acceptor peer portal on another DRO, to which this peer is connected. This element is used in single-tcp peer configurations.

- Parent: <single-tcp>
- Children: <listen-port>

Example:

<tnw-gateway version="1.0">
...
<portals>
<peer>
<single-tcp>
<acceptor>
<listen-port>25000</port>
</acceptor>
...
</single-tcp>
</peer>
</portals>
</tnw-gateway>

## Router Element "<listen-port>" <-

Contains port number on which an acceptor peer portal listens for connections from the initiating peer portal. There is no default for the port number, the initiating peer portal configuration must specify this port as its initiator port.

- Parent: <tcp>, <acceptor>

Example:

<tnw-gateway version="1.0">
...
<portals>
<peer>
<single-tcp>
<acceptor>
<listen-port>46000</listen-port>
</acceptor>
...
</single-tcp>
</peer>
</portals>
</tnw-gateway>

## Router Element "<initiator>" <-

Contains the IP address and the port of the corresponding acceptor peer portal on another DRO, to which this peer is connected. This element is used in single-tcp peer configurations.

- Parent: <single-tcp>
- Children: <address>, <port>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
reconnect-interval | The time interval, in milliseconds, to wait before reconnecting to the companion portal if this connection is interrupted. | string | `"5000"`

Example:

<tnw-gateway version="1.0">
...
<portals>
<peer>
<single-tcp>
<initiator>
<address>10.28.3.91</address>
<port>25000</port>
</initiator>
...
</single-tcp>
</peer>
</portals>
</tnw-gateway>

## Router Element "<address>" <-

Contains the IP address of the acceptor peer portal on another DRO, to which this initiator peer is connected via "single TCP". (As of UM version 6.10, dual TCP (<tcp>) is no longer supported. Please use <single-tcp> instead.)

- Parent: <companion>, <initiator>

Example:

<tnw-gateway version="1.0">
...
<portals>
<peer>
<single-tcp>
<initiator>
<address>10.28.3.91</address>
<port>25000</port>
</initiator>
...
</single-tcp>
</peer>
</portals>
</tnw-gateway>

## Router Element "<tls>" <-

Contains elements to configure TCP-only peer link encryption.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <tcp>, <single-tcp>
- Children: <certificate>, <certificate-key>, <certificate-key-password>, <trusted-certificates>, <cipher-suites>

Example:

<tnw-gateway version="1.0">
...
<portals>
<peer>
<single-tcp>
<tls>
<certificate>test.crt<certificate>
<certificate-key>test.key<certificate-key>
<certificate-key-password>
CorrectHorseBatteryStaple
</certificate-key-password>
<trusted-certificates>peers.crt<trusted-certificates>
</tls>
...
</single-tcp>
</peer>
</portals>
</tnw-gateway>

## Router Element "<cipher-suites>" <-

Defines the list of one or more (comma separated) names of cipher suites that the context will accept. See OpenSSL's Cipher Suite Names for the full list of suite names. When configuring UM, use the OpenSSL names (with dashes), not* the IANA names (with underscores).

If more than one suite name is supplied, they should be in descending order of preference. When a remote context negotiates encrypted TCP, the two sides must find a cipher suite in common, otherwise the connection will be canceled.

The default is highly secure and is recommended.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <tls>

Example:

<tnw-gateway version="1.0">
...
<portals>
<peer>
<single-tcp>
<tls>
<cipher-suites>TLS_DHE_RSA_WITH_AES_256_GCM_SHA384<cipher-suites>
...
</tls>
...
</single-tcp>
</peer>
</portals>
</tnw-gateway>

## Router Element "<trusted-certificates>" <-

Specifies the path to a file containing one or more OpenSSL-compatible PEM-formatted TLS client certificates and certificate authorities. If this element is not supplied, the default behavior is to use the system-level trusted certificates and certificate authorities (operating-system dependent). The TLS server uses these trusted certificates to verify the identity of connecting clients. If a client connects and presents a certificate which is not in the server's trusted certificates file, the connection will be canceled.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <tls>

Example:

<tnw-gateway version="1.0">
...
<portals>
<peer>
<single-tcp>
<tls>
<trusted-certificates>peers.crt<trusted-certificates>
...
</tls>
...
</single-tcp>
</peer>
</portals>
</tnw-gateway>

## Router Element "<certificate-key-password>" <-

Specifies the passphrase needed to decrypt the server private key file specified by <certificate-key>.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <tls>

Example:

<tnw-gateway version="1.0">
...
<portals>
<peer>
<single-tcp>
<tls>
<certificate-key-password>
CorrectHorseBatteryStaple
</certificate-key-password>
...
</tls>
...
</single-tcp>
</peer>
</portals>
</tnw-gateway>

## Router Element "<certificate-key>" <-

Specifies the path to a file containing the private key associated with the "server" certificate specified by <certificate>. Note that this private key must be protected from intruders. For that reason, when the certificate and private key files are generated, the private key file is typically encrypted with a passphrase. The passphrase is supplied using <certificate-key-password>.

- Parent: <tls>

Example:

<tnw-gateway version="1.0">
...
<portals>
<peer>
<single-tcp>
<tls>
<certificate-key>test.key<certificate-key>
...
</tls>
...
</single-tcp>
</peer>
</portals>
</tnw-gateway>

## Router Element "<certificate>" <-

Specifies the path to a file containing an OpenSSL-compatible PEM-formatted certificate that will be presented as the TLS server certificate when a TLS connection is established by a client.

- Parent: <tls>

Example:

<tnw-gateway version="1.0">
...
<portals>
<peer>
<single-tcp>
<tls>
<certificate>test.crt<certificate>
...
</tls>
...
</single-tcp>
</peer>
</portals>
</tnw-gateway>

## Router Element "<compression>" <-

Enables compression and sets the desired data compression algorithm for the TCP-only peer link. Currently, only LZ4 lossless data compression is supported.

If not specified, no compression is used.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <tcp>, <single-tcp>

Example:

<tnw-gateway version="1.0">
...
<portals>
<peer>
<single-tcp>
<compression>LZ4</compression>
...
</single-tcp>
</peer>
</portals>
</tnw-gateway>

## Router Element "<nodelay>" <-

Enables setting the TCP_NODELAY socket option on the peer link. Setting TCP_NODELAY disables Nagle's algorithm, which somewhat decreases the efficiency and throughput of TCP, but decreases the latency of individual messages.

By default, TCP_NODELAY is not set (maximizes efficiency).

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <tcp>, <single-tcp>

Example:

<tnw-gateway version="1.0">
...
<portals>
<peer>
<single-tcp>
<nodelay/>
...
</single-tcp>
</peer>
</portals>
</tnw-gateway>

## Router Element "<keepalive>" <-

When present, enables a TCP keepalive signal transmission, which is disabled by default.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <tcp>, <single-tcp>

Example:

<tnw-gateway version="1.0">
. . .
. . .
<portals>
<peer>
<single-tcp>
<keepalive/>
. . .
. . .
</single-tcp>
</peer>
</portals>
</tnw-gateway>

## Router Element "<interface>" <-

Contains the IP host or network address for this peer portal, specified in dotted-decimal or CIDR format.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <tcp>, <single-tcp>

Example:

<tnw-gateway version="1.0">
...
<portals>
<peer>
<single-tcp>
<interface>10.28.5.5/24</interface>
...
</single-tcp>
</peer>
</portals>
</tnw-gateway>

## Router Element "<tcp>" <-

DEPRECATED AND ELIMINATED AS OF UM 6.10. DO NOT USE. Contains elements for a peer portal's "dual TCP" settings. (As of UM version 6.10, dual TCP (<tcp>) is no longer supported. Please use <single-tcp> instead.)

- Parent: <peer>
- Children: <interface>, <listen-port>, <receive-buffer>, <send-buffer>, <keepalive>, <nodelay>, <compression>, <tls>, <companion>

## Router Element "<companion>" <-

DEPRECATED AND ELIMINATED AS OF UM 6.10. DO NOT USE. Contains the IP address and the port of the companion peer portal on another DRO, to which this peer is connected via "dual TCP". (As of UM version 6.10, dual TCP (<tcp>) is no longer supported. Please use <single-tcp> instead.)

- Parent: <tcp>
- Children: <address>, <port>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
reconnect-interval |  | string |

## Router Element "<sourcemap>" <-

Sets the size of the peer portal's source map. This normally does not need to be modified, but if very large numbers of topics are being used, a larger value might improve efficiency.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <peer>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
size | Number of entries in the source map. Value must be a power of 2 (e.g., 1024, 2048, ...). | string | `"131072"`

Example:

<tnw-gateway version="1.0">
. . .
. . .
<portals>
<peer>
<sourcemap size="131072"/>
. . .
. . .
</peer>
</portals>
</tnw-gateway>

## Router Element "<cost>" <-

Assigns a positive non-zero integer cost to the portal.

If not specified, it defaults to 1. See Forwarding Costs.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <endpoint>, <peer>

Example:

<tnw-gateway version="1.0">
<daemon>
...
</daemon>
<portals>
<endpoint>
<name>E1</name>
<domain-id>1</domain-id>
<cost>25</cost>
...
</endpoint>
</portals>
</tnw-gateway>

## Router Element "<name>" <-

Lets you set a name for this DRO (do not duplicate for any other known DROs), or for the name of an endpoint or peer portal. Each portal name must be unique within the DRO.

If not specified, no name is assigned.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <daemon>, <endpoint>, <peer>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
xml:space | Specifies how whitespace (tabs, spaces, linefeeds) are handled in the element content. See xml:space Attribute. | `"default"` - Trim whitespace. `"preserve"` - Retain whitespace exactly as entered. | default

Example:

<tnw-gateway version="1.0">
<daemon>
<name>DRO1</name>
</daemon>
<portals>
<endpoint>
<name>endpoint1</name>
...
</endpoint>
</portals>
...
</tnw-gateway>

## Router Element "<endpoint>" <-

Container element for all configuration options of a single endpoint portal.

- Parent: <portals>
- Children: <name>, <domain-id>, <cost>, <hotlink-index>, <route-group>, <source-deletion-delay>, <max-queue>, <smart-batch>, <lbm-config>, <lbm-attributes>, <acl>, <topic-resolution>, <late-join>, <topic-purge>, <topic-interest-generate>, <topic-domain-activity>, <pattern-purge>, <pattern-interest-generate>, <pattern-domain-activity>, <remote-topic>, <remote-pattern>, <source-context-name>, <receiver-context-name>, <sqn-window>, <context-query>, <publishing-interval>

Example:

<tnw-gateway version="1.0">
<daemon>
...
</daemon>
<portals>
<endpoint>
<name>E1</name>
<domain-id>1</domain-id>
<cost>1</cost>
...
</endpoint>
</portals>
</tnw-gateway>

## Router Element "<remote-pattern>" <-

Determines timings and limits for determination of continued pattern interest at this portal.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <endpoint>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
check-interval | Interval (in milliseconds) between checking individual patterns for continued interest. Before changing the value of this option, please contact UM Support. | string | `"90000"`
max-patterns | Maximum number of patterns to check at a time. Before changing the value of this option, please contact UM Support. | string | `"100"`
timeout | Minimum time (in milliseconds) remote interest for a pattern must be refreshed before interest is removed for that domain. Before changing the value of this option, please contact UM Support. | string | `"300000"`

Example:

<tnw-gateway version="1.0">
...
<portals>
<endpoint>
<remote-pattern check-interval="80000" max-patterns="80" timeout="250000"/>
</endpoint>
</portals>
</tnw-gateway>

## Router Element "<remote-topic>" <-

Determines timings and limits for determination of continued topic interest at this portal.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <endpoint>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
check-interval | Interval (in milliseconds) between checking individual topics for continued interest. Before changing the value of this option, please contact UM Support. | string | `"90000"`
max-topics | Maximum number of topics to check at a time. Before changing the value of this option, please contact UM Support. | string | `"100"`
timeout | Minimum time (in milliseconds) remote interest for a topic must be refreshed before interest is removed for that domain. Before changing the value of this option, please contact UM Support. | string | `"300000"`

Example:

<tnw-gateway version="1.0">
. . .
. . .
<portals>
<endpoint>
<remote-topic check-interval="80000" max-topics="80" timeout="250000"/>
</endpoint>
</portals>
</tnw-gateway>

## Router Element "<late-join>" <-

DEPRECATED AND ELIMINATED. DO NOT USE. Determines how Late Join is handled by this endpoint portal.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <endpoint>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
provide |  | `"source"` `"always"` `"never"` |
forward |  | `"yes"` `"no"` |

## Router Element "<topic-resolution>" <-

Container for DRO topic resolution behavior options.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <endpoint>
- Children: <topic-use-query>, <pattern-use-query>, <remote-topic-interest>, <remote-pattern-interest>, <domain-route>, <initial-request>

Example:

<tnw-gateway version="1.0">
. . .
. . .
<portals>
<endpoint>
<topic-resolution>
<initial-request>
<rate-limit/>
</initial-request>
</topic-resolution>
</endpoint>
</portals>
</tnw-gateway>

## Router Element "<initial-request>" <-

Sets interval and duration for initial topic resolution requests.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <topic-resolution>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
periodic-interval | The interval at which the initial topic resolution requests are sent. Before changing the value of this option, please contact UM Support. | string | `"1000"`
duration | The minimum duration for which the initial topic resolution requests are sent. Before changing the value of this option, please contact UM Support. | string | `"10"`

Example:

<tnw-gateway version="1.0">
...
<portals>
<endpoint>
<topic-resolution>
<initial-request duration="15" periodic-interval="800"/>
</topic-use-query>
</topic-resolution>
</endpoint>
</portals>
</tnw-gateway>

## Router Element "<domain-route>" <-

Sets maximum and minimum limits for the interval between periodic domain route messages being sent for each remote domain that the portal is servicing.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <topic-resolution>
- Children: <rate-limit>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
min-interval | The minimum interval, in milliseconds, between domain route messages being sent for each domain. | string | `"100"`
max-interval | The maximum interval, in milliseconds, between domain route messages being sent for each domain. | string | `"1000"`

Example:

<tnw-gateway version="1.0">
...
<portals>
<endpoint>
<topic-resolution>
<domain-route min-interval="100" max-interval="1000">
<rate-limit bps="0" objects-per-second="50"/>
</domain-route>
</topic-resolution>
</endpoint>
</portals>
</tnw-gateway>

## Router Element "<rate-limit>" <-

Sets rate limits for topic resolution data sent over the network.

You can set rate limits individually for each of the topic resolution message types (see children elements).

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <topic-use-query>, <pattern-use-query>, <remote-topic-interest>, <remote-pattern-interest>, <domain-route>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
bps | The limit in Bits per Second that data will be sent on the network. A value of 0 disables limiting by bits per second. Before changing the value of this option, please contact UM Support. | string | "500000" (For use queries and interest messages) "0" (For domain route messages)
objects-per-second | The limit in Objects per Second that data will be sent on the network. A value of 0 disables limiting by objects per second. Before changing the value of this option, please contact UM Support. | string | "500" (For use queries) "0" (For interest messages) "50" (For domain route messages)

Example:

<tnw-gateway version="1.0">
...
<portals>
<endpoint>
<topic-resolution>
<topic-use-query max="6" periodic-interval="250000" timeout="4000"/>
<rate-limit bps="550000" objects-per-second="0"/>
</topic-use-query>
</topic-resolution>
</endpoint>
</portals>
</tnw-gateway>

## Router Element "<remote-pattern-interest>" <-

Sets parameters for when and how often this endpoint portal sends pattern interest messages

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <topic-resolution>
- Children: <rate-limit>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
min-interval | The minimum interval, in milliseconds, between pattern interest messages being sent for each pattern the portal has interest in. | string | `"1000"`
max-interval | The maximum interval, in milliseconds, between pattern interest messages being sent for each pattern the portal has interest in. | string | `"60000"`

Example:

<tnw-gateway version="1.0">
...
<portals>
<endpoint>
<topic-resolution>
<remote-pattern-interest min-interval="1000" max-interval="90000">
<rate-limit/>
</remote-pattern-interest>
</topic-resolution>
</endpoint>
</portals>
</tnw-gateway>

## Router Element "<remote-topic-interest>" <-

Sets parameters for when and how often this endpoint portal sends topic interest messages.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <topic-resolution>
- Children: <rate-limit>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
min-interval | The minimum interval, in milliseconds, between topic interest messages being sent for each topic the portal has interest in. | string | `"1000"`
max-interval | The maximum interval, in milliseconds, between topic interest messages being sent for each topic the portal has interest in. | string | `"60000"`

Example:

<tnw-gateway version="1.0">
...
<portals>
<endpoint>
<topic-resolution>
<remote-topic-interest min-interval="1000" max-interval="90000">
<rate-limit/>
</remote-topic-interest>
</topic-resolution>
</endpoint>
</portals>
</tnw-gateway>

## Router Element "<pattern-use-query>" <-

Sets parameters for when and how often this endpoint portal sends pattern use queries.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <topic-resolution>
- Children: <rate-limit>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
timeout | The maximum time, in milliseconds, to wait for a pattern use response. Before changing the value of this option, please contact UM Support. | string | `"3000"`
max | Maximum number of pattern use queries to send for a given pattern, each separated by the timeout value before giving up and removing the topic from the topic list. Before changing the value of this option, please contact UM Support. | string | `"5"`
periodic-interval | The interval, in milliseconds, between periodic pattern use queries being sent for each pattern the portal has interest in. Before changing the value of this option, please contact UM Support. | string | `"300000"`

Example:

<tnw-gateway version="1.0">
...
<portals>
<endpoint>
<topic-resolution>
<pattern-use-query max="6" periodic-interval="250000" timeout="4000">
<rate-limit/>
</topic-use-query>
</topic-resolution>
</endpoint>
</portals>
</tnw-gateway>

## Router Element "<topic-use-query>" <-

Sets parameters for when and how often this endpoint portal sends topic use queries.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <topic-resolution>
- Children: <rate-limit>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
timeout | The maximum time, in milliseconds, to wait for a topic use response. Before changing the value of this option, please contact UM Support. | string | `"3000"`
max | Maximum number of topic use queries to send for a given topic, each separated by the timeout value before giving up and removing the topic from the topic list. Before changing the value of this option, please contact UM Support. | string | `"5"`
periodic-interval | The interval, in milliseconds, between periodic topic use queries being sent for each topic the portal has interest in. Before changing the value of this option, please contact UM Support. | string | `"300000"`

Example:

<tnw-gateway version="1.0">
...
<portals>
<endpoint>
<topic-resolution>
<topic-use-query max="6" periodic-interval="250000" timeout="4000">
<rate-limit/>
</topic-use-query>
</topic-resolution>
</endpoint>
</portals>
</tnw-gateway>

## Router Element "<route-group>" <-

Used with DRO Hotlinks feature.

Range: 0-65535 If not specified, it defaults to 1. Route group numbers can be re-used in different TRDs.

- Cardinality (number of times element can be supplied): 0 .. unbounded
- Parent: <endpoint>

Example:

<tnw-gateway version="1.0">
<daemon>
...
</daemon>
<portals>
<endpoint>
<name>E1</name>
<domain-id>1</domain-id>
<hotlink-index>1</hotlink-index>
<route-group>1</route-group>
<route-group>2</route-group>
...
</endpoint>
</portals>
</tnw-gateway>

## Router Element "<hotlink-index>" <-

Used with DRO Hotlinks feature.

Range: 0-65535 If not specified, it defaults to 0 (do not participate in hotlink). Every DRO operating in hotlink mode must have a unique hotlink index value within a given TRD. Index values can be reused in different TRDs.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <endpoint>

Example:

<tnw-gateway version="1.0">
<daemon>
...
</daemon>
<portals>
<endpoint>
<name>E1</name>
<domain-id>1</domain-id>
<hotlink-index>0</hotlink-index>
...
</endpoint>
</portals>
</tnw-gateway>

## Router Element "<domain-id>" <-

Identifies the TRD for this endpoint portal. It must be unique within the DRO (which means that for any TRD, you can assign only one endpoint portal per DRO). Also, all endpoints interfacing a given TRD must have the same `<domain-id>` value.

There is no default, it must be supplied.

- Parent: <endpoint>

Example:

<tnw-gateway version="1.0">
...
<portals>
<endpoint>
<name>E1</name>
<domain-id>1</domain-id>
<cost>1</cost>
...
</endpoint>
</portals>
</tnw-gateway>

## Router Element "<daemon>" <-

Container for options common to the entire DRO process.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <tnw-gateway>
- Children: <name>, <log>, <uid>, <gid>, <pidfile>, <lbm-license-file>, <topicmap>, <patternmap>, <monitor>, <web-monitor>, <daemon-monitor>, <propagation-delay>, <xml-config>, <route-info>, <route-recalculation>

Example:

<tnw-gateway version="1.0">
<daemon>
...
</daemon>
...
</tnw-gateway>

## Router Element "<route-recalculation>" <-

Lets you set timing parameters for DRO rerouting route calculation behavior.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <daemon>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
backoff-interval | How long, in milliseconds, the DRO waits after the last detected change in topology before initiating a route recalculation. | string | `"5000"`
warning-interval | How long, in milliseconds, the DRO waits before warning that a route recalculation is being held up due to a non-converging topology. | string | `"10000"`

Example:

<tnw-gateway version="1.0">
<daemon>
...
<route-recalculation backoff-interval="5000" warning-interval="10000"/>
</daemon>
...
</tnw-gateway>

## Router Element "<route-info>" <-

Lets you set control parameters for DRO initial route setup (or reroute) behavior.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <daemon>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
propagation-interval | The time interval between route information messages that the DRO sends to other DRO. | string | `"1000"`
check-interval | How often the DRO checks to see if a route information message needs to be sent, a DRO has timed out, and/or the routes need to be recalculated. | string | `"750"`
timeout | How long a DRO waits after receiving no route information messages from another DRO before determining that that DRO is out of service or unreachable. | string | `"4000"`
max-hop-count | The maximum number of DROs a route information message can traverse before being discarded. | string | `"100"`

Example:

<tnw-gateway version="1.0">
<daemon>
...
<route-info propagation-interval="1000" check-interval="750" timeout="4000" max-hop-count="100"/>
</daemon>
...
</tnw-gateway>

## Router Element "<xml-config>" <-

Specifies the UM XML configuration file.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <daemon>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
xml:space | Specifies how whitespace (tabs, spaces, linefeeds) are handled in the element content. See xml:space Attribute. | `"default"` - Trim whitespace. `"preserve"` - Retain whitespace exactly as entered. | default

Example:

<tnw-gateway version="1.0">
<daemon>
...
<xml-config>configfile.xml</xml-config>
</daemon>
...
</tnw-gateway>

## Router Element "<propagation-delay>" <-

DEPRECATED AND ELIMINATED. DO NOT USE. Specifies the difference between the shortest and longest propagation delays in the network.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <daemon>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
delta |  | string |

## Router Element "<daemon-monitor>" <-

DEPRECATED: Configures the Daemon Statistics feature. See daemonstatistics for general information on Daemon Statistics.

Informatica requests users to migrate to using the UM configuration file to enable automatic monitoring with Protocol Buffer monitoring format for Store and DRO by setting monitor_format (context) to "pb". See Automatic Monitoring.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <daemon>
- Children: <lbm-config>, <publishing-interval>, <remote-snapshot-request>, <remote-config-changes-request>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
topic | Topic name to use for publishing Daemon Statistics. | string | `"tnwgd.monitor"`

Example:

<tnw-gateway version="1.0">
<daemon>
...
<daemon-monitor topic="umrouter.1">
<lbm-config>/path/umrouter_monitor.cfg</lbm-config>
<publishing-interval>
...
</publishing-interval>
<remote-snapshot-request allow="1"/>
<remote-config-changes-request allow="0"/>
</daemon-monitor>
</daemon>
...
</tnw-gateway>

## Router Element "<remote-config-changes-request>" <-

Configures whether the DRO will respond to monitoring apps requests to change the rate at which Daemon Statistics messages are published. See daemonstatistics for general information on Daemon Statistics.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <daemon-monitor>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
allow | Enable or disable change requests. | `"0"` - Ignore change requests. `"1"` - Respond to change requests. | `"0"`

Example:

<tnw-gateway version="1.0">
<daemon>
...
<daemon-monitor topic="umrouter.1">
<lbm-config>/path/umrouter_monitor.cfg</lbm-config>
<publishing-interval>
...
</publishing-interval>
<remote-snapshot-request allow="1"/>
<remote-config-changes-request allow="0"/>
</daemon-monitor>
</daemon>
...
</tnw-gateway>

## Router Element "<remote-snapshot-request>" <-

Configures whether the DRO will respond to monitoring apps requests to send on-demand snapshots of daemon statistics. See daemonstatistics for general information on Daemon Statistics.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <daemon-monitor>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
allow | Enable or disable snapshot requests. | `"0"` - Ignore snapshot requests. `"1"` - Respond to snapshot requests. | `"0"`

Example:

<tnw-gateway version="1.0">
<daemon>
...
<daemon-monitor topic="umrouter.1">
<lbm-config>/path/umrouter_monitor.cfg</lbm-config>
<publishing-interval>
...
</publishing-interval>
<remote-snapshot-request allow="1"/>
<remote-config-changes-request allow="0"/>
</daemon-monitor>
</daemon>
...
</tnw-gateway>

## Router Element "<web-monitor>" <-

Identifies the address for the web monitor, in the form of interface:port. You can use "*" to specify the local host.

Omit this element to disable the web monitor.

See Webmon Security for important security information.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <daemon>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
xml:space | Specifies how whitespace (tabs, spaces, linefeeds) are handled in the element content. See xml:space Attribute. | `"default"` - Trim whitespace. `"preserve"` - Retain whitespace exactly as entered. | default

Example:

<tnw-gateway version="1.0">
<daemon>
...
<web-monitor>*:21001</web-monitor>
</daemon>
...
</tnw-gateway>

## Router Element "<monitor>" <-

Container for UM Transport monitoring configuration elements.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <daemon>
- Children: <transport-module>, <format-module>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
interval | Monitoring interval, in seconds. 0 disables monitoring. | string | `"0"`

Example:

<tnw-gateway version="1.0">
<daemon>
...
<monitor interval="30">
<transport-module module="lbm" options="config=/cfgs/TD1.cfg;topic=stats"/>
<format-module options="config=/cfgs/TD1.cfg;separator=|"/>
</monitor>
</daemon>
...
</tnw-gateway>

## Router Element "<format-module>" <-

Provides specifics about the monitoring format module.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <monitor>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
module | Selects the message formatting module. See Monitoring Formats. | `"csv"` - Comma-separated values. `"pb"` - Google Protocol Buffers. | `"csv"`
options | Option string to be passed to the formatting module. Available option is "separator" (defaults to comma). | string | (if omitted, no options are passed to the formatting module)

Example:

<tnw-gateway version="1.0">
<daemon>
...
<monitor interval="30">
<transport-module module="lbm" options="config=/cfgs/TD1.cfg;topic=stats"/>
<format-module options="separator=|"/>
</monitor>
</daemon>
...
</tnw-gateway>

## Router Element "<transport-module>" <-

Specifies characteristics about the monitoring transport module used.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <monitor>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
module | Selects the message transport module. | `"lbm"` - Publish messages via standard UM source. `"lbmsnmp"` - Publish messages via standard UM source with special settings intended for the UM SNMP agent. `"udp"` - Publish messages as simple UDP datagrams. | `"lbm"`
options | Option string to be passed to the transport module. Available options are "config" (configuration file pathname) and "topic" (the topic name to use for sending and receiving statistics; defaults to "/29west/statistics"). | string | (if omitted, no options are passed to the transport module)

Example 1:

<tnw-gateway version="1.0">
<daemon>
...
<monitor interval=30>
<transport-module module="lbm" options="config=/cfgs/TD1.cfg;topic=stats"/>
<format-module options="config=/cfgs/TD1.cfg;separator=|"/>
</monitor>
</daemon>
...
</tnw-gateway>

Example 2:

Monitoring configuration options can be supplied directly in the XML.

<tnw-gateway version="1.0">
<daemon>
...
<monitor interval=30>
<transport-module module="lbm"
options="config=/cfgs/TD1.cfg;context|request_tcp_interface=192.168.135.131"/>
<format-module options="config=/cfgs/TD1.cfg;separator=|"/>
</monitor>
</daemon>
...
</tnw-gateway>

## Router Element "<patternmap>" <-

Determines characteristics of the internal topic resolution maps for wildcard patterns.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <daemon>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
hash-function | Topic resolution hash function to use. Informatica recommends the default. See resolver_string_hash_function (context) for more information. | `"classic"` - UM's original hash function. May be better for certain specialized topic names. `"djb2"` - The Dan Bernstein algorithm from comp.lang.c. May be better for topic names have a changing prefix with a constant suffix. `"sdbm"` - Sdbm database library (used in Berkeley DB). May be better for certain specialized topic names. `"murmur2"` - Good all-around hash function by Austin Appleby. | `"murmur2"`
size | Number of buckets in hash table. Should be a prime number. | string | `"131111"`

Example:

<tnw-gateway version="1.0">
<daemon>
...
<patternmap hash-function="murmur2" size="131111">
</daemon>
...
</tnw-gateway>

## Router Element "<topicmap>" <-

Determines characteristics of the internal topic resolution maps for topic names.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <daemon>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
hash-function | Topic resolution hash function to use. Informatica recommends the default. See resolver_string_hash_function (context) for more information. | `"classic"` - UM's original hash function. May be better for certain specialized topic names. `"djb2"` - The Dan Bernstein algorithm from comp.lang.c. May be better for topic names have a changing prefix with a constant suffix. `"sdbm"` - Sdbm database library (used in Berkeley DB). May be better for certain specialized topic names. `"murmur2"` - Good all-around hash function by Austin Appleby. | `"murmur2"`
size | Number of buckets in hash table. Should be a prime number. | string | `"131111"`

Example:

<tnw-gateway version="1.0">
<daemon>
...
<topicmap hash-function="murmur2" size="131111">
</daemon>
...
</tnw-gateway>

## Router Element "<lbm-license-file>" <-

Specifies the UM license file's pathname.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <daemon>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
xml:space | Specifies how whitespace (tabs, spaces, linefeeds) are handled in the element content. See xml:space Attribute. | `"default"` - Trim whitespace. `"preserve"` - Retain whitespace exactly as entered. | default

Example:

<tnw-gateway version="1.0">
<daemon>
. . .
<lbm-license-file>lic0014.txt</lbm-license-file>
. . .
</daemon>
. . .
. . .
</tnw-gateway>

## Router Element "<pidfile>" <-

Contains the pathname for daemon process ID (PID) file.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <daemon>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
xml:space | Specifies how whitespace (tabs, spaces, linefeeds) are handled in the element content. See xml:space Attribute. | `"default"` - Trim whitespace. `"preserve"` - Retain whitespace exactly as entered. | default

Example:

<tnw-gateway version="1.0">
<daemon>
...
<pidfile>\var\run\dro01.pid</pidfile>
</daemon>
...
</tnw-gateway>

## Router Element "<gid>" <-

Specifies a Group ID (GID) for daemon process (if run as root).

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <daemon>

Example:

<tnw-gateway version="1.0">
<daemon>
...
<gid>1234</gid>
</daemon>
...
</tnw-gateway>

## Router Element "<uid>" <-

Specifies a User ID (UID) for the daemon process (if run as root).

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <daemon>

Example:

<tnw-gateway version="1.0">
<daemon>
...
<uid>5555</uid>
</daemon>
...
</tnw-gateway>

## Router Element "<log>" <-

Specifies the destination for DRO log messages. If you set the type for "file", use this element to contain the full pathname.

- Cardinality (number of times element can be supplied): 0 .. 1
- Parent: <daemon>

XML Attributes:

Attribute | Description | Valid Values | Default Value
--- | --- | --- | ---
type | Method of writing logs. | `"file"` - Write log to disk file. `"syslog"` - Write log to Unix "syslog". `"console"` - Write log to standard out. | `"console"`
frequency | Frequency by which to roll log file. Only applies for type="file". | `"disable"` - Do not roll log file. `"daily"` - Roll log file at midnight. `"hourly"` - Roll log file after approximately an hour, but is not exact and can drift significantly over a period of time. `"test"` - For Informatica internal use only. Do not use. | `"disable"`
size | Number of millions of bytes of file size to roll log file. E.g. a value of 1 rolls after 1000000 bytes. Maximum value is 4000. Value of 0 disables rolling by file size. Only applies for type="file". | string | `"0"`
xml:space | Specifies how whitespace (tabs, spaces, linefeeds) are handled in the element content. See xml:space Attribute. | `"default"` - Trim whitespace. `"preserve"` - Retain whitespace exactly as entered. | default

Example:

<tnw-gateway version="1.0">
<daemon>
...
<log type="syslog"/>
</daemon>
...
</tnw-gateway>

# DRO Configuration DTD <-

Here is the XML configuration DTD with the comments removed. To see the DTD with comments included, enter `tnwgd --dump-dtd`.

<!ELEMENT tnw-gateway (daemon?, portals)>
<!ATTLIST tnw-gateway
version (1.0) #REQUIRED
>
<!ELEMENT daemon (name?, log?, uid?, gid?, pidfile?, lbm-license-file?, topicmap?, patternmap?, monitor?, web-monitor?, daemon-monitor?, propagation-delay?, xml-config?, route-info?, route-recalculation?)>
<!ELEMENT log ( #PCDATA )>
<!ATTLIST log
type (file | syslog | console) "console"
frequency (disable | daily | hourly | test) "disable"
size CDATA "0"
xml:space (default | preserve) "default"
>
<!ELEMENT pidfile ( #PCDATA )>
<!ATTLIST pidfile xml:space (default | preserve) "default">
<!ELEMENT uid ( #PCDATA )>
<!ELEMENT gid ( #PCDATA )>
<!ELEMENT lbm-license-file ( #PCDATA )>
<!ATTLIST lbm-license-file xml:space (default | preserve) "default">
<!ELEMENT topicmap EMPTY>
<!ATTLIST topicmap
hash-function ( classic | djb2 | sdbm | murmur2 ) "murmur2"
size CDATA "131111"
>
<!ELEMENT patternmap EMPTY>
<!ATTLIST patternmap
hash-function ( classic | djb2 | sdbm | murmur2 ) "murmur2"
size CDATA "131111"
>
<!ELEMENT portals (endpoint | peer)+>
<!ELEMENT endpoint (name, domain-id, cost?, hotlink-index?, route-group*, source-deletion-delay?, max-queue?, smart-batch?, lbm-config?, lbm-attributes?, acl?, topic-resolution?, late-join?, topic-purge?, topic-interest-generate?, topic-domain-activity?, pattern-purge?, pattern-interest-generate?, pattern-domain-activity?, remote-topic?, remote-pattern?, source-context-name?, receiver-context-name?, sqn-window?, context-query?, publishing-interval? )>
<!ELEMENT peer (name, cost?, sourcemap?, (tcp | single-tcp), udp?, source-deletion-delay?, max-queue?, uim-max-queue?, smart-batch?, max-datagram?, batching?, lbm-config?, lbm-attributes?, acl?, topic-purge?, topic-interest-generate?, topic-domain-activity?, pattern-purge?, pattern-interest-generate?, pattern-domain-activity?, topic-use-check?, pattern-use-check?, source-context-name?, receiver-context-name?, sqn-window?, context-query?, gateway-keepalive?, publishing-interval? )>
<!ELEMENT name ( #PCDATA )>
<!ATTLIST name xml:space (default | preserve) "default">
<!ELEMENT domain-id ( #PCDATA )>
<!ELEMENT cost ( #PCDATA )>
<!ELEMENT hotlink-index ( #PCDATA )>
<!ELEMENT route-group ( #PCDATA )>
<!ELEMENT source-deletion-delay ( #PCDATA )>
<!ELEMENT sourcemap EMPTY>
<!ATTLIST sourcemap
size CDATA "TNWG_PORTAL_PEER_INFO_SOURCEMAP_SIZE_DEFAULT"
>
<!ELEMENT tcp (interface?, listen-port, receive-buffer?, send-buffer?, keepalive?, nodelay?, compression?, tls?, companion )>
<!ELEMENT interface ( #PCDATA )>
<!ELEMENT listen-port ( #PCDATA )>
<!ELEMENT receive-buffer ( #PCDATA )>
<!ELEMENT send-buffer ( #PCDATA )>
<!ELEMENT keepalive EMPTY >
<!ELEMENT nodelay EMPTY >
<!ELEMENT companion (address, port)>
<!ELEMENT compression ( #PCDATA )>
<!ELEMENT tls (certificate, certificate-key, certificate-key-password?, trusted-certificates?, cipher-suites? )>
<!ELEMENT certificate ( #PCDATA )>
<!ELEMENT certificate-key ( #PCDATA )>
<!ELEMENT certificate-key-password ( #PCDATA )>
<!ELEMENT trusted-certificates ( #PCDATA )>
<!ELEMENT cipher-suites ( #PCDATA )>
<!ATTLIST companion
reconnect-interval CDATA "TNWG_PORTAL_PEER_INFO_RECONNECT_IVL_DEFAULT"
>
<!ELEMENT address ( #PCDATA )>
<!ELEMENT port ( #PCDATA )>
<!ELEMENT single-tcp (interface?, receive-buffer?, send-buffer?, keepalive?, nodelay?, compression?, tls?, (initiator | acceptor ) )>
<!ELEMENT initiator (address, port)>
<!ATTLIST initiator
reconnect-interval CDATA "TNWG_PORTAL_PEER_INFO_RECONNECT_IVL_DEFAULT"
>
<!ELEMENT acceptor (listen-port)>
<!ELEMENT max-queue ( #PCDATA )>
<!ELEMENT uim-max-queue ( #PCDATA )>
<!ELEMENT smart-batch ( #PCDATA )>
<!ELEMENT max-datagram ( #PCDATA )>
<!ELEMENT batching (min-length?, batch-interval?)>
<!ELEMENT min-length ( #PCDATA )>
<!ELEMENT batch-interval ( #PCDATA )>
<!ELEMENT udp (port, receive-buffer?, send-buffer?, multiple-receive-max-datagrams?, coalesce-threshold?, transmission-window?, peer-rate-limit?, nak-handling?, session-message?, connect?)>
<!ELEMENT multiple-receive-max-datagrams ( #PCDATA )>
<!ELEMENT coalesce-threshold ( #PCDATA )>
<!ELEMENT transmission-window EMPTY>
<!ATTLIST transmission-window
size CDATA "TNWG_PORTAL_PEER_INFO_UDP_TRANSMISSION_WINDOW_SIZE"
limit CDATA "TNWG_PORTAL_PEER_INFO_UDP_TRANSMISSION_WINDOW_LIMIT"
>
<!ELEMENT peer-rate-limit EMPTY>
<!ATTLIST peer-rate-limit
data CDATA "TNWG_PORTAL_PEER_INFO_UDP_DATA_RATE"
retransmit CDATA "TNWG_PORTAL_PEER_INFO_UDP_RX_RATE"
interval CDATA "TNWG_PORTAL_PEER_INFO_UDP_RATE_INTERVAL"
>
<!ELEMENT nak-handling EMPTY>
<!ATTLIST nak-handling
initial-backoff-interval CDATA "TNWG_PORTAL_PEER_INFO_UDP_NAK_INIT_BACKOFF"
backoff-interval CDATA "TNWG_PORTAL_PEER_INFO_UDP_NAK_BACKOFF"
suppress-interval CDATA "TNWG_PORTAL_PEER_INFO_UDP_NAK_SUPPRESS_INTERVAL"
generation-interval CDATA "TNWG_PORTAL_PEER_INFO_UDP_NAK_GEN_INTERVAl"
send-naks ( yes | no ) "yes"
ignore-interval CDATA "TNWG_PORTAL_PEER_INFO_UDP_NAK_IGNORE_INTERVAL"
>
<!ELEMENT session-message EMPTY>
<!ATTLIST session-message
min-interval CDATA "TNWG_PORTAL_PEER_INFO_UDP_SM_MIN_INTERVAL"
max-interval CDATA "TNWG_PORTAL_PEER_INFO_UDP_SM_MAX_INTERVAL"
activity-timeout CDATA "TNWG_PORTAL_PEER_INFO_UDP_ACTIVITY_TIMEOUT"
>
<!ELEMENT connect EMPTY>
<!ATTLIST connect
attempt-interval CDATA "TNWG_PORTAL_PEER_INFO_UDP_CONN_ATTEMPT_INTERVAL"
max-attempts CDATA "TNWG_PORTAL_PEER_INFO_UDP_CONN_MAX_ATTEMPTS"
>
<!ELEMENT lbm-config ( #PCDATA )>
<!ATTLIST lbm-config xml:space (default | preserve) "default">
<!ELEMENT lbm-attributes (option+)>
<!ELEMENT option EMPTY>
<!ATTLIST option
scope (receiver | context | source | wildcard_receiver | event_queue) #REQUIRED
name CDATA #REQUIRED
value CDATA #REQUIRED
>
<!ELEMENT acl (inbound?, outbound?)>
<!ELEMENT inbound (ace+)>
<!ELEMENT outbound (ace+)>
<!ELEMENT ace (topic | pcre-pattern | regex-pattern | transport | source-ip | multicast-group | udp-source-port | udp-destination-port | tcp-source-port | xport-id)+ >
<!ATTLIST ace match (accept | reject) #REQUIRED >
<!ELEMENT topic ( #PCDATA )>
<!ATTLIST topic
xml:space (default | preserve) "default"
>
<!ELEMENT pcre-pattern ( #PCDATA )>
<!ATTLIST pcre-pattern
xml:space (default | preserve) "default"
>
<!ELEMENT regex-pattern ( #PCDATA )>
<!ATTLIST regex-pattern
xml:space (default | preserve) "default"
>
<!ELEMENT transport EMPTY>
<!ATTLIST transport
value (tcp | lbt-rm | lbtrm | lbt-ru | lbtru | lbt-ipc | lbtipc) #REQUIRED
comparison (eq | equal | ne | notequal) #REQUIRED
>
<!ELEMENT source-ip EMPTY>
<!ATTLIST source-ip
value CDATA #REQUIRED
comparison (eq | equal | ne | notequal | lt | lessthan | le | lessthanequal | gt | greaterthan | ge | greaterthanequal) #REQUIRED
>
<!ELEMENT multicast-group EMPTY>
<!ATTLIST multicast-group
value CDATA #REQUIRED
comparison (eq | equal | ne | notequal | lt | lessthan | le | lessthanequal | gt | greaterthan | ge | greaterthanequal) #REQUIRED
>
<!ELEMENT udp-source-port EMPTY>
<!ATTLIST udp-source-port
value CDATA #REQUIRED
comparison (eq | equal | ne | notequal | lt | lessthan | le | lessthanequal | gt | greaterthan | ge | greaterthanequal) #REQUIRED
>
<!ELEMENT udp-destination-port EMPTY>
<!ATTLIST udp-destination-port
value CDATA #REQUIRED
comparison (eq | equal | ne | notequal | lt | lessthan | le | lessthanequal | gt | greaterthan | ge | greaterthanequal) #REQUIRED
>
<!ELEMENT tcp-source-port EMPTY>
<!ATTLIST tcp-source-port
value CDATA #REQUIRED
comparison (eq | equal | ne | notequal | lt | lessthan | le | lessthanequal | gt | greaterthan | ge | greaterthanequal) #REQUIRED
>
<!ELEMENT xport-id EMPTY>
<!ATTLIST xport-id
value CDATA #REQUIRED
comparison (eq | equal | ne | notequal | lt | lessthan | le | lessthanequal | gt | greaterthan | ge | greaterthanequal) #REQUIRED
>
<!ELEMENT topic-resolution (topic-use-query?, pattern-use-query?, remote-topic-interest?, remote-pattern-interest?, domain-route?, initial-request? )>
<!ELEMENT topic-use-query (rate-limit? ) >
<!ATTLIST topic-use-query
timeout CDATA "TNWG_PORTAL_EP_INFO_TOPIC_USE_QUERY_TIMEOUT_DEFAULT"
max CDATA "TNWG_PORTAL_EP_INFO_TOPIC_USE_QUERY_MAX_DEFAULT"
periodic-interval CDATA "TNWG_PORTAL_EP_INFO_TOPIC_USE_QUERY_PERIODIC_IVL_DEFAULT"
>
<!ELEMENT pattern-use-query (rate-limit? ) >
<!ATTLIST pattern-use-query
timeout CDATA "TNWG_PORTAL_EP_INFO_PATTERN_USE_QUERY_TIMEOUT_DEFAULT"
max CDATA "TNWG_PORTAL_EP_INFO_PATTERN_USE_QUERY_MAX_DEFAULT"
periodic-interval CDATA "TNWG_PORTAL_EP_INFO_PATTERN_USE_QUERY_PERIODIC_IVL_DEFAULT"
>
<!ELEMENT remote-topic-interest (rate-limit? ) >
<!ATTLIST remote-topic-interest
min-interval CDATA "TNWG_PORTAL_EP_INFO_REMOTE_TOPIC_INTEREST_MIN_IVL_DEFAULT"
max-interval CDATA "TNWG_PORTAL_EP_INFO_REMOTE_TOPIC_INTEREST_MAX_IVL_DEFAULT"
>
<!ELEMENT remote-pattern-interest (rate-limit? ) >
<!ATTLIST remote-pattern-interest
min-interval CDATA "TNWG_PORTAL_EP_INFO_REMOTE_PATTERN_INTEREST_MIN_IVL_DEFAULT"
max-interval CDATA "TNWG_PORTAL_EP_INFO_REMOTE_PATTERN_INTEREST_MAX_IVL_DEFAULT"
>
<!ELEMENT domain-route (rate-limit? ) >
<!ATTLIST domain-route
min-interval CDATA "TNWG_PORTAL_EP_INFO_DOMAIN_ROUTE_MIN_IVL_DEFAULT"
max-interval CDATA "TNWG_PORTAL_EP_INFO_DOMAIN_ROUTE_MAX_IVL_DEFAULT"
>
<!ELEMENT rate-limit EMPTY>
<!ATTLIST rate-limit
bps CDATA #IMPLIED
objects-per-second CDATA #IMPLIED
>
<!ELEMENT initial-request EMPTY>
<!ATTLIST initial-request
periodic-interval CDATA "TNWG_PORTAL_EP_INFO_TOPIC_RESOLUTION_REQUEST_IVL_DEFAULT"
duration CDATA "TNWG_PORTAL_EP_INFO_TOPIC_RESOLUTION_REQUEST_DURATION_DEFAULT"
>
<!ELEMENT late-join EMPTY>
<!ATTLIST late-join
provide ( source | always | never ) "source"
forward ( yes | no ) "yes"
>
<!ELEMENT topic-purge EMPTY>
<!ATTLIST topic-purge periodic-interval CDATA #IMPLIED>
<!ELEMENT topic-interest-generate EMPTY>
<!ATTLIST topic-interest-generate
periodic-interval CDATA #IMPLIED
max-topics CDATA #IMPLIED
interval CDATA #IMPLIED
>
<!ELEMENT topic-domain-activity EMPTY>
<!ATTLIST topic-domain-activity timeout CDATA #IMPLIED>
<!ELEMENT pattern-purge EMPTY>
<!ATTLIST pattern-purge periodic-interval CDATA #IMPLIED>
<!ELEMENT pattern-interest-generate EMPTY>
<!ATTLIST pattern-interest-generate
periodic-interval CDATA #IMPLIED
max-patterns CDATA #IMPLIED
interval CDATA #IMPLIED
>
<!ELEMENT pattern-domain-activity EMPTY>
<!ATTLIST pattern-domain-activity timeout CDATA #IMPLIED>
<!ELEMENT remote-topic EMPTY>
<!ATTLIST remote-topic
check-interval CDATA "TNWG_PORTAL_EP_INFO_REMOTE_TOPIC_CHECK_IVL"
max-topics CDATA "TNWG_PORTAL_EP_INFO_REMOTE_TOPIC_MAX_TOPICS"
timeout CDATA "TNWG_PORTAL_EP_INFO_REMOTE_TOPIC_TIMEOUT"
>
<!ELEMENT remote-pattern EMPTY>
<!ATTLIST remote-pattern
check-interval CDATA "TNWG_PORTAL_EP_INFO_REMOTE_PATTERN_CHECK_IVL"
max-patterns CDATA "TNWG_PORTAL_EP_INFO_REMOTE_PATTERN_MAX_PATTERNS"
timeout CDATA "TNWG_PORTAL_EP_INFO_REMOTE_PATTERN_TIMEOUT"
>
<!ELEMENT topic-use-check EMPTY>
<!ATTLIST topic-use-check periodic-interval CDATA #IMPLIED>
<!ELEMENT pattern-use-check EMPTY>
<!ATTLIST pattern-use-check periodic-interval CDATA #IMPLIED>
<!ELEMENT monitor (transport-module?, format-module?)>
<!ATTLIST monitor
interval CDATA "0"
>
<!ELEMENT transport-module EMPTY>
<!ATTLIST transport-module
module (lbm | lbmsnmp | udp) "lbm"
options CDATA #IMPLIED
>
<!ELEMENT format-module EMPTY>
<!ATTLIST format-module
module (csv | pb) "csv"
options CDATA #IMPLIED
>
<!ELEMENT web-monitor ( #PCDATA )>
<!ATTLIST web-monitor xml:space (default | preserve) "default">
<!ELEMENT propagation-delay EMPTY>
<!ATTLIST propagation-delay delta CDATA #IMPLIED>
<!ELEMENT xml-config ( #PCDATA )>
<!ATTLIST xml-config xml:space (default | preserve) "default">
<!ELEMENT source-context-name ( #PCDATA )>
<!ATTLIST source-context-name xml:space (default | preserve) "default">
<!ELEMENT receiver-context-name ( #PCDATA )>
<!ATTLIST receiver-context-name xml:space (default | preserve) "default">
<!ELEMENT sqn-window EMPTY>
<!ATTLIST sqn-window
size CDATA "TNWG_PORTAL_INFO_SQN_WINDOW_SIZE_DEFAULT"
increment CDATA "TNWG_PORTAL_INFO_SQN_WINDOW_INCREMENT_DEFAULT"
>
<!ELEMENT context-query EMPTY>
<!ATTLIST context-query
periodic-interval CDATA #IMPLIED
max-contexts CDATA #IMPLIED
interval CDATA #IMPLIED
timeout CDATA #IMPLIED
>
<!ELEMENT gateway-keepalive EMPTY>
<!ATTLIST gateway-keepalive
idle ( yes | no ) "yes"
interval CDATA "TNWG_PORTAL_PEER_INFO_KEEPALIVE_CHECK_IVL_DEFAULT"
timeout CDATA "TNWG_PORTAL_PEER_INFO_COMPANION_INACTIVITY_IVL_DEFAULT"
>
<!ELEMENT route-info EMPTY>
<!ATTLIST route-info
propagation-interval CDATA "1000"
check-interval CDATA "750"
timeout CDATA "4000"
max-hop-count CDATA "100"
>
<!ELEMENT route-recalculation EMPTY>
<!ATTLIST route-recalculation
backoff-interval CDATA "5000"
warning-interval CDATA "10000"
>
<!ELEMENT daemon-monitor (lbm-config?, publishing-interval?, remote-snapshot-request?, remote-config-changes-request?)>
<!ATTLIST daemon-monitor topic CDATA "tnwgd.monitor">
<!ELEMENT publishing-interval (group+)>
<!ELEMENT group EMPTY>
<!ATTLIST group name (default | gateway-config | route-manager-topology | malloc-info | portal-config | portal-stats ) #REQUIRED>
<!ATTLIST group ivl CDATA #REQUIRED>
<!ELEMENT remote-snapshot-request EMPTY>
<!ATTLIST remote-snapshot-request allow (0 | 1) "0">
<!ELEMENT remote-config-changes-request EMPTY>
<!ATTLIST remote-config-changes-request allow (0 | 1) "0">