10.12. Example

In this section, there is a full XML example with all possible configuration.

Warning

This example can be used as a quick reference, but it may not be correct due to incompatibility or exclusive properties. Do not take it as a working example.

   1<?xml version="1.0" encoding="UTF-8" ?>
   2<dds xmlns="http://www.eprosima.com">
   3    <profiles>
   4        <transport_descriptors>
   5            <!-- TCP sample transport descriptor -->
   6            <transport_descriptor>
   7                <transport_id>ExampleTransportId1</transport_id>
   8                <type>TCPv4</type>
   9                <sendBufferSize>8192</sendBufferSize>
  10                <receiveBufferSize>8192</receiveBufferSize>
  11                <maxMessageSize>16384</maxMessageSize>
  12                <maxInitialPeersRange>100</maxInitialPeersRange>
  13                <netmask_filter>AUTO</netmask_filter>
  14                <interfaces>
  15                    <allowlist>
  16                        <interface name="wlp59s0" netmask_filter="ON"/>
  17                    </allowlist>
  18                    <blocklist>
  19                        <interface name="127.0.0.1"/>
  20                        <interface name="docker0"/>
  21                    </blocklist>
  22                </interfaces>
  23                <interfaceWhiteList>
  24                    <address>192.168.1.41</address>
  25                    <interface>lo</interface>
  26                </interfaceWhiteList>
  27                <wan_addr>80.80.55.44</wan_addr>
  28                <keep_alive_frequency_ms>5000</keep_alive_frequency_ms>
  29                <keep_alive_timeout_ms>25000</keep_alive_timeout_ms>
  30                <max_logical_port>200</max_logical_port>
  31                <logical_port_range>20</logical_port_range>
  32                <logical_port_increment>2</logical_port_increment>
  33                <listening_ports>
  34                    <port>5100</port>
  35                    <port>5200</port>
  36                </listening_ports>
  37                <tls>
  38                    <password>Password</password>
  39                    <private_key_file>Key_file.pem</private_key_file>
  40                    <rsa_private_key_file>RSA_file.pem</rsa_private_key_file>
  41                    <cert_chain_file>Chain.pem</cert_chain_file>
  42                    <tmp_dh_file>DH.pem</tmp_dh_file>
  43                    <verify_file>verify.pem</verify_file>
  44                    <verify_mode>
  45                        <verify>VERIFY_PEER</verify>
  46                    </verify_mode>
  47                    <options>
  48                        <option>NO_TLSV1</option>
  49                        <option>NO_TLSV1_1</option>
  50                    </options>
  51                    <verify_paths>
  52                        <verify_path>Path1</verify_path>
  53                        <verify_path>Path2</verify_path>
  54                        <verify_path>Path3</verify_path>
  55                    </verify_paths>
  56                    <verify_depth>55</verify_depth>
  57                    <default_verify_path>true</default_verify_path>
  58                    <handshake_role>SERVER</handshake_role>
  59                    <server_name>my_server.com</server_name>
  60                </tls>
  61                <calculate_crc>false</calculate_crc>
  62                <check_crc>false</check_crc>
  63                <enable_tcp_nodelay>false</enable_tcp_nodelay>
  64                <default_reception_threads>
  65                    <scheduling_policy>-1</scheduling_policy>
  66                    <priority>0</priority>
  67                    <affinity>0</affinity>
  68                    <stack_size>-1</stack_size>
  69                </default_reception_threads>
  70                <reception_threads>
  71                    <reception_thread port="12345">
  72                        <scheduling_policy>-1</scheduling_policy>
  73                        <priority>0</priority>
  74                        <affinity>0</affinity>
  75                        <stack_size>-1</stack_size>
  76                    </reception_thread>
  77                </reception_threads>
  78            </transport_descriptor>
  79            <!-- UDP sample transport descriptor. Several options are common with TCP -->
  80            <transport_descriptor>
  81                <transport_id>ExampleTransportId2</transport_id>
  82                <type>UDPv6</type>
  83                <TTL>250</TTL>
  84                <non_blocking_send>false</non_blocking_send>
  85                <output_port>5101</output_port>
  86                <default_reception_threads>
  87                    <scheduling_policy>-1</scheduling_policy>
  88                    <priority>0</priority>
  89                    <affinity>0</affinity>
  90                    <stack_size>-1</stack_size>
  91                </default_reception_threads>
  92                <reception_threads>
  93                    <reception_thread port="12345">
  94                        <scheduling_policy>-1</scheduling_policy>
  95                        <priority>0</priority>
  96                        <affinity>0</affinity>
  97                        <stack_size>-1</stack_size>
  98                    </reception_thread>
  99                </reception_threads>
 100            </transport_descriptor>
 101            <!-- SHM sample transport descriptor -->
 102            <transport_descriptor>
 103                <transport_id>SHM_SAMPLE_DESCRIPTOR</transport_id>
 104                <type>SHM</type> <!-- REQUIRED -->
 105                <maxMessageSize>524288</maxMessageSize> <!-- OPTIONAL uint32 valid of all transports-->
 106                <segment_size>1048576</segment_size> <!-- OPTIONAL uint32 SHM only-->
 107                <port_queue_capacity>1024</port_queue_capacity> <!-- OPTIONAL uint32 SHM only-->
 108                <healthy_check_timeout_ms>250</healthy_check_timeout_ms> <!-- OPTIONAL uint32 SHM only-->
 109                <rtps_dump_file>test_file.dump</rtps_dump_file> <!-- OPTIONAL string SHM only-->
 110                <default_reception_threads> <!-- OPTIONAL -->
 111                    <scheduling_policy>-1</scheduling_policy>
 112                    <priority>0</priority>
 113                    <affinity>0</affinity>
 114                    <stack_size>-1</stack_size>
 115                </default_reception_threads>
 116                <reception_threads> <!-- OPTIONAL -->
 117                    <reception_thread port="12345">
 118                        <scheduling_policy>-1</scheduling_policy>
 119                        <priority>0</priority>
 120                        <affinity>0</affinity>
 121                        <stack_size>-1</stack_size>
 122                    </reception_thread>
 123                </reception_threads>
 124                <dump_thread>
 125                    <scheduling_policy>-1</scheduling_policy>
 126                    <priority>0</priority>
 127                    <affinity>0</affinity>
 128                    <stack_size>-1</stack_size>
 129                </dump_thread>
 130            </transport_descriptor>
 131        </transport_descriptors>
 132
 133        <domainparticipant_factory profile_name="domainparticipant_factory_profile_name">
 134            <qos>
 135                <entity_factory>
 136                    <autoenable_created_entities>true</autoenable_created_entities>
 137                </entity_factory>
 138                <shm_watchdog_thread>
 139                    <scheduling_policy>-1</scheduling_policy>
 140                    <priority>0</priority>
 141                    <affinity>0</affinity>
 142                    <stack_size>-1</stack_size>
 143                </shm_watchdog_thread>
 144                <file_watch_threads>
 145                    <scheduling_policy>-1</scheduling_policy>
 146                    <priority>0</priority>
 147                    <affinity>0</affinity>
 148                    <stack_size>-1</stack_size>
 149                </file_watch_threads>
 150            </qos>
 151        </domainparticipant_factory>
 152
 153        <participant profile_name="participant_profile_example">
 154            <domainId>4</domainId>
 155            <rtps>
 156                <name>Participant Name</name> <!-- String -->
 157
 158                <defaultUnicastLocatorList>
 159                    <locator>
 160                        <udpv4>
 161                            <!-- Access as physical, like UDP -->
 162                            <port>7400</port>
 163                            <address>localhost</address>
 164                        </udpv4>
 165                    </locator>
 166                    <locator>
 167                        <tcpv4>
 168                            <!-- Both physical and logical (port), like TCP -->
 169                            <physical_port>5100</physical_port>
 170                            <port>7400</port>
 171                            <unique_lan_id>192.168.1.1.1.1.2.55</unique_lan_id>
 172                            <wan_address>80.80.99.45</wan_address>
 173                            <address>192.168.1.55</address>
 174                        </tcpv4>
 175                    </locator>
 176                    <locator>
 177                        <udpv6>
 178                            <port>8844</port>
 179                            <address>::1</address>
 180                        </udpv6>
 181                    </locator>
 182                </defaultUnicastLocatorList>
 183
 184                <defaultMulticastLocatorList>
 185                    <locator>
 186                        <udpv4>
 187                            <!-- Access as physical, like UDP -->
 188                            <port>7400</port>
 189                            <address>192.168.1.41</address>
 190                        </udpv4>
 191                    </locator>
 192                    <locator>
 193                        <tcpv4>
 194                            <!-- Both physical and logical (port), like TCP -->
 195                            <physical_port>5100</physical_port>
 196                            <port>7400</port>
 197                            <unique_lan_id>192.168.1.1.1.1.2.55</unique_lan_id>
 198                            <wan_address>80.80.99.45</wan_address>
 199                            <address>192.168.1.55</address>
 200                        </tcpv4>
 201                    </locator>
 202                    <locator>
 203                        <udpv6>
 204                            <port>8844</port>
 205                            <address>::1</address>
 206                        </udpv6>
 207                    </locator>
 208                </defaultMulticastLocatorList>
 209
 210                <default_external_unicast_locators>
 211                    <!-- EXTERNAL_LOCATOR_LIST -->
 212                    <udpv4 externality="1" cost="0" mask="24">
 213                        <address>100.100.100.10</address>
 214                        <port>23456</port>
 215                    </udpv4>
 216                    <udpv6 externality="1" cost="1" mask="48">
 217                        <address>::1</address>
 218                        <port>1234</port>
 219                    </udpv6>
 220                </default_external_unicast_locators>
 221
 222                <ignore_non_matching_locators>true</ignore_non_matching_locators>
 223                <sendSocketBufferSize>8192</sendSocketBufferSize>
 224                <listenSocketBufferSize>8192</listenSocketBufferSize>
 225                <netmask_filter>AUTO</netmask_filter>
 226
 227                <builtin>
 228                    <discovery_config>
 229                        <discoveryProtocol>NONE</discoveryProtocol>
 230                        <discoveryServersList>
 231                            <RemoteServer prefix="72.61.73.70.66.61.72.6d.74.65.73.74">
 232                                <metatrafficUnicastLocatorList>
 233                                    <locator>
 234                                        <udpv4>
 235                                            <address>192.168.10.57</address>
 236                                            <port>56542</port>
 237                                        </udpv4>
 238                                    </locator>
 239                                </metatrafficUnicastLocatorList>
 240                                <metatrafficMulticastLocatorList>
 241                                    <locator>
 242                                        <udpv4>
 243                                            <address>192.168.10.58</address>
 244                                            <port>24565</port>
 245                                        </udpv4>
 246                                    </locator>
 247                                </metatrafficMulticastLocatorList>
 248                            </RemoteServer>
 249                            <RemoteServer prefix="72.61.73.70.66.61.72.6d.74.65.73.75">
 250                                <metatrafficUnicastLocatorList>
 251                                    <locator>
 252                                        <udpv4>
 253                                            <address>192.168.10.59</address>
 254                                            <port>56543</port>
 255                                        </udpv4>
 256                                    </locator>
 257                                </metatrafficUnicastLocatorList>
 258                                <metatrafficMulticastLocatorList>
 259                                    <locator>
 260                                        <udpv4>
 261                                            <address>192.168.10.60</address>
 262                                            <port>34565</port>
 263                                        </udpv4>
 264                                    </locator>
 265                                </metatrafficMulticastLocatorList>
 266                            </RemoteServer>
 267                        </discoveryServersList>
 268                        <ignoreParticipantFlags>FILTER_DIFFERENT_PROCESS|FILTER_SAME_PROCESS</ignoreParticipantFlags>
 269                        <EDP>SIMPLE</EDP>
 270                        <simpleEDP>
 271                            <PUBWRITER_SUBREADER>true</PUBWRITER_SUBREADER>
 272                            <PUBREADER_SUBWRITER>true</PUBREADER_SUBWRITER>
 273                        </simpleEDP>
 274                        <leaseDuration>
 275                            <sec>DURATION_INFINITY</sec>
 276                        </leaseDuration>
 277                        <leaseAnnouncement>
 278                            <sec>1</sec>
 279                            <nanosec>856000</nanosec>
 280                        </leaseAnnouncement>
 281                        <initialAnnouncements>
 282                            <count>10</count>
 283                            <period>
 284                                <nanosec>50</nanosec>
 285                            </period>
 286                        </initialAnnouncements>
 287                        <clientAnnouncementPeriod>
 288                            <nanosec>250000000</nanosec>
 289                        </clientAnnouncementPeriod>
 290                        <static_edp_xml_config>filename1.xml</static_edp_xml_config>
 291                        <static_edp_xml_config>filename2.xml</static_edp_xml_config>
 292                        <static_edp_xml_config>filename3.xml</static_edp_xml_config>
 293                    </discovery_config>
 294
 295                    <avoid_builtin_multicast>true</avoid_builtin_multicast>
 296                    <use_WriterLivelinessProtocol>false</use_WriterLivelinessProtocol>
 297
 298                    <metatrafficUnicastLocatorList>
 299                        <locator>
 300                            <udpv4>
 301                                <!-- Access as physical, like UDP -->
 302                                <port>7400</port>
 303                                <address>192.168.1.41</address>
 304                            </udpv4>
 305                        </locator>
 306                        <locator>
 307                            <tcpv4>
 308                                <!-- Both physical and logical (port), like TCP -->
 309                                <physical_port>5100</physical_port>
 310                                <port>7400</port>
 311                                <unique_lan_id>192.168.1.1.1.1.2.55</unique_lan_id>
 312                                <wan_address>80.80.99.45</wan_address>
 313                                <address>192.168.1.55</address>
 314                            </tcpv4>
 315                        </locator>
 316                        <locator>
 317                            <udpv6>
 318                                <port>8844</port>
 319                                <address>::1</address>
 320                            </udpv6>
 321                        </locator>
 322                    </metatrafficUnicastLocatorList>
 323
 324                    <metatrafficMulticastLocatorList>
 325                        <locator>
 326                            <udpv4>
 327                                <!-- Access as physical, like UDP -->
 328                                <port>7400</port>
 329                                <address>192.168.1.41</address>
 330                            </udpv4>
 331                        </locator>
 332                        <locator>
 333                            <tcpv4>
 334                                <!-- Both physical and logical (port), like TCP -->
 335                                <physical_port>5100</physical_port>
 336                                <port>7400</port>
 337                                <unique_lan_id>192.168.1.1.1.1.2.55</unique_lan_id>
 338                                <wan_address>80.80.99.45</wan_address>
 339                                <address>192.168.1.55</address>
 340                            </tcpv4>
 341                        </locator>
 342                        <locator>
 343                            <udpv6>
 344                                <port>8844</port>
 345                                <address>::1</address>
 346                            </udpv6>
 347                        </locator>
 348                    </metatrafficMulticastLocatorList>
 349
 350                    <initialPeersList>
 351                        <locator>
 352                            <udpv4>
 353                                <!-- Access as physical, like UDP -->
 354                                <port>7400</port>
 355                                <address>192.168.1.41</address>
 356                            </udpv4>
 357                        </locator>
 358                        <locator>
 359                            <tcpv4>
 360                                <!-- Both physical and logical (port), like TCP -->
 361                                <physical_port>5100</physical_port>
 362                                <port>7400</port>
 363                                <unique_lan_id>192.168.1.1.1.1.2.55</unique_lan_id>
 364                                <wan_address>80.80.99.45</wan_address>
 365                                <address>192.168.1.55</address>
 366                            </tcpv4>
 367                        </locator>
 368                        <locator>
 369                            <udpv6>
 370                                <port>8844</port>
 371                                <address>::1</address>
 372                            </udpv6>
 373                        </locator>
 374                    </initialPeersList>
 375
 376                    <metatraffic_external_unicast_locators>
 377                        <udpv4 externality="1" cost="0" mask="24">
 378                            <address>100.100.100.10</address>
 379                            <port>34567</port>
 380                        </udpv4>
 381                    </metatraffic_external_unicast_locators>
 382
 383                    <readerHistoryMemoryPolicy>PREALLOCATED_WITH_REALLOC</readerHistoryMemoryPolicy>
 384                    <writerHistoryMemoryPolicy>PREALLOCATED</writerHistoryMemoryPolicy>
 385                    <readerPayloadSize>512</readerPayloadSize>
 386                    <writerPayloadSize>512</writerPayloadSize>
 387                    <mutation_tries>55</mutation_tries>
 388                </builtin>
 389
 390                <port>
 391                    <portBase>7400</portBase>
 392                    <domainIDGain>200</domainIDGain>
 393                    <participantIDGain>10</participantIDGain>
 394                    <offsetd0>0</offsetd0>
 395                    <offsetd1>1</offsetd1>
 396                    <offsetd2>2</offsetd2>
 397                    <offsetd3>3</offsetd3>
 398                </port>
 399
 400                <participantID>99</participantID>
 401
 402                <userTransports>
 403                    <transport_id>ExampleTransportId1</transport_id>
 404                    <transport_id>ExampleTransportId2</transport_id>
 405                </userTransports>
 406
 407                <useBuiltinTransports>false</useBuiltinTransports>
 408
 409                <builtinTransports max_msg_size="50KB" sockets_size="50KB" non_blocking="false">DEFAULT</builtinTransports>
 410
 411                <propertiesPolicy>
 412                    <properties>
 413                        <property>
 414                            <name>Property1Name</name>
 415                            <value>Property1Value</value>
 416                            <propagate>false</propagate>
 417                        </property>
 418                        <property>
 419                            <name>Property2Name</name>
 420                            <value>Property2Value</value>
 421                            <propagate>false</propagate>
 422                        </property>
 423                    </properties>
 424                </propertiesPolicy>
 425
 426                <allocation>
 427                    <remote_locators>
 428                        <max_unicast_locators>4</max_unicast_locators> <!-- uint32 -->
 429                        <max_multicast_locators>1</max_multicast_locators> <!-- uint32 -->
 430                    </remote_locators>
 431                    <total_participants>
 432                        <initial>0</initial>
 433                        <maximum>0</maximum>
 434                        <increment>1</increment>
 435                    </total_participants>
 436                    <total_readers>
 437                        <initial>0</initial>
 438                        <maximum>0</maximum>
 439                        <increment>1</increment>
 440                    </total_readers>
 441                    <total_writers>
 442                        <initial>0</initial>
 443                        <maximum>0</maximum>
 444                        <increment>1</increment>
 445                    </total_writers>
 446                    <max_partitions>256</max_partitions>
 447                    <max_user_data>256</max_user_data>
 448                    <max_properties>512</max_properties>
 449                    <send_buffers>
 450                        <preallocated_number>127</preallocated_number>
 451                        <dynamic>true</dynamic>
 452                    </send_buffers>
 453                </allocation>
 454
 455                <builtin_controllers_sender_thread>
 456                    <scheduling_policy>-1</scheduling_policy>
 457                    <priority>0</priority>
 458                    <affinity>0</affinity>
 459                    <stack_size>-1</stack_size>
 460                </builtin_controllers_sender_thread>
 461
 462                <timed_events_thread>
 463                    <scheduling_policy>-1</scheduling_policy>
 464                    <priority>0</priority>
 465                    <affinity>0</affinity>
 466                    <stack_size>-1</stack_size>
 467                </timed_events_thread>
 468
 469                <discovery_server_thread>
 470                    <scheduling_policy>-1</scheduling_policy>
 471                    <priority>0</priority>
 472                    <affinity>0</affinity>
 473                    <stack_size>-1</stack_size>
 474                </discovery_server_thread>
 475
 476                <typelookup_service_thread>
 477                    <scheduling_policy>-1</scheduling_policy>
 478                    <priority>0</priority>
 479                    <affinity>0</affinity>
 480                    <stack_size>-1</stack_size>
 481                </typelookup_service_thread>
 482
 483                <builtin_transports_reception_threads>
 484                    <scheduling_policy>-1</scheduling_policy>
 485                    <priority>0</priority>
 486                    <affinity>0</affinity>
 487                    <stack_size>-1</stack_size>
 488                </builtin_transports_reception_threads>
 489
 490                <security_log_thread>
 491                    <scheduling_policy>-1</scheduling_policy>
 492                    <priority>0</priority>
 493                    <affinity>0</affinity>
 494                    <stack_size>-1</stack_size>
 495                </security_log_thread>
 496            </rtps>
 497        </participant>
 498
 499        <data_writer profile_name="datawriter_profile_example">
 500            <topic>
 501                <historyQos>
 502                    <kind>KEEP_LAST</kind>
 503                    <depth>20</depth>
 504                </historyQos>
 505                <resourceLimitsQos>
 506                    <max_samples>5</max_samples>
 507                    <max_instances>2</max_instances>
 508                    <max_samples_per_instance>1</max_samples_per_instance>
 509                    <allocated_samples>20</allocated_samples>
 510                    <extra_samples>10</extra_samples>
 511                </resourceLimitsQos>
 512            </topic>
 513            <qos> <!-- dataWriterQosPoliciesType -->
 514                <data_sharing>
 515                    <kind>AUTOMATIC</kind>
 516                    <shared_dir>/home</shared_dir>
 517                    <max_domains>10</max_domains>
 518                    <domain_ids>
 519                        <domainId>0</domainId>
 520                        <domainId>11</domainId>
 521                    </domain_ids>
 522                </data_sharing>
 523                <deadline>
 524                    <period>
 525                        <sec>1</sec>
 526                    </period>
 527                </deadline>
 528                <disable_heartbeat_piggyback>true</disable_heartbeat_piggyback>
 529                <disablePositiveAcks>
 530                    <enabled>true</enabled>
 531                    <duration>
 532                        <sec>1</sec>
 533                    </duration>
 534                </disablePositiveAcks>
 535                <durability>
 536                    <kind>VOLATILE</kind>
 537                </durability>
 538                <!-- QoS policy pending implementation -->
 539                <latencyBudget>
 540                    <duration>
 541                        <sec>1</sec>
 542                    </duration>
 543                </latencyBudget>
 544                <lifespan>
 545                    <duration>
 546                        <sec>5</sec>
 547                    </duration>
 548                </lifespan>
 549                <liveliness>
 550                    <kind>AUTOMATIC</kind>
 551                    <lease_duration>
 552                        <sec>1</sec>
 553                        <nanosec>856000</nanosec>
 554                    </lease_duration>
 555                    <announcement_period>
 556                        <sec>1</sec>
 557                        <nanosec>856000</nanosec>
 558                    </announcement_period>
 559                </liveliness>
 560                <ownership>
 561                    <kind>EXCLUSIVE</kind>
 562                </ownership>
 563                <ownershipStrength>
 564                    <value>50</value>
 565                </ownershipStrength>
 566                <partition>
 567                    <names>
 568                        <name>part1</name>
 569                        <name>part2</name>
 570                    </names>
 571                </partition>
 572                <publishMode>
 573                    <kind>ASYNCHRONOUS</kind>
 574                </publishMode>
 575                <reliability>
 576                    <kind>BEST_EFFORT</kind>
 577                    <max_blocking_time>
 578                        <sec>1</sec>
 579                        <nanosec>856000</nanosec>
 580                    </max_blocking_time>
 581                </reliability>
 582            </qos>
 583
 584            <times>
 585                <initialHeartbeatDelay>
 586                    <sec>1</sec>
 587                    <nanosec>856000</nanosec>
 588                </initialHeartbeatDelay>
 589                <heartbeatPeriod>
 590                    <sec>1</sec>
 591                    <nanosec>856000</nanosec>
 592                </heartbeatPeriod>
 593                <nackResponseDelay>
 594                    <sec>1</sec>
 595                    <nanosec>856000</nanosec>
 596                </nackResponseDelay>
 597                <nackSupressionDuration>
 598                    <sec>1</sec>
 599                    <nanosec>856000</nanosec>
 600                </nackSupressionDuration>
 601            </times>
 602
 603            <unicastLocatorList>
 604                <locator>
 605                    <udpv4>
 606                        <!-- Access as physical, like UDP -->
 607                        <port>7400</port>
 608                        <address>192.168.1.41</address>
 609                    </udpv4>
 610                </locator>
 611                <locator>
 612                    <tcpv4>
 613                        <!-- Both physical and logical (port), like TCP -->
 614                        <physical_port>5100</physical_port>
 615                        <port>7400</port>
 616                        <unique_lan_id>192.168.1.1.1.1.2.55</unique_lan_id>
 617                        <wan_address>80.80.99.45</wan_address>
 618                        <address>192.168.1.55</address>
 619                    </tcpv4>
 620                </locator>
 621                <locator>
 622                    <udpv6>
 623                        <port>8844</port>
 624                        <address>::1</address>
 625                    </udpv6>
 626                </locator>
 627            </unicastLocatorList>
 628
 629            <multicastLocatorList>
 630                <locator>
 631                    <udpv4>
 632                        <!-- Access as physical, like UDP -->
 633                        <port>7400</port>
 634                        <address>192.168.1.41</address>
 635                    </udpv4>
 636                </locator>
 637                <locator>
 638                    <tcpv4>
 639                        <!-- Both physical and logical (port), like TCP -->
 640                        <physical_port>5100</physical_port>
 641                        <port>7400</port>
 642                        <unique_lan_id>192.168.1.1.1.1.2.55</unique_lan_id>
 643                        <wan_address>80.80.99.45</wan_address>
 644                        <address>192.168.1.55</address>
 645                    </tcpv4>
 646                </locator>
 647                <locator>
 648                    <udpv6>
 649                        <port>8844</port>
 650                        <address>::1</address>
 651                    </udpv6>
 652                </locator>
 653            </multicastLocatorList>
 654
 655            <external_unicast_locators>
 656                <udpv4 externality="1" cost="0" mask="24">
 657                    <address>100.100.100.10</address>
 658                    <port>12345</port>
 659                </udpv4>
 660            </external_unicast_locators>
 661
 662            <ignore_non_matching_locators>true</ignore_non_matching_locators>
 663            <historyMemoryPolicy>DYNAMIC</historyMemoryPolicy>
 664
 665            <propertiesPolicy>
 666                <properties>
 667                    <property>
 668                        <name>Property1Name</name>
 669                        <value>Property1Value</value>
 670                        <propagate>false</propagate>
 671                    </property>
 672                    <property>
 673                        <name>Property2Name</name>
 674                        <value>Property2Value</value>
 675                        <propagate>false</propagate>
 676                    </property>
 677                </properties>
 678            </propertiesPolicy>
 679
 680            <userDefinedID>45</userDefinedID>
 681            <entityID>76</entityID>
 682
 683            <matchedSubscribersAllocation>
 684                <initial>3</initial>
 685                <maximum>3</maximum>
 686                <increment>0</increment>
 687            </matchedSubscribersAllocation>
 688        </data_writer>
 689
 690        <data_reader profile_name="datareader_profile_example">
 691            <topic>
 692                <historyQos>
 693                    <kind>KEEP_LAST</kind>
 694                    <depth>20</depth>
 695                </historyQos>
 696                <resourceLimitsQos>
 697                    <max_samples>5</max_samples>
 698                    <max_instances>2</max_instances>
 699                    <max_samples_per_instance>1</max_samples_per_instance>
 700                    <allocated_samples>20</allocated_samples>
 701                    <extra_samples>10</extra_samples>
 702                </resourceLimitsQos>
 703            </topic>
 704            <qos> <!-- dataReaderQosPoliciesType -->
 705                <data_sharing>
 706                    <kind>AUTOMATIC</kind>
 707                    <shared_dir>/home</shared_dir>
 708                    <max_domains>10</max_domains>
 709                    <domain_ids>
 710                        <domainId>0</domainId>
 711                        <domainId>11</domainId>
 712                    </domain_ids>
 713                    <data_sharing_listener_thread>
 714                        <scheduling_policy>-1</scheduling_policy>
 715                        <priority>0</priority>
 716                        <affinity>0</affinity>
 717                        <stack_size>-1</stack_size>
 718                    </data_sharing_listener_thread>
 719                </data_sharing>
 720                <deadline>
 721                    <period>
 722                        <sec>1</sec>
 723                    </period>
 724                </deadline>
 725                <disablePositiveAcks>
 726                    <enabled>true</enabled>
 727                    <duration>
 728                        <sec>1</sec>
 729                    </duration>
 730                </disablePositiveAcks>
 731                <durability>
 732                    <kind>PERSISTENT</kind>
 733                </durability>
 734                <!-- QoS policy pending implementation -->
 735                <latencyBudget>
 736                    <duration>
 737                        <sec>1</sec>
 738                    </duration>
 739                </latencyBudget>
 740                <lifespan>
 741                    <duration>
 742                        <sec>5</sec>
 743                    </duration>
 744                </lifespan>
 745                <liveliness>
 746                    <kind>MANUAL_BY_PARTICIPANT</kind>
 747                    <lease_duration>
 748                        <sec>1</sec>
 749                        <nanosec>856000</nanosec>
 750                    </lease_duration>
 751                    <announcement_period>
 752                        <sec>1</sec>
 753                        <nanosec>856000</nanosec>
 754                    </announcement_period>
 755                </liveliness>
 756                <ownership>
 757                    <kind>EXCLUSIVE</kind>
 758                </ownership>
 759                <partition>
 760                    <names>
 761                        <name>part1</name>
 762                        <name>part2</name>
 763                    </names>
 764                </partition>
 765                <reliability>
 766                    <kind>BEST_EFFORT</kind>
 767                    <max_blocking_time>
 768                        <sec>1</sec>
 769                        <nanosec>856000</nanosec>
 770                    </max_blocking_time>
 771                </reliability>
 772            </qos>
 773
 774            <times>
 775                <initialAcknackDelay>
 776                    <sec>1</sec>
 777                    <nanosec>856000</nanosec>
 778                </initialAcknackDelay>
 779                <heartbeatResponseDelay>
 780                    <sec>1</sec>
 781                    <nanosec>856000</nanosec>
 782                </heartbeatResponseDelay>
 783            </times>
 784
 785            <unicastLocatorList>
 786                <locator>
 787                    <udpv4>
 788                        <!-- Access as physical, like UDP -->
 789                        <port>7400</port>
 790                        <address>192.168.1.41</address>
 791                    </udpv4>
 792                </locator>
 793                <locator>
 794                    <tcpv4>
 795                        <!-- Both physical and logical (port), like TCP -->
 796                        <physical_port>5100</physical_port>
 797                        <port>7400</port>
 798                        <unique_lan_id>192.168.1.1.1.1.2.55</unique_lan_id>
 799                        <wan_address>80.80.99.45</wan_address>
 800                        <address>192.168.1.55</address>
 801                    </tcpv4>
 802                </locator>
 803                <locator>
 804                    <udpv6>
 805                        <port>8844</port>
 806                        <address>::1</address>
 807                    </udpv6>
 808                </locator>
 809            </unicastLocatorList>
 810
 811            <multicastLocatorList>
 812                <locator>
 813                    <udpv4>
 814                        <!-- Access as physical, like UDP -->
 815                        <port>7400</port>
 816                        <address>192.168.1.41</address>
 817                    </udpv4>
 818                </locator>
 819                <locator>
 820                    <tcpv4>
 821                        <!-- Both physical and logical (port), like TCP -->
 822                        <physical_port>5100</physical_port>
 823                        <port>7400</port>
 824                        <unique_lan_id>192.168.1.1.1.1.2.55</unique_lan_id>
 825                        <wan_address>80.80.99.45</wan_address>
 826                        <address>192.168.1.55</address>
 827                    </tcpv4>
 828                </locator>
 829                <locator>
 830                    <udpv6>
 831                        <port>8844</port>
 832                        <address>::1</address>
 833                    </udpv6>
 834                </locator>
 835            </multicastLocatorList>
 836
 837            <external_unicast_locators>
 838                <udpv4 externality="1" cost="0" mask="24">
 839                    <address>100.100.100.10</address>
 840                    <port>12345</port>
 841                </udpv4>
 842            </external_unicast_locators>
 843
 844            <ignore_non_matching_locators>true</ignore_non_matching_locators>
 845            <expectsInlineQos>true</expectsInlineQos>
 846            <historyMemoryPolicy>DYNAMIC</historyMemoryPolicy>
 847
 848            <propertiesPolicy>
 849                <properties>
 850                    <property>
 851                        <name>Property1Name</name>
 852                        <value>Property1Value</value>
 853                        <propagate>false</propagate>
 854                    </property>
 855                    <property>
 856                        <name>Property2Name</name>
 857                        <value>Property2Value</value>
 858                        <propagate>false</propagate>
 859                    </property>
 860                </properties>
 861            </propertiesPolicy>
 862
 863            <userDefinedID>55</userDefinedID>
 864            <entityID>66</entityID>
 865
 866            <matchedPublishersAllocation>
 867                <initial>1</initial>
 868                <maximum>1</maximum>
 869                <increment>0</increment>
 870            </matchedPublishersAllocation>
 871        </data_reader>
 872
 873        <topic profile_name="topic_profile_example">
 874            <historyQos>
 875                <kind>KEEP_LAST</kind>
 876                <depth>20</depth>
 877            </historyQos>
 878            <resourceLimitsQos>
 879                <max_samples>5</max_samples>
 880                <max_instances>2</max_instances>
 881                <max_samples_per_instance>1</max_samples_per_instance>
 882                <allocated_samples>20</allocated_samples>
 883                <extra_samples>10</extra_samples>
 884            </resourceLimitsQos>
 885        </topic>
 886    </profiles>
 887
 888    <library_settings>
 889        <intraprocess_delivery>USER_DATA_ONLY</intraprocess_delivery>
 890    </library_settings>
 891
 892    <log>
 893        <use_default>false</use_default>
 894
 895        <consumer>
 896            <class>StdoutConsumer</class>
 897        </consumer>
 898
 899        <consumer>
 900            <class>StdoutErrConsumer</class>
 901            <property>
 902                <name>stderr_threshold</name>
 903                <value>Log::Kind::Warning</value>
 904            </property>
 905        </consumer>
 906
 907        <consumer>
 908            <class>FileConsumer</class>
 909            <property>
 910                <name>filename</name>
 911                <value>execution.log</value>
 912            </property>
 913            <property>
 914                <name>append</name>
 915                <value>TRUE</value>
 916            </property>
 917        </consumer>
 918
 919        <thread_settings>
 920            <scheduling_policy>-1</scheduling_policy>
 921            <priority>0</priority>
 922            <affinity>0</affinity>
 923            <stack_size>-1</stack_size>
 924        </thread_settings>
 925    </log>
 926
 927    <types>
 928        <type> <!-- Types can be defined in its own type of tag or sharing the same tag -->
 929            <enum name="MyAloneEnumType">
 930                <enumerator name="A" value="0"/>
 931                <enumerator name="B" value="1"/>
 932                <enumerator name="C"/>
 933            </enum>
 934        </type>
 935        <type>
 936            <!-- All possible members struct type -->
 937            <struct name="MyFullStruct">
 938                <!-- Primitives & basic -->
 939                <member name="my_bool" type="boolean"/>
 940                <member name="my_char" type="char8"/>
 941                <member name="my_wchar" type="char16"/>
 942                <member name="my_byte" type="byte"/>
 943                <member name="my_octet" type="octet"/>
 944                <member name="my_uint8" type="uint8"/>
 945                <member name="my_short" type="int16"/>
 946                <member name="my_long" type="int32"/>
 947                <member name="my_unsignedshort" type="uint16"/>
 948                <member name="my_unsignedlong" type="uint32"/>
 949                <member name="my_longlong" type="int64"/>
 950                <member name="my_unsignedlonglong" type="uint64"/>
 951                <member name="my_float" type="float32"/>
 952                <member name="my_double" type="float64"/>
 953                <member name="my_longdouble" type="float128"/>
 954                <member name="my_string" type="string"/>
 955                <member name="my_wstring" type="wstring"/>
 956
 957                <!-- string my_boundedString[41925] -->
 958                <member name="my_boundedString" type="string" stringMaxLength="41925"/>
 959                <!-- wstring my_boundedWString[41925] -->
 960                <member name="my_boundedWString" type="wstring" stringMaxLength="41925"/>
 961
 962                <!-- short short_sequence[5]; -->
 963                <member name="short_sequence" sequenceMaxLength="5" type="int16"/>
 964
 965                <!-- long long_array[2][3][4]; -->
 966                <member name="long_array" arrayDimensions="2,3,4" type="int32"/>
 967
 968                <!-- map<long,long,2> my_map_inner -->
 969                <member name="my_map" type="int32" key_type="int32" mapMaxLength="2"/>
 970            </struct>
 971
 972            <typedef name="inner_map" type="char8" key_type="int16"/>
 973            <struct name="MyComplexStruct">
 974                <!-- Complex types -->
 975                <member name="my_other_struct" type="nonBasic" nonBasicTypeName="MyFullStruct"/>
 976                <!-- map<long,map<long,long,2>,2> my_map_map; -->
 977                <member name="my_map_map" type="nonBasic" nonBasicTypeName="inner_map" key_type="int32" mapMaxLength="2"/>
 978            </struct>
 979
 980            <enum name="MyEnum">
 981                <enumerator name="A" value="0"/>
 982                <enumerator name="B" value="1"/>
 983                <enumerator name="C"/>
 984            </enum>
 985
 986            <typedef name="MyAlias1" type="nonBasic" nonBasicTypeName="MyEnum"/>
 987            <typedef name="MyAlias2" type="int32" arrayDimensions="2,2"/>
 988
 989            <struct name="MyStruct">
 990                <member name="first" type="int32"/>
 991                <member name="second" type="int64"/>
 992            </struct>
 993
 994            <!-- TODO(XTypes: Fix inheritance loading from XML profile) Fast DDS#4626 -->
 995            <!-- <struct name="OtherInheritedStruct" baseType="MyStruct">
 996                <member name="my_enum" type="nonBasic" nonBasicTypeName="MyEnum"/>
 997                <member name="my_struct" type="nonBasic" nonBasicTypeName="MyFullStruct" arrayDimensions="5"/>
 998            </struct> -->
 999
