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.

@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
Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>
Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>
Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>
Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>
… BB tests

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>
Signed-off-by: cferreiragonz <carlosferreira@eprosima.com>
Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>
Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>
Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>
… a previous one

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>
Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>
Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>
@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 <mariodominguez@eprosima.com>
Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>
Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>
Signed-off-by: cferreiragonz <carlosferreira@eprosima.com>
Signed-off-by: Mario Domínguez López <mariodominguez@eprosima.com>
@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 <mariodominguez@eprosima.com>

* Refs #22352: Refactor set_on_discovery_function in PubSubAPI

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22352: Add get_participants_matched() in PubSubAPI

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22352: Update BB tests with new APIs

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22352: Add Auto Discovery Mode BB tests

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22427: New DS_AUTO BuiltinTransport option

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22427: SystemCommandBuilder class

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22427: Feature Impl

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22427: Fix tests compilation in all platforms

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22427: Apply Carlo's review

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

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

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22427: Update banner

Signed-off-by: cferreiragonz <carlosferreira@eprosima.com>

* Refs #22627: Rename DS_AUTO transport to P2P

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22627: Refactor BB tests with EASY_MODE

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22627: Refactor feature impl with EASY_MODE

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

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

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22627: Review NIT

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22627: Feature use UDP for metatraffic

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22627: UDP metatraffic Cli

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22627: Feature with UDP BB tests

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22627: Remove unsued line

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22627: Feature with UDP CLI tests

Signed-off-by: cferreiragonz <carlosferreira@eprosima.com>

* Refs #22627: Avoid macro collision in MacOS

Signed-off-by: Mario Domínguez López <mariodominguez@eprosima.com>

---------

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>
Signed-off-by: cferreiragonz <carlosferreira@eprosima.com>
Signed-off-by: Mario Domínguez López <mariodominguez@eprosima.com>
Co-authored-by: Mario Dominguez <mariodominguez@eprosima.com>
Mario-DL added a commit that referenced this pull request Jan 23, 2025
* Refs #22013: Add new port offset

Signed-off-by: cferreiragonz <carlosferreira@eprosima.com>

* Refs #22013: Add CLI keywords architecture

Signed-off-by: cferreiragonz <carlosferreira@eprosima.com>

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

Signed-off-by: cferreiragonz <carlosferreira@eprosima.com>

* Refs #22106: 'getDiscoveryServerPort'

Signed-off-by: cferreiragonz <carlosferreira@eprosima.com>

* Refs #22106: Parse options in main

Signed-off-by: cferreiragonz <carlosferreira@eprosima.com>

* Refs #22106: Domain (-d) arg

Signed-off-by: cferreiragonz <carlosferreira@eprosima.com>

* Refs #22106: Justify Help message

Signed-off-by: cferreiragonz <carlosferreira@eprosima.com>

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

Signed-off-by: cferreiragonz <carlosferreira@eprosima.com>

* Refs #22106: LIST keyword

Signed-off-by: cferreiragonz <carlosferreira@eprosima.com>

* Refs #22106: AUTO keyword

Signed-off-by: cferreiragonz <carlosferreira@eprosima.com>

* Refs #22106: STOP keyword

Signed-off-by: cferreiragonz <carlosferreira@eprosima.com>

* Refs #22106: Update server tests

Signed-off-by: cferreiragonz <carlosferreira@eprosima.com>

* Refs #22106: Refactor SERVER behavior

Signed-off-by: cferreiragonz <carlosferreira@eprosima.com>

* Refs #22106: ADD keyword

Signed-off-by: cferreiragonz <carlosferreira@eprosima.com>

* Refs #22106: Parse ROS_STATIC_PEERS

Signed-off-by: cferreiragonz <carlosferreira@eprosima.com>

* Refs #22106: SET keyword & minor fixes

Signed-off-by: cferreiragonz <carlosferreira@eprosima.com>

* Refs #22106: Uncrustify

Signed-off-by: cferreiragonz <carlosferreira@eprosima.com>

* Refs #22106: Remove debug log

Signed-off-by: cferreiragonz <carlosferreira@eprosima.com>

* Refs #22106: START keyword & doxygen

Signed-off-by: cferreiragonz <carlosferreira@eprosima.com>

* Refs #22106: print Domain ID

Signed-off-by: cferreiragonz <carlosferreira@eprosima.com>

* Refs #22106: Unittests

Signed-off-by: cferreiragonz <carlosferreira@eprosima.com>

* Refs #22106: Add SHM transport

Signed-off-by: cferreiragonz <carlosferreira@eprosima.com>

* Refs #22106: Make arguments const

Signed-off-by: cferreiragonz <carlosferreira@eprosima.com>

