RTI Secure Wan Transport  Version 5.3.0
 All Data Structures Functions Variables Typedefs Enumerations Groups Pages
WAN Transport C API Reference

Basic types and macros provided by RTI Connext for use in the WAN Transport-Plugin interface. More...

Data Structures

struct  NDDS_Transport_WAN_Property_t
 WAN transport plugin property. More...
 

Macros

#define NDDS_TRANSPORT_WAN_TRANSPORT_INSTANCE_ID_LENGTH   12
 Length of private network ID in NDDS_Transport_WAN_Property_t::transport_instance_id.
 
#define NDDS_TRANSPORT_WAN_ADDRESS_BIT_COUNT   (128)
 Default value of NDDS_Transport_Property_t::address_bit_count in NDDS_Transport_WAN_Property_t::parent.
 
#define NDDS_TRANSPORT_WAN_PROPERTIES_BITMAP_DEFAULT   (0)
 Default value of NDDS_Transport_Property_t::properties_bitmap in NDDS_Transport_WAN_Property_t::parent.
 
#define NDDS_TRANSPORT_WAN_PROPERTY_DEFAULT
 Use this to initialize a NDDS_Transport_WAN_Property_t structure.
 

Functions

NDDS_Transport_Plugin * NDDS_Transport_WAN_create (NDDS_Transport_Address_t *default_network_address_out, const struct DDS_PropertyQosPolicy *property_in)
 Create an instance of a WAN Transport Plugin using PropertyQosPolicy (for dynamic loading)
 
NDDS_Transport_Plugin * NDDS_Transport_WAN_new (const struct NDDS_Transport_WAN_Property_t *property_in)
 Create an instance of a WAN Transport Plugin.
 

Detailed Description

Basic types and macros provided by RTI Connext for use in the WAN Transport-Plugin interface.

Macro Definition Documentation

#define NDDS_TRANSPORT_WAN_TRANSPORT_INSTANCE_ID_LENGTH   12

Length of private network ID in NDDS_Transport_WAN_Property_t::transport_instance_id.

#define NDDS_TRANSPORT_WAN_ADDRESS_BIT_COUNT   (128)
#define NDDS_TRANSPORT_WAN_PROPERTIES_BITMAP_DEFAULT   (0)
#define NDDS_TRANSPORT_WAN_PROPERTY_DEFAULT
Value:
{ \
{ \
{ NDDS_TRANSPORT_CLASSID_WAN, /* classid */ \
NDDS_TRANSPORT_WAN_ADDRESS_BIT_COUNT, /* address_bit_count */ \
NDDS_TRANSPORT_WAN_PROPERTIES_BITMAP_DEFAULT, /* properties_bitmap */ \
NDDS_TRANSPORT_UDPV4_GATHER_SEND_BUFFER_COUNT_MAX_DEFAULT, /* gather_send_buffer_count_max */ \
NDDS_TRANSPORT_UDPV4_MESSAGE_SIZE_MAX_DEFAULT, /* message_size_max */ \
NULL, 0, /* allow_interfaces_list, allow_interfaces_list_length */ \
NULL, 0, /* deny_interfaces_list deny_interfaces_list_length */ \
NULL, 0, /* allow_multicast_interfaces_list, allow_multicast_interfaces_list_length */ \
NULL, 0, /* deny_multicast_interfaces_list, deny_multicast_interfaces_list_length */ \
NULL, /* domain_participant_ptr*/ \
}, /* parent (NDDS_Transport_Property_t) */ \
NDDS_TRANSPORT_UDPV4_SEND_SOCKET_BUFFER_SIZE_DEFAULT, /* send_socket_buffer_size */ \
NDDS_TRANSPORT_UDPV4_RECV_SOCKET_BUFFER_SIZE_DEFAULT, /* recv_socket_buffer_size */ \
1, /* unicast_enabled (use unicast) */ \
0, /* multicast_enabled (do NOT use multicast) */ \
NDDS_TRANSPORT_UDPV4_MULTICAST_TTL_DEFAULT, /* multicast_ttl */ \
0, /* multicast_loopback_disabled (enable) */ \
-1, /* ignore_loopback_interface (auto) */ \
1, /* ignore_nonup_interfaces */ \
0, /* ignore_nonrunning_interfaces (do not ignore non-RUNNING) */ \
0, /* no_zero_copy */ \
NDDS_TRANSPORT_UDPV4_BLOCKING_DEFAULT, /* send_blocking */ \
0, /* enable_v4mapped */ \
NDDS_TRANSPORT_UDPV4_USE_CHECKSUM_ENABLED, /* use_checksum */ \
0, /* transport_priority_mask (no mapping to IP_TOS by default) */ \
0, /* transport_priority_mapping_low */ \
0xff, /* transport_priority_mapping_high */ \
1, /* send_ping */ \
500, /* 500 millisecs is the default polling period*/ \
0, /* reuse multicast receive resource (disabled) */ \
28, /* protocol_overhead_max (UDP(8)+IP(20)) */ \
1, /* disable interface tracking (disabled) */\
NULL /* public_address */ \
}, /* parent (NDDS_Transport_UDPv4_Property_t) */ \
0, /* enable_security */ \
NDDS_TRANSPORT_UDPV4_MESSAGE_SIZE_MAX_DEFAULT, /* recv_decode_buffer_size (actually want MTU) */ \
144, /* port_offset */ \
1000, /* dtls_handshake_resend_interval (1 second) */ \
7, /* dtls_handshake_number_of_resends (last resend at ~60s) */ \
60, /* dtls_connection_liveliness_interval (60x resend interval) */ \
0, /* transport_mtu (don't set MTU) */ \
NDDS_TRANSPORT_TLS_OPENSSL_CONFIGURATION_DEFAULT, /* tls */ \
{0,0,0,0,0,0,0,0,0,0,0,0}, /* transport_instance_id (Network id) */ \
NULL, /* interface_address (Interface address to bind) */ \
NULL, 3478, /* server, server_port */ \
100, /* stun_retransmission_interval */ \
7, /* stun_number_of_retransmissions */ \
15000 /* stun_liveliness_period */ \
}

