RTI Connext C API Version 7.4.0

<<extension>> Specifies the wire protocol related attributes for the DDS_DomainParticipant. More...

Data Structures

struct  DDS_RtpsWellKnownPorts_t
 <<extension>> RTPS well-known port mapping configuration. More...
 
struct  DDS_WireProtocolQosPolicy
 <<extension>> Specifies the wire-protocol-related attributes for the DDS_DomainParticipant. More...
 

Macros

#define DDS_RTPS_RESERVED_PORT_MASK_DEFAULT
 The default value of DDS_WireProtocolQosPolicy::rtps_reserved_port_mask. More...
 
#define DDS_RTPS_RESERVED_PORT_MASK_NONE
 No bits are set. More...
 
#define DDS_RTPS_RESERVED_PORT_MASK_ALL
 All bits are set. More...
 

Typedefs

typedef DDS_Long DDS_RtpsReservedPortKindMask
 A mask of DDS_RtpsReservedPortKind bits. More...
 

Enumerations

enum  DDS_RtpsReservedPortKind {
  DDS_RTPS_RESERVED_PORT_BUILTIN_UNICAST = 0x0001 << 0 ,
  DDS_RTPS_RESERVED_PORT_BUILTIN_MULTICAST = 0x0001 << 1 ,
  DDS_RTPS_RESERVED_PORT_USER_UNICAST = 0x0001 << 2 ,
  DDS_RTPS_RESERVED_PORT_USER_MULTICAST = 0x0001 << 3
}
 RTPS reserved port kind, used to identify the types of ports that can be reserved on domain participant enable. More...
 
enum  DDS_WireProtocolQosPolicyAutoKind {
  DDS_RTPS_AUTO_ID_FROM_IP = 0 ,
  DDS_RTPS_AUTO_ID_FROM_MAC = 1 ,
  DDS_RTPS_AUTO_ID_FROM_UUID = 2
}
 Mechanism to automatically calculate the GUID prefix. More...
 

Variables

const struct DDS_RtpsWellKnownPorts_t DDS_RTI_BACKWARDS_COMPATIBLE_RTPS_WELL_KNOWN_PORTS
 Assign to use well-known port mappings which are compatible with previous versions of the RTI Connext middleware. More...
 
const struct DDS_RtpsWellKnownPorts_t DDS_INTEROPERABLE_RTPS_WELL_KNOWN_PORTS
 Assign to use well-known port mappings which are compliant with OMG's DDS Interoperability Wire Protocol. More...
 
const char *const DDS_WIREPROTOCOL_QOS_POLICY_NAME
 Stringified human-readable name for DDS_WireProtocolQosPolicy. More...
 

Detailed Description

<<extension>> Specifies the wire protocol related attributes for the DDS_DomainParticipant.

Macro Definition Documentation

◆ DDS_RTPS_RESERVED_PORT_MASK_DEFAULT

#define DDS_RTPS_RESERVED_PORT_MASK_DEFAULT
Value:
DDS_Long DDS_RtpsReservedPortKindMask
A mask of DDS_RtpsReservedPortKind bits.
Definition: infrastructure.ifc:4649
@ DDS_RTPS_RESERVED_PORT_BUILTIN_UNICAST
Select the metatraffic unicast port.
Definition: infrastructure.ifc:4630
@ DDS_RTPS_RESERVED_PORT_BUILTIN_MULTICAST
Select the metatraffic multicast port.
Definition: infrastructure.ifc:4634
@ DDS_RTPS_RESERVED_PORT_USER_UNICAST
Select the usertraffic unicast port.
Definition: infrastructure.ifc:4638

The default value of DDS_WireProtocolQosPolicy::rtps_reserved_port_mask.

Most of the ports that may be needed by DDS will be reserved by the transport when the participant is enabled. With this value set, failure to allocate a port that is computed based on the DDS_RtpsWellKnownPorts_t will be detected at this time and the enable operation will fail.

This setting will avoid reserving the usertraffic multicast port, which is not actually used unless there are DataReaders that enable multicast but fail to specify a port.

Automatic participant ID selection will be based on finding a participant index with both the discovery (metatraffic) unicast port and usertraffic unicast port available.

See also
DDS_RtpsReservedPortKindMask

◆ DDS_RTPS_RESERVED_PORT_MASK_NONE

#define DDS_RTPS_RESERVED_PORT_MASK_NONE

No bits are set.

None of the ports that are needed by DDS will be allocated until they are specifically required. With this value set, automatic participant Id selection will be based on selecting a port for discovery (metatraffic) unicast traffic on a single transport.

See also
DDS_RtpsReservedPortKindMask

◆ DDS_RTPS_RESERVED_PORT_MASK_ALL

#define DDS_RTPS_RESERVED_PORT_MASK_ALL

All bits are set.

All of the ports that may be needed by DDS will be reserved when the participant is enabled. With this value set, failure to allocate a port that is computed based on the DDS_RtpsWellKnownPorts_t will be detected at this time, and the enable operation will fail.

Note that this will also reserve the usertraffic multicast port which is not actually used unless there are DataReaders that enable multicast but fail to specify a port. To avoid unnecesary resource usage for these ports, use RTPS_RESERVED_PORT_MASK_DEFAULT.