* Refs #22106: Use data_sharing directory

Signed-off-by: cferreiragonz <carlosferreira@eprosima.com>

* Refs #22106: Use Logs in CLI

Signed-off-by: cferreiragonz <carlosferreira@eprosima.com>

* Refs #22106: Support Windows & Mac commands

Signed-off-by: cferreiragonz <carlosferreira@eprosima.com>

* Refs #22106: Uncrustify

Signed-off-by: cferreiragonz <carlosferreira@eprosima.com>

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

Signed-off-by: cferreiragonz <carlosferreira@eprosima.com>

* Refs #22106: Fix MacOS build

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22106: Fix Windows build

Signed-off-by: cferreiragonz <carlosferreira@eprosima.com>

* Refs #22106: Add help/examples tests

Signed-off-by: cferreiragonz <carlosferreira@eprosima.com>

* Refs #22106: Rearrange methods to simplify windows def

Signed-off-by: cferreiragonz <carlosferreira@eprosima.com>

* Refs #22106: Workaround to solve Mac Tests

Signed-off-by: cferreiragonz <carlosferreira@eprosima.com>

* Refs #22106: Minor fixes

Signed-off-by: cferreiragonz <carlosferreira@eprosima.com>

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

Signed-off-by: cferreiragonz <carlosferreira@eprosima.com>

* Refs #22518: Test enum

Signed-off-by: cferreiragonz <carlosferreira@eprosima.com>

* Refs #22518: Cancel fork in cpp tool

Signed-off-by: cferreiragonz <carlosferreira@eprosima.com>

* Refs #22518: Add parser tests

Signed-off-by: cferreiragonz <carlosferreira@eprosima.com>

* Refs #22518: Apply Revision

Signed-off-by: cferreiragonz <carlosferreira@eprosima.com>

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

Signed-off-by: cferreiragonz <carlosferreira@eprosima.com>

* Refs #22518: Apply Revision 2

Signed-off-by: cferreiragonz <carlosferreira@eprosima.com>

* Refs #22623: Allow TCP reconnections

Signed-off-by: cferreiragonz <carlosferreira@eprosima.com>

* Refs #22518: Fix build in Ubuntu24

Signed-off-by: cferreiragonz <carlosferreira@eprosima.com>

* Refs #22627: Add EASY_MODE to parser

Signed-off-by: cferreiragonz <carlosferreira@eprosima.com>

* Refs #22518: Improve unittest robustness

Signed-off-by: cferreiragonz <carlosferreira@eprosima.com>

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

* Refs #22352: Add preferred_domain_id to PubSubAPI

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22352: Refactor set_on_discovery_function in PubSubAPI

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22352: Add get_participants_matched() in PubSubAPI

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22352: Update BB tests with new APIs

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22352: Add Auto Discovery Mode BB tests

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22427: New DS_AUTO BuiltinTransport option

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22427: SystemCommandBuilder class

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22427: Feature Impl

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22427: Fix tests compilation in all platforms

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22427: Apply Carlo's review

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

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

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22427: Update banner

Signed-off-by: cferreiragonz <carlosferreira@eprosima.com>

* Refs #22627: Rename DS_AUTO transport to P2P

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22627: Refactor BB tests with EASY_MODE

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22627: Refactor feature impl with EASY_MODE

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

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

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22627: Review NIT

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22627: Feature use UDP for metatraffic

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22627: UDP metatraffic Cli

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22627: Feature with UDP BB tests

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22627: Remove unsued line

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>

* Refs #22627: Feature with UDP CLI tests

Signed-off-by: cferreiragonz <carlosferreira@eprosima.com>

* Refs #22627: Avoid macro collision in MacOS

Signed-off-by: Mario Domínguez López <mariodominguez@eprosima.com>

---------

Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>
Signed-off-by: cferreiragonz <carlosferreira@eprosima.com>
Signed-off-by: Mario Domínguez López <mariodominguez@eprosima.com>
Co-authored-by: Mario Dominguez <mariodominguez@eprosima.com>

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

Signed-off-by: cferreiragonz <carlosferreira@eprosima.com>

* Refs #22627: Review - Logs

Signed-off-by: cferreiragonz <carlosferreira@eprosima.com>

* Refs #22627: ROS2_EASY_MODE

Signed-off-by: cferreiragonz <carlosferreira@eprosima.com>

---------

Signed-off-by: cferreiragonz <carlosferreira@eprosima.com>
Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>
Signed-off-by: Mario Domínguez López <mariodominguez@eprosima.com>
Co-authored-by: Mario Dominguez <mariodominguez@eprosima.com>
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.

2 participants