Use this to initialize a NDDS_Transport_WAN_Property_t structure.

Function Documentation

NDDS_Transport_Plugin* NDDS_Transport_WAN_create ( NDDS_Transport_Address_t default_network_address_out,
const struct DDS_PropertyQosPolicy property_in 
)

Create an instance of a WAN Transport Plugin using PropertyQosPolicy (for dynamic loading)

An application may create and register multiple instances of this Transport Plugin with RTI Connext. This may be to partition the network interfaces across multiple RTI Connext domains. However, note that the underlying transport, the operating system's IP layer, is still a "singleton". For example, if a unicast transport has already bound to a port, and another unicast transport tries to bind to the same port, the second attempt will fail. The NDDS_Transport_WAN_Property_t::port_offset field is included to allow compatibility with a parallel non-WAN transport.

The transport plugin honors the interface/multicast "white" and "black" lists specified in the NDDS_Transport_WAN_Property_t::parent::parent:

The WAN transport can be configured to bind all sockets to a specified interface. This is required for consistent WAN communication on multi-homed systems.

The format of a string in these lists is assumed to be in standard IPv4 dot notation, possibly containing wildcards. For example:

  • 10.10.30.232
  • 10.10.*.*
  • 192.168.1.*
  • etc. Strings not in the correct format will be ignored.
Parameters
default_network_address_out<<out>> Network address to be used when registering the transport.
property_in<<in>> Desired behavior of this transport, through the property field in DDS_DomainParticipantQos.
Returns
A WAN Transport Plugin instance on success; or NULL on failure.
NDDS_Transport_Plugin* NDDS_Transport_WAN_new ( const struct NDDS_Transport_WAN_Property_t property_in)

Create an instance of a WAN Transport Plugin.

An application may create and register multiple instances of this Transport Plugin with RTI Connext. This may be to partition the network interfaces across multiple RTI Connext domains. However, note that the underlying transport, the operating system's IP layer, is still a "singleton". For example, if a unicast transport has already bound to a port, and another unicast transport tries to bind to the same port, the second attempt will fail.

The transport plugin honors the interface/multicast "white" and "black" lists specified in the NDDS_Transport_WAN_Property_t::parent:

The WAN transport can be configured to bind all sockets to a specified interface. This is required for consistent WAN communication on multi-homed systems.

The format of a string in these lists is assumed to be in standard IPv4 dot notation, possibly containing wildcards. For example:

  • 10.10.30.232
  • 10.10.*.*
  • 192.168.1.*
  • etc. Strings not in the correct format will be ignored.
Parameters
property_in<<in>> Desired behavior of this transport. May be NULL for default property.
Returns
A WAN Transport Plugin instance on success; or NULL on failure.

RTI Secure Wan Transport Version 5.3.0 Copyright © Sun Jun 25 2017 Real-Time Innovations, Inc