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                            <locator>
 232                                <udpv4>
 233                                    <address>192.168.10.57</address>
 234                                    <port>56542</port>
 235                                </udpv4>
 236                            </locator>
 237                            <locator>
 238                                <udpv4>
 239                                    <address>192.168.10.58</address>
 240                                    <port>24565</port>
 241                                </udpv4>
 242                            </locator>
 243                            <locator>
 244                                <udpv4>
 245                                    <address>192.168.10.59</address>
 246                                    <port>56543</port>
 247                                </udpv4>
 248                            </locator>
 249                            <locator>
 250                                <udpv4>
 251                                    <address>192.168.10.60</address>
 252                                    <port>34565</port>
 253                                </udpv4>
 254                            </locator>
 255                        </discoveryServersList>
 256                        <ignoreParticipantFlags>FILTER_DIFFERENT_PROCESS|FILTER_SAME_PROCESS</ignoreParticipantFlags>
 257                        <EDP>SIMPLE</EDP>
 258                        <simpleEDP>
 259                            <PUBWRITER_SUBREADER>true</PUBWRITER_SUBREADER>
 260                            <PUBREADER_SUBWRITER>true</PUBREADER_SUBWRITER>
 261                        </simpleEDP>
 262                        <leaseDuration>
 263                            <sec>DURATION_INFINITY</sec>
 264                        </leaseDuration>
 265                        <leaseAnnouncement>
 266                            <sec>1</sec>
 267                            <nanosec>856000</nanosec>
 268                        </leaseAnnouncement>
 269                        <initialAnnouncements>
 270                            <count>10</count>
 271                            <period>
 272                                <nanosec>50</nanosec>
 273                            </period>
 274                        </initialAnnouncements>
 275                        <clientAnnouncementPeriod>
 276                            <nanosec>250000000</nanosec>
 277                        </clientAnnouncementPeriod>
 278                        <static_edp_xml_config>filename1.xml</static_edp_xml_config>
 279                        <static_edp_xml_config>filename2.xml</static_edp_xml_config>
 280                        <static_edp_xml_config>filename3.xml</static_edp_xml_config>
 281                    </discovery_config>
 282
 283                    <avoid_builtin_multicast>true</avoid_builtin_multicast>
 284                    <use_WriterLivelinessProtocol>false</use_WriterLivelinessProtocol>
 285
 286                    <metatrafficUnicastLocatorList>
 287                        <locator>
 288                            <udpv4>
 289                                <!-- Access as physical, like UDP -->
 290                                <port>7400</port>
 291                                <address>192.168.1.41</address>
 292                            </udpv4>
 293                        </locator>
 294                        <locator>
 295                            <tcpv4>
 296                                <!-- Both physical and logical (port), like TCP -->
 297                                <physical_port>5100</physical_port>
 298                                <port>7400</port>
 299                                <unique_lan_id>192.168.1.1.1.1.2.55</unique_lan_id>
 300                                <wan_address>80.80.99.45</wan_address>
 301                                <address>192.168.1.55</address>
 302                            </tcpv4>
 303                        </locator>
 304                        <locator>
 305                            <udpv6>
 306                                <port>8844</port>
 307                                <address>::1</address>
 308                            </udpv6>
 309                        </locator>
 310                    </metatrafficUnicastLocatorList>
 311
 312                    <metatrafficMulticastLocatorList>
 313                        <locator>
 314                            <udpv4>
 315                                <!-- Access as physical, like UDP -->
 316                                <port>7400</port>
 317                                <address>192.168.1.41</address>
 318                            </udpv4>
 319                        </locator>
 320                        <locator>
 321                            <tcpv4>
 322                                <!-- Both physical and logical (port), like TCP -->
 323                                <physical_port>5100</physical_port>
 324                                <port>7400</port>
 325                                <unique_lan_id>192.168.1.1.1.1.2.55</unique_lan_id>
 326                                <wan_address>80.80.99.45</wan_address>
 327                                <address>192.168.1.55</address>
 328                            </tcpv4>
 329                        </locator>
 330                        <locator>
 331                            <udpv6>
 332                                <port>8844</port>
 333                                <address>::1</address>
 334                            </udpv6>
 335                        </locator>
 336                    </metatrafficMulticastLocatorList>
 337
 338                    <initialPeersList>
 339                        <locator>
 340                            <udpv4>
 341                                <!-- Access as physical, like UDP -->
 342                                <port>7400</port>
 343                                <address>192.168.1.41</address>
 344                            </udpv4>
 345                        </locator>
 346                        <locator>
 347                            <tcpv4>
 348                                <!-- Both physical and logical (port), like TCP -->
 349                                <physical_port>5100</physical_port>
 350                                <port>7400</port>
 351                                <unique_lan_id>192.168.1.1.1.1.2.55</unique_lan_id>
 352                                <wan_address>80.80.99.45</wan_address>
 353                                <address>192.168.1.55</address>
 354                            </tcpv4>
 355                        </locator>
 356                        <locator>
 357                            <udpv6>
 358                                <port>8844</port>
 359                                <address>::1</address>
 360                            </udpv6>
 361                        </locator>
 362                    </initialPeersList>
 363
 364                    <metatraffic_external_unicast_locators>
 365                        <udpv4 externality="1" cost="0" mask="24">
 366                            <address>100.100.100.10</address>
 367                            <port>34567</port>
 368                        </udpv4>
 369                    </metatraffic_external_unicast_locators>
 370
 371                    <readerHistoryMemoryPolicy>PREALLOCATED_WITH_REALLOC</readerHistoryMemoryPolicy>
 372                    <writerHistoryMemoryPolicy>PREALLOCATED</writerHistoryMemoryPolicy>
 373                    <readerPayloadSize>512</readerPayloadSize>
 374                    <writerPayloadSize>512</writerPayloadSize>
 375                    <mutation_tries>55</mutation_tries>
 376                    <flow_controller_name>example_flow_controller</flow_controller_name>
 377                </builtin>
 378
 379                <port>
 380                    <portBase>7400</portBase>
 381                    <domainIDGain>200</domainIDGain>
 382                    <participantIDGain>10</participantIDGain>
 383                    <offsetd0>0</offsetd0>
 384                    <offsetd1>1</offsetd1>
 385                    <offsetd2>2</offsetd2>
 386                    <offsetd3>3</offsetd3>
 387                </port>
 388
 389                <participantID>99</participantID>
 390
 391                <userTransports>
 392                    <transport_id>ExampleTransportId1</transport_id>
 393                    <transport_id>ExampleTransportId2</transport_id>
 394                </userTransports>
 395
 396                <useBuiltinTransports>false</useBuiltinTransports>
 397
 398                <builtinTransports max_msg_size="50KB" sockets_size="50KB" non_blocking="false">DEFAULT</builtinTransports>
 399
 400                <propertiesPolicy>
 401                    <properties>
 402                        <property>
 403                            <name>Property1Name</name>
 404                            <value>Property1Value</value>
 405                            <propagate>false</propagate>
 406                        </property>
 407                        <property>
 408                            <name>Property2Name</name>
 409                            <value>Property2Value</value>
 410                            <propagate>false</propagate>
 411                        </property>
 412                    </properties>
 413                </propertiesPolicy>
 414
 415                <allocation>
 416                    <remote_locators>
 417                        <max_unicast_locators>4</max_unicast_locators> <!-- uint32 -->
 418                        <max_multicast_locators>1</max_multicast_locators> <!-- uint32 -->
 419                    </remote_locators>
 420                    <total_participants>
 421                        <initial>0</initial>
 422                        <maximum>0</maximum>
 423                        <increment>1</increment>
 424                    </total_participants>
 425                    <total_readers>
 426                        <initial>0</initial>
 427                        <maximum>0</maximum>
 428                        <increment>1</increment>
 429                    </total_readers>
 430                    <total_writers>
 431                        <initial>0</initial>
 432                        <maximum>0</maximum>
 433                        <increment>1</increment>
 434                    </total_writers>
 435                    <max_partitions>256</max_partitions>
 436                    <max_user_data>256</max_user_data>
 437                    <max_properties>512</max_properties>
 438                    <send_buffers>
 439                        <preallocated_number>127</preallocated_number>
 440                        <dynamic>true</dynamic>
 441                        <network_buffers_config>
 442                            <initial>16</initial>
 443                            <maximum>0</maximum>
 444                            <increment>16</increment>
 445                        </network_buffers_config>
 446                    </send_buffers>
 447                </allocation>
 448
 449                <builtin_controllers_sender_thread>
 450                    <scheduling_policy>-1</scheduling_policy>
 451                    <priority>0</priority>
 452                    <affinity>0</affinity>
 453                    <stack_size>-1</stack_size>
 454                </builtin_controllers_sender_thread>
 455
 456                <timed_events_thread>
 457                    <scheduling_policy>-1</scheduling_policy>
 458                    <priority>0</priority>
 459                    <affinity>0</affinity>
 460                    <stack_size>-1</stack_size>
 461                </timed_events_thread>
 462
 463                <discovery_server_thread>
 464                    <scheduling_policy>-1</scheduling_policy>
 465                    <priority>0</priority>
 466                    <affinity>0</affinity>
 467                    <stack_size>-1</stack_size>
 468                </discovery_server_thread>
 469
 470                <typelookup_service_thread>
 471                    <scheduling_policy>-1</scheduling_policy>
 472                    <priority>0</priority>
 473                    <affinity>0</affinity>
 474                    <stack_size>-1</stack_size>
 475                </typelookup_service_thread>
 476
 477                <builtin_transports_reception_threads>
 478                    <scheduling_policy>-1</scheduling_policy>
 479                    <priority>0</priority>
 480                    <affinity>0</affinity>
 481                    <stack_size>-1</stack_size>
 482                </builtin_transports_reception_threads>
 483
 484                <security_log_thread>
 485                    <scheduling_policy>-1</scheduling_policy>
 486                    <priority>0</priority>
 487                    <affinity>0</affinity>
 488                    <stack_size>-1</stack_size>
 489                </security_log_thread>
 490
 491                <flow_controller_descriptor_list>
 492                    <flow_controller_descriptor>
 493                        <name>example_flow_controller</name>
 494                        <scheduler>FIFO</scheduler>
 495                        <max_bytes_per_period>4096</max_bytes_per_period>
 496                        <period_ms>500</period_ms>
 497                        <sender_thread>
 498                            <scheduling_policy>-1</scheduling_policy>
 499                            <priority>0</priority>
 500                            <affinity>0</affinity>
 501                            <stack_size>-1</stack_size>
 502                        </sender_thread>
 503                    </flow_controller_descriptor>
 504                </flow_controller_descriptor_list>
 505            </rtps>
 506        </participant>
 507
 508        <data_writer profile_name="datawriter_profile_example">
 509            <topic>
 510                <historyQos>
 511                    <kind>KEEP_LAST</kind>
 512                    <depth>20</depth>
 513                </historyQos>
 514                <resourceLimitsQos>
 515                    <max_samples>5</max_samples>
 516                    <max_instances>2</max_instances>
 517                    <max_samples_per_instance>1</max_samples_per_instance>
 518                    <allocated_samples>20</allocated_samples>
 519                    <extra_samples>10</extra_samples>
 520                </resourceLimitsQos>
 521            </topic>
 522            <qos> <!-- dataWriterQosPoliciesType -->
 523                <data_sharing>
 524                    <kind>AUTOMATIC</kind>
 525                    <shared_dir>/home</shared_dir>
 526                    <max_domains>10</max_domains>
 527                    <domain_ids>
 528                        <domainId>0</domainId>
 529                        <domainId>11</domainId>
 530                    </domain_ids>
 531                </data_sharing>
 532                <deadline>
 533                    <period>
 534                        <sec>1</sec>
 535                    </period>
 536                </deadline>
 537                <disable_heartbeat_piggyback>true</disable_heartbeat_piggyback>
 538                <disablePositiveAcks>
 539                    <enabled>true</enabled>
 540                    <duration>
 541                        <sec>1</sec>
 542                    </duration>
 543                </disablePositiveAcks>
 544                <durability>
 545                    <kind>VOLATILE</kind>
 546                </durability>
 547                <!-- QoS policy pending implementation -->
 548                <latencyBudget>
 549                    <duration>
 550                        <sec>1</sec>
 551                    </duration>
 552                </latencyBudget>
 553                <lifespan>
 554                    <duration>
 555                        <sec>5</sec>
 556                    </duration>
 557                </lifespan>
 558                <liveliness>
 559                    <kind>AUTOMATIC</kind>
 560                    <lease_duration>
 561                        <sec>1</sec>
 562                        <nanosec>856000</nanosec>
 563                    </lease_duration>
 564                    <announcement_period>
 565                        <sec>1</sec>
 566                        <nanosec>856000</nanosec>
 567                    </announcement_period>
 568                </liveliness>
 569                <ownership>
 570                    <kind>EXCLUSIVE</kind>
 571                </ownership>
 572                <ownershipStrength>
 573                    <value>50</value>
 574                </ownershipStrength>
 575                <partition>
 576                    <names>
 577                        <name>part1</name>
 578                        <name>part2</name>
 579                    </names>
 580                </partition>
 581                <publishMode>
 582                    <kind>ASYNCHRONOUS</kind>
 583                    <flow_controller_name>example_flow_controller</flow_controller_name>
 584                </publishMode>
 585                <reliability>
 586                    <kind>BEST_EFFORT</kind>
 587                    <max_blocking_time>
 588                        <sec>1</sec>
 589                        <nanosec>856000</nanosec>
 590                    </max_blocking_time>
 591                </reliability>
 592            </qos>
 593
 594            <times>
 595                <initial_heartbeat_delay>
 596                    <sec>1</sec>
 597                    <nanosec>856000</nanosec>
 598                </initial_heartbeat_delay>
 599                <heartbeat_period>
 600                    <sec>1</sec>
 601                    <nanosec>856000</nanosec>
 602                </heartbeat_period>
 603                <nack_response_delay>
 604                    <sec>1</sec>
 605                    <nanosec>856000</nanosec>
 606                </nack_response_delay>
 607                <nack_supression_duration>
 608                    <sec>1</sec>
 609                    <nanosec>856000</nanosec>
 610                </nack_supression_duration>
 611            </times>
 612
 613            <unicastLocatorList>
 614                <locator>
 615                    <udpv4>
 616                        <!-- Access as physical, like UDP -->
 617                        <port>7400</port>
 618                        <address>192.168.1.41</address>
 619                    </udpv4>
 620                </locator>
 621                <locator>
 622                    <tcpv4>
 623                        <!-- Both physical and logical (port), like TCP -->
 624                        <physical_port>5100</physical_port>
 625                        <port>7400</port>
 626                        <unique_lan_id>192.168.1.1.1.1.2.55</unique_lan_id>
 627                        <wan_address>80.80.99.45</wan_address>
 628                        <address>192.168.1.55</address>
 629                    </tcpv4>
 630                </locator>
 631                <locator>
 632                    <udpv6>
 633                        <port>8844</port>
 634                        <address>::1</address>
 635                    </udpv6>
 636                </locator>
 637            </unicastLocatorList>
 638
 639            <multicastLocatorList>
 640                <locator>
 641                    <udpv4>
 642                        <!-- Access as physical, like UDP -->
 643                        <port>7400</port>
 644                        <address>192.168.1.41</address>
 645                    </udpv4>
 646                </locator>
 647                <locator>
 648                    <tcpv4>
 649                        <!-- Both physical and logical (port), like TCP -->
 650                        <physical_port>5100</physical_port>
 651                        <port>7400</port>
 652                        <unique_lan_id>192.168.1.1.1.1.2.55</unique_lan_id>
 653                        <wan_address>80.80.99.45</wan_address>
 654                        <address>192.168.1.55</address>
 655                    </tcpv4>
 656                </locator>
 657                <locator>
 658                    <udpv6>
 659                        <port>8844</port>
 660                        <address>::1</address>
 661                    </udpv6>
 662                </locator>
 663            </multicastLocatorList>
 664
 665            <external_unicast_locators>
 666                <udpv4 externality="1" cost="0" mask="24">
 667                    <address>100.100.100.10</address>
 668                    <port>12345</port>
 669                </udpv4>
 670            </external_unicast_locators>
 671
 672            <ignore_non_matching_locators>true</ignore_non_matching_locators>
 673            <historyMemoryPolicy>DYNAMIC</historyMemoryPolicy>
 674
 675            <propertiesPolicy>
 676                <properties>
 677                    <property>
 678                        <name>Property1Name</name>
 679                        <value>Property1Value</value>
 680                        <propagate>false</propagate>
 681                    </property>
 682                    <property>
 683                        <name>Property2Name</name>
 684                        <value>Property2Value</value>
 685                        <propagate>false</propagate>
 686                    </property>
 687                </properties>
 688            </propertiesPolicy>
 689
 690            <userDefinedID>45</userDefinedID>
 691            <entityID>76</entityID>
 692
 693            <matchedSubscribersAllocation>
 694                <initial>3</initial>
 695                <maximum>3</maximum>
 696                <increment>0</increment>
 697            </matchedSubscribersAllocation>
 698        </data_writer>
 699
 700        <data_reader profile_name="datareader_profile_example">
 701            <topic>
 702                <historyQos>
 703                    <kind>KEEP_LAST</kind>
 704                    <depth>20</depth>
 705                </historyQos>
 706                <resourceLimitsQos>
 707                    <max_samples>5</max_samples>
 708                    <max_instances>2</max_instances>
 709                    <max_samples_per_instance>1</max_samples_per_instance>
 710                    <allocated_samples>20</allocated_samples>
 711                    <extra_samples>10</extra_samples>
 712                </resourceLimitsQos>
 713            </topic>
 714            <qos> <!-- dataReaderQosPoliciesType -->
 715                <data_sharing>
 716                    <kind>AUTOMATIC</kind>
 717                    <shared_dir>/home</shared_dir>
 718                    <max_domains>10</max_domains>
 719                    <domain_ids>
 720                        <domainId>0</domainId>
 721                        <domainId>11</domainId>
 722                    </domain_ids>
 723                    <data_sharing_listener_thread>
 724                        <scheduling_policy>-1</scheduling_policy>
 725                        <priority>0</priority>
 726                        <affinity>0</affinity>
 727                        <stack_size>-1</stack_size>
 728                    </data_sharing_listener_thread>
 729                </data_sharing>
 730                <deadline>
 731                    <period>
 732                        <sec>1</sec>
 733                    </period>
 734                </deadline>
 735                <disablePositiveAcks>
 736                    <enabled>true</enabled>
 737                    <duration>
 738                        <sec>1</sec>
 739                    </duration>
 740                </disablePositiveAcks>
 741                <durability>
 742                    <kind>PERSISTENT</kind>
 743                </durability>
 744                <!-- QoS policy pending implementation -->
 745                <latencyBudget>
 746                    <duration>
 747                        <sec>1</sec>
 748                    </duration>
 749                </latencyBudget>
 750                <lifespan>
 751                    <duration>
 752                        <sec>5</sec>
 753                    </duration>
 754                </lifespan>
 755                <liveliness>
 756                    <kind>MANUAL_BY_PARTICIPANT</kind>
 757                    <lease_duration>
 758                        <sec>1</sec>
 759                        <nanosec>856000</nanosec>
 760                    </lease_duration>
 761                    <announcement_period>
 762                        <sec>1</sec>
 763                        <nanosec>856000</nanosec>
 764                    </announcement_period>
 765                </liveliness>
 766                <ownership>
 767                    <kind>EXCLUSIVE</kind>
 768                </ownership>
 769                <partition>
 770                    <names>
 771                        <name>part1</name>
 772                        <name>part2</name>
 773                    </names>
 774                </partition>
 775                <reliability>
 776                    <kind>BEST_EFFORT</kind>
 777                    <max_blocking_time>
 778                        <sec>1</sec>
 779                        <nanosec>856000</nanosec>
 780                    </max_blocking_time>
 781                </reliability>
 782            </qos>
 783
 784            <times>
 785                <initial_acknack_delay>
 786                    <sec>1</sec>
 787                    <nanosec>856000</nanosec>
 788                </initial_acknack_delay>
 789                <heartbeat_response_delay>
 790                    <sec>1</sec>
 791                    <nanosec>856000</nanosec>
 792                </heartbeat_response_delay>
 793            </times>
 794
 795            <unicastLocatorList>
 796                <locator>
 797                    <udpv4>
 798                        <!-- Access as physical, like UDP -->
 799                        <port>7400</port>
 800                        <address>192.168.1.41</address>
 801                    </udpv4>
 802                </locator>
 803                <locator>
 804                    <tcpv4>
 805                        <!-- Both physical and logical (port), like TCP -->
 806                        <physical_port>5100</physical_port>
 807                        <port>7400</port>
 808                        <unique_lan_id>192.168.1.1.1.1.2.55</unique_lan_id>
 809                        <wan_address>80.80.99.45</wan_address>
 810                        <address>192.168.1.55</address>
 811                    </tcpv4>
 812                </locator>
 813                <locator>
 814                    <udpv6>
 815                        <port>8844</port>
 816                        <address>::1</address>
 817                    </udpv6>
 818                </locator>
 819            </unicastLocatorList>
 820
 821            <multicastLocatorList>
 822                <locator>
 823                    <udpv4>
 824                        <!-- Access as physical, like UDP -->
 825                        <port>7400</port>
 826                        <address>192.168.1.41</address>
 827                    </udpv4>
 828                </locator>
 829                <locator>
 830                    <tcpv4>
 831                        <!-- Both physical and logical (port), like TCP -->
 832                        <physical_port>5100</physical_port>
 833                        <port>7400</port>
 834                        <unique_lan_id>192.168.1.1.1.1.2.55</unique_lan_id>
 835                        <wan_address>80.80.99.45</wan_address>
 836                        <address>192.168.1.55</address>
 837                    </tcpv4>
 838                </locator>
 839                <locator>
 840                    <udpv6>
 841                        <port>8844</port>
 842                        <address>::1</address>
 843                    </udpv6>
 844                </locator>
 845            </multicastLocatorList>
 846
 847            <external_unicast_locators>
 848                <udpv4 externality="1" cost="0" mask="24">
 849                    <address>100.100.100.10</address>
 850                    <port>12345</port>
 851                </udpv4>
 852            </external_unicast_locators>
 853
 854            <ignore_non_matching_locators>true</ignore_non_matching_locators>
 855            <expects_inline_qos>true</expects_inline_qos>
 856            <historyMemoryPolicy>DYNAMIC</historyMemoryPolicy>
 857
 858            <propertiesPolicy>
 859                <properties>
 860                    <property>
 861                        <name>Property1Name</name>
 862                        <value>Property1Value</value>
 863                        <propagate>false</propagate>
 864                    </property>
 865                    <property>
 866                        <name>Property2Name</name>
 867                        <value>Property2Value</value>
 868                        <propagate>false</propagate>
 869                    </property>
 870                </properties>
 871            </propertiesPolicy>
 872
 873            <userDefinedID>55</userDefinedID>
 874            <entityID>66</entityID>
 875
 876            <matchedPublishersAllocation>
 877                <initial>1</initial>
 878                <maximum>1</maximum>
 879                <increment>0</increment>
 880            </matchedPublishersAllocation>
 881        </data_reader>
 882
 883        <topic profile_name="topic_profile_example">
 884            <historyQos>
 885                <kind>KEEP_LAST</kind>
 886                <depth>20</depth>
 887            </historyQos>
 888            <resourceLimitsQos>
 889                <max_samples>5</max_samples>
 890                <max_instances>2</max_instances>
 891                <max_samples_per_instance>1</max_samples_per_instance>
 892                <allocated_samples>20</allocated_samples>
 893                <extra_samples>10</extra_samples>
 894            </resourceLimitsQos>
 895        </topic>
 896    </profiles>
 897
 898    <library_settings>
 899        <intraprocess_delivery>USER_DATA_ONLY</intraprocess_delivery>
 900    </library_settings>
 901
 902    <log>
 903        <use_default>false</use_default>
 904
 905        <consumer>
 906            <class>StdoutConsumer</class>
 907        </consumer>
 908
 909        <consumer>
 910            <class>StdoutErrConsumer</class>
 911            <property>
 912                <name>stderr_threshold</name>
 913                <value>Log::Kind::Warning</value>
 914            </property>
 915        </consumer>
 916
 917        <consumer>
 918            <class>FileConsumer</class>
 919            <property>
 920                <name>filename</name>
 921                <value>execution.log</value>
 922            </property>
 923            <property>
 924                <name>append</name>
 925                <value>TRUE</value>
 926            </property>
 927        </consumer>
 928
 929        <thread_settings>
 930            <scheduling_policy>-1</scheduling_policy>
 931            <priority>0</priority>
 932            <affinity>0</affinity>
 933            <stack_size>-1</stack_size>
 934        </thread_settings>
 935    </log>
 936
 937    <types>
 938        <type> <!-- Types can be defined in its own type of tag or sharing the same tag -->
 939            <enum name="MyAloneEnumType">
 940                <enumerator name="A" value="0"/>
 941                <enumerator name="B" value="1"/>
 942                <enumerator name="C"/>
 943            </enum>
 944        </type>
 945        <type>
 946            <!-- All possible members struct type -->
 947            <struct name="MyFullStruct">
 948                <!-- Primitives & basic -->
 949                <member name="my_bool" type="boolean"/>
 950                <member name="my_char" type="char8"/>
 951                <member name="my_wchar" type="char16"/>
 952                <member name="my_byte" type="byte"/>
 953                <member name="my_octet" type="octet"/>
 954                <member name="my_uint8" type="uint8"/>
 955                <member name="my_short" type="int16"/>
 956                <member name="my_long" type="int32"/>
 957                <member name="my_unsignedshort" type="uint16"/>
 958                <member name="my_unsignedlong" type="uint32"/>
 959                <member name="my_longlong" type="int64"/>
 960                <member name="my_unsignedlonglong" type="uint64"/>
 961                <member name="my_float" type="float32"/>
 962                <member name="my_double" type="float64"/>
 963                <member name="my_longdouble" type="float128"/>
 964                <member name="my_string" type="string"/>
 965                <member name="my_wstring" type="wstring"/>
 966
 967                <!-- string my_boundedString[41925] -->
 968                <member name="my_boundedString" type="string" stringMaxLength="41925"/>
 969                <!-- wstring my_boundedWString[41925] -->
 970                <member name="my_boundedWString" type="wstring" stringMaxLength="41925"/>
 971
 972                <!-- short short_sequence[5]; -->
 973                <member name="short_sequence" sequenceMaxLength="5" type="int16"/>
 974
 975                <!-- long long_array[2][3][4]; -->
 976                <member name="long_array" arrayDimensions="2,3,4" type="int32"/>
 977
 978                <!-- map<long,long,2> my_map_inner -->
 979                <member name="my_map" type="int32" key_type="int32" mapMaxLength="2"/>
 980            </struct>
 981
 982            <typedef name="inner_map" type="char8" key_type="int16"/>
 983            <struct name="MyComplexStruct">
 984                <!-- Complex types -->
 985                <member name="my_other_struct" type="nonBasic" nonBasicTypeName="MyFullStruct"/>
 986                <!-- map<long,map<long,long,2>,2> my_map_map; -->
 987                <member name="my_map_map" type="nonBasic" nonBasicTypeName="inner_map" key_type="int32" mapMaxLength="2"/>
 988            </struct>
 989
 990            <enum name="MyEnum">
 991                <enumerator name="A" value="0"/>
 992                <enumerator name="B" value="1"/>
 993                <enumerator name="C"/>
 994            </enum>
 995
 996            <typedef name="MyAlias1" type="nonBasic" nonBasicTypeName="MyEnum"/>
 997            <typedef name="MyAlias2" type="int32" arrayDimensions="2,2"/>
 998
 999            <struct name="MyStruct">
