RTI Connext DDS Micro C API  Version 2.4.14
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
DDS_WireProtocolQosPolicy Struct Reference

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

#include <dds_c_infrastructure.h>

Data Fields

DDS_Long participant_id
 A value used to distinguish between different participants belonging to the same domain on the same host.
DDS_UnsignedLong rtps_host_id
 The RTPS Host ID of the domain participant.
DDS_UnsignedLong rtps_app_id
 The RTPS App ID of the domain participant.
DDS_UnsignedLong rtps_instance_id
 The RTPS Instance ID of the domain participant.
struct DDS_RtpsWellKnownPorts_t rtps_well_known_ports
 Configures the RTPS well-known port mappings.
DDS_Boolean compute_crc
 Adds RTPS checksum submessage to every message when this field is set to DDS_BOOLEAN_TRUE.
DDS_Boolean check_crc
 Checks if the received RTPS message is valid by comparing the computed checksum with the received RTPS checksum submessage when this field is set to DDS_BOOLEAN_TRUE.
DDS_Boolean require_crc
 Require that discovered participants send one of the checksums enabled in DDS_WireProtocolQosPolicy::allowed_crc_mask.
DDS_ChecksumKind_t computed_crc_kind
 A bitmask indicating which checksum is used for sent messages when compute_crc is DDS_BOOLEAN_TRUE. Only one mask is supported.
DDS_ChecksumKindMask_t allowed_crc_mask
 The checksums which are enabled for validating incoming packets.

Detailed Description

<<cert>> Specifies the wire-protocol-related attributes for the DDS_DomainParticipant.

Entity:
DDS_DomainParticipant
Properties:
RxO = N/A
Changeable = NO

Usage

The default Qos policies returned by RTI Connext DDS Micro contain the correctly initialized wire protocol attributes.

The defaults are not expected to be modified normally, but are available to the advanced user customizing the implementation behavior.

The default values should not be modified without an understanding of the underlying Real-Time Publish Subscribe (RTPS) wire protocol.


Field Documentation

DDS_Long DDS_WireProtocolQosPolicy::participant_id

A value used to distinguish between different participants belonging to the same domain on the same host.

Determines the unicast port on which meta-traffic is received. Also defines the default unicast port for receiving user-traffic for DataReaders and DataWriters .

For more information on port mapping, please refer to DDS_RtpsWellKnownPorts_t.

Each DDS_DomainParticipant in the same domain, running on the same host, must have a unique participant_id. The participants may be in the same address space or in distinct address spaces.

A negative number (-1) means that RTI Connext DDS Micro will automatically resolve the participant ID as follows.

  • RTI Connext DDS Micro will pick the smallest participant ID, based on the unicast ports available on the transports enabled for discovery.
  • RTI Connext DDS Micro will attempt to resolve an automatic port index either when a DomainPartcipant is enabled, or when a DataReader or a DataWriter is created. Therefore, all the transports enabled for discovery must have been registered by this time. Otherwise, the discovery transports registered after resolving the automatic port index may produce port conflicts when the DomainPartcipant is enabled.

[default] -1 [automatic], i.e. RTI Connext DDS Micro will automatically pick the participant_id, as described above.

[range] [>= 0], or -1, and does not violate guidelines stated in DDS_RtpsWellKnownPorts_t.

See also:
DDS_Entity_enable()
DDS_UnsignedLong DDS_WireProtocolQosPolicy::rtps_host_id

The RTPS Host ID of the domain participant.

Either all of DDS_WireProtocolQosPolicy::rtps_host_id, DDS_WireProtocolQosPolicy::rtps_app_id, and DDS_WireProtocolQosPolicy::rtps_instance_id for a DomainParticipant are set to DDS_RTPS_AUTO_ID, or none of them are set to DDS_RTPS_AUTO_ID.

[default] DDS_RTPS_AUTO_ID.

[range] [0,0xffffffff]

DDS_UnsignedLong DDS_WireProtocolQosPolicy::rtps_app_id

The RTPS App ID of the domain participant.

Either all of DDS_WireProtocolQosPolicy::rtps_host_id, DDS_WireProtocolQosPolicy::rtps_app_id, and DDS_WireProtocolQosPolicy::rtps_instance_id for a DomainParticipant are set to DDS_RTPS_AUTO_ID, or none of them are set to DDS_RTPS_AUTO_ID.

[default] DDS_RTPS_AUTO_ID.

[range] [0,0xffffffff]

DDS_UnsignedLong DDS_WireProtocolQosPolicy::rtps_instance_id

The RTPS Instance ID of the domain participant.

Either all of DDS_WireProtocolQosPolicy::rtps_host_id, DDS_WireProtocolQosPolicy::rtps_app_id, and DDS_WireProtocolQosPolicy::rtps_instance_id for a DomainParticipant are set to DDS_RTPS_AUTO_ID, or none of them are set to DDS_RTPS_AUTO_ID.

[default] DDS_RTPS_AUTO_ID.

[range] [0,0xffffffff]

struct DDS_RtpsWellKnownPorts_t DDS_WireProtocolQosPolicy::rtps_well_known_ports

Configures the RTPS well-known port mappings.

Determines the well-known multicast and unicast port mappings for discovery (meta) traffic and user traffic.

[default] DDS_INTEROPERABLE_RTPS_WELL_KNOWN_PORTS

DDS_Boolean DDS_WireProtocolQosPolicy::compute_crc

Adds RTPS checksum submessage to every message when this field is set to DDS_BOOLEAN_TRUE.

The computed checksum covers the entire RTPS message including the RTPS header itself.

[default] DDS_BOOLEAN_FALSE

DDS_Boolean DDS_WireProtocolQosPolicy::check_crc

Checks if the received RTPS message is valid by comparing the computed checksum with the received RTPS checksum submessage when this field is set to DDS_BOOLEAN_TRUE.

DDS_WireProtocolQosPolicy::compute_crc must be enabled at the publishing application for validating the message at the subscribing application.

If a message is reeived with an invalid checksum, the message is discarded. If no checksum is received or found, the message is accepted but may still be corrupted.

[default] DDS_BOOLEAN_FALSE

DDS_Boolean DDS_WireProtocolQosPolicy::require_crc

Require that discovered participants send one of the checksums enabled in DDS_WireProtocolQosPolicy::allowed_crc_mask.

If an invalid checksum is received, the message is dropped.

if the value is DDS_BOOLEAN_TRUE the participant requires that discovered participants send one of the checksums enabled in DDS_WireProtocolQosPolicy::allowed_crc_mask. If this is not the case the participant is ignored and not matching will take place.

This is a stronger check than idref_WireProtocolQosPolicy_check_crc. If an invalid checksum is received or not found, the message is dropped.

[default] DDS_BOOLEAN_FALSE

DDS_ChecksumKind_t DDS_WireProtocolQosPolicy::computed_crc_kind

A bitmask indicating which checksum is used for sent messages when compute_crc is DDS_BOOLEAN_TRUE. Only one mask is supported.

[default] DDS_CHECKSUM_AUTO.

DDS_ChecksumKindMask_t DDS_WireProtocolQosPolicy::allowed_crc_mask

The checksums which are enabled for validating incoming packets.

The following bitmask can be OR'ed for all enabled checksums:

Note that the selected checksums must be a subset of what is supported. If a bitmask that is not supported is selected participant creation will fail.

[default] DDS_CHECKSUM_AUTO.


RTI Connext DDS Micro C API Version 2.4.14 Copyright © Mon Apr 12 2021 Real-Time Innovations, Inc