Why can't I communicate over loopback, but can using shared memory?

NOTE: Applies to RTI Data Distribution Service 4.1 and 4.2

By default, RTI Data Distribution Service uses shared memory to communicate with other DomainParticipants on the same node and disables local traffic over the UDPv4 or UDPv6 loopback interface. So, by default, an RTI Data Distribution Service application with shared memory enabled will not communicate with other applications on the same node that don’t have shared memory enabled.

For example, suppose you have three RTI Data Distribution Service applications on the same node. Shared memory is enabled on Applications A and B, but disabled on Application C. In this scenario, A and B will communicate with each other, but they will not communicate with C.

You can change this behavior by setting the ignore_loopback_interface field in the UDPv4 transport properties to 0 on Applications A and B. This will force DomainParticipants with shared memory enabled to also communicate over UDPv4 or UDPv6 loopback (and thus find Application C without using shared memory).

Alternatively, shared memory can be disabled on A and B via the TransportBuiltinQosPolicy.

This issue does not apply to communication with RTI Data Distribution Service applications on other nodes.

Platform: