How many network interfaces can I use with RTI Connext?
DDS_TransportUnicastQosPolicy
defines the unicast transport network interfaces that an entity will use to receive messages. Versions of RTI Connext DDS prior to 5.3.0 use a maximum of four network interfaces—the first four reported by the operating system. From RTI Connext DDS 5.3.0 onwards, this limit has increased to the first sixteen interfaces. In either case, the remaining interfaces are ignored. These network interfaces are advertised during discovery.
RTI Connext also limits incoming messages to one multicast address. If more than one multicast address is specified for an entity, a warning is logged. Only the first address is used; the remaining multicast addresses are ignored.
Due to the increased number of locators announced in Connext 5.3.0 and above, users should be aware of a compatbility issue in systems that mix versions of Connext below 5.3.0 with versions 5.3.0 and above. If a Connext DDS 5.3.0 application announces more than unicast 4 locators as part of the Participant or Endpoint discovery announcements, it will not communicate with Connext DDS 5.2.0 applications. When this happens the user will see the following messages in the 5.2.0 side.
PRESCstReaderCollator_storeSampleData:!deserialize
COMMENDSrReaderService_assertRemoteWriter:!create reachable destination
This issue does not affect applications running Connext DDS 5.2.3. However, these applications will only pick the first 4 locators for communication.
To ensure backwards compatibility with 5.2.0 and older releases, there is property, dds.domain_participant.max_announced_locator_list_size, in the DomainParticipant's Property QoS. This property limits the maximum number of locators announced to other participants. The default value for this property is 16. The following snippet shows how to configure the property for compatbility with Connext 5.2.0:
<participant_qos> <property> <value> <element> <name>dds.domain_participant.max_announced_locator_list_size</name> <value>4</value> </element> </value> </property> </participant_qos>
On a machine with more NICs than allowed by the version of RTI Connext you're using, it is also possible to restrict Connext traffic to use a subset of the available network interfaces (NICs). You can do this by creating either an allow_interfaces_list
that specifies which network interfaces RTI's middleware is allowed to use, or conversely, a deny_interfaces_list
. These lists are specified as part of the RTI transport properties and configured during DomainParticipant creation. For more information, please see How do I restrict RTI Connext to use only a subset of interfaces?