|
RTI Connext Micro C API Version 4.3.0
|
<<eXtension>> <<cert>> Properties for the UDP Transport. More...
#include <netio_udp.h>
Data Fields | |
| struct REDA_StringSeq | allow_interface |
| Sequence of allowed interface names. | |
| struct REDA_StringSeq | deny_interface |
| Sequence of denied interface names. This list is checked after the allow_interface list. | |
| RTI_INT32 | max_send_buffer_size |
| The size of the send socket buffer. | |
| RTI_INT32 | max_receive_buffer_size |
| The size of the receive socket buffer. | |
| RTI_INT32 | max_message_size |
| The maximum size of the message which can be sent or received. | |
| RTI_INT32 | max_send_message_size |
| The maximum size of the message which can be sent. This is only a hint and not enforced. | |
| RTI_INT32 | multicast_ttl |
| The maximum TTL. | |
| struct UDP_NatEntrySeq | nat |
| Configure network address translation (NAT). | |
| struct UDP_InterfaceTableEntrySeq | if_table |
| The interface table if interfaces are added manually. | |
| REDA_String_T | multicast_interface |
| The network interface to use to send to multicast. | |
| RTI_BOOL | is_default_interface |
| If this should be considered the default UDP interface if no other UDP interface is found to handle a route. | |
| RTI_BOOL | disable_auto_interface_config |
| Disable reading of available network interfaces using system information and instead rely on the manually configured interface table. | |
| RTI_BOOL | multicast_loopback_disabled |
| Prevents the transport plugin from putting multicast packets onto the loopback interface. | |
| struct OSAPI_ThreadProperty | recv_thread |
| Thread properties for each receive thread created by this NETIO interface. | |
| RTI_BOOL | enable_interface_bind |
| Bind receive sockets to specific interfaces. | |
| RTI_BOOL | disable_multicast_bind |
| Disable a multicast receive socket binding to a multicast address. | |
| RTI_BOOL | disable_multicast_interface_select |
| Do not select outgoing interfaces when sending to multicast groups. | |
| struct UDP_TransformRuleSeq | source_rules |
| Rules for how to transform received UDP payloads based on the source address. | |
| struct UDP_TransformRuleSeq | destination_rules |
| Rules for how to transform sent UDP payloads based on the destination address. | |
| UDP_TransformUdpMode_T | transform_udp_mode |
| Determines how regular UDP is supported when transformations are supported. | |
| RTI_INT32 | transform_locator_kind |
| The locator to use for locators that have transformations. | |
| RTI_INT32 | transport_priority_mapping_low |
| Set low value of output range to IPv4 TOS. | |
| RTI_INT32 | transport_priority_mapping_high |
| Highest transport priority value for DSCP mapping. | |
| RTI_UINT32 | transport_priority_mask |
| Set mask for use of transport priority field. | |
| RTI_UINT32 | max_unicast_send_sockets |
| The number of unicast send sockets to create per transport instance. | |
<<eXtension>> <<cert>> Properties for the UDP Transport.
NOTE: some default values (or entire data fields) may not be used on certain platforms. Refer to the Platform Notes in the User's Manual for more details.
| struct REDA_StringSeq UDP_InterfaceFactoryProperty::allow_interface |
Sequence of allowed interface names.
| struct REDA_StringSeq UDP_InterfaceFactoryProperty::deny_interface |
Sequence of denied interface names. This list is checked after the allow_interface list.
| RTI_INT32 UDP_InterfaceFactoryProperty::max_send_buffer_size |
The size of the send socket buffer.
[default] 256 * 1024, 65535 for QNX (note)
| RTI_INT32 UDP_InterfaceFactoryProperty::max_receive_buffer_size |
The size of the receive socket buffer.
[default] 256 * 1024, 65535 for QNX (note)
| RTI_INT32 UDP_InterfaceFactoryProperty::max_message_size |
| RTI_INT32 UDP_InterfaceFactoryProperty::max_send_message_size |
The maximum size of the message which can be sent. This is only a hint and not enforced.
This parameters is useful to UDP transformation functions which must allocate a buffer to put the result in.
[default] -1, but note that this is a place holder for UDP_MAX_MESSAGE_SIZE_UNLIMITED (note)
| struct UDP_NatEntrySeq UDP_InterfaceFactoryProperty::nat |
Configure network address translation (NAT).
Configure network address translation (NAT). This feature only supports translation between a private and public IP address; UDP ports are not translated. Does not support any hole punching technique or WAN server, thus is only useful when the private and public address mapping is static. Please refer to UDP_NatEntrySeq for the definition of the sequence element.
| struct UDP_InterfaceTableEntrySeq UDP_InterfaceFactoryProperty::if_table |
The interface table if interfaces are added manually.
| REDA_String_T UDP_InterfaceFactoryProperty::multicast_interface |
The network interface to use to send to multicast.
| RTI_BOOL UDP_InterfaceFactoryProperty::is_default_interface |
If this should be considered the default UDP interface if no other UDP interface is found to handle a route.
[default] 1 (RTI_TRUE) (note)
| RTI_BOOL UDP_InterfaceFactoryProperty::disable_auto_interface_config |
Disable reading of available network interfaces using system information and instead rely on the manually configured interface table.
[default] 0 (RTI_FALSE) (note)
| RTI_BOOL UDP_InterfaceFactoryProperty::multicast_loopback_disabled |
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 Connext DDS Micro 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.
[default] 0 (RTI_FALSE) (note)
| struct OSAPI_ThreadProperty UDP_InterfaceFactoryProperty::recv_thread |
Thread properties for each receive thread created by this NETIO interface.
[default] See ::DDS_UDP_THREAD_PROPERTY_DEFAULT for more detail (note)
| RTI_BOOL UDP_InterfaceFactoryProperty::enable_interface_bind |
Bind receive sockets to specific interfaces.
When this is set to 1, the UDP transport binds each receive port to a specific interface when the allow_interface/deny_interface lists are non-empty.
[default] 0 (note)
| RTI_BOOL UDP_InterfaceFactoryProperty::disable_multicast_bind |
Disable a multicast receive socket binding to a multicast address.
NOTE: This option has no effect on Windows. On Windows a multicast socket is only bound to the UDP port.
The default value is 0, meaning that a multicast socket is bound to both the UDP port and multicast address.
When this is set to 1, the UDP transport binds a multicast receive socket only to the UDP port.
[default] 0 (note)
| RTI_BOOL UDP_InterfaceFactoryProperty::disable_multicast_interface_select |
Do not select outgoing interfaces when sending to multicast groups.
The default value is 0 and RTI Connext DDS Micro will select the outgoing interfaces when sending to multicast either using the allow_interface and deny_interface properties, or the multicast_interface property.
When this is set to 1, RTI Connext DDS Micro will not select the outgoing interface when sending to multicast groups. This may be useful if the OS has fine grained control to select which interface should be used to send to multicast.
[default] 0 (note)
| struct UDP_TransformRuleSeq UDP_InterfaceFactoryProperty::source_rules |
Rules for how to transform received UDP payloads based on the source address.
| struct UDP_TransformRuleSeq UDP_InterfaceFactoryProperty::destination_rules |
Rules for how to transform sent UDP payloads based on the destination address.
| UDP_TransformUdpMode_T UDP_InterfaceFactoryProperty::transform_udp_mode |
Determines how regular UDP is supported when transformations are supported.
[default] UDP_TRANSFORM_UDP_MODE_DISABLED (note)
| RTI_INT32 UDP_InterfaceFactoryProperty::transform_locator_kind |
The locator to use for locators that have transformations.
When transformation rules have been enabled, they are announced as a vendor-specific locator. This property overrides this value.
NOTE: Changing this value may prevent communication.
NOTE: Must be greater or equal than NETIO_ADDRESS_KIND_USER and not equal to NETIO_ADDRESS_KIND_SHMEM or NETIO_ADDRESS_KIND_INTRA.
[default] NETIO_ADDRESS_KIND_TUDPv4 (note)
| RTI_INT32 UDP_InterfaceFactoryProperty::transport_priority_mapping_low |
Set low value of output range to IPv4 TOS.
This is used in conjunction with transport_priority_mask and transport_priority_mapping_high to define the mapping from the 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. The default value is 0.
| RTI_INT32 UDP_InterfaceFactoryProperty::transport_priority_mapping_high |
Highest transport priority value for DSCP mapping.
When transport_priority_mask is non-zero, this value defines the highest transport priority value that will be mapped to DSCP. Transport priority values higher than this value will be mapped to DSCP 63.
The default value is 255.
| RTI_UINT32 UDP_InterfaceFactoryProperty::transport_priority_mask |
Set mask for use of transport priority field.
This is used in conjunction with transport_priority_mapping_low and transport_priority_mapping_high to define the mapping from the DDS 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.
| RTI_UINT32 UDP_InterfaceFactoryProperty::max_unicast_send_sockets |
The number of unicast send sockets to create per transport instance.
By default, the transport uses a single socket per instance for outgoing unicast communication.
When this value is greater than 1, the transport creates the specified number of send sockets per instance for outgoing communication.
This setting is particularly useful when used with the TRANSPORT_PRIORITY QoS policy. When the transport creates multiple sockets, it maintains an internal priority-to-socket mapping. For each outgoing message, the transport computes the effective priority (after applying the configured priority mask and mapping range) and selects a preferred socket based on this mapping.
If the selected socket is already configured with the required priority, the transport sends the message immediately. Otherwise, the transport updates the socket’s IP_TOS value before transmission. Increasing the number of sockets therefore reduces the likelihood of runtime priority reconfiguration and can improve performance in systems that use multiple distinct priorities.
You can configure the value to match the total number of distinct effective priorities assigned to all DDS_DataWriter and DDS_DataReader instances using the interface. When the number of sockets is greater than or equal to the number of distinct effective priorities, each priority can be associated with a dedicated socket, eliminating the need for priority updates at runtime.
If the number of sockets is smaller than the number of distinct effective priorities, multiple priorities will share sockets. In this case, the transport distributes priorities evenly across the available sockets. However, because priorities are numeric values, certain structured priority sets (for example, DSCP codepoints that are spaced at regular intervals) may cluster onto the same socket depending on the configured socket count. For best distribution, avoid choosing a socket count that shares common divisors with typical priority spacing (for example, powers of 2 when using DSCP values that are multiples of 8).
NOTE: Increasing the number of sockets increases memory usage and file descriptor consumption. You should balance performance benefits against memory and resource overhead when selecting an appropriate value. [default] 1 (note)