RTI Connext Java API  Version 6.1.2
UDPv6Transport.Property_t Class Reference

Configurable IPv6/UDP Transport-Plugin properties. More...

Inheritance diagram for UDPv6Transport.Property_t:
Transport.Property_t

Public Member Functions

 Property_t ()
 

Public Attributes

int send_socket_buffer_size
 Size in bytes of the send buffer of a socket used for sending. More...
 
int recv_socket_buffer_size
 Size in bytes of the receive buffer of a socket used for receiving. More...
 
int unicast_enabled
 Allows the transport plugin to use unicast for sending and receiving. More...
 
int multicast_enabled
 Allows the transport plugin to use multicast for sending and receiving. More...
 
int multicast_ttl
 Value for the time-to-live parameter for all multicast sends using this plugin. More...
 
int multicast_loopback_disabled
 Prevents the transport plugin from putting multicast packets onto the loopback interface. More...
 
int ignore_loopback_interface
 Prevents the transport plugin from using the IP loopback interface. More...
 
int ignore_nonrunning_interfaces
 Prevents the transport plugin from using a network interface that is not reported as RUNNING by the operating system. More...
 
int no_zero_copy
 [DEPRECATED] Prevents the transport plugin from doing zero copy. More...
 
int send_blocking
 Control blocking behavior of send sockets. CHANGING THIS FROM THE DEFAULT CAN CAUSE SIGNIFICANT PERFORMANCE PROBLEMS. More...
 
int enable_v4mapped
 Specify whether UDPv6 transport will process IPv4 addresses. More...
 
long transport_priority_mask
 Set mask for use of transport priority field. More...
 
int transport_priority_mapping_low
 Set low value of output range to IPv6 TCLASS. More...
 
int transport_priority_mapping_high
 Set high value of output range to IPv6 TCLASS. More...
 
- Public Attributes inherited from Transport.Property_t
final int classid
 The Transport-Plugin Class ID. More...
 
final int address_bit_count
 Number of bits in a 16-byte address that are used by the transport. Should be between 0 and 128. More...
 
final int properties_bitmap
 A bitmap that defines various properties of the transport to the RTI Connext core. More...
 
int gather_send_buffer_count_max
 Specifies the maximum number of buffers that RTI Connext can pass to the send() method of a transport plugin. More...
 
int message_size_max
 The maximum size of an RTPS message in bytes that can be sent or received by the transport plugin. More...
 
final StringSeq allow_interfaces_list
 A list of strings, each identifying a range of interface addresses or an interface name. If the list is non-empty (i.e., allow_interfaces_list_length > 0), allow the use of only these interfaces. If the list is empty, allow the use of all interfaces. More...
 
final StringSeq deny_interfaces_list
 A list of strings, each identifying a range of interface addresses or an interface name. If the list is non-empty (i.e., deny_interfaces_list_length > 0), deny the use of these interfaces. More...
 
final StringSeq allow_multicast_interfaces_list
 A list of strings, each identifying a range of interface addresses or an interface name. If the list is non-empty (i.e., allow_multicast_interfaces_list_length > 0), allow the use of multicast only on these interfaces; otherwise allow the use of all the allowed interfaces. More...
 
final StringSeq deny_multicast_interfaces_list
 A list of strings, each identifying a range of interface addresses or an interface name. If the list is non-empty (i.e., deny_multicast_interfaces_list_length > 0), deny the use of those interfaces for multicast. More...
 
byte [] transport_uuid = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
 Univocally identifies a transport plugin. More...
 

Additional Inherited Members

- Static Public Attributes inherited from Transport.Property_t
static final int NDDS_TRANSPORT_CLASSID_INVALID = -1
 Invalid Transport Class ID. More...
 
static final int NDDS_TRANSPORT_CLASSID_RESERVED_RANGE = 1000
 Transport-Plugin class IDs below this are reserved by RTI. More...
 
static final int NDDS_TRANSPORT_PROPERTY_BIT_BUFFER_ALWAYS_LOANED = 0x2
 Specified zero-copy behavior of transport. More...
 
static final int NDDS_TRANSPORT_PROPERTY_GATHER_SEND_BUFFER_COUNT_MIN = 3
 Minimum number of gather-send buffers that must be supported by a Transport Plugin implementation. More...
 

Detailed Description

Configurable IPv6/UDP Transport-Plugin properties.

You can modify the properties in this structure to configure the plugin. However, you must set the properties before the plugin is instantiated.

See also
com.rti.ndds.transport.TransportSupport.set_builtin_transport_property()

Constructor & Destructor Documentation

◆ Property_t()

Member Data Documentation

◆ send_socket_buffer_size

int send_socket_buffer_size

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 com.rti.ndds.transport.Transport.Property_t.message_size_max. The maximum value is operating system-dependent.

By default, it will be set to com.rti.ndds.transport.UDPv6Transport_SEND_SOCKET_BUFFER_SIZE_DEFAULT.

If you configure this parameter to be com.rti.ndds.transport.UDPv6Transport_SOCKET_BUFFER_SIZE_OS_DEFAULT, then setsockopt() (or equivalent) will not be called to size the send buffer of the socket. The transport will use the OS default.

Referenced by UDPv6Transport.Property_t.Property_t().

◆ recv_socket_buffer_size

int recv_socket_buffer_size

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 com.rti.ndds.transport.Transport.Property_t.message_size_max. The maximum value is operating system-dependent.

By default, it will be set to com.rti.ndds.transport.UDPv6Transport_RECV_SOCKET_BUFFER_SIZE_DEFAULT.

If you configure this parameter to be com.rti.ndds.transport.UDPv6Transport_SOCKET_BUFFER_SIZE_OS_DEFAULT, then setsockopt() (or equivalent) will not be called to size the receive buffer of the socket. The transport will use the OS default.

