RTI Connext Micro C API Version 4.3.0
Loading...
Searching...
No Matches
DDS_DomainParticipantResourceLimitsQosPolicy Struct Reference

<<cert>> Resource limits that apply only to DDS_DomainParticipant instances. More...

#include <dds_c_infrastructure.h>

Data Fields

DDS_Long local_writer_allocation
 The maximum number of local Writers that can be created.
 
DDS_Long local_reader_allocation
 The maximum number of local Readers that can be created.
 
DDS_Long local_publisher_allocation
 The maximum number of local Publishers that can be created.
 
DDS_Long local_subscriber_allocation
 The maximum number of local Subscribers that can be created.
 
DDS_Long local_topic_allocation
 The maximum number of topics that can be created.
 
DDS_Long local_type_allocation
 The maximum number of local types that can be registered with this DomainParticipant.
 
DDS_Long remote_participant_allocation
 The maximum number of remote participants that can be discovered by this DomainParticipant.
 
DDS_Long remote_writer_allocation
 The maximum number of remote writers that can be discovered by this DomainParticipant.
 
DDS_Long remote_reader_allocation
 The maximum number of remote readers that can be discovered by this DomainParticipant.
 
DDS_Long matching_writer_reader_pair_allocation
 The maximum number of matching local writer and remote/local reader pairs.
 
DDS_Long max_receive_ports
 Maximum number of addresses that can be listened on.
 
DDS_Long max_destination_ports
 Maximum number of unique destination addresses that a participant can reach.
 
DDS_UnsignedLong shmem_ref_transfer_mode_max_segments
 Maximum number of segments created by all DDS_DataWriter entities belonging to a DDS_DomainParticipant.
 
DDS_Long participant_user_data_max_length
 Maximum length of user data in DDS_DomainParticipantQos and DDS_ParticipantBuiltinTopicData.
 
DDS_Long participant_user_data_max_count
 Maximum number of unique user data sequences allowed across DomainParticipants (the local DDS_DomainParticipantQos and discovered participants).
 
DDS_Long topic_data_max_length
 Maximum length of topic data in DDS_TopicQos, DDS_PublicationBuiltinTopicData, and DDS_SubscriptionBuiltinTopicData.
 
DDS_Long topic_data_max_count
 Maximum number of unique topic data sequences allowed in the DDS_TopicQos across all local topics, discovered publications, and discovered subscriptions.
 
DDS_Long publisher_group_data_max_length
 Maximum length of group data in DDS_PublisherQos and DDS_PublicationBuiltinTopicData.
 
DDS_Long publisher_group_data_max_count
 Maximum number of unique group data sequences allowed in the DDS_PublisherQos across all local publishers and discovered publications.
 
DDS_Long subscriber_group_data_max_length
 Maximum length of group data in DDS_SubscriberQos and DDS_SubscriptionBuiltinTopicData.
 
DDS_Long subscriber_group_data_max_count
 Maximum number of unique group data sequences allowed in the DDS_SubscriberQos across all local subscribers and discovered subscriptions.
 
DDS_Long writer_user_data_max_length
 Maximum length of user data in DDS_DataWriterQos and DDS_PublicationBuiltinTopicData.
 
DDS_Long writer_user_data_max_count
 Maximum number of unique user data sequences allowed in the DDS_DataWriterQos across all local DDS_DataReader entities and discovered publications.
 
DDS_Long reader_user_data_max_length
 Maximum length of user data in DDS_DataReaderQos and DDS_SubscriptionBuiltinTopicData.
 
DDS_Long reader_user_data_max_count
 Maximum number of unique user data sequences allowed in the DDS_DataReaderQos across all local DDS_DataReader entities and discovered subscriptions.
 
DDS_Long max_partitions
 The maximum number of elements in the DDS_PartitionQosPolicy.
 
DDS_Long max_partition_cumulative_characters
 The maximum number of combined characters across all DDS_PartitionQosPolicy PARTITION.name sequence elements, including the NUL characters.
 
DDS_Long max_partition_string_size
 The maximum number of 8-bit characters in a PARTITION.name element, including the NUL termination.
 
DDS_Long max_partition_string_allocation
 The maximum number of 8-bit characters reserved for PARTITION.name strings to allocate for the PARTITION DDS_PartitionQosPolicy.
 

Detailed Description

<<cert>> Resource limits that apply only to DDS_DomainParticipant instances.

