Public Attributes | |
struct NDDS_Transport_Property_t | parent |
Generic properties of all transport plugins. | |
RTI_INT32 | send_socket_buffer_size |
Size in bytes of the send buffer of a socket used for sending. | |
RTI_INT32 | recv_socket_buffer_size |
Size in bytes of the receive buffer of a socket used for receiving. | |
RTI_INT32 | unicast_enabled |
Allows the transport plugin to use unicast for sending and receiving. | |
RTI_INT32 | multicast_enabled |
Allows the transport plugin to use multicast for sending and receiving. | |
RTI_INT32 | multicast_ttl |
Value for the time-to-live parameter for all multicast sends using this plugin. | |
RTI_INT32 | multicast_loopback_disabled |
Prevents the transport plugin from putting multicast packets onto the loopback interface. | |
RTI_INT32 | ignore_loopback_interface |
Prevents the transport plugin from using the IP loopback interface. | |
RTI_INT32 | ignore_nonup_interfaces |
Prevents the transport plugin from using a network interface that is not reported as UP by the operating system. | |
RTI_INT32 | ignore_nonrunning_interfaces |
Prevents the transport plugin from using a network interface that is not reported as RUNNING by the operating system. | |
RTI_INT32 | no_zero_copy |
Prevents the transport plugin from doing a zero copy. | |
RTI_INT32 | send_blocking |
Control blocking behavior of send sockets. CHANGING THIS FROM THE DEFAULT CAN CAUSE SIGNIFICANT PERFORMANCE PROBLEMS. | |
RTI_UINT32 | transport_priority_mask |
Set mask for use of transport priority field. | |
RTI_INT32 | transport_priority_mapping_low |
Set low value of output range to IPv4 TOS. | |
RTI_INT32 | transport_priority_mapping_high |
Set high value of output range to IPv4 TOS. | |
RTI_UINT32 | interface_poll_period |
Specifies the period in milliseconds to query for changes in the state of all the interfaces. | |
RTI_INT32 | reuse_multicast_receive_resource |
Controls whether or not to reuse multicast receive resources. |
The properties in this structure can be modified by the end user to configure the plugin. However, the properties must be set before the plugin is instantiated.
Generic properties of all transport plugins.
Size in bytes of the send buffer of a socket used for sending.
On most operating systems, setsockopt()
will be called to set the SENDBUF to the value of this parameter.
This value must be greater than or equal to NDDS_Transport_Property_t::message_size_max. The maximum value is operating system-dependent.
By default, it will be set to be NDDS_TRANSPORT_UDPV4_MESSAGE_SIZE_MAX_DEFAULT.
If users configure this parameter to be NDDS_TRANSPORT_UDPV4_SOCKET_BUFFER_SIZE_OS_DEFAULT, then setsockopt()
(or equivalent) will not be called to size the send buffer of the socket.
Size in bytes of the receive buffer of a socket used for receiving.
On most operating systems, setsockopt()
will be called to set the RECVBUF to the value of this parameter.
This value must be greater than or equal to NDDS_Transport_Property_t::message_size_max. The maximum value is operating system-dependent.
By default, it will be set to be NDDS_TRANSPORT_UDPV4_MESSAGE_SIZE_MAX_DEFAULT.
If it is set to NDDS_TRANSPORT_UDPV4_SOCKET_BUFFER_SIZE_OS_DEFAULT, then setsockopt()
(or equivalent) will not be called to size the receive buffer of the socket.
Allows the transport plugin to use unicast for sending and receiving.
This value turns unicast UDP on (if set to 1) or off (if set to 0) for this plugin. By default, it will be turned on (1). Also by default, the plugin will use all the allowed network interfaces that it finds up and running when the plugin is instanced.
Allows the transport plugin to use multicast for sending and receiving.
This value turns multicast UDP on (if set to 1) or off (if set to 0) for this plugin. By default, it will be turned on (1) for those platforms that support multicast. Also by default, the plugin will use the all network interfaces allowed for multicast that it finds up and running when the plugin is instanced.
Value for the time-to-live parameter for all multicast sends using this plugin.
This value is used to set the TTL of multicast packets sent by this transport plugin.
Prevents the transport plugin from putting multicast packets onto the loopback interface.
If multicast loopback is disabled (this value is set to 1), then when sending multicast packets, RTI Data Distribution Service will not put a copy of the packets on the loopback interface. This prevents applications on the same node (including itself) from receiving those packets.
This value is set to 0 by default, meaning multicast loopback is enabled.
Disabling multicast loopback (setting this value to 1) may result in minor performance gains when using multicast.
[NOTE: Windows CE systems do not support multicast loopback. This field is ignored for Windows CE targets.]
Prevents the transport plugin from using the IP loopback interface.
Currently three values are allowed:
Prevents the transport plugin from using a network interface that is not reported as UP by the operating system.
The transport checks the flags reported by the operating system for each network interface upon initialization. An interface which is not reported as UP will not be used. This property allows the user to configure the transport to start using even the interfaces which were not reported as UP.
Two values are allowed:
Prevents the transport plugin from using a network interface that is not reported as RUNNING by the operating system.
The transport checks the flags reported by the operating system for each network interface upon initialization. An interface which is not reported as UP will not be used. This property allows the same check to be extended to the IFF_RUNNING flag implemented by some operating systems. The RUNNING flag is defined to mean that "all resources are allocated", and may be off if there is no link detected, e.g., the network cable is unplugged.
Two values are allowed:
Prevents the transport plugin from doing a zero copy.
By default, this plugin will use the zero copy on OSs that offer it. While this is good for performance, it may sometime tax the OS resources in a manner that cannot be overcome by the application.
The best example is if the hardware/device driver lends the buffer to the application itself. If the application does not return the loaned buffers soon enough, the node may error or malfunction. In case you cannot reconfigure the H/W, device driver, or the OS to allow the zero copy feature to work for your application, you may have no choice but to turn off zero copy use.
By default this is set to 0, so RTI Data Distribution Service will use the zero-copy API if offered by the OS.
Control blocking behavior of send sockets. CHANGING THIS FROM THE DEFAULT CAN CAUSE SIGNIFICANT PERFORMANCE PROBLEMS.
Currently two values are defined:
Set mask for use of transport priority field.
This is used in conjunction with NDDS_Transport_UDPv4_Property_t::transport_priority_mapping_low and NDDS_Transport_UDPv4_Property_t::transport_priority_mapping_high to define the mapping from DDS transport priority (see TRANSPORT_PRIORITY) to the IPv4 TOS field. Defines a contiguous region of bits in the 32-bit transport priority value that is used to generate values for the IPv4 TOS field on an outgoing socket.
For example, the value 0x0000ff00 causes bits 9-16 (8 bits) to be used in the mapping. The value will be scaled from the mask range (0x0000 - 0xff00 in this case) to the range specified by low and high.
If the mask is set to zero, then the transport will not set IPv4 TOS for send sockets.
[default] 0.
Set low value of output range to IPv4 TOS.
This is used in conjunction with NDDS_Transport_UDPv4_Property_t::transport_priority_mask and NDDS_Transport_UDPv4_Property_t::transport_priority_mapping_high to define the mapping from DDS transport priority to the IPv4 TOS field. Defines the low value of the output range for scaling.
Note that IPv4 TOS is generally an 8-bit value.
[default] 0.
Set high value of output range to IPv4 TOS.
This is used in conjunction with NDDS_Transport_UDPv4_Property_t::transport_priority_mask and NDDS_Transport_UDPv4_Property_t::transport_priority_mapping_low to define the mapping from DDS transport priority to the IPv4 TOS field. Defines the high value of the output range for scaling.
Note that IPv4 TOS is generally an 8-bit value.
[default] 0xff.
Specifies the period in milliseconds to query for changes in the state of all the interfaces.
The value of this property is ignored if ignore_non_interfaces is 1. If ignore_nonup_interfaces is 0 then the UDPv4 transport creates a new thread to query the status of the interfaces. This property specifies the polling period in milliseconds for performing this query.
[default] 500 milliseconds.
Controls whether or not to reuse multicast receive resources.
Setting this to 0 (FALSE) prevents multicast crosstalk by uniquely configuring a port and creating a receive thread for each multicast group address.
[default] 0.