Code Monkey home page Code Monkey logo

adyton's People

Contributors

npapanik avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

adyton's Issues

Trace processing under Cygwin

Trace processing when running Adyton under Cygwin is not possible for all traces. In some traces, the processing script first compiles a helper file (implemented in C) that is used for the actual processing of the trace. The executable of the helper file is deleted after use. Currently, the processing script assumes that the name of the executable is "a.out" which is not true in Cygwin. As a result, the process fails. A quick workaround is to edit the script process.sh (located in utils\trace-processing\X\processing, X is the trace name) so that it uses "a.exe" instead of "a.out".

shell printf invalid number error

When importing the following traces, an invalid number error is raised.

Milan
MIT
Intel
Haggle
Infocom05

[-] Extracting original dataset.. [OK]
Step 1: Removing external nodes.. [OK]
Step 2: Searching for inactive nodes.. [OK]
Step 3: Sorting file.. [OK]
Step 4: Normalizing contact time - [OK]
Step 5: Searching for self-contacts - [OK]
Step 6: Searching for contact duplicates - [OK]
Step 7: Calculating node arrival time in the experiment - ./process.sh: line 122: printf: 2.00: invalid number

Wiki contents

Adyton's Wiki is still incomplete. The following (constantly updated) list contains documentation that will be gradually added in the wiki.

If you have any suggestions/question/comments regarding Adyton's Wiki please feel free to reply to this issue.

Cataclysm

Hey, how are you?
Excuse me my ignorance, but what is "Cataclysm" deletion mechanism?

Thank you.

Add protocol steps to all routing algorithms

Add protocol steps and set the correct order of the protocol methods

  • Epidemic
  • Direct
  • SimBet
  • Prophet
  • Spray and Wait
  • LSF Spray and Wait
  • LSF Spray and Focus
  • Delegation
  • CnR
  • BubbleRap
  • COORD
  • EBR
  • MSFSPRAY
  • Optimal
  • Prophet Spray
  • SimBetTS

Simulate your own scenario produced by BonnMotion

1、The develop baranch of Adyton is needed.
2、 The scenario produced by BonnMotion has to be processed by the bm2adyton.
https://github.com/npapanik/Adyton/wiki/The-bm2adyton-tool

However, the command ./Adyton -h trace tells me that the value for the TRACE is from 1 to 23.

The right command is following:
./Adyton -TRACE /home/doris/soft/Adyton-develop/trc/myscenario.adyton,which needs to add the path of the scenario and the "adyton" extension.

Create a "packet generation" event

Currently, when we generate a packet we create a "Transmission" event with the sender's ID equal to -1, the receiver's ID equal to the source's ID, and the packet's ID equal to the destination's ID.
We then check the sender's ID of each "Transmission" event and if it is equal to -1, we add it to the buffer of the source node.

Instead of using the "Transmission" event for the generation of packets and actual transmission of packets, we could just create a new event that will used solely for the generation of packets.

Windows installation error (using cygwin)

Adyton fails to compile under windows (using cygwin). The message output is the following.

core/Results.cc: In member function ‘void Results::writeSimulationSettings()’:
core/Results.cc:117:34: error: ‘popen’ was not declared in this scope
  if((setFile = popen(command, "r")) == NULL)
                                  ^
core/Results.cc:133:19: error: ‘pclose’ was not declared in this scope
  if(pclose(setFile) == -1)
                   ^
make: *** [Makefile:39: core/Results.o] Error 1

We can fix this issue by either using an alternative compiler or by using another function instead of popen()/pclose(). I'm going to try the latter approach since popen() is not standard ISO C++.

Return value of malloc function

We almost never check the return value of the malloc function.
If the malloc function fails to allocate the requested block of memory it returns a NULL pointer.

Further customization of DF and CnR

It would be useful for protocols such as DF and CnR when using a specific utility to be able to inherit the customization options that are available for this utility. For example, there are two customization parameters (i.e., the "AggregationType" and the "Density") for the SimBet utility through the -PROFILE option. It would be useful for the user to be able to use this customization also when the SimBet utility is used under CnR.

Improve the Vaccine implementation

In Vaccine every node uses an infinite data structure to keep track of the delivered packets and inform other network nodes. This approach is rather unrealistic. We have to implement a new version of Vaccine that will use a data structure of finite size. In this case, new update methods should be implemented, e.g., how to discard packet entries when the data structure is full. A good idea is to use one or more bloom filter(s) (take advantage of the low cost read/write operations) to store this information.

Implement Spray-based dissemination in multi-copy BubbleRap

Currently, BubbleRap supports a multi-copy operation, activated through the PROFILE option. When multi-copy operation is activated the protocol uses a "dynamic replication" scheme. It would be nice if there was a choice between "dynamic replication" and "spray-based replication". For example, it would be nice to enable "dynamic replication" when we use -REP 1 along with the PROFILE "multi-copy" option and enable "spray-based replication" when we use -REP k (k>1) along with the PROFILE "multi-copy" option.

About compatibility with windows 10

After the release of the windows 10 anniversary update and the "ubuntu bash on windows" that comes with it,you can run adyton without any problems.So there is no need for ubuntu(or any linux based os) installation.Furthermore the compiling and the execution is exact the same as mentioned in the installation details.

BUBBLE protocol not recognized as multi-copy when profile used

The BUBBLE protocol can operate on a multi-copy mode if a suitable profile file is used to activate the mode. However, if the multi-copy mode is activated, Adyton does not recognize the protocol as a multi-copy one. This impacts the correct operation of the chosen deletion mechanism.

Comparison of floating-point Numbers

Most routing protocols do not compare floating-point numbers properly.
For example, see the following code used by the Compare & Replicate routing protocol.

if(myUtil < Utils[i])
{
    runner++;
    BetterFw[runner]=Requests[i];
}

The above condition returns true for many "0 < 0" comparisons, increasing the number of replicas in the network significantly.
We can solve this problem by replacing it with the following code:

if(Utils[i] - myUtil > DBL_EPSILON)
{
    runner++;
    BetterFw[runner]=Requests[i];
}

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.