Automatic participant ID selection will be based on finding a participant index with both the discovery (metatraffic) unicast port and usertraffic unicast port available.

See also
DDS_RtpsReservedPortKindMask

Typedef Documentation

◆ DDS_RtpsReservedPortKindMask

Enumeration Type Documentation

◆ DDS_RtpsReservedPortKind

RTPS reserved port kind, used to identify the types of ports that can be reserved on domain participant enable.

See also
DDS_WireProtocolQosPolicy::rtps_reserved_port_mask
Enumerator
DDS_RTPS_RESERVED_PORT_BUILTIN_UNICAST 

Select the metatraffic unicast port.

DDS_RTPS_RESERVED_PORT_BUILTIN_MULTICAST 

Select the metatraffic multicast port.

DDS_RTPS_RESERVED_PORT_USER_UNICAST 

Select the usertraffic unicast port.

DDS_RTPS_RESERVED_PORT_USER_MULTICAST 

Select the usertraffic multicast port.

◆ DDS_WireProtocolQosPolicyAutoKind

Mechanism to automatically calculate the GUID prefix.

See also
DDS_WireProtocolQosPolicy::rtps_auto_id_kind
Enumerator
DDS_RTPS_AUTO_ID_FROM_IP 

Builds the GUID prefix using the IPv4 address and process ID.

Uses the IPv4 address of the first up-and-running interface of the host machine and the process ID to build the GUID prefix.

DDS_RTPS_AUTO_ID_FROM_MAC 

Builds the GUID prefix using the MAC address and process ID.

Uses the first 32 bits of the MAC address assigned to the first up-and-running interface and the process ID to build the GUID prefix.

Note to Android Users: DDS_RTPS_AUTO_ID_FROM_MAC is not supported in recent versions of Android (6.0 and later).

DDS_RTPS_AUTO_ID_FROM_UUID 

Builds the GUID prefix by selecting the UUID-based algorithm (default).

This method of generating the GUID prefix does not require having a network interface and is friendly to IP mobility scenarios in which an RTI Connext application may start in a node that does not have a physical network interface enabled.

Variable Documentation

◆ DDS_RTI_BACKWARDS_COMPATIBLE_RTPS_WELL_KNOWN_PORTS

const struct DDS_RtpsWellKnownPorts_t DDS_RTI_BACKWARDS_COMPATIBLE_RTPS_WELL_KNOWN_PORTS
extern

Assign to use well-known port mappings which are compatible with previous versions of the RTI Connext middleware.

Assign DDS_WireProtocolQosPolicy::rtps_well_known_ports to this value to remain compatible with previous versions of the RTI Connext middleware that used fixed port mappings.

The following are the rtps_well_known_ports values for DDS_RTI_BACKWARDS_COMPATIBLE_RTPS_WELL_KNOWN_PORTS:

port_base = 7400
domain_id_gain = 10
participant_id_gain = 1000
builtin_multicast_port_offset = 2
builtin_unicast_port_offset = 0
user_multicast_port_offset = 1
user_unicast_port_offset = 3

These settings are not compliant with OMG's DDS Interoperability Wire Protocol. To comply with the specification, please use DDS_INTEROPERABLE_RTPS_WELL_KNOWN_PORTS.

See also
DDS_WireProtocolQosPolicy::rtps_well_known_ports
DDS_INTEROPERABLE_RTPS_WELL_KNOWN_PORTS

◆ DDS_INTEROPERABLE_RTPS_WELL_KNOWN_PORTS

const struct DDS_RtpsWellKnownPorts_t DDS_INTEROPERABLE_RTPS_WELL_KNOWN_PORTS
extern

Assign to use well-known port mappings which are compliant with OMG's DDS Interoperability Wire Protocol.

Assign DDS_WireProtocolQosPolicy::rtps_well_known_ports to this value to use well-known port mappings which are compliant with OMG's DDS Interoperability Wire Protocol.

The following are the rtps_well_known_ports values for DDS_INTEROPERABLE_RTPS_WELL_KNOWN_PORTS:

port_base = 7400
domain_id_gain = 250
participant_id_gain = 2
builtin_multicast_port_offset = 0
builtin_unicast_port_offset = 10
user_multicast_port_offset = 1
user_unicast_port_offset = 11

Assuming a maximum port number of 65535 (UDPv4), the above settings enable the use of about 230 domains with up to 120 Participants per node per domain.

These settings are not backwards compatible with previous versions of the RTI Connext middleware that used fixed port mappings. For backwards compability, please use DDS_RTI_BACKWARDS_COMPATIBLE_RTPS_WELL_KNOWN_PORTS.

See also
DDS_WireProtocolQosPolicy::rtps_well_known_ports
DDS_RTI_BACKWARDS_COMPATIBLE_RTPS_WELL_KNOWN_PORTS

◆ DDS_WIREPROTOCOL_QOS_POLICY_NAME

const char* const DDS_WIREPROTOCOL_QOS_POLICY_NAME
extern

Stringified human-readable name for DDS_WireProtocolQosPolicy.