Skip to content

[#1742] Implement ros2 tunnel send path#1744

Merged
orecham merged 30 commits into
eclipse-iceoryx:mainfrom
ekxide:iox2-1742-implement-ros2-tunnel-send-path
Jun 25, 2026
Merged

[#1742] Implement ros2 tunnel send path#1744
orecham merged 30 commits into
eclipse-iceoryx:mainfrom
ekxide:iox2-1742-implement-ros2-tunnel-send-path

Conversation

@orecham

@orecham orecham commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

Notes for Reviewer

Implements the send path for the ROS 2 tunnel backend.

Remaining capabilities and CI to be merged in subsequent pull requests. See the README in integrations/ros2/tunnel-backend for the development status.

Pre-Review Checklist for the PR Author

  • Add sensible notes for the reviewer
  • PR title is short, expressive and meaningful
  • Consider switching the PR to a draft (Convert to draft)
    • as draft PR, the CI will be skipped for pushes
  • Relevant issues are linked in the References section
  • Branch follows the naming format (iox2-123-introduce-posix-ipc-example)
  • Commits messages are according to this guideline
    • Commit messages have the issue ID ([#123] Add posix ipc example)
    • Keep in mind to use the same email that was used to sign the Eclipse Contributor Agreement
  • Tests follow the best practice for testing
  • Changelog updated in the unreleased section including API breaking changes

PR Reviewer Reminders

  • Commits are properly organized and messages are according to the guideline
  • Unit tests have been written for new behavior
  • Public API is documented
  • PR title describes the changes

References

Closes #1742

@orecham orecham force-pushed the iox2-1742-implement-ros2-tunnel-send-path branch 3 times, most recently from c762fab to b7b0aa2 Compare June 15, 2026 17:07
@orecham orecham self-assigned this Jun 15, 2026
@orecham orecham force-pushed the iox2-1742-implement-ros2-tunnel-send-path branch from b7b0aa2 to 13be5b9 Compare June 15, 2026 17:15
@orecham orecham force-pushed the iox2-1742-implement-ros2-tunnel-send-path branch from 13be5b9 to eeb8956 Compare June 15, 2026 17:19
@codecov

codecov Bot commented Jun 15, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 76.21%. Comparing base (22c4239) to head (961d184).
⚠️ Report is 59 commits behind head on main.

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main    #1744      +/-   ##
==========================================
- Coverage   76.25%   76.21%   -0.05%     
==========================================
  Files         430      429       -1     
  Lines       42701    42684      -17     
  Branches     1327     1329       +2     
==========================================
- Hits        32562    32530      -32     
- Misses       9054     9066      +12     
- Partials     1085     1088       +3     
Flag Coverage Δ
CPP 63.29% <ø> (+0.06%) ⬆️
Rust 76.08% <ø> (-0.05%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
iceoryx2-services/tunnel-backend/src/types/wake.rs 0.00% <ø> (ø)

... and 24 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@orecham orecham changed the title [WIP][#1742] Implement ros2 tunnel send path [#1742] Implement ros2 tunnel send path Jun 15, 2026
Comment thread integrations/ros2/examples/demo_nodes_iceoryx2/src/bin/listener.rs
Comment thread integrations/ros2/examples/demo_nodes_iceoryx2/src/bin/talker.rs
Comment thread integrations/ros2/examples/demo_nodes_iceoryx2/README.md
Comment thread integrations/ros2/examples/README.md
Comment thread integrations/ros2/tunnel-backend/src/rcl/node.rs
Comment thread integrations/ros2/tunnel-backend/src/relays/publish_subscribe.rs Outdated
Comment thread integrations/ros2/tunnel-backend/src/relays/publish_subscribe.rs
Comment thread integrations/ros2/tunnel-backend/src/payload.rs
Comment thread integrations/ros2/tunnel-backend/src/typesupport.rs Outdated
Comment thread integrations/ros2/tunnel-backend/src/typesupport.rs
Comment thread integrations/ros2/tunnel-backend/src/rcl/node.rs Outdated
Comment thread integrations/ros2/tunnel-backend/src/rcl/node.rs Outdated
Comment thread integrations/ros2/tunnel-backend/src/rcl/node.rs Outdated
Comment thread integrations/ros2/tunnel-backend/src/rcl/node.rs Outdated
Comment thread integrations/ros2/tunnel-backend/src/rcl/publisher.rs Outdated
@orecham orecham force-pushed the iox2-1742-implement-ros2-tunnel-send-path branch from 726b851 to 9db0a7e Compare June 18, 2026 16:39
Comment thread integrations/ros2/tunnel-backend/src/rcl/node.rs Outdated
Comment thread integrations/ros2/tunnel-backend/src/rcl/node.rs
Comment thread integrations/ros2/tunnel-backend/src/rcl/node.rs Outdated
Comment thread integrations/ros2/tunnel-backend/src/relays/factory.rs
Comment thread integrations/ros2/tunnel-backend/src/rcl/publisher.rs Outdated
Comment thread integrations/ros2/tunnel-backend/src/relays/publish_subscribe.rs
Comment thread integrations/ros2/tunnel-backend/src/backend.rs
///
/// The handle points into the loaded library's memory, so the `Library` is
/// kept alive here; it stays loaded as long as any clone is alive.
#[derive(Debug, Clone)]

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please do not implement Clone for a shallow clone.

In my opinion, it is cleaner when everyone, who requires the type support to be alive uses the Rc<TypeSupportInner> struct. Otherwise, one might think that two distinct TypeSupport instances are alive whilst there is just one.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@elfenpiff I don't really follow your point. This is just a "handle to the type support".

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since we have two different views here, could we agree that @elBoberido solves the tie?

@orecham orecham Jun 24, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is just a minimal wrapper of rcl only for use by the tunnel. Is it worth to spend more time here? We can change it later.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A little bit late to the party, but I would also prefer to have a Rc<TypeSupportInner>/Rc<TypeSupport> instead of hiding the Rc in a wrapper.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@elBoberido @elfenpiff I will revise it all later, let me get the functionality in, then I will do some additional iterations to make it pretty and conventional. I cannot do both at once 🫠 .

Comment thread integrations/ros2/tunnel-backend/src/relays/factory.rs Outdated
Comment thread integrations/ros2/tunnel-backend/src/relays/factory.rs Outdated
@orecham orecham force-pushed the iox2-1742-implement-ros2-tunnel-send-path branch from 5523dbc to 961d184 Compare June 24, 2026 09:06
@orecham orecham merged commit ed6fef2 into eclipse-iceoryx:main Jun 25, 2026
54 checks passed
@orecham orecham deleted the iox2-1742-implement-ros2-tunnel-send-path branch June 25, 2026 10:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add ROS 2 Tunnel/Gateway

3 participants