Giter VIP home page Giter VIP logo

quisp's Issues

Jiang 2G network

This will be more than just one task, but now we'll treat it as a single issue.

document hop count based routing

How does existing routing work? Needs to be explained. I know it's "just counting the number of hops", but is there a routing protocol or magic information about the network topology?
(Depending on the answer to this, new Issues will doubtless arise, some perhaps necessary for 0.2.0.)

simplify adding Rules & RuleSets

This is probably a big rewrite of some core node code. Might even be nice if they could be read from a file, instead of requiring extensive C++ surgery. This is a long-term issue.

Fowler 2G network

This will be more than just one task, but now we'll treat it as a single issue.

gravity model Bell pair traffic pattern

Similar to today's Internet, with fairly central hubs and an "incast" traffic pattern, with a hub-and-spoke for client-server. (Is that enough buzzwords?)
Simplest implementation is to raise the probability that a node gets a new connection based on the number of connections it currently has.
** need to find the right research paper reference **
Needs to be under control of a .ned or .ini parameter.

multi-hop entanglement swapping

critical feature before non-AQUAns will use.
See software design doc, "Dur-Briegel Path Setup.md" and other related files.

QNIC-based, fully blocking circuit switching

The goal

Fully blocking circuit switched resource allocation with released random backoff on failure
in order to avoid dead lock

Tasks

  • Add to "Q node" ( or "QNIC" ) "Allocated" flag.

  • modify Connection manager to handle massage to test and set allocated flag
    """ Example pseudo code
    if(! allocated){
    allocate
    ( continue processing )
    }else{
    send reject request
    ( about processing )
    }
    """

  • define reject setup request message type

  • Connection manager :: handle massage extend to handle
    """ Example pseudo code
    Reject:
    Allocated -> False
    """

  • random backoff
    """
    if ( EndNode ):
    sleep( random ) // send yourself a message to the future
    try again
    """"

  • Limit the lifetime of a connection

    • set the parameter for that.
  • Implement connection tear down

    • Do we need new message type?
    • clear allocated flag

entanglement swapping

Implementing entanglement swapping

Procedure of entanglement swapping

Todo

  • Implement RuleSet
  • etc...

Future work

When clicking "Set Up an Unconfigured Network", simulator breaks

When clicking File-"Set Up an Unconfigured Network", the simulator terminates. https://camo.githubusercontent.com/5c3417410b6642d65321c9361669b9070392c5d8/68747470733a2f2f692e696d6775722e636f6d2f6364693334766b2e706e67

Error code:
Simulation terminated with exit code: 139
Working directory: /root/models/quisp/networks
Command line: ../quisp -m -n .. quisp_tutorial.ini

Environment variables:
PATH=/root/omnetpp/bin::/root/omnetpp/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
LD_LIBRARY_PATH=/root/omnetpp/lib::
OMNETPP_IMAGE_PATH=/root/omnetpp/images

MSM link

doesn't work yet. A great project.

double-selection purification

There are actually several options here, as well. This is something we've tinkered with off and on for years; with high entanglement success rates it's a win.

Adjust parameters in tutorial networks

After multi-hop ES works, turn on EndToEndConnection in the various networks (in quisp_tutorial.ini?), make sure the initial tomography is short enough to run reasonably, make sure demos all run smoothly in a couple of minutes.

QNIC-based, fully blocking circuit switching

Simplest form: first message processed sets a flag that the QNIC is busy.
Issue: how do we make sure we don't get conflicting reservations at the two ends of the link?
Allow a request to sit unprocessed until the connection that first got the link finishes. How do we do that? Can we set an event?

3G network

This will be more than just one task, but now we'll treat it as a single issue.

interpreting sim results

Add a doc (or add to a doc) description of where to find the output files from a simulation and how to interpret the results (placeholder in running-demos.md for now)

  • For single-connection sims
  • For multiple-connection simulations

read link tomography from a file

Currently, full link tomography is done on every link at boot time, and it's a long process. Would be nice to be able to read the link tomography density matrices from the output files from previous runs, bypassing that step. Needs:
a. check to make sure .dm file is newer than .ned file (and .ini?)
b. figure out how long the tomography should have taken, advance the clock to that point

simplest multiple connection random traffic pattern

Critical feature before non-AQUAns will use.
On boot, every node should pick a random partner somewhere in the network to start a connection with. This means everyone starts a connection, and on average everyone receives one connection request, so the average number of connections/node is 2, but there will be high variability.
This has to work in conjunction with the simplest QNIC-based resource management.

clique Bell pair traffic pattern

Add small cliques that must all share Bell pairs, e.g. for Byzantine agreement.
a. how do you find the nodes that are members?
b. how long a connection?
c. what configuration parameters in .ned or .ini?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.