Skip to content

Add support of transient federates under decentralized coordination and physical connections#2609

Open
ChadliaJerad wants to merge 19 commits intotransient-fedfrom
transient-fed-dec
Open

Add support of transient federates under decentralized coordination and physical connections#2609
ChadliaJerad wants to merge 19 commits intotransient-fedfrom
transient-fed-dec

Conversation

@ChadliaJerad
Copy link
Copy Markdown
Collaborator

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: #574

LF compiler (lingua-franca)

Code generation (CExtension.java)

  • lf_connect_to_federate() now takes an additional is_transient parameter. The difference in behavior is documented in the companion PR.
  • The compiler generates per-federate inbound_p2p_connection_is_transient[NUMBER_OF_FEDERATES] and outbound_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.lf
  • TransientWithPhysicalConnection.lf

Possible future improvements

  • Add an icon in the diagram for transient federates.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants