Revision 67493fe0

View differences:

experimentFiles/README
1
In these directories you'll find all the configuration files needed to reproduce our experiments ready to be used.
2
What follow is a brief description of the structure of the directory tree:
3

  
4
--- 
5
The "fabrikant" directory contains all the files needed to reproduce the Fabrikant gadget topologies.
6
To reproduce this experiments you'll need two nodes on the Testbed.
7

  
8
fabrikant/graphml:
9
This directory contains all the graphml files of the topologies, the file name indicates the type of the
10
gadget and the mrai strategy implemented, the syntax is:
11
0_MRAISTRATEGY_fNUMBEROFNODES-dest_2.graphml
12
As an example, the file 0_dpc_f15n-dest_2.graphml is implementing a Fabrikant 15 nodes topology with the DPC mrai strategy.
13

  
14
fabrikant/bird-policy-files:
15
This directory contains all the policy files needed to correctly implement the routing strategy for the Fabrikant topologies.
16
Th syntax is:
17
0_MRAISTRATEGY_fNUMBERFONODES-dest-prefs.conf
18
As an example, the file 0_fabrikant_f11n-dest-prefs.conf relates to the Bird policy files needed to simulate
19
an 11 nodes fabrikant topology with the Fabrikant mrai strategy.
20

  
21
fabrikant/bird-config-files:
22
This directory contains the Bird configuration files, ready to be used for deployment on the Testbed. You can
23
skip all the graph generation and setup steps and copy one of these directories on your ~/src/iof-tools/ dir
24
in order to deploy the topology.
25
The syntax is:
26
0_MRAISTRATEGY_fNUMBEROFNODESn-dest/
27
As an example,the directory 0_30secs_f17n-dest contains all the configuration files needed to simulate a
28
fabrikant topology of 17 nodes with a standard 30seconds mrai strategy.
29

  
30
---
31

  
32
The "elmokashfi" directory contains all the files needed to reproduce the Elmokashfi simulations presented
33
on the paper. 
34
To reproduce this topology you'll need at least 700 cores on the Testbed.
35

  
36
elmokashfi/graphml:
37
This directory contains all the graphml files of the topology with two different mrai strategies, 30seconds
38
and DPC.
39

  
40
elmokashfi/bird-config-files.tgz
41
This tarball contains all the Bird configuration files, ready to be used for deployment on the Testbed. They
42
are presented in a compressed format due to the high number of files present. Before you can use them you need
43
to extract the files on the current directory and then copy the configuration directory you want to deploy
44
on your ~/src/iof-tools/ dir.
45

  
46

  
experimentFiles/README.md
1
In these directories you'll find all the configuration files needed to reproduce our experiments ready to be used.
2
What follow is a brief description of the structure of the directory tree:
3

  
4
--- 
5
The "fabrikant" directory contains all the files needed to reproduce the Fabrikant gadget topologies.
6
To reproduce this experiments you'll need two nodes on the Testbed.
7

  
8
fabrikant/graphml:
9
This directory contains all the graphml files of the topologies, the file name indicates the type of the
10
gadget and the mrai strategy implemented, the syntax is:
11
0_MRAISTRATEGY_fNUMBEROFNODES-dest_2.graphml
12
As an example, the file 0_dpc_f15n-dest_2.graphml is implementing a Fabrikant 15 nodes topology with the DPC mrai strategy.
13

  
14
fabrikant/bird-policy-files:
15
This directory contains all the policy files needed to correctly implement the routing strategy for the Fabrikant topologies.
16
Th syntax is:
17
0_MRAISTRATEGY_fNUMBERFONODES-dest-prefs.conf
18
As an example, the file 0_fabrikant_f11n-dest-prefs.conf relates to the Bird policy files needed to simulate
19
an 11 nodes fabrikant topology with the Fabrikant mrai strategy.
20

  
21
fabrikant/bird-config-files:
22
This directory contains the Bird configuration files, ready to be used for deployment on the Testbed. You can
23
skip all the graph generation and setup steps and copy one of these directories on your ~/src/iof-tools/ dir
24
in order to deploy the topology.
25
The syntax is:
26
0_MRAISTRATEGY_fNUMBEROFNODESn-dest/
27
As an example,the directory 0_30secs_f17n-dest contains all the configuration files needed to simulate a
28
fabrikant topology of 17 nodes with a standard 30seconds mrai strategy.
29

  
30
---
31

  
32
The "elmokashfi" directory contains all the files needed to reproduce the Elmokashfi simulations presented
33
on the paper. 
34
To reproduce this topology you'll need at least 700 cores on the Testbed.
35

  
36
elmokashfi/graphml:
37
This directory contains all the graphml files of the topology with two different mrai strategies, 30seconds
38
and DPC.
39

  
40
elmokashfi/bird-config-files.tgz
41
This tarball contains all the Bird configuration files, ready to be used for deployment on the Testbed. They
42
are presented in a compressed format due to the high number of files present. Before you can use them you need
43
to extract the files on the current directory and then copy the configuration directory you want to deploy
44
on your ~/src/iof-tools/ dir.
45

  
46

  
graphGenerator/fabrikant/README.md
1
## Fabrikant topology generator
2

  
3
You can use this generator to reproduce some topology presented in Fabrikant[1]
4

  
5
### Example of usage
6

  
7
`python3 gen_chain_gadget.py -i 1 -r 8 -t M -w fab17nodes.graphml`
8

  
9
This command will produce a graph with 17 nodes with 1 inner node per ring and 8 rings.
10
All the nodes will be of type M and the output is written into the file fab17nodes.graphml
11

  
12
You can also add the edge weight and set the MRAI directly on the graph, use the `--help` 
13
to have more info about the possible attributes.
14

  
15
### References
16

  
17
[1] A. Fabrikant, U. Syed, and J. Rexford, “There’s something about MRAI:
18
Timing diversity can exponentially worsen BGP convergence,” in 30th
19
IEEE Int. Conf. on Computer Communications (INFOCOM 2011),
20
Shanghai, China, Apr. 2011
logHandlers/parser/README.md
1
## Log parser
2

  
3
You can use this log parser to produce from the experiment folder fetched a file that
4
can be interpreted by the gnuplot plotter and with the sum-up of all the information.
5

  
6
### Read single experiment
7

  
8
You can use this script to get the information about just one experiment.
9
For example if the logs files of the experiments are in the folder: `iof-tools/Experiemnt1/logs/*`
10
You can use the following command to read them:
11

  
12
`python3 log_parser.py -f ../../RESULTS/run1/logs/* > logs.txt`
13

  
14
The option -f describe where the logs files are contained
15

  
16
### Read the average of multiple experiemnts
17

  
18
Sometimes you have done more runs of the same experiment and you would like to plot
19
the average of all this runs, you can create the average file descriptor with the log_parser.
20
The constraint is that you pass a folder to the parser, it expect to find in this folder a list
21
of folders that represent all the experiments, and inside of each of them there are only the
22
logs files.
23

  
24
If we have a folder with different runs at the following path: `iof-tools/fabr10runs/*`
25
you can use the following command:
26

  
27
`python log_parser.py -ff ../../fabr10runs/ > average10runs.txt`
28

  
29
### Other arguments
30

  
31
There are some more arguments to have more information inside your plot:
32
* -c Compute convergence delay
33
* -t Compute the number of updates generated
34
* -T ['SECS', 'DSEC', 'CSEC', 'MSEC'], time resolution (s/decimal/cent/milli)
35
* -d [delta_value], use this value to set a negative delta value
plotsGenerator/Gnuplot/README.md
1
## Gnuplot log plotter
2

  
3
This is a gnuplot script, the main purpose of this script is to plot the output of the 
4
log_parser.
5

  
6
Is possible to set this attribute from command line:
7
* outfile [arg], default='out.pdf', output file of the plotter
8
* inputfile [arg], default='logs.txt', input file where info are contained
9
* type [arg], default=1, if type is 0 the output will have less information
10
* timeRange [arg], default="[s]", Range of the time axes. uesd in the axes explanation
11
* yrng [arg], default=20, Range of the first y axes, it will start from 0
12
* y2rng [arg], default=20, Range of the second y axes, it will start from 0
13
* xmin [arg], default=0, where the x axes start, could be minus
14
* xmax [arg], default=70, x axes limit
15

  
16
Remember that the second y is in logscale

Also available in: Unified diff