RTI Connext C API Version 7.1.0
Transport Plugins Configuration

Transport plugins configuration with RTI Connext. More...

Data Structures

struct  NDDS_Transport_UUID
 Univocally identifies a transport plugin instance. More...
 
struct  TransportAllocationSettings_t
 Allocation settings used by various internal buffers. More...
 
struct  NDDS_Transport_Property_t
 Base configuration structure that must be inherited by derived Transport Plugin classes. More...
 

Macros

#define NDDS_TRANSPORT_PORT_INVALID   ((NDDS_Transport_Port_t) 0)
 Port 0 is considered to be invalid. More...
 
#define NDDS_TRANSPORT_UUID_SIZE   12
 Size of a NDDS_Transport_UUID. More...
 
#define NDDS_TRANSPORT_LENGTH_UNLIMITED   -1
 Represent an unlimited length. More...
 
#define NDDS_TRANSPORT_INTERFACE_RANK_UNKNOWN   0
 Rank interface as unknown or not yet set. More...
 
#define NDDS_TRANSPORT_UUID_UNKNOWN   {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}
 Value for UUIDs that have no known value. Used as default. More...
 
#define NDDS_TRANSPORT_ALLOCATION_SETTINGS_MAX_COUNT_UNLIMITED   (-1)
 The constant used as 'unlimited' for the 'max_count' field of the structure TransportAllocationSettings_t. More...
 
#define NDDS_TRANSPORT_ALLOCATION_SETTINGS_INCREMENTAL_COUNT_AUTOMATIC   (-1)
 The constant used as 'automatic' for the 'incremental_count' field of the structure TransportAllocationSettings_t. More...
 
#define NDDS_TRANSPORT_ALLOCATION_SETTINGS_DEFAULT
 The constant used as default value for the struct TransportAllocationSettings_t. More...
 
#define NDDS_TRANSPORT_CLASSID_INVALID   (-1)
 Invalid Transport Class ID. More...
 
#define NDDS_TRANSPORT_CLASSID_UDPv4   (1)
 Builtin IPv4 UDP/IP Transport Plugin class ID. More...
 
#define NDDS_TRANSPORT_CLASSID_SHMEM   (0x01000000)
 Builtin Shared-Memory Transport Plugin class ID. More...
 
#define NDDS_TRANSPORT_CLASSID_SHMEM_510   (2)
 Builtin Shared-Memory Transport Plugin class ID for Connext 5.1.0 and earlier. More...
 
#define NDDS_TRANSPORT_CLASSID_UDPv6   (2)
 Builtin IPv6 UDP/IP Transport Plugin class ID. More...
 
#define NDDS_TRANSPORT_CLASSID_UDPv6_510   (5)
 Builtin IPv6 UDP/IP Transport Plugin class ID for Connext 5.1.0 and earlier. More...
 
#define NDDS_TRANSPORT_CLASSID_DTLS   (6)
 DTLS Secure Transport Plugin class ID. More...
 
#define NDDS_TRANSPORT_CLASSID_WAN_DEPRECATED   (7)
 WAN Transport Plugin class ID (deprecated since 7.0.0). More...
 
#define NDDS_TRANSPORT_CLASSID_TCPV4_LAN   (8)
 IPv4 TCP/IP Transport Plugin class ID for LAN case. More...
 
#define NDDS_TRANSPORT_CLASSID_TCPV4_WAN   (9)
 IPv4 TCP/IP Transport Plugin class ID for WAN case. More...
 
#define NDDS_TRANSPORT_CLASSNAME_TCPV4_WAN   "tcpv4_wan"
 IPv4 TCP/IP Transport Plugin class name for WAN case. More...
 
#define NDDS_TRANSPORT_CLASSID_TLSV4_LAN   (10)
 IPv4 TCP/IP Transport Plugin class ID for LAN case with TLS enabled. More...
 
#define NDDS_TRANSPORT_CLASSID_TLSV4_WAN   (11)
 IPv4 TCP/IP Transport Plugin class ID for WAN case with TLS enabled. More...
 
#define NDDS_TRANSPORT_CLASSID_UDPv4_WAN   (0x01000001)
 Builtin IPv4 UDP/IP Asymmetric Transport Plugin class ID. More...
 
#define NDDS_TRANSPORT_CLASSID_RESERVED_RANGE   (1000)
 Transport Plugin class IDs below this are reserved by RTI. More...
 
