topologygenerator 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (67) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +9 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +4 -0
  5. data/CODE_OF_CONDUCT.md +49 -0
  6. data/Gemfile +10 -0
  7. data/LICENSE.txt +21 -0
  8. data/README.md +35 -0
  9. data/Rakefile +6 -0
  10. data/bin/console +14 -0
  11. data/bin/setup +8 -0
  12. data/lib/behaviors/serialize_behavior.rb +14 -0
  13. data/lib/builders_examples/pdm_builders/PhaseI/Flow_concrete_builder.rb +82 -0
  14. data/lib/builders_examples/pdm_builders/PhaseI/Host_concrete_builder.rb +24 -0
  15. data/lib/builders_examples/pdm_builders/PhaseI/Link_concrete_builder.rb +150 -0
  16. data/lib/builders_examples/pdm_builders/PhaseI/Router_concrete_builder.rb +24 -0
  17. data/lib/builders_examples/pdm_builders/PhaseI/output_concrete_builder.rb +86 -0
  18. data/lib/builders_examples/pdm_builders/PhaseI/pdm_constants.rb +111 -0
  19. data/lib/builders_examples/pdm_builders/PhaseIWithPriorityQueues/Flow_concrete_builder.rb +82 -0
  20. data/lib/builders_examples/pdm_builders/PhaseIWithPriorityQueues/Host_concrete_builder.rb +335 -0
  21. data/lib/builders_examples/pdm_builders/PhaseIWithPriorityQueues/Link_concrete_builder.rb +25 -0
  22. data/lib/builders_examples/pdm_builders/PhaseIWithPriorityQueues/Router_concrete_builder.rb +449 -0
  23. data/lib/builders_examples/pdm_builders/PhaseIWithPriorityQueues/output_concrete_builder.rb +229 -0
  24. data/lib/builders_examples/ruby_builders/Flow_concrete_builder.rb +5 -0
  25. data/lib/builders_examples/ruby_builders/Host_concrete_builder.rb +5 -0
  26. data/lib/builders_examples/ruby_builders/Link_concrete_builder.rb +5 -0
  27. data/lib/builders_examples/ruby_builders/Router_concrete_builder.rb +5 -0
  28. data/lib/builders_examples/ruby_builders/output_concrete_builder.rb +78 -0
  29. data/lib/command_line/command_line_arguments.rb +59 -0
  30. data/lib/createTopology.rb +10 -0
  31. data/lib/flows_distributions/constant_distribution.rb +7 -0
  32. data/lib/flows_distributions/exponential_distribution.rb +7 -0
  33. data/lib/flows_distributions/normal_distribution.rb +8 -0
  34. data/lib/flows_distributions/pareto_distribution.rb +9 -0
  35. data/lib/flows_distributions/split_distribution.rb +8 -0
  36. data/lib/network_entities/abstracts/flow.rb +27 -0
  37. data/lib/network_entities/abstracts/network_element.rb +19 -0
  38. data/lib/network_entities/abstracts/path.rb +16 -0
  39. data/lib/network_entities/physical/host.rb +10 -0
  40. data/lib/network_entities/physical/link.rb +36 -0
  41. data/lib/network_entities/physical/router.rb +12 -0
  42. data/lib/network_entities/topology.rb +69 -0
  43. data/lib/network_topologies_examples/PhaseI_onlyLAr_1FelixTo1SWROD.rb +93 -0
  44. data/lib/network_topologies_examples/octopus_topology.rb +66 -0
  45. data/lib/network_topologies_examples/phase1_topology_mininet/tdaq +4 -0
  46. data/lib/network_topologies_examples/phase1_topology_mininet/tdaq.py +99 -0
  47. data/lib/network_topologies_examples/sofisticated_octopus_topology.rb +121 -0
  48. data/lib/network_topologies_examples/tdaq_network_topology.rb +76 -0
  49. data/lib/network_topologies_examples/tdaq_topology_example.rb +119 -0
  50. data/lib/network_topologies_examples/tree_topology.rb +102 -0
  51. data/lib/output/FlowDefinitions.cpp +109 -0
  52. data/lib/output/copy_files.sh +8 -0
  53. data/lib/output/flows_definition.scilabParams +30 -0
  54. data/lib/output/hosts_definition.scilabParams +5 -0
  55. data/lib/output/links_definition.scilabParams +48 -0
  56. data/lib/output/routers_definition.scilabParams +24 -0
  57. data/lib/output/ruby_network_topology.rb +76 -0
  58. data/lib/output/topology.pdm +5321 -0
  59. data/lib/output_builder.rb +39 -0
  60. data/lib/providers/apis/onos_topology_provider.rb +146 -0
  61. data/lib/providers/customs/custom_topology_provider.rb +14 -0
  62. data/lib/providers/interface_topology_provider.rb +11 -0
  63. data/lib/topologygenerator/version.rb +3 -0
  64. data/lib/topologygenerator.rb +34 -0
  65. data/lib/utils/custom_files_utils.rb +16 -0
  66. data/topologygenerator.gemspec +45 -0
  67. metadata +188 -0
