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

[22427] Fast DDS EASY_MODE - Feature - XMLRPC Server #5551

Merged

Conversation

cferreiragonz
Copy link
Contributor

@cferreiragonz cferreiragonz commented Jan 8, 2025

Description

This PR implements the Fast DDS Auto Discovery Server Mode feature in Fast DDS.

  • It updates the RTPSDomain to parse the new environment variable EASY_MODE and properly configure the RTPSParticipant to point to a local UDP Discovery Server.
  • It adds a new builtin transport: P2P, targeting the new mode. It instantiates TCP and SHM transport for user data and UDP for metatrafficUnicast, relying on a Discovery Server for discovery purposes.
  • It add a new class SystemCommandBuilder to build and make system calls within Fast DDS.

Contributor Checklist

  • Commit messages follow the project guidelines.
  • The code follows the style guidelines of this project.
  • Tests that thoroughly check the new feature have been added/Regression tests checking the bug and its fix have been added; the added tests pass locally
  • Any new/modified methods have been properly documented using Doxygen.
  • Any new configuration API has an equivalent XML API (with the corresponding XSD extension)
  • Changes are backport compatible: they do NOT break ABI nor change library core behavior.
  • Changes are API compatible.
  • New feature has been added to the versions.md file (if applicable).
  • New feature has been documented/Current behavior is correctly described in the documentation.
  • Applicable backports have been included in the description.

Reviewer Checklist

  • The PR has a milestone assigned.
  • The title and description correctly express the PR's purpose.
  • Check contributor checklist is correct.
  • If this is a critical bug fix, backports to the critical-only supported branches have been requested.
  • Check CI results: changes do not issue any warning.
  • Check CI results: failing tests are unrelated with the changes.

Sorry, something went wrong.

@github-actions github-actions bot added the ci-pending PR which CI is running label Jan 8, 2025
@cferreiragonz cferreiragonz force-pushed the feature/fastdds-impl/auto_ds_daemonized branch from 4df67d4 to 1d15ef7 Compare January 8, 2025 13:58
@cferreiragonz cferreiragonz requested review from richiprosima and removed request for richiprosima January 8, 2025 13:58
@cferreiragonz cferreiragonz changed the base branch from master to feature/auto_ds_daemonized January 8, 2025 14:02
@cferreiragonz cferreiragonz added doc-pending Issue or PR which is pending to be documented versions-pending needs-review PR that is ready to be reviewed labels Jan 8, 2025
@cferreiragonz cferreiragonz force-pushed the feature/auto_ds_daemonized branch 3 times, most recently from e7c0a85 to 6465cd4 Compare January 10, 2025 09:38
@Mario-DL Mario-DL mentioned this pull request Jan 10, 2025
13 tasks
@Mario-DL Mario-DL force-pushed the feature/fastdds-impl/auto_ds_daemonized branch from 5fdf099 to 96ef6db Compare January 10, 2025 10:28
@cferreiragonz cferreiragonz force-pushed the feature/fastdds-impl/auto_ds_daemonized branch from 5a156eb to 89506ac Compare January 13, 2025 15:37
@cferreiragonz cferreiragonz requested review from richiprosima and removed request for richiprosima January 14, 2025 07:24
@cferreiragonz cferreiragonz force-pushed the feature/auto_ds_daemonized branch from 55a05c7 to 308bc53 Compare January 15, 2025 13:50
@cferreiragonz cferreiragonz force-pushed the feature/fastdds-impl/auto_ds_daemonized branch from 353bcec to 5917ac4 Compare January 15, 2025 13:58
@cferreiragonz cferreiragonz force-pushed the feature/auto_ds_daemonized branch from 308bc53 to b03c362 Compare January 15, 2025 14:18
@cferreiragonz cferreiragonz force-pushed the feature/fastdds-impl/auto_ds_daemonized branch 3 times, most recently from 6f8ddb5 to 351c441 Compare January 15, 2025 16:09
@cferreiragonz cferreiragonz requested review from richiprosima and removed request for richiprosima January 15, 2025 16:10
@cferreiragonz cferreiragonz force-pushed the feature/auto_ds_daemonized branch from b03c362 to e89400a Compare January 16, 2025 10:16
Mario-DL and others added 12 commits January 21, 2025 16:03

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
Signed-off-by: Mario Dominguez <[email protected]>
Signed-off-by: Mario Dominguez <[email protected]>
Signed-off-by: cferreiragonz <[email protected]>
Signed-off-by: Mario Dominguez <[email protected]>
@Mario-DL Mario-DL force-pushed the feature/fastdds-impl/auto_ds_daemonized branch from 36b4d48 to 71ac0df Compare January 21, 2025 15:45
@Mario-DL Mario-DL requested review from Mario-DL and removed request for Mario-DL January 21, 2025 15:46
Mario-DL and others added 5 commits January 21, 2025 22:11
Signed-off-by: Mario Dominguez <[email protected]>
Signed-off-by: Mario Domínguez López <[email protected]>
@cferreiragonz cferreiragonz force-pushed the feature/fastdds-impl/auto_ds_daemonized branch from 71ac0df to 092b595 Compare January 21, 2025 21:13
@cferreiragonz cferreiragonz requested review from richiprosima and removed request for richiprosima January 21, 2025 21:14
Copy link
Member