#define NDDS_TRANSPORT_PROPERTY_BIT_BUFFER_ALWAYS_LOANED   (0x2)
 Specified zero-copy behavior of transport. More...
 
#define 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...
 

Typedefs

typedef RTI_UINT32 NDDS_Transport_Port_t
 Type for storing RTI Connext RTPS ports. More...
 
typedef RTI_INT32 NDDS_Transport_ClassId_t
 Type for storing RTI Connext Transport Plugin class IDs. More...
 

Detailed Description

Transport plugins configuration with RTI Connext.

Transport plugins are configured using properties. Each transport plugin must derive its property from a base configuration structure NDDS_Transport_Property_t.

To see how to configure the Built-in Transport Plugins, see Built-in Transport Plugins.

See also
Built-in Transport Plugins

Macro Definition Documentation

◆ NDDS_TRANSPORT_PORT_INVALID

#define NDDS_TRANSPORT_PORT_INVALID   ((NDDS_Transport_Port_t) 0)

Port 0 is considered to be invalid.

◆ NDDS_TRANSPORT_UUID_SIZE

#define NDDS_TRANSPORT_UUID_SIZE   12

Size of a NDDS_Transport_UUID.

◆ NDDS_TRANSPORT_LENGTH_UNLIMITED

#define NDDS_TRANSPORT_LENGTH_UNLIMITED   -1

Represent an unlimited length.

◆ NDDS_TRANSPORT_INTERFACE_RANK_UNKNOWN

#define NDDS_TRANSPORT_INTERFACE_RANK_UNKNOWN   0

Rank interface as unknown or not yet set.

◆ NDDS_TRANSPORT_UUID_UNKNOWN

#define NDDS_TRANSPORT_UUID_UNKNOWN   {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}

Value for UUIDs that have no known value. Used as default.

◆ NDDS_TRANSPORT_ALLOCATION_SETTINGS_MAX_COUNT_UNLIMITED

#define NDDS_TRANSPORT_ALLOCATION_SETTINGS_MAX_COUNT_UNLIMITED   (-1)

The constant used as 'unlimited' for the 'max_count' field of the structure TransportAllocationSettings_t.

◆ NDDS_TRANSPORT_ALLOCATION_SETTINGS_INCREMENTAL_COUNT_AUTOMATIC

#define NDDS_TRANSPORT_ALLOCATION_SETTINGS_INCREMENTAL_COUNT_AUTOMATIC   (-1)

The constant used as 'automatic' for the 'incremental_count' field of the structure TransportAllocationSettings_t.

Automatic means the buffer size will double at every reallocation.

◆ NDDS_TRANSPORT_ALLOCATION_SETTINGS_DEFAULT

#define NDDS_TRANSPORT_ALLOCATION_SETTINGS_DEFAULT
Value:
{ \
2L, /* initial_count */ \
NDDS_TRANSPORT_ALLOCATION_SETTINGS_MAX_COUNT_UNLIMITED, /* max_count */ \
NDDS_TRANSPORT_ALLOCATION_SETTINGS_INCREMENTAL_COUNT_AUTOMATIC /* incremental_count */ \
}

The constant used as default value for the struct TransportAllocationSettings_t.

The default value defined in this constant, sets the buffer to have:

◆ NDDS_TRANSPORT_CLASSID_INVALID

#define NDDS_TRANSPORT_CLASSID_INVALID   (-1)

Invalid Transport Class ID.

Transport-Plugins implementations should set their class ID to a value different than this.

◆ NDDS_TRANSPORT_CLASSID_UDPv4

#define NDDS_TRANSPORT_CLASSID_UDPv4   (1)

Builtin IPv4 UDP/IP Transport Plugin class ID.

◆ NDDS_TRANSPORT_CLASSID_SHMEM

#define NDDS_TRANSPORT_CLASSID_SHMEM   (0x01000000)

Builtin Shared-Memory Transport Plugin class ID.

◆ NDDS_TRANSPORT_CLASSID_SHMEM_510

#define NDDS_TRANSPORT_CLASSID_SHMEM_510   (2)

Builtin Shared-Memory Transport Plugin class ID for Connext 5.1.0 and earlier.

◆ NDDS_TRANSPORT_CLASSID_UDPv6

#define NDDS_TRANSPORT_CLASSID_UDPv6   (2)

Builtin IPv6 UDP/IP Transport Plugin class ID.

◆ NDDS_TRANSPORT_CLASSID_UDPv6_510

