-
Notifications
You must be signed in to change notification settings - Fork 37
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 satellite links #545
Draft
pfittipaldi
wants to merge
61
commits into
sfc-aqua:master
Choose a base branch
from
pfittipaldi:master
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Add satellite links #545
Conversation
This file contains 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
Deleting useless log file
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 code adds satellite links to QuISP. More information can be found in
quisp/modules/Satellite/README.md
.The Free-Space links work by parsing CSV files that contain distance of the satellite and atmospheric attenuation (these files can be generated with common satellite simulation toolkits). The variable link takes into account how distance and attenuation affect loss and link delay.
Furthermore, a new module was added (
PointingSystem
) to check when the Free-space channel will next be up. If the channel is not available at the moment, classical messages are buffered inside the node until visibility is established again.The last addition is a modification of the existing
Queue
component to add some control logic: instead of just queuing the packets up, the newGatedQueue
module polls thePointingSystem
for visibility before sending queued messages.The only exception to the visibility checks are OSPF packages: if a simulation starts with a satellite out of sight, the initial routing process cannot be performed. To circumvent this issue, OSPF packages are always let through in order to allow the initial routing phase to complete. The proper, longer term solution to this problem would be some kind of additional ground node that answers for the satellite for all routing purposes, but that would require classical and quantum information to follow two distinct paths.
I had to make a slight modification to the
RuleEngine
code: if aTimingNotification
arrives that asks it to emit photons at a time in the past, the request is discarded. This could not happen in the fiber case, but is common when the satellite goes out of visibility with a bufferedTimingNotification
and then comes back after one orbit and sends it.Finally, there is a note to be made concerning MSM communication: since unlike the MIM and MM link the MSM link works continuously, there was no clean way to account for variable delay in a per-round way. The solution I came up with was setting a
SatResyncDelay
parameter, so that every once in a while (10 ms default) the timing notification is re-generated. In the future, I would like to experiment with a version of the MSM link that works by batches, which could be good for satellite scenarios.This change is