Given the code here to determine and assign a participant GUID, the "hostid" portion of the GUID (first 4 bytes) is initialized with eProsima prefix (0x010f) and the last two digit of the IPv4 address of the first network interface found.
On system with several interfaces, most of which internals, this scheme is not sufficient for generating a mostly unique hostid to be used for the RTPS Domain.
When the Fast-RTPS process is started as part of the boot sequence, the process ID can often be the same on multiple machines causing multiple participant to have the exact same GUID and confuse each-others.
A more robust approach (on linux and osx) would be to make a call to the gethostid(2) method and use the information received to initialized the hostid portion of the RTPS GUID.
Given the code here to determine and assign a participant GUID, the "hostid" portion of the GUID (first 4 bytes) is initialized with eProsima prefix (0x010f) and the last two digit of the IPv4 address of the first network interface found.
On system with several interfaces, most of which internals, this scheme is not sufficient for generating a mostly unique hostid to be used for the RTPS Domain.
When the Fast-RTPS process is started as part of the boot sequence, the process ID can often be the same on multiple machines causing multiple participant to have the exact same GUID and confuse each-others.
A more robust approach (on linux and osx) would be to make a call to the gethostid(2) method and use the information received to initialized the hostid portion of the RTPS GUID.