1000                <member name="first" type="int32"/>
1001                <member name="second" type="int64"/>
1002            </struct>
1003
1004            <!-- TODO(XTypes: Fix inheritance loading from XML profile) Fast DDS#4626 -->
1005            <!-- <struct name="OtherInheritedStruct" baseType="MyStruct">
1006                <member name="my_enum" type="nonBasic" nonBasicTypeName="MyEnum"/>
1007                <member name="my_struct" type="nonBasic" nonBasicTypeName="MyFullStruct" arrayDimensions="5"/>
1008            </struct> -->
1009
1010            <union name="MyUnion1">
1011                <discriminator type="byte"/>
1012                <case>
1013                    <caseDiscriminator value="0"/>
1014                    <caseDiscriminator value="1"/>
1015                    <member name="first" type="int32"/>
1016                </case>
1017                <case>
1018                    <caseDiscriminator value="2"/>
1019                    <member name="second" type="nonBasic" nonBasicTypeName="MyStruct"/>
1020                </case>
1021                <case>
1022                    <caseDiscriminator value="default"/>
1023                    <member name="third" type="int64"/>
1024                </case>
1025            </union>
1026
1027            <bitset name="MyBitSet">
1028                <bitfield name="a" bit_bound="3"/>
1029                <bitfield name="b" bit_bound="10"/>
1030                <bitfield name="c" bit_bound="12" type="int16"/>
1031            </bitset>
1032
1033            <!-- TODO(XTypes: Fix inheritance loading from XML profile) Fast DDS#4626 -->
1034            <!-- <bitset name="OtherInheritedBitSet" baseType="MyBitSet">
1035                <bitfield bit_bound="8"/>
1036                <bitfield bit_bound="15" type="byte"/>
1037            </bitset> -->
1038
1039            <bitmask name="MyBitMask" bit_bound="8">
1040                <bit_value name="flag0" position="0"/>
1041                <bit_value name="flag1"/>
1042            </bitmask>
1043        </type>
1044    </types>
1045</dds>