@Mario-DL Mario-DL left a comment

Choose a reason for hiding this comment

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

LGTM, nice work @cferreiragonz 🥇

@Mario-DL Mario-DL merged commit d396e9a into feature/auto_ds_daemonized Jan 22, 2025
16 of 17 checks passed
@Mario-DL Mario-DL deleted the feature/fastdds-impl/auto_ds_daemonized branch January 22, 2025 06:52
@cferreiragonz cferreiragonz removed needs-review PR that is ready to be reviewed ci-pending PR which CI is running labels Jan 22, 2025
cferreiragonz added a commit that referenced this pull request Jan 22, 2025
* Refs #22352: Add preferred_domain_id to PubSubAPI

Signed-off-by: Mario Dominguez <[email protected]>

* Refs #22352: Refactor set_on_discovery_function in PubSubAPI

Signed-off-by: Mario Dominguez <[email protected]>

* Refs #22352: Add get_participants_matched() in PubSubAPI

Signed-off-by: Mario Dominguez <[email protected]>

* Refs #22352: Update BB tests with new APIs

Signed-off-by: Mario Dominguez <[email protected]>

* Refs #22352: Add Auto Discovery Mode BB tests

Signed-off-by: Mario Dominguez <[email protected]>

* Refs #22427: New DS_AUTO BuiltinTransport option

Signed-off-by: Mario Dominguez <[email protected]>

* Refs #22427: SystemCommandBuilder class

Signed-off-by: Mario Dominguez <[email protected]>

* Refs #22427: Feature Impl

Signed-off-by: Mario Dominguez <[email protected]>

* Refs #22427: Fix tests compilation in all platforms

Signed-off-by: Mario Dominguez <[email protected]>

* Refs #22427: Apply Carlo's review

Signed-off-by: Mario Dominguez <[email protected]>

* Refs #22427: stop background servers with stop instead of shutdown in BB tests

Signed-off-by: Mario Dominguez <[email protected]>

* Refs #22427: Update banner

Signed-off-by: cferreiragonz <[email protected]>

* Refs #22627: Rename DS_AUTO transport to P2P

Signed-off-by: Mario Dominguez <[email protected]>

* Refs #22627: Refactor BB tests with EASY_MODE

Signed-off-by: Mario Dominguez <[email protected]>

* Refs #22627: Refactor feature impl with EASY_MODE

Signed-off-by: Mario Dominguez <[email protected]>

* Refs #22627: Distinguish Log error if the EASY_MODE IP conflicts with a previous one

Signed-off-by: Mario Dominguez <[email protected]>

* Refs #22627: Review NIT

Signed-off-by: Mario Dominguez <[email protected]>

* Refs #22627: Feature use UDP for metatraffic

Signed-off-by: Mario Dominguez <[email protected]>

* Refs #22627: UDP metatraffic Cli

Signed-off-by: Mario Dominguez <[email protected]>

* Refs #22627: Feature with UDP BB tests

Signed-off-by: Mario Dominguez <[email protected]>

* Refs #22627: Remove unsued line

Signed-off-by: Mario Dominguez <[email protected]>

* Refs #22627: Feature with UDP CLI tests

Signed-off-by: cferreiragonz <[email protected]>

* Refs #22627: Avoid macro collision in MacOS