This QoS policy is an extension to the DDS standard.

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

Field Documentation

◆ local_writer_allocation

DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::local_writer_allocation

The maximum number of local Writers that can be created.

This resource-limit limits the maximum number of DDS_DataWriter entities that can be created with the DDS_Publisher_create_datawriter() API within a single DDS_DomainParticipant across all DDS_Publisher entities.

[default] 1

[range] [1, INT_MAX]

◆ local_reader_allocation

DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::local_reader_allocation

The maximum number of local Readers that can be created.

This resource-limit limits the maximum number of DDS_DataReader entities that can be created with the DDS_Subscriber_create_datareader() API within a single DDS_DomainParticipant across all DDS_Subscriber entities.

[default] 1

[range] [1, INT_MAX]

◆ local_publisher_allocation

DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::local_publisher_allocation

The maximum number of local Publishers that can be created.

This resource-limit limits the maximum number of DDS_Publisher entities that can be created within a DDS_DomainParticipant with the DDS_DomainParticipant_create_publisher() API.

[default] 1

[range] [1, INT_MAX]

◆ local_subscriber_allocation

DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::local_subscriber_allocation

The maximum number of local Subscribers that can be created.

This resource-limit limits the maximum number of DDS_Subscriber entities that can be created within a DDS_DomainParticipant with the DDS_DomainParticipant_create_subscriber() API.

[default] 1

[range] [1, INT_MAX]

◆ local_topic_allocation

DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::local_topic_allocation

The maximum number of topics that can be created.

This resource-limit limits the maximum number of unique DDS_Topic instances that can be created within a single DDS_DomainParticipant with the DDS_DomainParticipant_create_topic() API.

[default] 1

[range] [1, INT_MAX]

◆ local_type_allocation

DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::local_type_allocation

The maximum number of local types that can be registered with this DomainParticipant.

This resource-limit limits the maximum number of unique ::DDS_TypePluginI instances that can be registered locally within a single DDS_DomainParticipant with the FooTypeSupport_register_type() API.

[default] 1

[range] [1, INT_MAX]

◆ remote_participant_allocation

DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::remote_participant_allocation

The maximum number of remote participants that can be discovered by this DomainParticipant.

This resource-limit limits the maximum number of DDS_DomainParticipant instances that can be discovered by a local DDS_DomainParticipant.

The DPDE discovery plugin is on a first-discovered, first-served basis, and the only way to limit discovery is careful use of peer addresses. The DPSE discovery plugin limits the discovery to those that have been asserted based on the DomainParticipant name using DPSE_RemoteParticipant_assert

[default] 1

[range] [1, INT_MAX]

◆ remote_writer_allocation

DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::remote_writer_allocation

The maximum number of remote writers that can be discovered by this DomainParticipant.

This resource-limit limits the maximum number of remote DDS_DataWriter entities that can be discovered by a local DDS_DomainParticipant. Note that a remote DDS_DataWriter cannot be discovered until its parent DDS_DomainParticipant has been discovered.

[default] 1

[range] [1, INT_MAX]

◆ remote_reader_allocation

DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::remote_reader_allocation

The maximum number of remote readers that can be discovered by this DomainParticipant.

This resource-limit limits the maximum number of remote DDS_DataReader entities that can be discovered by a local DomainParticipant. Note that a remote DDS_DataReader cannot be discovered until its parent DDS_DomainParticipant has been discovered.

[default] 1

[range] [1, INT_MAX]

◆ matching_writer_reader_pair_allocation

DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::matching_writer_reader_pair_allocation

The maximum number of matching local writer and remote/local reader pairs.

When RTI Connext DDS Micro discovers DDS entities using a DDS discovery protocol, such as DPSE (Dynamic Participant Static Endpoint) or DPDE (Dynamic Participant Dynamic Endpoint), it matches the discovered entities with the locally created DDS_DataReader entities and DDS_DataWriter entities. For each match, either a local DDS_DataWriter matching a remote DDS_DataReader or a local DDS_DataReader matching a remote DDS_DataWriter, internal state must be managed.

A match, in this context, is defined as being able to receive packets sent from a DDS_DataReader to a DDS_DataWriter, or from a DDS_DataWriter to a DDS_DataReader:

This resource-limit limits the maximum number of matches that can be managed. When this resource limit is reached, no further matching can occur, even if new DDS_DataReader and DDS_DataWriter entities are discovered.

