50.4.6 Transport Properties
You can configure transport plugins using the DomainParticipant’s 47.19 PROPERTY QosPolicy (DDS Extension) .
- Properties for the builtin transports are described in 51.6 Setting Builtin Transport Properties with the PropertyQosPolicy. You can also set these properties in XML using the <transport_builtin> tag.
- Properties for other transport plugins such as RTI TCP Transport1are described in their respective chapters in this manual.
This example configures the builtin UDPv4 transport using the <transport_builtin> tags:
<domain_participant_qos>
<transport_builtin>
<udpv4>
<message_size_max>1024</message_size_max>
</udpv4>
</transport_builtin>
</domain_participant_qos>
You can do the same thing with the UDPv6 (<udpv6>) and SHMEM (<shmem>) transports (and, if RTI Real-Time WAN Transport is installed, with UDPv4_WAN (<udp4_wan>)). For example:
<domain_participant_qos>
<transport_builtin>
<udpv6>
<message_size_max>1024</message_size_max>
</udpv6>
</transport_builtin>
</domain_participant_qos>
You cannot use the <transport_builtin> tag for the other transport plugins, like TCP, WAN, LBRTPS, and ZRTPS. (You must use the 47.19 PROPERTY QosPolicy (DDS Extension) properties for those.)
The following example configures the builtin UDPv4 transport using the legacy approach, via regular XML tags; you can find the names of these 47.19 PROPERTY QosPolicy (DDS Extension) properties in the
<domain_participant_qos>
<property> <value> <element> <name>dds.transport.UDPv4.builtin.parent.message_size_max</name> <value>65507</value> </element> <element> <name>dds.transport.UDPv4.builtin.send_socket_buffer_size</name> <value>131072</value> </element> <element> <name>dds.transport.UDPv4.builtin.recv_socket_buffer_size</name> <value>131072</value> </element> </value> </property> </domain_participant_qos>
Some of the properties in the
<domain_participant_qos>
<transport_builtin>
<udpv4>
<send_socket_buffer_size>131072</send_socket_buffer_size>
</udpv4>
</transport_builtin>
</domain_participant_qos>
All of the UDPv4, UDPv4_WAN (if installed), UDPv6, and SHMEM transport properties (except those that are private or deprecated) have been "promoted" for use in a <transport_builtin> tag, if desired; however, the legacy way of using the 47.19 PROPERTY QosPolicy (DDS Extension) properties (as described in the
Note that programmatically, you must use the properties. For example:
retCode = DDS_PropertyQosPolicyHelper_add_property(
&participantQos.property,
"dds.transport.UDPv4.builtin.parent.message_size_max",
"5000",
DDS_BOOLEAN_FALSE);
If you happen to set a transport property both ways—via the PROPERTY QoS <name> and via the <transport_builtin> tag—the <transport_builtin> method takes precedence. For example:
<qos_profile name="Precedence_Test_Tag_Properties">
<participant_qos>
<transport_builtin>
<mask>SHMEM</mask>
<shmem>
<host_id>1</host_id>
</shmem>
</transport_builtin>
<property>
<value>
<!-- SHMEM -->
<element>
<name>dds.transport.shmem.builtin.host_id</name>
<value>2</value>
<propagate>true</propagate>
</element>
</value>
</property>
</participant_qos>
</qos_profile>
In this example, the host_id will be 1.
Deprecated or private properties have no XML QoS representation via the <transport_builtin> tag. For example, dds.transport.UDPv4.builtin.ignore_nonup_interfaces, although it is a UDPv4 transport plugin property, cannot be specified via the <transport_builtin> tag, because it has been deprecated.