Signed-off-by: Mario Domínguez López <[email protected]>

---------

Signed-off-by: Mario Dominguez <[email protected]>
Signed-off-by: cferreiragonz <[email protected]>
Signed-off-by: Mario Domínguez López <[email protected]>
Co-authored-by: Mario Dominguez <[email protected]>
Mario-DL added a commit that referenced this pull request Jan 23, 2025
* Refs #22013: Add new port offset

Signed-off-by: cferreiragonz <[email protected]>

* Refs #22013: Add CLI keywords architecture

Signed-off-by: cferreiragonz <[email protected]>

* Refs #22106: Python -h/-e args

Signed-off-by: cferreiragonz <[email protected]>

* Refs #22106: 'getDiscoveryServerPort'

Signed-off-by: cferreiragonz <[email protected]>

* Refs #22106: Parse options in main

Signed-off-by: cferreiragonz <[email protected]>

* Refs #22106: Domain (-d) arg

Signed-off-by: cferreiragonz <[email protected]>

* Refs #22106: Justify Help message

Signed-off-by: cferreiragonz <[email protected]>

* Refs #22106: Create CliDiscoveryManager & remove server.cpp

Signed-off-by: cferreiragonz <[email protected]>

* Refs #22106: LIST keyword

Signed-off-by: cferreiragonz <[email protected]>

* Refs #22106: AUTO keyword

Signed-off-by: cferreiragonz <[email protected]>

* Refs #22106: STOP keyword

Signed-off-by: cferreiragonz <[email protected]>

* Refs #22106: Update server tests

Signed-off-by: cferreiragonz <[email protected]>

* Refs #22106: Refactor SERVER behavior

Signed-off-by: cferreiragonz <[email protected]>

* Refs #22106: ADD keyword

Signed-off-by: cferreiragonz <[email protected]>

* Refs #22106: Parse ROS_STATIC_PEERS

Signed-off-by: cferreiragonz <[email protected]>

* Refs #22106: SET keyword & minor fixes

Signed-off-by: cferreiragonz <[email protected]>

* Refs #22106: Uncrustify

Signed-off-by: cferreiragonz <[email protected]>

* Refs #22106: Remove debug log

Signed-off-by: cferreiragonz <[email protected]>

* Refs #22106: START keyword & doxygen

Signed-off-by: cferreiragonz <[email protected]>

* Refs #22106: print Domain ID

Signed-off-by: cferreiragonz <[email protected]>

* Refs #22106: Unittests

Signed-off-by: cferreiragonz <[email protected]>

* Refs #22106: Add SHM transport

Signed-off-by: cferreiragonz <[email protected]>

* Refs #22106: Make arguments const

Signed-off-by: cferreiragonz <[email protected]>

* Refs #22106: Use data_sharing directory

Signed-off-by: cferreiragonz <[email protected]>

* Refs #22106: Use Logs in CLI

Signed-off-by: cferreiragonz <[email protected]>

* Refs #22106: Support Windows & Mac commands

Signed-off-by: cferreiragonz <[email protected]>

* Refs #22106: Uncrustify

Signed-off-by: cferreiragonz <[email protected]>

* Refs #22106: Protect std::stoi & Add server name

Signed-off-by: cferreiragonz <[email protected]>

* Refs #22106: Fix MacOS build

Signed-off-by: Mario Dominguez <[email protected]>

* Refs #22106: Fix Windows build

Signed-off-by: cferreiragonz <[email protected]>

* Refs #22106: Add help/examples tests

Signed-off-by: cferreiragonz <[email protected]>

* Refs #22106: Rearrange methods to simplify windows def

Signed-off-by: cferreiragonz <[email protected]>

* Refs #22106: Workaround to solve Mac Tests

Signed-off-by: cferreiragonz <[email protected]>

* Refs #22106: Minor fixes

Signed-off-by: cferreiragonz <[email protected]>

* Refs #22518: Add Fast DDS XML-RPC Daemon

Signed-off-by: cferreiragonz <[email protected]>

* Refs #22518: Test enum

Signed-off-by: cferreiragonz <[email protected]>

* Refs #22518: Cancel fork in cpp tool

Signed-off-by: cferreiragonz <[email protected]>

* Refs #22518: Add parser tests

Signed-off-by: cferreiragonz <[email protected]>

* Refs #22518: Apply Revision

