Repository navigation
Document DDS multicast address, UDP port and ROS_DOMAIN_ID relationship. - #75
Open
fujitatomoya wants to merge 1 commit into
Open
fujitatomoya wants to merge 1 commit into
fujitatomoya wants to merge 1 commit into
Conversation
Add "Multicast Group Address, UDP Port and ROS_DOMAIN_ID" to the Enable Multicast section. The DDS well-known multicast group 239.255.0.1 is independent from the domain ID, RTPS encodes the domain ID into the UDP port (7400 + 250 * domainId for SPDP multicast). Cilium multicast forwards by group address regardless of the port, so one group is enough for all ROS 2 domains. Verified on kind v0.33.0 with Cilium 1.20.2: talker and listener on different nodes discover each other with ROS_DOMAIN_ID=42 (Fast DDS, 239.255.0.1:17900) and ROS_DOMAIN_ID=7 (Cyclone DDS, 239.255.0.1:9150) with only 239.255.0.1 configured, observed with hubble observe in the cilium-agent container. Also list the cases that need another multicast group (user-defined DDS locators, rmw_zenoh scouting 224.0.0.224:7446, Gazebo Transport 239.255.0.7:10317) and add a Trouble Shooting entry. Closes #62 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #62
Adds
Multicast Group Address, UDP Port and ROS_DOMAIN_IDto Enable Multicast and a matching Trouble Shooting entry.Note
The verification result differs from the premise in the issue. With Fast DDS and Cyclone DDS (RTPS defaults), the multicast group address stays
239.255.0.1for everyROS_DOMAIN_ID; the domain ID is encoded into the UDP port (7400 + 250 * ROS_DOMAIN_IDfor SPDP multicast), not into the address such as239.255.<ID/256>.<ID%256>. Cilium multicast forwards by group address regardless of the port, so onecilium multicast add --group-ip 239.255.0.1covers all domains. Please double check against the environment where239.255.0.1did not work for another domain ID, that might have been a user-defined multicast locator (XML profile) or a different RMW.Documented:
7400 + 250 * d, user multicast7401 + 250 * d, unicast ports with participant ID), and the0-232domain ID limitkind-worker) and listener (kind-worker2) discover each other withROS_DOMAIN_ID=42(Fast DDS,239.255.0.1:17900) andROS_DOMAIN_ID=7(Cyclone DDS,239.255.0.1:9150),hubble observe --to-ip 239.255.0.1in thecilium-agentcontainer shows the flows (Multicast handledverdict is reported asDROPPEDbecause the eBPF multicast datapath consumes and replicates the packet)rmw_zenohscouting224.0.0.224:7446(link-local scope), Gazebo Transport discovery239.255.0.7:10317, withcilium multicast add --group-ip 239.255.0.7as the exampleROS 2 nodes with ROS_DOMAIN_ID cannot discover each other, how to check with HubbleVerification
kind v0.33.0 (Kubernetes v1.37.0) 3 nodes + Cilium 1.20.2 (
multicast-enabled=true, group239.255.0.1only),tomoyafujita/ros:rollingbuilt fromdocker/Dockerfile.rolling. The Hubble output in the doc is copied from the run, the UDP ports were also confirmed withtcpdumpin an ephemeral debug container (10.244.1.180.39513 > 239.255.0.1.17900,10.244.1.42.46227 > 239.255.0.1.9150).codespell --config codespell.cfgpasses.🤖 Generated with Claude Code