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 environment variable to control override of DomainParticipantQos #41

Merged
merged 4 commits into from
Apr 27, 2021

Conversation

asorbini
Copy link
Collaborator

This PR is similar to #7 but focuses on the DomainParticipant's QoS.

At the moment, rmw_connextdds loads the default DomainParticipantQos from the DomainParticipantFactory, and it applies some "hard-coded" optimizations:

  • Based on ROS 2 options, apply "localhost only" and "enclave" settings.
  • Modify some "internal" policies to optimize the "out of the box" experience (e.g. increase maximum size of type objects shared via discovery, and speed up discovery of endpoint).

While it is already possible to disable some of this optimizations specifically (e.g. using variable RMW_CONNEXT_DISABLE_FAST_ENDPOINT_DISCOVERY), there is no way for a user to completely disable them altogether, making it impossible to customize these parameters in XML.

This PR introduces a new variable, RMW_CONNEXT_PARTICIPANT_QOS_OVERRIDE_POLICY, to control how the RMW will override the default DomainParticipantQos obtained from the DomainParticipantFactory. The variable supports the following values:

  • all (default if unspecified): apply all customizations.
  • basic: only apply those changes derived from ROS 2 options.
  • never: do not modify the default value at all.

I have also consolidated the code to lookup variables RMW_CONNEXT_ENDPOINT_QOS_OVERRIDE_POLICY and RMW_CONNEXT_INITIAL_PEERS to rmw_api_connextdds_init() next to all other environment variables.

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Signed-off-by: Andrea Sorbini <asorbini@rti.com>
@asorbini asorbini added galactic-backports PR should be backported to Galactic. foxy-backports PR should be backported to Foxy eloquent-backports PR should be backported to Eloquent dashing-backports PR should be backported to Dashing labels Apr 22, 2021
@asorbini asorbini requested a review from ivanpauno April 22, 2021 21:02
@asorbini
Copy link
Collaborator Author

This PR is for post-Galactic of course, but I think it would make sense to consider it for a patch release.

@asorbini asorbini added the humble PR scheduled for the H-turtle label Apr 22, 2021
Signed-off-by: Andrea Sorbini <asorbini@rti.com>
Signed-off-by: Andrea Sorbini <asorbini@rti.com>
@ivanpauno
Copy link
Member

This PR is for post-Galactic of course

There's a galactic branch now, so there's no more freeze.

but I think it would make sense to consider it for a patch release.

SGTM

Signed-off-by: Andrea Sorbini <asorbini@rti.com>
@asorbini
Copy link
Collaborator Author

CI validation (rmw_connextdds only):

  • Linux Build Status
  • macOS Build Status
  • Windows Build Status

@asorbini
Copy link
Collaborator Author

Merging since all failures are unrelated.

Only unexpected one is TestService__rmw_connextdds.send_reponse_with_client_gone on macOS, but that seems more related to timing.

@asorbini asorbini merged commit 148619e into master Apr 27, 2021
@delete-merged-branch delete-merged-branch bot deleted the asorbini/participant-qos-override-policy branch April 27, 2021 02:23
@asorbini asorbini added dashing-backports PR should be backported to Dashing eloquent-backports PR should be backported to Eloquent and removed dashing-backports PR should be backported to Dashing eloquent-backports PR should be backported to Eloquent labels Apr 27, 2021
asorbini added a commit that referenced this pull request Apr 27, 2021
…41)

* Add environment variable to control override of DomainParticipantQos
* Add entry for RMW_CONNEXT_PARTICIPANT_QOS_OVERRIDE_POLICY to README
* Add note about relation to RMW_CONNEXT_DISABLE_FAST_ENDPOINT_DISCOVERY
* Remove accidentally committed debug statement

Signed-off-by: Andrea Sorbini <asorbini@rti.com>
asorbini added a commit that referenced this pull request Apr 27, 2021
…41)

* Add environment variable to control override of DomainParticipantQos
* Add entry for RMW_CONNEXT_PARTICIPANT_QOS_OVERRIDE_POLICY to README
* Add note about relation to RMW_CONNEXT_DISABLE_FAST_ENDPOINT_DISCOVERY
* Remove accidentally committed debug statement

Signed-off-by: Andrea Sorbini <asorbini@rti.com>
asorbini added a commit that referenced this pull request Apr 27, 2021
…41)

* Add environment variable to control override of DomainParticipantQos
* Add entry for RMW_CONNEXT_PARTICIPANT_QOS_OVERRIDE_POLICY to README
* Add note about relation to RMW_CONNEXT_DISABLE_FAST_ENDPOINT_DISCOVERY
* Remove accidentally committed debug statement

Signed-off-by: Andrea Sorbini <asorbini@rti.com>
asorbini added a commit that referenced this pull request Apr 27, 2021
…41)

* Add environment variable to control override of DomainParticipantQos
* Add entry for RMW_CONNEXT_PARTICIPANT_QOS_OVERRIDE_POLICY to README
* Add note about relation to RMW_CONNEXT_DISABLE_FAST_ENDPOINT_DISCOVERY
* Remove accidentally committed debug statement

Signed-off-by: Andrea Sorbini <asorbini@rti.com>
asorbini added a commit that referenced this pull request Apr 27, 2021
* Add environment variable to control override of DomainParticipantQos
* Add entry for RMW_CONNEXT_PARTICIPANT_QOS_OVERRIDE_POLICY to README
* Add note about relation to RMW_CONNEXT_DISABLE_FAST_ENDPOINT_DISCOVERY
* Remove accidentally committed debug statement

Signed-off-by: Andrea Sorbini <asorbini@rti.com>
asorbini added a commit that referenced this pull request Apr 27, 2021
* Add environment variable to control override of DomainParticipantQos
* Add entry for RMW_CONNEXT_PARTICIPANT_QOS_OVERRIDE_POLICY to README
* Add note about relation to RMW_CONNEXT_DISABLE_FAST_ENDPOINT_DISCOVERY
* Remove accidentally committed debug statement
* Resolve compilation errors with eloquent

Signed-off-by: Andrea Sorbini <asorbini@rti.com>
asorbini added a commit that referenced this pull request Apr 27, 2021
* Add environment variable to control override of DomainParticipantQos
* Add entry for RMW_CONNEXT_PARTICIPANT_QOS_OVERRIDE_POLICY to README
* Add note about relation to RMW_CONNEXT_DISABLE_FAST_ENDPOINT_DISCOVERY
* Remove accidentally committed debug statement
* Resolve compilation errors with dashing

Signed-off-by: Andrea Sorbini <asorbini@rti.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dashing-backports PR should be backported to Dashing eloquent-backports PR should be backported to Eloquent foxy-backports PR should be backported to Foxy galactic-backports PR should be backported to Galactic. humble PR scheduled for the H-turtle
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants