Unique network flows optional checks#872
Conversation
|
It appears that the build is failing because e5c8a84 requires ros2/rmw@403ee71, but the build is utilizing I don't currently have permissions to the |
fujitatomoya
left a comment
There was a problem hiding this comment.
test would be ideal to add.
MiguelCompany
left a comment
There was a problem hiding this comment.
Apart from my comment below, this needs a rebase
Signed-off-by: Thomas Moore <thomas.moore@torc.ai>
Signed-off-by: Thomas Moore <thomas.moore@torc.ai>
Signed-off-by: Thomas Moore <thomas.moore@torc.ai>
2da5a66 to
41fb2ad
Compare
…o RMW_FASTRTPS_ROS_DISCOVERY_INFO_UNIQUE_NETWORK_FLOWS Signed-off-by: Thomas Moore <thomas.moore@torc.ai>
41fb2ad to
452ec4f
Compare
|
@MiguelCompany - I have rebased and addressed your comment. However, I'm still unable to get a successful build because of the issue I shared above: #872 (comment) |
Don't worry about the build issue, the CI (which is manually launched) builds all the packages (i.e. no binary packages are used) |
181e5e2 to
1aeb4f7
Compare
MiguelCompany
left a comment
There was a problem hiding this comment.
LGTM with green CI
|
Pulls: #872 |
1aeb4f7 to
041f3c9
Compare
Co-authored-by: Miguel Company <miguelcompany@eprosima.com> Signed-off-by: Thomas Moore <thomas.moore@torc.ai>
Signed-off-by: Thomas Moore <thomas.moore@torc.ai>
Signed-off-by: Thomas Moore <thomas.moore@torc.ai>
041f3c9 to
02d35e5
Compare
MiguelCompany
left a comment
There was a problem hiding this comment.
We can always use rcutils_set_env, since its behavior is to always override.
Signed-off-by: Thomas Moore <thomas.moore@torc.ai>
7308ab6 to
7fbc3f8
Compare
MiguelCompany
left a comment
There was a problem hiding this comment.
LGTM with green CI
…WORK_FLOWS is an empty string Signed-off-by: Thomas Moore <thomas.moore@torc.ai>
2b78aec to
84ac6ac
Compare
|
@MiguelCompany - hopefully the latest commit fixes the issues with the CI unit tests. I didn't realize that |
Signed-off-by: Thomas Moore <thomas.moore@torc.ai>
|
I also decided to use |
Signed-off-by: Thomas Moore <thomas.moore@torc.ai>
Signed-off-by: Thomas Moore <thomas.moore@torc.ai>
|
@MiguelCompany - while looking into the build issues, I decided to downgrade the warning to an info that was emitted when UNF was skipped while being set to optional because that is the expected behavior. I also added a test to verify that no unexpected logs were generated. Regarding the build issues, it looks like all of the builds failed in the same way as the recent nightly builds. How should we handle this? |
| const char * error_str; | ||
| error_str = rcutils_get_env("RMW_FASTRTPS_ROS_DISCOVERY_INFO_UNIQUE_NETWORK_FLOWS", &env_value); | ||
| ASSERT_EQ(error_str, nullptr) << "Error getting env var: " << error_str; | ||
| value = (*env_value != '\0') ? std::optional<std::string>(env_value) : std::nullopt; |
There was a problem hiding this comment.
| value = (*env_value != '\0') ? std::optional<std::string>(env_value) : std::nullopt; | |
| value = ((nullptr != env_value) && (*env_value != '\0')) ? std::optional<std::string>(env_value) : std::nullopt; |
After approval, if we consider that test failures are unrelated to this PR, we could merge. Note, however, that we are currently inside the freeze for Lyrical, and we would need to wait for the freeze to be released before merging. |
|
Pulls: #872 |
Description
As part of #711, the
ros_discovery_infosubscription was configured withRMW_UNIQUE_NETWORK_FLOW_ENDPOINTS_OPTIONALLY_REQUIRED. However, there are no criteria under which an optional unique network flow is actually optional and it ultimately behaves exactly the same as settingRMW_UNIQUE_NETWORK_FLOW_ENDPOINTS_STRICTLY_REQUIRED. There are several conditions under which unique network flows are not supported:The intent of this PR is to incorporate checks for these conditions such that a unique network flow will not be requested under these conditions when a subscription is created with
RMW_UNIQUE_NETWORK_FLOW_ENDPOINTS_OPTIONALLY_REQUIRED. It also adds theRMW_FASTRTPS_USE_UNIQUE_NETWORK_FLOWS_FOR_ROS_DISCOVERY_INFOenvironment variable to enable the ability to disable requesting uinique network flows for theros_discovery_infotopic.Is this user-facing behavior change?
This will enable the user to utilize features such as explicit locator specification or static EDP via the Fast DDS XML configuration files. It will also give the user the option to disable unique network flows for the
ros_discovery_infotopic.Did you use Generative AI?
Claude Opus 4.6 was used via GitHub Copilot to assist with the analysis of the issue and to provide an initial implementation. The implementation was then manually refined.
Additional Information
We would like to backport this to Jazzy.