#define NDDS_TRANSPORT_CLASSID_UDPv6_510   (5)

Builtin IPv6 UDP/IP Transport Plugin class ID for Connext 5.1.0 and earlier.

◆ NDDS_TRANSPORT_CLASSID_DTLS

#define NDDS_TRANSPORT_CLASSID_DTLS   (6)

DTLS Secure Transport Plugin class ID.

◆ NDDS_TRANSPORT_CLASSID_WAN_DEPRECATED

#define NDDS_TRANSPORT_CLASSID_WAN_DEPRECATED   (7)

WAN Transport Plugin class ID (deprecated since 7.0.0).

◆ NDDS_TRANSPORT_CLASSID_TCPV4_LAN

#define NDDS_TRANSPORT_CLASSID_TCPV4_LAN   (8)

IPv4 TCP/IP Transport Plugin class ID for LAN case.

◆ NDDS_TRANSPORT_CLASSID_TCPV4_WAN

#define NDDS_TRANSPORT_CLASSID_TCPV4_WAN   (9)

IPv4 TCP/IP Transport Plugin class ID for WAN case.

◆ NDDS_TRANSPORT_CLASSNAME_TCPV4_WAN

#define NDDS_TRANSPORT_CLASSNAME_TCPV4_WAN   "tcpv4_wan"

IPv4 TCP/IP Transport Plugin class name for WAN case.

◆ NDDS_TRANSPORT_CLASSID_TLSV4_LAN

#define NDDS_TRANSPORT_CLASSID_TLSV4_LAN   (10)

IPv4 TCP/IP Transport Plugin class ID for LAN case with TLS enabled.

◆ NDDS_TRANSPORT_CLASSID_TLSV4_WAN

#define NDDS_TRANSPORT_CLASSID_TLSV4_WAN   (11)

IPv4 TCP/IP Transport Plugin class ID for WAN case with TLS enabled.

◆ NDDS_TRANSPORT_CLASSID_UDPv4_WAN

#define NDDS_TRANSPORT_CLASSID_UDPv4_WAN   (0x01000001)

Builtin IPv4 UDP/IP Asymmetric Transport Plugin class ID.

◆ NDDS_TRANSPORT_CLASSID_RESERVED_RANGE

#define NDDS_TRANSPORT_CLASSID_RESERVED_RANGE   (1000)

Transport Plugin class IDs below this are reserved by RTI.

User-defined Transport-Plugins should use a class ID greater than this number.

◆ NDDS_TRANSPORT_PROPERTY_BIT_BUFFER_ALWAYS_LOANED

#define NDDS_TRANSPORT_PROPERTY_BIT_BUFFER_ALWAYS_LOANED   (0x2)

Specified zero-copy behavior of transport.

A Transport Plugin may commit to one of three behaviors for zero copy receives:

  1. Always does zero copy.
  2. Sometimes does zero copy, up to the transport discretion.
  3. Never does zero copy.

This bit should be set only if the Transport Plugin commits to always doing a zero copy receive, or more specifically, always loaning a buffer through its receive_rEA() call.

In that case, RTI Connext will not need to allocate storage for a message that it retrieves with the receive_rEA() call.

◆ NDDS_TRANSPORT_PROPERTY_GATHER_SEND_BUFFER_COUNT_MIN

#define NDDS_TRANSPORT_PROPERTY_GATHER_SEND_BUFFER_COUNT_MIN   (3)

Minimum number of gather-send buffers that must be supported by a Transport Plugin implementation.

For the NDDS_Transport_Property_t structure to be valid, the value of NDDS_Transport_Property_t::gather_send_buffer_count_max must be greater than or equal to this value.

Typedef Documentation

◆ NDDS_Transport_Port_t

typedef RTI_UINT32 NDDS_Transport_Port_t

Type for storing RTI Connext RTPS ports.

Unlike IPv4 Socket API ports, which are 2 bytes long, the RTI Connext representation of an RTPS port is 4 bytes.

◆ NDDS_Transport_ClassId_t

typedef RTI_INT32 NDDS_Transport_ClassId_t

Type for storing RTI Connext Transport Plugin class IDs.

Each implementation of a Transport Plugin must have a unique ID. For example, a UDP/IP Transport Plugin implemenation must have a different ID than a Shared Memory Transport Plugin.

User-implemented Transport Plugins must have an ID higher than NDDS_TRANSPORT_CLASSID_RESERVED_RANGE.