A simple rule of thumb is to set this resource limit to:

  • (local_reader_allocation + local_writer_allocation) * max_remote_participants.

This assumes that each DDS_DataReader and DDS_DataWriter matches one DDS_DataWriter and DDS_DataReader respectively for each discovered participant. However, this may over-allocate resources.

[default] 32

[range] [1, INT_MAX]

◆ max_receive_ports

DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::max_receive_ports

Maximum number of addresses that can be listened on.

RTI Connext DDS Micro listens for discovery data and user data on different transports as specified by the user. This resource-limit limits the maximum number of addresses that can be listened on. As a rule of thumb, this resource limit can be determined as follows: - A user-traffic unicast port counts as 1. - A meta-traffic unicast port counts as 1. - A user-traffic multicast address counts as 1. - A meta-traffic multicast address counts as 1.

Consider the typical case with the UDP transport, using unicast and multicast for discovery data and unicast for user data:

  • Discovery data needs two ports.
  • User data needs one port.

Thus, this requires 3 resources.

Consider a case with the UDP transport, using unicast and multicast for discovery data and user data: - Discovery data needs two ports. - User data needs two ports.

Thus, this requires 4 resources.

Consider a case with the UDP transport, using unicast and 2 multicast addresses each for discovery data and user data:

  • Discovery data needs three ports.
  • User data needs three ports.

Thus, this requires 6 resources.

The default value has been set to cover most cases. This resource-limit should only be changed if a lot of interfaces are supported (increase it) or if memory is extremely limited (decrease it).

[default] 8

[range] [1, INT_MAX]

◆ max_destination_ports

DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::max_destination_ports

Maximum number of unique destination addresses that a participant can reach.

RTI Connext DDS Micro maintains a table of destination addresses that it can send to based on information queried from the registered transports. This resource limit is difficult to give a precise rule for how to determine, since it is transport dependent. However, as a rule of thumb, the following is true: - Each network that can be reached directly by the transport requires 1 resource. - If multicast is supported, it counts as 1 resource. - If the transport is the default transport (by default, UDP is), it counts as one address.

Consider a typical Linux computer with 2 network interfaces, eth0 and lo, with support for multicast:

  • 1 for the eth0 network.
  • 1 for the lo network.
  • 1 for multicast.
  • 1 for being the default transport.

This requires 4 resources.

Consider a typical embedded computer with 1 network interface, eth0, with no support for multicast:

  • 1 for the eth0 network.
  • 1 for being the default transport.

This requires 2 resources.

The default value has been set to cover most cases. This resource-limit should only be changed if a lot of interfaces are supported (increase it) or if memory is extremely limited (decrease it).

[default] 8

[range] [1, INT_MAX]

◆ shmem_ref_transfer_mode_max_segments

DDS_UnsignedLong DDS_DomainParticipantResourceLimitsQosPolicy::shmem_ref_transfer_mode_max_segments

Maximum number of segments created by all DDS_DataWriter entities belonging to a DDS_DomainParticipant.

[default] 500

[range] [0,100000] but in practice, this value will be limited by the system-wide maximum number of shared memory segments. On a Linux machine, this value is provided by the kernel parameter shmmni.

◆ participant_user_data_max_length

DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::participant_user_data_max_length

Maximum length of user data in DDS_DomainParticipantQos and DDS_ParticipantBuiltinTopicData.

[default] 0

[range] [0, INT_MAX]

◆ participant_user_data_max_count

DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::participant_user_data_max_count

Maximum number of unique user data sequences allowed across DomainParticipants (the local DDS_DomainParticipantQos and discovered participants).

For example, if a discovered participant has the same user data as the local participant, then that unique sequence only counts once against this resource-limit.

[default] DDS_SIZE_AUTO

[range] [0, INT_MAX] or DDS_SIZE_AUTO

◆ topic_data_max_length

DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::topic_data_max_length

Maximum length of topic data in DDS_TopicQos, DDS_PublicationBuiltinTopicData, and DDS_SubscriptionBuiltinTopicData.

[default] 0

[range] [0, INT_MAX]

◆ topic_data_max_count

DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::topic_data_max_count

Maximum number of unique topic data sequences allowed in the DDS_TopicQos across all local topics, discovered publications, and discovered subscriptions.

For example, if a local topic has the same topic data as the topic of a discovered publication or subscription, then that unique sequence only counts once against this resource-limit.

[default] DDS_SIZE_AUTO

