diff --git a/code/DDSCodeTester.cpp b/code/DDSCodeTester.cpp index 0a36bb4d1..e12673b7e 100644 --- a/code/DDSCodeTester.cpp +++ b/code/DDSCodeTester.cpp @@ -881,7 +881,7 @@ void dds_domain_examples() "true"); //!-- } - + { // MAX_MESSAGE_SIZE_PROPERTY_PARTICIPANT DomainParticipantQos pqos; @@ -4176,6 +4176,8 @@ void dds_qos_examples() WireProtocolConfigQos wire_protocol; //Set the guid prefix std::istringstream("72.61.73.70.66.61.72.6d.74.65.73.74") >> wire_protocol.prefix; + // Manually set the participantId + wire_protocol.participant_id = 11; //Configure Builtin Attributes wire_protocol.builtin.discovery_config.discoveryProtocol = eprosima::fastrtps::rtps::DiscoveryProtocol_t::SERVER; @@ -4208,6 +4210,8 @@ void dds_qos_examples() wire_protocol.default_external_unicast_locators[1][0].push_back(external_locator); // Drop non matching locators wire_protocol.ignore_non_matching_locators = true; + // Increase mutation tries + wire_protocol.builtin.mutation_tries = 300u; //!-- } diff --git a/code/XMLTester.xml b/code/XMLTester.xml index f714885fb..c33f05eea 100644 --- a/code/XMLTester.xml +++ b/code/XMLTester.xml @@ -3347,6 +3347,7 @@ 72.61.73.70.66.61.72.6d.74.65.73.74 + 11 SERVER @@ -3365,6 +3366,7 @@ 34567 + 300 diff --git a/docs/fastdds/dds_layer/core/policy/eprosimaExtensions.rst b/docs/fastdds/dds_layer/core/policy/eprosimaExtensions.rst index 469028618..3a946439a 100644 --- a/docs/fastdds/dds_layer/core/policy/eprosimaExtensions.rst +++ b/docs/fastdds/dds_layer/core/policy/eprosimaExtensions.rst @@ -1066,6 +1066,16 @@ List of QoS Policy data members: |BuiltinAttributes::discovery_config-api| within |WireProtocolConfigQos::builtin-api| (see :ref:`DS_modify_server_list`). +.. note:: + Deployments where multiple DomainParticipants are created within the same host can lead into denying + available ports for them if the amount of DomainParticipants created reaches the value of + :cpp:var:`BuiltinAttributes::mutation_tries` + (100 by default). + When that happens, the DomainParticipants will not be able to create the listening ports (this is notified + with a log warning) and will be created without unicast locators configured. + +.. _wireprotocolconfigqos_example: + Example """"""" @@ -1125,3 +1135,7 @@ XML :language: xml :start-after: XML_WRITER_RESOURCE_LIMITS_QOS<--> :end-before: <--> + +.. note:: + For extended XML information, refer to :ref:`domainparticipantconfig` and :ref:`builtin` XML sections. + diff --git a/docs/fastdds/transport/listening_locators.rst b/docs/fastdds/transport/listening_locators.rst index 24da56a19..f635d645b 100644 --- a/docs/fastdds/transport/listening_locators.rst +++ b/docs/fastdds/transport/listening_locators.rst @@ -177,6 +177,10 @@ further configuring the :ref:`comm-transports-configuration`. (neither *unicast* nor *multicast*), *Fast DDS* enables one *unicast* Locator that will be used for peer-to-peer communication of :ref:`dds_layer_topic_topic` data. + * If the application does not define any **participantId**, *Fast DDS* will use the value given by the + :ref:`dds_layer_domainParticipantFactory`, which will try always to provide the lowest available value per + DomainParticipantFactory (per process). + For example, it is possible to prevent *multicast* traffic adding a single *metatraffic unicast* Locator as described in :ref:`transport_disableMulticast`. @@ -212,6 +216,17 @@ The values used in these rules are explained on the following table. The default values can be modified using the |WireProtocolConfigQos::port-api| member of the :ref:`wireprotocolconfigqos` on the :ref:`dds_layer_domainParticipantQos`. +.. note:: + + Deployments where multiple DomainParticipants are created within the same host can lead into denying + available ports for them if the amount of DomainParticipants created reaches the value of + :cpp:var:`BuiltinAttributes::mutation_tries` + (100 by default). + When that happens, the DomainParticipants will not be able to create the listening ports (this is notified + with a log warning) and will be created without unicast locators configured. + + Refer to :ref:`this example ` for configuring both the *mutation_tries* values. + .. list-table:: Values used in the rules to calculate well-known ports :header-rows: 1