How do I set the multicast_receive_addresses when using rtiddsping and rtiddsspy?
Note: Applies to RTI Data Distribution Service 4.3x and above,
Both rtiddsping and rtiddsspy can be configured to use multicast for discovery announcements by specifying a multicast address as part of the initial peer list (using -preer <PEER>).
However, rtiddsping and rtiddsspy do not have command-line options to modify multicast_receive_addresses (this is a known issue, RTI bug # 12462). As a result, rtiddsping and rtiddsspy always use the default multicast address, 239.255.0.1.
In version 4.4b and higher, there is a workaround to this problem. You can use the attribute, is_default_qos, in a <qos_profile> tag to overwrite the default QoS values, including multicast_receive_addresses. For example:
<dds>
<qos_library name="foo_Library">
<qos_profile name="foo_Profile" is_default_qos="true">
<!-- QoS to configure data writer created in the example code -->
<participant_qos>
<discovery>
<initial_peers>
<element>shmem://</element>
<element>builtin.udpv4://127.0.0.1</element>
<!-- NEW, non-default multicast -->
<element>239.255.1.2</element>
</initial_peers>
<multicast_receive_addresses>
<!-- NEW, non-default multicast receive address -->
<element>239.255.1.2</element>
</multicast_receive_addresses>
</discovery>
</participant_qos>
</qos_profile>
</qos_library>
</dds>