[range] [0, INT_MAX] or DDS_SIZE_AUTO

◆ publisher_group_data_max_length

DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::publisher_group_data_max_length

Maximum length of group data in DDS_PublisherQos and DDS_PublicationBuiltinTopicData.

[default] 0

[range] [0, INT_MAX]

◆ publisher_group_data_max_count

DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::publisher_group_data_max_count

Maximum number of unique group data sequences allowed in the DDS_PublisherQos across all local publishers and discovered publications.

For example, if a local publisher has the same group data as a discovered publication, then that unique sequence only counts once against this resource-limit.

[default] DDS_SIZE_AUTO

[range] [0, INT_MAX] or DDS_SIZE_AUTO

◆ subscriber_group_data_max_length

DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::subscriber_group_data_max_length

Maximum length of group data in DDS_SubscriberQos and DDS_SubscriptionBuiltinTopicData.

[default] 0

[range] [0, INT_MAX]

◆ subscriber_group_data_max_count

DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::subscriber_group_data_max_count

Maximum number of unique group data sequences allowed in the DDS_SubscriberQos across all local subscribers and discovered subscriptions.

For example, if a local subscriber has the same group data as a discovered subscription, then that unique sequence only counts once against this resource-limit.

[default] DDS_SIZE_AUTO

[range] [0, INT_MAX] or DDS_SIZE_AUTO

◆ writer_user_data_max_length

DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::writer_user_data_max_length

Maximum length of user data in DDS_DataWriterQos and DDS_PublicationBuiltinTopicData.

[default] 0

[range] [0, INT_MAX]

◆ writer_user_data_max_count

DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::writer_user_data_max_count

Maximum number of unique user data sequences allowed in the DDS_DataWriterQos across all local DDS_DataReader entities and discovered publications.

For example, if a local DDS_DataWriter has the same user data as a discovered publication, then that unique sequence only counts once against this resource-limit.

[default] DDS_SIZE_AUTO

[range] [0, INT_MAX] or DDS_SIZE_AUTO

◆ reader_user_data_max_length

DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::reader_user_data_max_length

Maximum length of user data in DDS_DataReaderQos and DDS_SubscriptionBuiltinTopicData.

[default] 0

[range] [0, INT_MAX]

◆ reader_user_data_max_count

DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::reader_user_data_max_count

Maximum number of unique user data sequences allowed in the DDS_DataReaderQos across all local DDS_DataReader entities and discovered subscriptions.

For example, if a local DDS_DataReader has the same user data as a discovered subscription, then that unique sequence only counts once against this resource-limit.

[default] DDS_SIZE_AUTO

[range] [0, INT_MAX] or DDS_SIZE_AUTO

◆ max_partitions

DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::max_partitions

The maximum number of elements in the DDS_PartitionQosPolicy.

This setting is made on a per DomainParticipant basis; it cannot be set individually on a per Publisher/Subscriber basis. However, the limit is enforced and applies per Publisher/Subscriber.

This value cannot exceed 64.

[default] 64

[range] [0,64]

◆ max_partition_cumulative_characters

DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::max_partition_cumulative_characters

The maximum number of combined characters across all DDS_PartitionQosPolicy PARTITION.name sequence elements, including the NUL characters.

The maximum number of combined characters should account for a terminating NULL ('\0') character for each partition name string.

This setting is made on a per DomainParticipant basis; it cannot be set individually on a per Publisher/Subscriber basis. However, the limit is enforced and applies per Publisher/Subscriber.

This value cannot exceed 256.

[default] 256

[range] [0,256]

◆ max_partition_string_size

DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::max_partition_string_size

The maximum number of 8-bit characters in a PARTITION.name element, including the NUL termination.

[default] DDS_LENGTH_UNLIMITED

[range] DDS_LENGTH_UNLIMITED or greater than 0

◆ max_partition_string_allocation

DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::max_partition_string_allocation

The maximum number of 8-bit characters reserved for PARTITION.name strings to allocate for the PARTITION DDS_PartitionQosPolicy.

If max_partition_string_allocation is DDS_LENGTH_UNLIMITED then memory will be allocated and freed during operation.

This setting is made on a per DomainParticipant basis; it cannot be set individually on a per Publisher/Subscriber basis. However, the limit is enforced and applies per Publisher/Subscriber.

[default] DDS_LENGTH_UNLIMITED

[range] DDS_LENGTH_UNLIMITED or greater than 1