1000            <union name="MyUnion1">
1001                <discriminator type="byte"/>
1002                <case>
1003                    <caseDiscriminator value="0"/>
1004                    <caseDiscriminator value="1"/>
1005                    <member name="first" type="int32"/>
1006                </case>
1007                <case>
1008                    <caseDiscriminator value="2"/>
1009                    <member name="second" type="nonBasic" nonBasicTypeName="MyStruct"/>
1010                </case>
1011                <case>
1012                    <caseDiscriminator value="default"/>
1013                    <member name="third" type="int64"/>
1014                </case>
1015            </union>
1016
1017            <bitset name="MyBitSet">
1018                <bitfield name="a" bit_bound="3"/>
1019                <bitfield name="b" bit_bound="10"/>
1020                <bitfield name="c" bit_bound="12" type="int16"/>
1021            </bitset>
1022
1023            <!-- TODO(XTypes: Fix inheritance loading from XML profile) Fast DDS#4626 -->
1024            <!-- <bitset name="OtherInheritedBitSet" baseType="MyBitSet">
1025                <bitfield bit_bound="8"/>
1026                <bitfield bit_bound="15" type="byte"/>
1027            </bitset> -->
1028
1029            <bitmask name="MyBitMask" bit_bound="8">
1030                <bit_value name="flag0" position="0"/>
1031                <bit_value name="flag1"/>
1032            </bitmask>
1033        </type>
1034    </types>
1035</dds>