RTI Connext C API Version 7.1.0
DDS_TransportUnicastQosPolicy Struct Reference

Specifies a subset of transports and a port number that can be used by an Entity to receive data. More...

Data Fields

struct DDS_TransportUnicastSettingsSeq value
 A sequence of unicast communication settings. More...
 

Detailed Description

Specifies a subset of transports and a port number that can be used by an Entity to receive data.

Entity:
DDS_DomainParticipant, DDS_DataReader, DDS_DataWriter
Properties:
RxO = N/A
Changeable = NO

Usage

RTI Connext may send data to a variety of Entities, not just DataReaders. For example, reliable DataWriters may receive ACK/NACK packets from reliable DataReaders.

During discovery, each DDS_Entity announces to remote applications a list of (up to 16) unicast addresses to which the remote application should send data (either user data packets or reliable protocol meta-data such as ACK/NACKs and heartbeats). Note that this is a hard limit that cannot be increased. However, this limit can be decreased by configuring the 'dds.domain_participant.max_announced_locator_list_size' property in the DDS_PropertyQosPolicy associated with the DDS_DomainParticipantQos.

By default, the list of addresses is populated automatically with values obtained from the enabled transport plug-ins allowed to be used by the Entity (see DDS_TransportBuiltinQosPolicy and DDS_TransportSelectionQosPolicy). Also, the associated ports are automatically determined (see DDS_RtpsWellKnownPorts_t).

Use this QoS policy to manually set the receive address list for an Entity. You may optionally set a port to use a non-default receive port as well. Only the first 16 addresses will be used.

RTI Connext will create a receive thread for every unique port number that it encounters (on a per transport basis).

  • For a DDS_DomainParticipant, this QoS policy sets the default list of addresses used by other applications to send user data for local DataReaders.
  • For a DDS_DataReader, if set, then other applications will use the specified list of addresses to send user data (and reliable protocol packets for reliable DataReaders). Otherwise, if not set, the other applications will use the addresses set by the DDS_DomainParticipant.
  • For a reliable DDS_DataWriter, if set, then other applications will use the specified list of addresses to send reliable protocol packets (ACKS/NACKS) on the behalf of reliable DataReaders. Otherwise, if not set, the other applications will use the addresses set by the DDS_DomainParticipant.

Field Documentation

◆ value

struct DDS_TransportUnicastSettingsSeq DDS_TransportUnicastQosPolicy::value

A sequence of unicast communication settings.

An empty sequence means that applicable defaults specified by elsewhere (e.g. DDS_DomainParticipantQos::default_unicast) should be used.

The RTPS wire protocol currently limits the maximum number of unicast locators to

  1. Note that this is a hard limit that cannot be increased. However, this limit can be decreased by configuring the 'dds.domain_participant.max_announced_locator_list_size' property in the DDS_PropertyQosPolicy associated with the DDS_DomainParticipantQos.

[default] Empty sequence.

See also
DDS_DomainParticipantQos::default_unicast