Skip to content
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

Add support for the Cyclone DDS Iceoryx shared memory PSMX plugin #213

Merged
merged 19 commits into from
Sep 2, 2024

Conversation

gmartin82
Copy link
Contributor

@gmartin82 gmartin82 commented Apr 19, 2024

This PR updates the DDS plugin/bridge to support the new Iceoryx PSMX plugin in Cyclone DDS and removes support for the previous Iceoryx shared memory implementation.

Closes #212

@gmartin82
Copy link
Contributor Author

This should now be complete but I'm waiting for a new release of cyclors before marking it as ready for review.

Tested on Linux and Windows. Note that the Iceoryx PSMX plugin doesn't compile on Windows so the shared memory feature is not supported on this platform. @JEnoch if you have time to test this on Mac that would be appreciated.

When --dds-enable-shm is specified Cyclone DDS is configured to use the Iceoryx PSMX plugin with the default options. This supports keyless topics only. This can be expanded to keyed topics through providing a custom CYCLONEDDS_URI value which sets the appropriate options for the PSMX plugin.

Use of the feature in forward discovery mode is currently limited to serialized PSMX samples only due to the lack of type information across the bridge. Samples will be serialized where the type contains indirections such as strings.

@JEnoch
Copy link
Member

JEnoch commented May 15, 2024

I confirm it works as expected on MacOS.
Tested with Iceoryx 2.0.5, CycloneDDS master branch commit 2caad2d8 and HelloWorld example (IDL modified to remove @key). Commands:

$ ./iox-roudi
$ ./target/debug/zenoh-bridge-dds -d 0 --dds-enable-shm
$ ./target/debug/zenoh-bridge-dds -d 1 --dds-enable-shm
$ CYCLONEDDS_URI='<CycloneDDS><Domain Id="0"><General><Interfaces><PubSubMessageExchange name="iox" library="psmx_iox" /></Interfaces></General></Domain></CycloneDDS>' ./HelloworldSubscriber
$ CYCLONEDDS_URI='<CycloneDDS><Domain Id="1"><General><Interfaces><PubSubMessageExchange name="iox" library="psmx_iox" /></Interfaces></General></Domain></CycloneDDS>' ./HelloworldPublisher

@gmartin82 gmartin82 marked this pull request as ready for review June 13, 2024 15:27
Copy link

PR missing one of the required labels: breaking-change bug dependencies documentation enhancement new feature internal

@gmartin82 gmartin82 marked this pull request as draft August 30, 2024 15:51
Copy link

PR missing one of the required labels: breaking-change bug dependencies documentation enhancement new feature internal

Copy link

PR missing one of the required labels: breaking-change bug dependencies documentation enhancement new feature internal

@gmartin82
Copy link
Contributor Author

Rebased to main. @JEnoch can you review, please?

@gmartin82 gmartin82 marked this pull request as ready for review August 30, 2024 16:40
Copy link

PR missing one of the required labels: breaking-change bug dependencies documentation enhancement new feature internal

Copy link

github-actions bot commented Sep 2, 2024

PR missing one of the required labels: breaking-change bug dependencies documentation enhancement new feature internal

@JEnoch JEnoch added the enhancement New feature or request label Sep 2, 2024
@JEnoch
Copy link
Member

JEnoch commented Sep 2, 2024

Tested on MacOS with Iceoryx 2.0.5, CycloneDDS 0.10.5 and HelloWorld example (IDL modified to remove @key). Commands:

  • iox-roudi
  • CYCLONEDDS_URI='<CycloneDDS><Domain Id="0"><SharedMemory><Enable>true</Enable><LogLevel>debug</LogLevel></SharedMemory></Domain></CycloneDDS>' ./HelloworldSubscriber
  • CYCLONEDDS_URI='<CycloneDDS><Domain Id="1"><SharedMemory><Enable>true</Enable><LogLevel>debug</LogLevel></SharedMemory></Domain></CycloneDDS>' ./HelloworldPublisher
  • ./zenoh-bridge-dds -d 0 --dds-enable-shm
  • ./zenoh-bridge-dds -d 1 --dds-enable-shm

@JEnoch JEnoch merged commit 470048a into eclipse-zenoh:main Sep 2, 2024
6 of 7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

Add support for the Cyclone DDS Iceoryx shared memory PSMX plugin
2 participants