Signed-off-by: cferreiragonz <[email protected]>

* Refs #22518: Review - Use stop to shutdown server

Signed-off-by: cferreiragonz <[email protected]>

* Refs #22518: Apply Revision 2

Signed-off-by: cferreiragonz <[email protected]>

* Refs #22623: Allow TCP reconnections

Signed-off-by: cferreiragonz <[email protected]>

* Refs #22518: Fix build in Ubuntu24

Signed-off-by: cferreiragonz <[email protected]>

* Refs #22627: Add EASY_MODE to parser

Signed-off-by: cferreiragonz <[email protected]>

* Refs #22518: Improve unittest robustness

Signed-off-by: cferreiragonz <[email protected]>

* Fast DDS EASY_MODE - Feature - XMLRPC Server (#5551)

* Refs #22352: Add preferred_domain_id to PubSubAPI

Signed-off-by: Mario Dominguez <[email protected]>

* Refs #22352: Refactor set_on_discovery_function in PubSubAPI

Signed-off-by: Mario Dominguez <[email protected]>

* Refs #22352: Add get_participants_matched() in PubSubAPI

Signed-off-by: Mario Dominguez <[email protected]>

* Refs #22352: Update BB tests with new APIs

Signed-off-by: Mario Dominguez <[email protected]>

* Refs #22352: Add Auto Discovery Mode BB tests

Signed-off-by: Mario Dominguez <[email protected]>

* Refs #22427: New DS_AUTO BuiltinTransport option

Signed-off-by: Mario Dominguez <[email protected]>

* Refs #22427: SystemCommandBuilder class

Signed-off-by: Mario Dominguez <[email protected]>

* Refs #22427: Feature Impl

Signed-off-by: Mario Dominguez <[email protected]>

* Refs #22427: Fix tests compilation in all platforms

Signed-off-by: Mario Dominguez <[email protected]>

* Refs #22427: Apply Carlo's review

Signed-off-by: Mario Dominguez <[email protected]>

* Refs #22427: stop background servers with stop instead of shutdown in BB tests

Signed-off-by: Mario Dominguez <[email protected]>

* Refs #22427: Update banner

Signed-off-by: cferreiragonz <[email protected]>

* Refs #22627: Rename DS_AUTO transport to P2P

Signed-off-by: Mario Dominguez <[email protected]>

* Refs #22627: Refactor BB tests with EASY_MODE

Signed-off-by: Mario Dominguez <[email protected]>

* Refs #22627: Refactor feature impl with EASY_MODE

Signed-off-by: Mario Dominguez <[email protected]>

* Refs #22627: Distinguish Log error if the EASY_MODE IP conflicts with a previous one

Signed-off-by: Mario Dominguez <[email protected]>

* Refs #22627: Review NIT

Signed-off-by: Mario Dominguez <[email protected]>

* Refs #22627: Feature use UDP for metatraffic

Signed-off-by: Mario Dominguez <[email protected]>

* Refs #22627: UDP metatraffic Cli

Signed-off-by: Mario Dominguez <[email protected]>

* Refs #22627: Feature with UDP BB tests

Signed-off-by: Mario Dominguez <[email protected]>

* Refs #22627: Remove unsued line

Signed-off-by: Mario Dominguez <[email protected]>

* Refs #22627: Feature with UDP CLI tests

Signed-off-by: cferreiragonz <[email protected]>

* Refs #22627: Avoid macro collision in MacOS

Signed-off-by: Mario Domínguez López <[email protected]>

---------

Signed-off-by: Mario Dominguez <[email protected]>
Signed-off-by: cferreiragonz <[email protected]>
Signed-off-by: Mario Domínguez López <[email protected]>
Co-authored-by: Mario Dominguez <[email protected]>

* Refs #22627: logs, comments, versions, displays

Signed-off-by: cferreiragonz <[email protected]>

* Refs #22627: Review - Logs

Signed-off-by: cferreiragonz <[email protected]>

* Refs #22627: ROS2_EASY_MODE

Signed-off-by: cferreiragonz <[email protected]>

---------

Signed-off-by: cferreiragonz <[email protected]>
Signed-off-by: Mario Dominguez <[email protected]>
Signed-off-by: Mario Domínguez López <[email protected]>
Co-authored-by: Mario Dominguez <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants