2.3.6. XML Participant

This type of Participant refers to a DomainParticipant that uses QoS profiles loaded from XML files to be configured.

Fast DDS supports XML to fully configure a DomainParticipant. Using XML configuration, users have whole access to the full configuration of a DDS DomainParticipant. Check the following documentation <https://fast-dds.docs.eprosima.com/en/latest/fastdds/xml_configuration/domainparticipant.html> for further information on how to configure a DDS DomainParticipant with XML. For further information regarding how to load XML configuration files to the DDS Router, check the Load XML Configuration section.

Note

This kind of Participant is meant for advanced users as XML profiles will overwrite the default internal settings of the DDS Router.

2.3.6.1. Use case

Use this Participant to fully configure a DomainParticipant, its discovery methods, transport options, DDS QoS, etc. The main use case for this Participant is using DDS Security, which requires XML configuration from the user’s side.

Warning

This Participant kind does not support RPC. Thus services and actions of ROS 2 will not work correctly.

2.3.6.2. Kind aliases

  • xml

  • XML

2.3.6.3. Configuration

The XML Participant allows setting a profile name for the internal DomainParticipant of the DDS Router. Such profile name will be used as the QoS profile when creating the internal DomainParticipant.

2.3.6.3.1. Create a Fast DDS XML Participant profile

The whole DomainParticipant configuration settings must be configured via XML, DDS Router will not configure any attribute or QoS for it. To configure the profile, check the Profile configuration section.

However, there are specific QoS that will affect the performance of the DDS Router and that are advisable for the user to set them. Notice that not setting such QoS will not affect the correct functionality of the application, but may affect its performance.

  • ignore_local_endpoints avoid local matching for this participant’s endpoints:

    <participant profile_name="ignore_local_endpoints_domainparticipant_xml_profile">
        <rtps>
            <propertiesPolicy>
                <properties>
                    <property>
                        <name>fastdds.ignore_local_endpoints</name>
                        <value>true</value>
                    </property>
                </properties>
            </propertiesPolicy>
        </rtps>
    </participant>
    

2.3.6.4. Configuration Example

Configure a XML Participant that gets all of its QoS from XML profile named custom_participant_configuration. This XML profile must be previously loaded. Use Fast DDS or DDS Router support to load XML configuration files as explained in this section.

- name: xml_participant                       # Participant Name = xml_participant

  kind: xml

  profile: custom_participant_configuration   # Configure participant with this profile