63.1 Builtin Transport Plugins
The builtin transport plugins are UDPv4, UDPv6, shared memory, and Real-Time WAN Transport.
For a given DomainParticipant, Connext can be configured to create and register an instance for each one of the builtin transport plugins using the mask field in the 56.8 TRANSPORT_BUILTIN QosPolicy (DDS Extension). By default, the mask contains UDPv4 and SHMEM. Therefore, these instances are implicitly created and registered when the DomainParticipant is enabled.
Creating additional instances of the builtin transports is only supported for UDPv4 and UDPv6 (see 64.3 Instantiating Multiple Instances of UDPv4/UDPv6 Transports).
To create and register additional instances for the UDPv4 and UDPv6 builtin plugins, you can:
- In C and traditional C++:
- First create an instance of the transport plugin by calling NDDS_Transport_UDPv4_new or NDDS_Transport_UDPv6_new; see 63.3.1 Explicitly Creating Transport Plugin Instances.
- Then call NDDS_Transport_Support_register_transport() (in C) or NDDSTransportSupport::register_transport (in traditional C++); see 63.3.2 Installing Transport Plugin Instances with register_transport().
- All languages: Additional builtin transport instances can also be instantiated through the 59.19 PROPERTY QosPolicy (DDS Extension) using the property dds.transport.load_plugins. 64.3 Instantiating Multiple Instances of UDPv4/UDPv6 Transports shows how to create and configure additional instances this way.
To configure the properties of the builtin transport instances, there are three options:
- In C, traditional C++, and Java: Set properties by calling NDDS_Transport_Support_set_builtin_transport_property() (in C), NDDSTransportSupport::set_builtin_transport_property (in traditional C++), or TransportSupport::set_builtin_transport_property (in Java). See 63.3.3 Setting Builtin Transport Properties of Default Transport Instance—get/set_builtin_transport_properties()).
- All languages: Specify predefined property strings in the DomainParticipant’s Property QoS policy, as described in 64.1 Setting Builtin Transport Properties with the PropertyQosPolicy.
- All languages: Use the builtin transport XML tag under <transport_builtin>. For example, for UDPv4 the tag is <udpv4>. See 64.2 Setting Builtin Transport Properties Using Transport-Specific XML Tags.
For automatically created builtin transport instances:
- Transport properties must be configured before the DomainParticipant is enabled.
- These properties cannot be changed after the DomainParticipant is enabled.
For additional transport instances created programmatically (via the API):
- Configuration is provided to the transport constructor (e.g, NDDS_Transport_UDPv4_new).
- The register_transport() operation must be called before the DomainParticipant is enabled.
For additional transport instances created using the Property QoS policy:
- Transport properties must be configured before the DomainParticipant is enabled.
- Changes are not allowed after enabling the DomainParticipant.