@@ -0,0 +1,5 @@
1
+
2
+ lar_felix_0.egressPort.queueCapacity = -1;
3
+ lar_felix_1.egressPort.queueCapacity = -1;
4
+ lar_swrod_0.egressPort.queueCapacity = -1;
5
+ lar_swrod_1.egressPort.queueCapacity = -1;
@@ -0,0 +1,48 @@
1
+
2
+ lar_felix_0.egressPort0.link.capacity = 40000000000 ;
3
+ lar_felix_0.egressPort0.link.delay = 0;
4
+
5
+ lar_felix_0.egressPort1.link.capacity = 40000000000 ;
6
+ lar_felix_0.egressPort1.link.delay = 0;
7
+
8
+ lar_felix_1.egressPort0.link.capacity = 40000000000 ;
9
+ lar_felix_1.egressPort0.link.delay = 0;
10
+
11
+ lar_felix_1.egressPort1.link.capacity = 40000000000 ;
12
+ lar_felix_1.egressPort1.link.delay = 0;
13
+
14
+ lar_switch_01.egressPort2.link.capacity = 40000000000 ;
15
+ lar_switch_01.egressPort2.link.delay = 0;
16
+
17
+ lar_switch_02.egressPort2.link.capacity = 40000000000 ;
18
+ lar_switch_02.egressPort2.link.delay = 0;
19
+
20
+ lar_switch_01.egressPort3.link.capacity = 40000000000 ;
21
+ lar_switch_01.egressPort3.link.delay = 0;
22
+
23
+ lar_switch_02.egressPort3.link.capacity = 40000000000 ;
24
+ lar_switch_02.egressPort3.link.delay = 0;
25
+
26
+ lar_switch_01.egressPort0.link.capacity = 40000000000 ;
27
+ lar_switch_01.egressPort0.link.delay = 0;
28
+
29
+ felix_core_01.egressPort0.link.capacity = 40000000000 ;
30
+ felix_core_01.egressPort0.link.delay = 0;
31
+
32
+ lar_switch_01.egressPort1.link.capacity = 40000000000 ;
33
+ lar_switch_01.egressPort1.link.delay = 0;
34
+
35
+ felix_core_02.egressPort0.link.capacity = 40000000000 ;
36
+ felix_core_02.egressPort0.link.delay = 0;
37
+
38
+ lar_switch_02.egressPort0.link.capacity = 40000000000 ;
39
+ lar_switch_02.egressPort0.link.delay = 0;
40
+
41
+ felix_core_01.egressPort1.link.capacity = 40000000000 ;
42
+ felix_core_01.egressPort1.link.delay = 0;
43
+
44
+ lar_switch_02.egressPort1.link.capacity = 40000000000 ;
45
+ lar_switch_02.egressPort1.link.delay = 0;
46
+
47
+ felix_core_02.egressPort1.link.capacity = 40000000000 ;
48
+ felix_core_02.egressPort1.link.delay = 0;
@@ -0,0 +1,24 @@
1
+
2
+ lar_switch_01.numberOfQueues = 1 ;
3
+ lar_switch_01.queueCapacity = -1;
4
+ lar_switch_01.egressPort0.PriorityQueue.WRRScheduler.weights = [1];
5
+ lar_switch_01.egressPort1.PriorityQueue.WRRScheduler.weights = [1];
6
+ lar_switch_01.egressPort2.PriorityQueue.WRRScheduler.weights = [1];
7
+ lar_switch_01.egressPort3.PriorityQueue.WRRScheduler.weights = [1];
8
+
9
+ lar_switch_02.numberOfQueues = 1 ;
10
+ lar_switch_02.queueCapacity = -1;
11
+ lar_switch_02.egressPort0.PriorityQueue.WRRScheduler.weights = [1];
12
+ lar_switch_02.egressPort1.PriorityQueue.WRRScheduler.weights = [1];
13
+ lar_switch_02.egressPort2.PriorityQueue.WRRScheduler.weights = [1];
14
+ lar_switch_02.egressPort3.PriorityQueue.WRRScheduler.weights = [1];
15
+
16
+ felix_core_01.numberOfQueues = 1 ;
17
+ felix_core_01.queueCapacity = -1;
18
+ felix_core_01.egressPort0.PriorityQueue.WRRScheduler.weights = [1];
19
+ felix_core_01.egressPort1.PriorityQueue.WRRScheduler.weights = [1];
20
+
21
+ felix_core_02.numberOfQueues = 1 ;
22
+ felix_core_02.queueCapacity = -1;
23
+ felix_core_02.egressPort0.PriorityQueue.WRRScheduler.weights = [1];
24
+ felix_core_02.egressPort1.PriorityQueue.WRRScheduler.weights = [1];
@@ -0,0 +1,76 @@
1
+ module NetworkTopology
2
+ def get_topology
3
+ return @topology.topology_elements if @topology.topology_elements.size != 0
4
+ hosts = []
5
+ routers = []
6
+ links = []
7
+
8
+
9
+ routers.push @topology.add_router "of:2000000000010101", [1]
10
+ routers.push @topology.add_router "of:2000000000010201", [1]
11
+ routers.push @topology.add_router "of:2000000000010102", [1]
12
+ routers.push @topology.add_router "of:2000000000010202", [1]
13
+ routers.push @topology.add_router "of:1000000000020001", [1]
14
+ routers.push @topology.add_router "of:2000000000030001", [1]
15
+ routers.push @topology.add_router "of:2000000000030002", [1]
16
+ routers.push @topology.add_router "of:1000000000020002", [1]
17
+ routers.push @topology.add_router "of:1000000000030002", [1]
18
+ routers.push @topology.add_router "of:1000000000030001", [1]
19
+ routers.push @topology.add_router "of:1000000000010201", [1]
20
+ routers.push @topology.add_router "of:1000000000010102", [1]
21
+ routers.push @topology.add_router "of:1000000000010202", [1]
22
+ routers.push @topology.add_router "of:1000000000010101", [1]
23
+
24
+ @topology.add_link "Link1", routers[7], 4, routers[12], 2, 500000000
25
+ @topology.add_link "Link2", routers[12], 2, routers[7], 4, 500000000
26
+ @topology.add_link "Link3", routers[3], 3, routers[12], 4, 500000000
27
+ @topology.add_link "Link4", routers[1], 2, routers[10], 3, 500000000
28
+ @topology.add_link "Link5", routers[11], 1, routers[13], 1, 500000000
29
+ @topology.add_link "Link6", routers[3], 2, routers[10], 4, 500000000
30
+ @topology.add_link "Link7", routers[9], 4, routers[6], 2, 500000000
31
+ @topology.add_link "Link8", routers[10], 1, routers[12], 1, 500000000
32
+ @topology.add_link "Link9", routers[13], 4, routers[2], 2, 500000000
33
+ @topology.add_link "Link10", routers[0], 2, routers[13], 3, 500000000
34
+ @topology.add_link "Link11", routers[2], 3, routers[11], 4, 500000000
35
+ @topology.add_link "Link12", routers[2], 2, routers[13], 4, 500000000
36
+ @topology.add_link "Link13", routers[13], 2, routers[4], 3, 500000000
37
+ @topology.add_link "Link14", routers[4], 2, routers[8], 1, 500000000
38
+ @topology.add_link "Link15", routers[4], 3, routers[13], 2, 500000000
39
+ @topology.add_link "Link16", routers[5], 2, routers[9], 3, 500000000
40
+ @topology.add_link "Link17", routers[6], 3, routers[8], 4, 500000000
41
+ @topology.add_link "Link18", routers[10], 3, routers[1], 2, 500000000
42
+ @topology.add_link "Link19", routers[12], 4, routers[3], 3, 500000000
43
+ @topology.add_link "Link20", routers[6], 2, routers[9], 4, 500000000
44
+ @topology.add_link "Link21", routers[12], 3, routers[1], 3, 500000000
45
+ @topology.add_link "Link22", routers[4], 4, routers[10], 2, 500000000
46
+ @topology.add_link "Link23", routers[10], 2, routers[4], 4, 500000000
47
+ @topology.add_link "Link24", routers[5], 3, routers[8], 3, 500000000
48
+ @topology.add_link "Link25", routers[10], 4, routers[3], 2, 500000000
49
+ @topology.add_link "Link26", routers[13], 1, routers[11], 1, 500000000
50
+ @topology.add_link "Link27", routers[4], 1, routers[9], 1, 500000000
51
+ @topology.add_link "Link28", routers[7], 2, routers[8], 2, 500000000
52
+ @topology.add_link "Link29", routers[7], 1, routers[9], 2, 500000000
53
+ @topology.add_link "Link30", routers[0], 3, routers[11], 3, 500000000
54
+ @topology.add_link "Link31", routers[11], 4, routers[2], 3, 500000000
55
+ @topology.add_link "Link32", routers[13], 3, routers[0], 2, 500000000
56
+ @topology.add_link "Link33", routers[11], 3, routers[0], 3, 500000000
57
+ @topology.add_link "Link34", routers[12], 1, routers[10], 1, 500000000
58
+ @topology.add_link "Link35", routers[8], 1, routers[4], 2, 500000000
59
+ @topology.add_link "Link36", routers[8], 2, routers[7], 2, 500000000
60
+ @topology.add_link "Link37", routers[8], 4, routers[6], 3, 500000000
61
+ @topology.add_link "Link38", routers[9], 1, routers[4], 1, 500000000
62
+ @topology.add_link "Link39", routers[9], 3, routers[5], 2, 500000000
63
+ @topology.add_link "Link40", routers[8], 3, routers[5], 3, 500000000
64
+ @topology.add_link "Link41", routers[9], 2, routers[7], 1, 500000000
65
+ @topology.add_link "Link42", routers[11], 2, routers[7], 3, 500000000
66
+ @topology.add_link "Link43", routers[1], 3, routers[12], 3, 500000000
67
+ @topology.add_link "Link44", routers[7], 3, routers[11], 2, 500000000
68
+
69
+ @topology.topology_elements
70
+ end
71
+
72
+ def get_path_between(source, destination)
73
+ #Think how to implement it!
74
+ Path.new(source,destination)
75
+ end
76
+ end