Referenced by UDPv6Transport.Property_t.Property_t().

◆ unicast_enabled

int unicast_enabled

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 instantiated.

Referenced by UDPv6Transport.Property_t.Property_t().

◆ multicast_enabled

int multicast_enabled

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 instantiated.

Referenced by UDPv6Transport.Property_t.Property_t().

◆ multicast_ttl

int multicast_ttl

Value for the time-to-live parameter for all multicast sends using this plugin.

This is used to set the TTL of multicast packets sent by this transport plugin.

[default] 1

Referenced by UDPv6Transport.Property_t.Property_t().

◆ multicast_loopback_disabled

int 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 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.

Referenced by UDPv6Transport.Property_t.Property_t().

◆ ignore_loopback_interface

int ignore_loopback_interface

Prevents the transport plugin from using the IP loopback interface.

Currently three values are allowed:

  • 0: Forces local traffic to be sent over loopback, even if a more efficient transport (such as shared memory) is installed (in which case traffic will be sent over both transports).
  • 1: Disables local traffic via this plugin. Do not use the IP loopback interface even if no NICs are discovered. This is useful when you want applications running on the same node to use a more efficient transport (such as shared memory) instead of the IP loopback.
  • -1: Automatic. Lets RTI Connext decide between the above two choices.

The current "automatic" (-1) RTI Connext policy is as follows.

  • If a shared memory transport plugin is available for local traffic and there is a locator on the initial peers list that can use shared memory, the effective value is 1 (i.e., disable UDPv6 local traffic).
  • Otherwise, the effective value is 0 (i.e., use UDPv6 for local traffic also).

[default] -1 Automatic RTI Connext policy based on availability of the shared memory transport.

Referenced by UDPv6Transport.Property_t.Property_t().

◆ ignore_nonrunning_interfaces

int ignore_nonrunning_interfaces

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 that 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:

  • 0: Do not check the RUNNING flag when enumerating interfaces, just make sure interface is UP.
  • 1: Check flag when enumerating interfaces and ignore those that are not reported as RUNNING. This can be used on some operating systems to cause the transport to ignore interfaces that are enabled but not connected to the network.

[default] 1 (i.e., check RUNNING flag)

Referenced by UDPv6Transport.Property_t.Property_t().

◆ no_zero_copy

int no_zero_copy

[DEPRECATED] Prevents the transport plugin from doing zero copy.

DEPRECATED: This property has no effect. By default, this plugin will use the zero copy on OSes that offer it. While this is good for performance, it may sometimes 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. If 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 the use of zero copy.

By default this is set to 0, so RTI Connext will use the zero copy API if offered by the OS.

Referenced by UDPv6Transport.Property_t.Property_t().

◆ send_blocking

int send_blocking

Control blocking behavior of send sockets. CHANGING THIS FROM THE DEFAULT CAN CAUSE SIGNIFICANT PERFORMANCE PROBLEMS.

Currently two values are defined:

  • NDDS_TRANSPORT_UDPV6_BLOCKING_ALWAYS: Sockets are blocking (default socket options for the operating system).
  • NDDS_TRANSPORT_UDPV6_BLOCKING_NEVER: Sockets are modified to make them non-blocking. THIS MAY CAUSE SIGNIFICANT PERFORMANCE PROBLEMS.

[default] NDDS_TRANSPORT_UDPV6_BLOCKING_ALWAYS.

Referenced by UDPv6Transport.Property_t.Property_t().

◆ enable_v4mapped

int enable_v4mapped

Specify whether UDPv6 transport will process IPv4 addresses.

Set this to 1 to turn on processing of IPv4 addresses. Note that this may make it incompatible with use of the UDPv4 transport within the same domain participant.

[default] 0.

Referenced by UDPv6Transport.Property_t.Property_t().

◆ transport_priority_mask

long transport_priority_mask

Set mask for use of transport priority field.

If transport priority mapping is supported on the platform, this mask is used in conjunction with com.rti.ndds.transport.UDPv6Transport.Property_t.transport_priority_mapping_low and com.rti.ndds.transport.UDPv6Transport.Property_t.transport_priority_mapping_high to define the mapping from the DDS transport priority (see TRANSPORT_PRIORITY) to the IPv6 TCLASS field. Defines a contiguous region of bits in the 32-bit transport priority value that is used to generate values for the IPv6 TCLASS 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 IPv6 TCLASS for send sockets.

[default] 0.

Referenced by UDPv6Transport.Property_t.Property_t().

◆ transport_priority_mapping_low

int transport_priority_mapping_low

Set low value of output range to IPv6 TCLASS.

This is used in conjunction with com.rti.ndds.transport.UDPv6Transport.Property_t.transport_priority_mask and com.rti.ndds.transport.UDPv6Transport.Property_t.transport_priority_mapping_high to define the mapping from the DDS transport priority to the IPv6 TCLASS field. Defines the low value of the output range for scaling.

Note that IPv6 TCLASS is generally an 8-bit value.

[default] 0.

Referenced by UDPv6Transport.Property_t.Property_t().

◆ transport_priority_mapping_high

int transport_priority_mapping_high

Set high value of output range to IPv6 TCLASS.

This is used in conjunction with com.rti.ndds.transport.UDPv6Transport.Property_t.transport_priority_mask and com.rti.ndds.transport.UDPv6Transport.Property_t.transport_priority_mapping_low to define the mapping from the DDS transport priority to the IPv6 TCLASS field. Defines the high value of the output range for scaling.

Note that IPv6 TCLASS is generally an 8-bit value.

[default] 0xff.

Referenced by UDPv6Transport.Property_t.Property_t().