ros2 / rmw_fastrtps

Implementation of the ROS Middleware (rmw) Interface using eProsima's Fast RTPS.
Apache License 2.0
157 stars 117 forks source link

[rmw_fastrtps] Improve handling of dynamic discovery #653

Closed gbiggs closed 1 year ago

gbiggs commented 1 year ago

This PR adds to rmw_fastrtps functionality necessary to support the improved handling of dynamic discovery.

It adds handling of the new discovery parameters passed down from rcl.

This implementation allows a host specified in static peers to be a host name or an IPv4 or an IPv6 addresses. It will automatically manage translating between these to ensure that the static peer is correctly identified, no matter what it reports itself as.

Current status: The desired functionality is mostly complete. Most of the entries in the goal matrix are working correctly. There is currently a bug where specifying a static peer appears to disable dynamic discovery. This needs to be resolved.

ros-discourse commented 1 year ago

This pull request has been mentioned on ROS Discourse. There might be relevant details there:

https://discourse.ros.org/t/ros-2-tsc-meeting-minutes-2023-02-16/29927/1

sloretz commented 1 year ago

@EduPonz Any ETA on when the changes from this branch https://github.com/eProsima/Fast-DDS/compare/master...poc/ros2-iron-discovery-options will get merged into Fast-DDS? They're required for these discovery changes to work with Fast-DDS.

I'm hoping we can get this in before the upcoming ROS Iron RMW freeze deadline.

sloretz commented 1 year ago

Checking if this compiles on Windows:

build: --packages-up-to rmw_fastrtps_cpp rmw_fastrtps_dynamic_cpp rmw_fastrtps_shared_cpp test: --packages-select rmw_fastrtps_cpp rmw_fastrtps_dynamic_cpp rmw_fastrtps_shared_cpp Build Status

Rebuild with just rmw_fastrtps_cpp: Build Status

sloretz commented 1 year ago

Need one small fix/enhancement to Fast-DDS https://github.com/eProsima/Fast-DDS/pull/3437