44.8 TRANSPORT_BUILTIN QosPolicy (DDS Extension)
Connext comes with three different transport plugins built into the core libraries (for most supported target platforms). These are plugins for UDPv4, shared memory (SHMEM), and UDPv6. (If you've installed RTI Real-Time WAN Transport, UDPv4_WAN is also available.)
This QosPolicy allows you to control which builtin transport plugins are used by a DomainParticipant. By default, only the UDPv4 and shared memory plugins are enabled (for most platforms; on some platforms, the shared memory plugin is not available). You can disable one or all of the builtin transports.
In some cases, users will disable the shared memory transport when they do not want applications to use shared memory to communicate when running on the same node.
This QoS Policy contains the member in Table 44.11 DDS_TransportBuiltinQosPolicy. For the default and valid values, please refer to the API Reference HTML documentation (select Modules, RTI Connext API Reference, QoS Policies, TRANSPORT_BUILTIN).
Type |
Field Name |
Description |
DDS_TransportBuiltinKindMask |
mask |
A mask with bits that indicate which builtin transports will be installed. Three different transport plug-ins are built into the core Connext libraries (for most supported target platforms): SHMEM, UDPv4, and UDPv6. (If you've installed Chapter 52 RTI Real-Time WAN Transport, UDPv4_WAN is also available.) By default, the mask is set to SHMEM | UDPv4. Transports that are not in the mask will be disabled. MASK_NONE disables all the builtin transports. |
You can set the mask programmatically or via XML. For example, programmatically:
participant_qos.transport_builtin.mask = DDS_TRANSPORTBUILTIN_UDPv4 | DDS_TRANSPORTBUILTIN_SHMEM;
Via XML, you can use the <transport_builtin> tags. For example:
<domain_participant_qos>
<transport_builtin>
<mask>UDPv4</mask>
</transport_builtin>
</domain_participant_qos>
In XML only, you can additionally configure the builtin transport properties, such as <message_size_max>. See 50.4.6 Transport Properties.
Note: Currently, Connext will only listen for discovery traffic on the first multicast address (element 0) in multicast_receive_addresses.
44.8.1 Example
See 44.8.5 System Resource Considerations for an example of why you may want to use this QosPolicy.
In addition, customers may wish to install and use their own custom transport plugins instead of any of the builtin transports. In that case, this QosPolicy may be used to disable all builtin transports.
44.8.2 Properties
This QosPolicy cannot be modified after the DomainParticipant is created.
It can be set differently on the publishing and subscribing sides.
44.8.3 Related QosPolicies
- 47.27 TRANSPORT_SELECTION QosPolicy (DDS Extension)
- 47.28 TRANSPORT_UNICAST QosPolicy (DDS Extension)
- 48.5 TRANSPORT_MULTICAST QosPolicy (DDS Extension)
44.8.4 Applicable DDS Entities
44.8.5 System Resource Considerations
You can save memory and other system resources if you disable the builtin transports that your application will not use. For example, if you only run a single application with a single DomainParticipant on each machine in your network, then you can disable the shared memory transport since your applications will never use it to send or receive messages.