- 
                Notifications
    
You must be signed in to change notification settings  - Fork 39
 
Add satellite links #545
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
          
     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 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
    
  
  
    
    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
Queuecomponent to add some control logic: instead of just queuing the packets up, the newGatedQueuemodule polls thePointingSystemfor 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
RuleEnginecode: if aTimingNotificationarrives 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 bufferedTimingNotificationand 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
SatResyncDelayparameter, 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