-
Notifications
You must be signed in to change notification settings - Fork 145
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update DDS isolation instructions for shared networks in Autoware #484
Comments
From the discussion in the Software WG Meeting 2023/11/21 we should also modify: Also raise this issue on ROS Humble documentation. |
@xmfcx The heart of the problem lies in Solution:step-1 configure
# export ROS_DOMAIN_ID=27
# export ROS_LOCALHOST_ONLY=1
<?xml version="1.0" encoding="UTF-8" ?>
<CycloneDDS xmlns="https://cdds.io/config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://cdds.io/config https://raw.githubusercontent.com/eclipse-cyclonedds/cyclonedds/master/etc/cyclonedds.xsd">
<Domain Id="any">
<General>
<Interfaces>
<!-- <NetworkInterface autodetermine="true" priority="default" multicast="default" /> -->
<NetworkInterface name="lo" priority="default" multicast="default" />
</Interfaces>
<AllowMulticast>default</AllowMulticast>
<MaxMessageSize>65500B</MaxMessageSize>
</General>
<Internal>
<SocketReceiveBufferSize min="10MB"/>
<Watermarks>
<WhcHigh>500kB</WhcHigh>
</Watermarks>
</Internal>
</Domain>
</CycloneDDS>
step-2 restart the computer |
@zymouse it seems that you've come up with the same solution that I proposed (in the possible approaches section in my post), good to see your confirmation. This issue is here to update the related documentations. |
This pull request has been automatically marked as stale because it has not had recent activity. |
Checklist
Description
The current recommendation for Autoware users on crowded networks is to set
export ROS_LOCALHOST_ONLY=1
.However, this approach does not effectively isolate DDS communication on a shared network, especially with ROS 2
humble
.Related issue:
What is wrong with the current recommendation?
Right now using
ROS_LOCALHOST_ONLY=1
doesn't prevent multiple computers from talking to each other with DDS and ROS 2 humble.Here are the steps to reproduce the issue:
export ROS_LOCALHOST_ONLY=1
sudo ip link set lo multicast on
export ROS_DOMAIN_ID=0
ros2 run demo_nodes_cpp talker
ros2 run demo_nodes_cpp listener
This shouldn't normally be possible. This will lead to network congestions and other issues.
Purpose
The purpose of this issue is to address and rectify the inefficacy of the
ROS_LOCALHOST_ONLY=1
setting in isolating DDS traffic on crowded networks for Autoware users.This is to prevent network congestion and to ensure that the DDS communications are confined to the intended network interfaces.
The resolution of this issue is crucial for maintaining network efficiency and performance, particularly in large office environments where multiple instances of Autoware might be operating on the same network.
Possible approaches
Update the documentation to have following instructions:
export ROS_LOCALHOST_ONLY=1
line from.bashrc
lo: the same interface may not be selected twice
error.ros2 daemon stop
sudo ip link set lo multicast on
Definition of done
The docs are updated.
The text was updated successfully, but these errors were encountered: