diff --git a/docs/docker/shm_docker.rst b/docs/docker/shm_docker.rst index a8bfea237..cf1528eb8 100644 --- a/docs/docker/shm_docker.rst +++ b/docs/docker/shm_docker.rst @@ -27,6 +27,12 @@ command, those are: A more advanced user could set the flag to `shared`, thus sharing the shared memory mechanism of one of the container with the others. +Starting with Fast DDS Pro 3.7.0, the participant property ``fastdds.shm.only_host_id_on_locators`` shall also be set +to ``true`` to force the SHM transport to not consider the machine ID on the locators, since the machine ID would +probably be different for each container, and therefore the SHM transport would not be able to find the other +participants. +See :ref:`property_policies_shm_host_id_only` for more information. + .. code-block:: bash docker run -it --rm --network=host --ipc=host [OPTIONS] diff --git a/docs/fastdds/property_policies/non_consolidated_qos.rst b/docs/fastdds/property_policies/non_consolidated_qos.rst index 3d20f9bc2..7ea8c8f29 100644 --- a/docs/fastdds/property_policies/non_consolidated_qos.rst +++ b/docs/fastdds/property_policies/non_consolidated_qos.rst @@ -348,6 +348,30 @@ The behavior regarding this can be configured using the property ``fastdds.shm.e :start-after: XML-SHM-ENFORCE-META-TRAFFIC :end-before: <--> +.. _property_policies_shm_host_id_only: + +SHM transport locators format |Pro| +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Prior to version 3.7.0 of *Fast DDS*, the locators format for SHM transport included a two byte ID +based on the IP addresses of the host, which was used to identify the host in which the participant +was running. +Starting from version 3.7.0, the locators format for SHM transport has been changed to also include +a 13-byte ID based on the machine ID of the host. + +When the machine ID part of the locator is set, it is used to identify the host in which a +participant is running, and the IP-based host ID part of the locator is ignored. +When the machine ID part of the locator is not set, the IP-based host ID part of the locator is +used to identify the host in which a participant is running. + +In certain scenarios, where virtual machines are cloned or containers are created from the same +image, the machine ID of the host may be the same for different hosts, which may lead to +participants running in different hosts being considered to be running in the same host, and +therefore not being able to communicate. +In order to avoid this situation, the property ``fastdds.shm.only_host_id_on_locators`` can be set +to ``true`` to force the SHM transport to use only the IP-based host ID part of the locator, both +in the announced locators and when processing the locators of remote participants. + .. _property_max_message_size: Maximum Message Size