diff --git a/code/DDSCodeTester.cpp b/code/DDSCodeTester.cpp
index f8411efee..32894cbdf 100644
--- a/code/DDSCodeTester.cpp
+++ b/code/DDSCodeTester.cpp
@@ -6152,6 +6152,26 @@ void tcp_use_cases()
//!
}
+ {
+ //LARGE_DATA_BUILTIN_TRANSPORTS_OPTIONS
+ eprosima::fastdds::dds::DomainParticipantQos pqos = PARTICIPANT_QOS_DEFAULT;
+
+ /* Transports configuration */
+ // UDPv4 transport for PDP over multicast and SHM / TCPv4 transport for EDP and application data
+ // Message Size and Sockets sizes of 200 KB + Non-blocking send + 50ms negotiation timeout
+ eprosima::fastdds::rtps::BuiltinTransportsOptions large_data_options;
+ large_data_options.maxMessageSize = 200000;
+ large_data_options.sockets_buffer_size = 200000;
+ large_data_options.non_blocking_send = true;
+ large_data_options.tcp_negotiation_timeout = 50;
+ pqos.setup_transports(eprosima::fastdds::rtps::BuiltinTransports::LARGE_DATA, large_data_options);
+
+ /* Create participant as usual */
+ eprosima::fastdds::dds::DomainParticipant* participant =
+ eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->create_participant(0, pqos);
+ //!
+ }
+
{
//PDP-MULTICAST-DATA-TCP
eprosima::fastdds::dds::DomainParticipantQos pqos = PARTICIPANT_QOS_DEFAULT;
diff --git a/code/XMLTester.xml b/code/XMLTester.xml
index 296b8e670..b55d85795 100644
--- a/code/XMLTester.xml
+++ b/code/XMLTester.xml
@@ -3905,6 +3905,23 @@
-->
<-->
+LARGE_DATA_BUILTIN_TRANSPORTS_OPTIONS<-->
+
+
+
+ LARGE_DATA
+
+
+
+<-->
+
PDP-MULTICAST-DATA-TCP<-->
LARGE_DATA_BUILTIN_TRANSPORTS_OPTIONS<-->
+ :end-before: <-->
+ :lines: 2-4, 6-10, 12-13
+
+ .. tab:: C++
+
+ .. literalinclude:: ../../../../code/DDSCodeTester.cpp
+ :language: c++
+ :dedent: 8
+ :start-after: //LARGE_DATA_BUILTIN_TRANSPORTS_OPTIONS
+ :end-before: //!
+
+.. note::
+
+ To learn how to check and modify the default maximum system value for the socket buffers size, please refer to
+ :ref:`finding-out-maximum-socket-values`.
+
+.. warning::
+
+ Setting a ``max_msg_size`` value higher than 65500 KB with the ``DEFAULT`` or ``UDP`` modes will result in an error
+ and the participant creation will fail.
+
diff --git a/docs/fastdds/use_cases/tcp/tcp_use_case.rst b/docs/fastdds/use_cases/tcp/tcp_use_case.rst
index 67884e061..3a150f00b 100644
--- a/docs/fastdds/use_cases/tcp/tcp_use_case.rst
+++ b/docs/fastdds/use_cases/tcp/tcp_use_case.rst
@@ -24,6 +24,8 @@ when the deployment changes over time.
networks. When configured, UDP transport will exclusively be used during the :ref:`PDP discovery` phase,
taking advantage of the more reliable TCP/SHM for the remainder of the communication process. Fast DDS offers
an extremely straightforward implementation for this mode through an environment variable, XML profiles or via code.
+Additionally, it is possible to use the builtin transports configuration options to customize the ``LARGE_DATA`` mode
+to better suit the specific requirements of each user.
For a video demonstration showcasing a practical example of this configuration, please refer to:
`Large Data communication with ROS 2
@@ -36,4 +38,5 @@ Also, it is possible to enable TCP communication while using
:maxdepth: 2
/fastdds/use_cases/tcp/tcp_with_multicast_discovery.rst
+ /fastdds/use_cases/tcp/tcp_large_data_with_options.rst
/fastdds/use_cases/tcp/tcp_with_discovery_server.rst
diff --git a/docs/fastdds/xml_configuration/common.rst b/docs/fastdds/xml_configuration/common.rst
index f2aaf4f92..4a398ca9b 100644
--- a/docs/fastdds/xml_configuration/common.rst
+++ b/docs/fastdds/xml_configuration/common.rst
@@ -20,6 +20,7 @@ This section aims to explain these common elements.
- :ref:`rLsQos`
* :ref:`ThreadSettingsType`
+* :ref:`BuiltinTransportType`
* :ref:`CommonQOS`
@@ -351,6 +352,62 @@ Please refer to :ref:`threadsettingsqos` for further information on ResourceLimi
- ``int32_t``
- -1
+.. _BuiltinTransportType:
+
+BuiltinTransports
+^^^^^^^^^^^^^^^^^
+
+It controls the builtin transports that will be used during the initialization of the DomainParticipant.
+Please refer to :ref:`rtps_layer_builtin_transports` for further information on builtin transports.
+
+This type must follow this configuration:
+
+.. list-table::
+ :header-rows: 1
+
+ * - Name
+ - Description
+ - Values
+ - Default
+ * - ````
+ - Defines the builtin transport mode.
+ - ``NONE`` |br| ``DEFAULT`` |br| ``DEFAULTv6`` |br| ``SHM`` |br| ``UDPv4`` |br| ``UDPv6``
+ |br| ``LARGE_DATA``
+ - ``DEFAULT``
+
+The ```` tag can be configured with the following attributes:
+
+.. list-table::
+ :header-rows: 1
+ :align: left
+
+ * - Name
+ - Description
+ - Values
+ - Default
+ * - ``max_msg_size``
+ - Maximum message size that will be specified in
+ the transport layer. |br|
+ Valid values: from 1 to (2^32)-1.
+ - ``uint32_t``
+ - 65500
+ * - ``sockets_size``
+ - Size of the send and receive socket buffers.
+ Valid values: from 0 to (2^32)-1.
+ - ``uint32_t``
+ - OS default
+ * - ``non_blocking``
+ - Whether to use non-blocking send calls or not.
+ Valid values: ``true`` or ``false``.
+ - ``bool``
+ - ``false``
+ * - ``tcp_negotiation_timeout``
+ - Timeout duration for logical port negotiation.
+ Valid values: from 1 to (2^32)-1. |br|
+ Only valid for ``LARGE_DATA`` mode.
+ - ``uint32_t``
+ - 0
+
.. _CommonQOS:
QoS
diff --git a/docs/fastdds/xml_configuration/domainparticipant.rst b/docs/fastdds/xml_configuration/domainparticipant.rst
index a6d13b61d..a34791ab1 100644
--- a/docs/fastdds/xml_configuration/domainparticipant.rst
+++ b/docs/fastdds/xml_configuration/domainparticipant.rst
@@ -66,6 +66,7 @@ These elements allow the user to define the DomainParticipant configuration.
.. |PartAlloc| replace:: :ref:`DomainParticipantAllocationType `
.. |PolicyType| replace:: :ref:`PropertiesPolicyType `
+.. |BuiltinTransportType| replace:: :ref:`BuiltinTransportType `
.. list-table::
@@ -156,8 +157,8 @@ These elements allow the user to define the DomainParticipant configuration.
- Configuration option to determine which transports |br|
will be instantiated if the ``useBuiltinTransports`` is |br|
set to true. See :ref:`rtps_layer_builtin_transports`.
- - ``string_255``
- - DEFAULT
+ - |BuiltinTransportType|
+ -
* - ````
- Additional configuration properties. |br|
See :ref:`propertypolicyqos`.
diff --git a/docs/spelling_wordlist.txt b/docs/spelling_wordlist.txt
index c8100c899..ecc192d8a 100644
--- a/docs/spelling_wordlist.txt
+++ b/docs/spelling_wordlist.txt
@@ -117,6 +117,7 @@ GCC
GCM
getter
getters
+gibibyte
github
Github
GMAC
@@ -146,6 +147,7 @@ IPv
json
kB
keyhash
+kibibyte
latencies
le
Libp
@@ -161,6 +163,7 @@ LTS
macOS
mandatorily
md
+mebibyte
metatraffic
middleware
misconfigurations