Add support of transient federates under decentralized coordination and physical connections#2609
Open
ChadliaJerad wants to merge 19 commits intotransient-fedfrom
Open
Add support of transient federates under decentralized coordination and physical connections#2609ChadliaJerad wants to merge 19 commits intotransient-fedfrom
ChadliaJerad wants to merge 19 commits intotransient-fedfrom
Conversation
…ch federate is transient. This is useful for outbound messages manipulation
…ions to transients
…streams in decentralized federate tests
ag' in decentralised coordination
…n_is_transient array for a federate
feae603 to
343346d
Compare
44bfb7a to
9b67653
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR builds on the centralized transient support and extends the LF federated runtime to support transient federates under decentralized coordination, where all connections are P2P and no RTI message
forwarding occurs. It also adds support for physical connections involving transient federates under centralized coordination, which are P2P connections.
Companion PR in
reactor-c: #574LF compiler (
lingua-franca)Code generation (
CExtension.java)lf_connect_to_federate()now takes an additionalis_transientparameter. The difference in behavior is documented in the companion PR.inbound_p2p_connection_is_transient[NUMBER_OF_FEDERATES]andoutbound_p2p_connection_is_transient[NUMBER_OF_FEDERATES], so the runtime can track which outbound peers are transient.Tests
All transient tests are under
test/C/src/federated/transient/. New tests:DecentralizedTransientDownstreamWithTimer.lf— transient upstream, persistent outbound, decentralized coordination.DecentralizedTransientDownstreamWithTwoUpstream.lf— transient with two inbound federates (one persistent, one transient), authenticated.DecentralizedTransientStatePersistence.lf— verifies that state is correctly carried across re-joins.DecentralizedTransientHotSwap.lf— hot-swap of a transient federate under decentralized coordination.DecentralizedTransientWithPhysicalConnection.lfTransientWithPhysicalConnection.lfPossible future improvements