omf_ec 6.0.0.pre.3 → 6.0.0.pre.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (91) hide show
  1. data/Rakefile +1 -0
  2. data/bin/omf_ec +264 -0
  3. data/example/engine_oedl.rb +52 -0
  4. data/example/engine_test.rb +90 -0
  5. data/example/test_exp/test00.rb +12 -0
  6. data/example/test_exp/test01.rb +22 -0
  7. data/example/test_exp/test02.rb +30 -0
  8. data/{exp_repo/test/exp → example/test_exp}/test03.rb +2 -42
  9. data/{exp_repo/test/exp → example/test_exp}/test04.rb +2 -2
  10. data/{exp_repo/test/exp → example/test_exp}/test05.rb +4 -4
  11. data/{exp_repo/test/exp → example/test_exp}/test06.rb +6 -6
  12. data/example/test_exp/test07.rb +65 -0
  13. data/lib/omf_ec/app_definition.rb +57 -0
  14. data/lib/omf_ec/backward/app_definition.rb +35 -0
  15. data/lib/omf_ec/backward/core_ext/array.rb +19 -0
  16. data/lib/omf_ec/backward/default_events.rb +71 -0
  17. data/lib/omf_ec/backward/dsl.rb +83 -0
  18. data/lib/omf_ec/backward/exp/testbed.rb +47 -0
  19. data/lib/omf_ec/backward/group.rb +72 -0
  20. data/lib/omf_ec/context/app_context.rb +54 -0
  21. data/lib/omf_ec/context/def_app_context.rb +6 -0
  22. data/lib/omf_ec/context/group_context.rb +88 -0
  23. data/lib/omf_ec/context/net_context.rb +46 -0
  24. data/lib/omf_ec/context.rb +10 -0
  25. data/lib/omf_ec/dsl.rb +159 -0
  26. data/lib/omf_ec/experiment.rb +71 -0
  27. data/lib/omf_ec/group.rb +158 -0
  28. data/lib/omf_ec/version.rb +1 -1
  29. data/lib/omf_ec.rb +34 -1
  30. data/omf_ec.gemspec +2 -3
  31. data/test/omf_ec/context_spec.rb +19 -0
  32. data/test/omf_ec/group_spec.rb +14 -0
  33. data/test/test_helper.rb +19 -0
  34. metadata +44 -89
  35. data/bin/omf +0 -147
  36. data/bin/omf_pre +0 -76
  37. data/bin/omf_test +0 -161
  38. data/example/net_devices.rb +0 -75
  39. data/exp_repo/system/exp/eventlib.rb +0 -96
  40. data/exp_repo/system/exp/imageNode.rb +0 -283
  41. data/exp_repo/system/exp/reset.rb +0 -21
  42. data/exp_repo/system/exp/saveNode.rb +0 -99
  43. data/exp_repo/system/exp/stat.rb +0 -49
  44. data/exp_repo/system/exp/stdlib.rb +0 -122
  45. data/exp_repo/system/exp/tell.rb +0 -53
  46. data/exp_repo/system/exp/testlib.rb +0 -12
  47. data/exp_repo/system/exp/winlib.rb +0 -154
  48. data/exp_repo/system/topo/active.rb +0 -9
  49. data/exp_repo/system/topo/all.rb +0 -10
  50. data/exp_repo/system/topo/circle.rb +0 -23
  51. data/exp_repo/test/app/aodvd.rb +0 -73
  52. data/exp_repo/test/app/appDef1.rb +0 -102
  53. data/exp_repo/test/app/athstats.rb +0 -76
  54. data/exp_repo/test/app/echo.rb +0 -36
  55. data/exp_repo/test/app/gennyReceiverAppDef.rb +0 -100
  56. data/exp_repo/test/app/gennySenderAppDef.rb +0 -106
  57. data/exp_repo/test/app/itgdec.rb +0 -79
  58. data/exp_repo/test/app/itgr.rb +0 -77
  59. data/exp_repo/test/app/itgs.rb +0 -105
  60. data/exp_repo/test/app/nop.rb +0 -36
  61. data/exp_repo/test/app/otg2.rb +0 -68
  62. data/exp_repo/test/app/otg2_mp.rb +0 -56
  63. data/exp_repo/test/app/otr2.rb +0 -56
  64. data/exp_repo/test/app/otr2_mp.rb +0 -51
  65. data/exp_repo/test/app/trace_oml2.rb +0 -62
  66. data/exp_repo/test/app/wlanconfig_oml2.rb +0 -42
  67. data/exp_repo/test/exp/conf-room-demo.rb +0 -118
  68. data/exp_repo/test/exp/planetlab.rb +0 -82
  69. data/exp_repo/test/exp/test01.rb +0 -42
  70. data/exp_repo/test/exp/test02.rb +0 -60
  71. data/exp_repo/test/exp/tutorial/hello-world-wired.rb +0 -79
  72. data/exp_repo/test/exp/tutorial/hello-world-wireless.rb +0 -87
  73. data/exp_repo/test/exp/tutorial/using-filters.rb +0 -69
  74. data/exp_repo/test/exp/tutorial/using-groups.rb +0 -64
  75. data/exp_repo/test/exp/tutorial/using-properties.rb +0 -93
  76. data/exp_repo/test/exp/tutorial/using-prototypes.rb +0 -111
  77. data/exp_repo/test/proto/aodvrouter.rb +0 -55
  78. data/exp_repo/test/proto/driverqueryapp.rb +0 -59
  79. data/exp_repo/test/proto/forwarder.rb +0 -73
  80. data/exp_repo/test/proto/itgcbrsender.rb +0 -70
  81. data/exp_repo/test/proto/itgdecoder.rb +0 -64
  82. data/exp_repo/test/proto/itgreceiver.rb +0 -55
  83. data/exp_repo/test/proto/itgvoipsender.rb +0 -64
  84. data/exp_repo/test/proto/listener2.rb +0 -62
  85. data/exp_repo/test/proto/nop.rb +0 -47
  86. data/exp_repo/test/proto/probelink.rb +0 -48
  87. data/exp_repo/test/proto/raw_receiver.rb +0 -64
  88. data/exp_repo/test/proto/receiver2_mp.rb +0 -48
  89. data/exp_repo/test/proto/sender2_mp.rb +0 -54
  90. data/exp_repo/test/proto/udp_receiver.rb +0 -55
  91. data/exp_repo/test/proto/udp_sender.rb +0 -61
@@ -1,106 +0,0 @@
1
- #
2
- # Copyright (c) 2006-2009 National ICT Australia (NICTA), Australia
3
- #
4
- # Copyright (c) 2004-2009 WINLAB, Rutgers University, USA
5
- #
6
- # Permission is hereby granted, free of charge, to any person obtaining a copy
7
- # of this software and associated documentation files (the "Software"), to deal
8
- # in the Software without restriction, including without limitation the rights
9
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
- # copies of the Software, and to permit persons to whom the Software is
11
- # furnished to do so, subject to the following conditions:
12
- #
13
- # The above copyright notice and this permission notice shall be included in
14
- # all copies or substantial portions of the Software.
15
- #
16
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22
- # THE SOFTWARE.
23
- #
24
- #
25
- #
26
-
27
- # Create an application representation from scratch
28
-
29
- #
30
-
31
- require "appDefinition.rb"
32
-
33
-
34
-
35
- a = AppDefinition.create("gennySender")
36
-
37
- a.url = "http://apps.orbit-lab.org/gennySender"
38
-
39
- a.name = "gennySender"
40
-
41
- a.version(0, 0, 1)
42
-
43
- a.shortDescription = "Programmable traffic generator"
44
-
45
- a.description = <<TEXT
46
-
47
- Genny Sender is a custom UDP traffic generator that is able to send
48
-
49
- packets at a constant bit rate. It can be configured to use libmac
50
-
51
- or plain sockets as its underlying transport mechanism. Users can
52
-
53
- change packet rates and payload lengths during the course of the
54
-
55
- experiment. Genny sender uses pipes to accept run-time arguments
56
-
57
- from users.
58
-
59
- TEXT
60
-
61
-
62
-
63
- # addProperty(name, description, mnemonic, type, isDynamic = false, constraints = nil)
64
-
65
- a.addProperty('interface_name', "Interface to send on", ?i, :string, false)
66
-
67
- #a.addProperty(:pipe_name, "Pipe on which genny sender listens on", ?p, String, false)
68
-
69
- a.addProperty('rate', "Packet rate", ?r, :integer, true)
70
-
71
- a.addProperty('payload_length', "Payload length (bytes)", ?l, :integer, true)
72
-
73
- a.addProperty('use_socket', "Socket or Libmac", ?s, :boolean, false)
74
-
75
-
76
-
77
- a.addMeasurement("group3", nil, [
78
-
79
- ["offered_load", Float]
80
-
81
- ])
82
-
83
-
84
-
85
- a.repository("http://repository.orbit-lab.org/common/gennySender")
86
-
87
- a.repository("http://controlpxe.orbit-lab.org/repository/genny-0.3.tar")
88
-
89
-
90
-
91
- a.path = "/opt/genny/bin/gennySender"
92
-
93
-
94
-
95
-
96
-
97
- if $0 == __FILE__
98
-
99
- a.to_xml.write($stdout, 2)
100
-
101
- puts
102
-
103
- end
104
-
105
-
106
-
@@ -1,79 +0,0 @@
1
- #
2
- # Copyright (c) 2006-2009 National ICT Australia (NICTA), Australia
3
- #
4
- # Copyright (c) 2004-2009 WINLAB, Rutgers University, USA
5
- #
6
- # Permission is hereby granted, free of charge, to any person obtaining a copy
7
- # of this software and associated documentation files (the "Software"), to deal
8
- # in the Software without restriction, including without limitation the rights
9
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
- # copies of the Software, and to permit persons to whom the Software is
11
- # furnished to do so, subject to the following conditions:
12
- #
13
- # The above copyright notice and this permission notice shall be included in
14
- # all copies or substantial portions of the Software.
15
- #
16
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22
- # THE SOFTWARE.
23
- #
24
- #
25
- #
26
- # Create an application representation from scratch
27
- #
28
- require 'omf-expctl/application/appDefinition'
29
-
30
- a = AppDefinition.create('test:app:itgdec')
31
- a.name = "itgdec"
32
- a.version(0, 0, 1)
33
- a.shortDescription = "D-ITG Decoder"
34
- a.description = <<TEXT
35
- This program decodes the output of the experiment
36
- TEXT
37
-
38
- # addProperty(name, description, mnemonic, type, isDynamic = false, constraints = nil)
39
- a.addProperty('logfile', 'Log file', ?x , :string, false)
40
- a.addProperty('d', 'Delay interval size (msec)', ?d, :integer, false)
41
- a.addProperty('j', 'Jitter Interval size (msec)', ?j, :integer, false)
42
- a.addProperty('b', 'Bitrate interval size (msec)', ?b, :integer, false)
43
- a.addProperty('p', 'Packet loss interval size(msec)', ?p, :integer, false)
44
-
45
- a.addMeasurement("decoderport", nil, [
46
- ['flow_no', 'int'],
47
- ['src_port', 'int'],
48
- ['dst_port', 'int'],
49
- ['throughput', Float],
50
- ['jitter', Float],
51
- ['delay',Float],
52
- ['pkt_loss', Float],
53
- ['rssi', Float],
54
- ['rate', Float]
55
- ])
56
-
57
- a.path = "/usr/local/bin/ITGDec"
58
-
59
- if $0 == __FILE__
60
- require 'stringio'
61
- require 'rexml/document'
62
- include REXML
63
-
64
- sio = StringIO.new()
65
- a.to_xml.write(sio, 2)
66
- sio.rewind
67
- puts sio.read
68
-
69
- sio.rewind
70
- doc = Document.new(sio)
71
- t = AppDefinition.from_xml(doc.root)
72
-
73
- puts
74
- puts "-------------------------"
75
- puts
76
- t.to_xml.write($stdout, 2)
77
-
78
- end
79
-
@@ -1,77 +0,0 @@
1
- #
2
- # Copyright (c) 2006-2009 National ICT Australia (NICTA), Australia
3
- #
4
- # Copyright (c) 2004-2009 WINLAB, Rutgers University, USA
5
- #
6
- # Permission is hereby granted, free of charge, to any person obtaining a copy
7
- # of this software and associated documentation files (the "Software"), to deal
8
- # in the Software without restriction, including without limitation the rights
9
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
- # copies of the Software, and to permit persons to whom the Software is
11
- # furnished to do so, subject to the following conditions:
12
- #
13
- # The above copyright notice and this permission notice shall be included in
14
- # all copies or substantial portions of the Software.
15
- #
16
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22
- # THE SOFTWARE.
23
- #
24
- #
25
- #
26
- # Create an application representation from scratch
27
- #
28
- require 'omf-expctl/application/appDefinition'
29
-
30
- a = AppDefinition.create('test:app:itgr')
31
- a.name = "itgr"
32
- a.version(0, 0, 1)
33
- a.shortDescription = "D-ITG Receiver"
34
- a.description = <<TEXT
35
- D-ITG is a traffic generator for TCP and UDP traffic. It contains generators
36
- producing various forms of packet streams and port for sending
37
- these packets via various transports, such as TCP and UDP.
38
- TEXT
39
-
40
- # addProperty(name, description, mnemonic, type, isDynamic = false, constraints = nil)
41
- #Flow options
42
- a.addProperty('l', 'Log file', ?l, :string, false)
43
-
44
- a.addMeasurement("receiverport", nil, [
45
- ['flow_no', 'int'],
46
- ['min_delay', Float],
47
- ['max_delay', Float],
48
- ['avg_delay', Float],
49
- ['avg_jitter', Float],
50
- ['delay_stdev', Float],
51
- ['avg_throughput', Float],
52
- ['packet_loss', Float]
53
- ])
54
-
55
- a.path = "/usr/local/bin/ITGRecv"
56
-
57
- if $0 == __FILE__
58
- require 'stringio'
59
- require 'rexml/document'
60
- include REXML
61
-
62
- sio = StringIO.new()
63
- a.to_xml.write(sio, 2)
64
- sio.rewind
65
- puts sio.read
66
-
67
- sio.rewind
68
- doc = Document.new(sio)
69
- t = AppDefinition.from_xml(doc.root)
70
-
71
- puts
72
- puts "-------------------------"
73
- puts
74
- t.to_xml.write($stdout, 2)
75
-
76
- end
77
-
@@ -1,105 +0,0 @@
1
- #
2
- # Copyright (c) 2006-2009 National ICT Australia (NICTA), Australia
3
- #
4
- # Copyright (c) 2004-2009 WINLAB, Rutgers University, USA
5
- #
6
- # Permission is hereby granted, free of charge, to any person obtaining a copy
7
- # of this software and associated documentation files (the "Software"), to deal
8
- # in the Software without restriction, including without limitation the rights
9
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
- # copies of the Software, and to permit persons to whom the Software is
11
- # furnished to do so, subject to the following conditions:
12
- #
13
- # The above copyright notice and this permission notice shall be included in
14
- # all copies or substantial portions of the Software.
15
- #
16
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22
- # THE SOFTWARE.
23
- #
24
- #
25
- #
26
- # Create an application representation from scratch
27
- #
28
- require 'omf-expctl/application/appDefinition'
29
-
30
- a = AppDefinition.create('test:app:itgs')
31
- a.name = "itgs"
32
- a.version(0, 0, 1)
33
- a.shortDescription = "D-ITG Sender"
34
- a.description = <<TEXT
35
- ITGSend is a traffic generator for TCP and UDP traffic. It contains generators
36
- producing various forms of packet streams and port for sending
37
- these packets via various transports, such as TCP and UDP.
38
- TEXT
39
-
40
- # addProperty(name, description, mnemonic, type, isDynamic = false, constraints = nil)
41
- #Flow options
42
- a.addProperty('m', 'MSR type: either onewaydelay or RTT', ?m, :string, false)
43
- a.addProperty('a', 'Destination address', ?a, :string, false)
44
- a.addProperty('r', 'Remote port', ?r, :integer, false)
45
- a.addProperty('T', 'Protocol type TCP/UDP/UDP_Libmac', ?T, :integer, false)
46
- a.addProperty('f', 'TTL',?f, :integer, false)
47
- a.addProperty('d', 'Gen_Delay',?d, :integer, false)
48
- a.addProperty('t', "Duration of traffic generation(millisecs)", ?t, :integer, false)
49
-
50
- #Interdeparture time options
51
- a.addProperty('C', 'Constant interdeparture time b/w packets (pkts_per_s)', ?C, :integer, false)
52
- a.addProperty('E', '(Exponential) Average packets per sec', ?E, :integer, false)
53
- a.addProperty('O', '(Poisson) Average pkts per sec', ?O, :integer, false)
54
- #Note that Pareto, Cauchy, UNiform, Normal and Gamma distributions will be added
55
-
56
- #Log file options
57
- a.addProperty('l', 'Log file', ?l, :string, false)
58
-
59
- #Packet size options
60
- a.addProperty('c', 'Constant payload size', ?c, :integer, false)
61
- a.addProperty('e', "Average pkt size (exponential)", ?e, :integer, false)
62
- a.addProperty('o', "Poisson distributed avg. pkt size", ?o, :integer, false)
63
- #Note that Pareto, Cauchy, UNiform, Normal and Gamma distributions will be added
64
-
65
- # Applications (note that no other interdeparture or packet size can be chosen
66
- # if an application is chosen
67
- a.addProperty('App', 'VoIP traffic', ?Z, :integer, false)
68
- a.addProperty('codec', 'VoIP codec: G.711.1, G.711.2, G.723.1, G.729.2, G.729.3', ?i, :string, false)
69
- a.addProperty('voip_control', 'protocol_type RTP or CRTP',?h, :string, false)
70
-
71
- a.addProperty('Telnet', 'Telnet traffic', nil, :integer, false)
72
- a.addProperty('DNS', 'DNS traffic', nil, :integer, false)
73
-
74
-
75
- a.addMeasurement("senderport", nil, [
76
- ['stream_no', 'int'],
77
- ['pkt_seqno', 'long'],
78
- ['pkt_size', 'long'],
79
- ['gen_timestamp', 'long'],
80
- ['tx_timestamp', 'long']
81
- ])
82
-
83
- a.path = "/usr/local/bin/ITGSend"
84
-
85
- if $0 == __FILE__
86
- require 'stringio'
87
- require 'rexml/document'
88
- include REXML
89
-
90
- sio = StringIO.new()
91
- a.to_xml.write(sio, 2)
92
- sio.rewind
93
- puts sio.read
94
-
95
- sio.rewind
96
- doc = Document.new(sio)
97
- t = AppDefinition.from_xml(doc.root)
98
-
99
- puts
100
- puts "-------------------------"
101
- puts
102
- t.to_xml.write($stdout, 2)
103
-
104
- end
105
-
@@ -1,36 +0,0 @@
1
- #
2
- # Copyright (c) 2006-2009 National ICT Australia (NICTA), Australia
3
- #
4
- # Copyright (c) 2004-2009 WINLAB, Rutgers University, USA
5
- #
6
- # Permission is hereby granted, free of charge, to any person obtaining a copy
7
- # of this software and associated documentation files (the "Software"), to deal
8
- # in the Software without restriction, including without limitation the rights
9
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
- # copies of the Software, and to permit persons to whom the Software is
11
- # furnished to do so, subject to the following conditions:
12
- #
13
- # The above copyright notice and this permission notice shall be included in
14
- # all copies or substantial portions of the Software.
15
- #
16
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22
- # THE SOFTWARE.
23
- #
24
- #
25
- require 'omf-expctl/application/appDefinition'
26
-
27
- defApplication('test:app:nop', 'nop') { |a|
28
-
29
- a.version(1, 0, 0)
30
- a.shortDescription = "The No Operation command"
31
- a.description = <<TEXT
32
- Nop is a wrapper around the sleep shell.
33
- TEXT
34
-
35
- a.path = "/bin/sleep 2"
36
- }
@@ -1,68 +0,0 @@
1
- #
2
- # Copyright (c) 2006-2010 National ICT Australia (NICTA), Australia
3
- #
4
- # Copyright (c) 2004-2010 WINLAB, Rutgers University, USA
5
- #
6
- # Permission is hereby granted, free of charge, to any person obtaining a copy
7
- # of this software and associated documentation files (the "Software"), to deal
8
- # in the Software without restriction, including without limitation the rights
9
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
- # copies of the Software, and to permit persons to whom the Software is
11
- # furnished to do so, subject to the following conditions:
12
- #
13
- # The above copyright notice and this permission notice shall be included in
14
- # all copies or substantial portions of the Software.
15
- #
16
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22
- # THE SOFTWARE.
23
- #
24
- #
25
-
26
- # This is an OMF Definition for the existing application called 'otg2'
27
- # This definition will allow OMF entities to use and instrument this application
28
- #
29
- defApplication('test:app:otg2', 'otg2') do |a|
30
-
31
- a.path = "/usr/bin/otg2"
32
- a.version(1, 1, 3)
33
- a.shortDescription = "Programmable traffic generator v2"
34
- a.description = <<TEXT
35
- OTG is a configurable traffic generator. It contains generators
36
- producing various forms of packet streams and port for sending
37
- these packets via various transports, such as TCP and UDP.
38
- This version 2 is compatible with OMLv2
39
- TEXT
40
-
41
- # Define the properties that can be configured for this application
42
- #
43
- # syntax: defProperty(name, description, mnemonic = nil, options = nil)
44
- #
45
- a.defProperty('generator', 'Type of packet generator to use (cbr or expo)', '-g', {:type => :string, :dynamic => false})
46
- a.defProperty('udp:broadcast', 'Broadcast', '--udp:broadcast', {:type => :integer, :dynamic => false})
47
- a.defProperty('udp:dst_host', 'IP address of the Destination', '--udp:dst_host', {:type => :string, :dynamic => false})
48
- a.defProperty('udp:dst_port', 'Destination Port to send to', '--udp:dst_port', {:type => :integer, :dynamic => false})
49
- a.defProperty('udp:local_host', 'IP address of this Source node', '--udp:local_host', {:type => :string, :dynamic => false})
50
- a.defProperty('udp:local_port', 'Local Port of this source node', '--udp:local_port', {:type => :integer, :dynamic => false})
51
- a.defProperty("cbr:size", "Size of packet [bytes]", '--cbr:size', {:dynamic => true, :type => :integer})
52
- a.defProperty("cbr:rate", "Data rate of the flow [kbps]", '--cbr:rate', {:dynamic => true, :type => :integer})
53
- a.defProperty("exp:size", "Size of packet [bytes]", '--exp:size', {:dynamic => true, :type => :integer})
54
- a.defProperty("exp:rate", "Data rate of the flow [kbps]", '--exp:rate', {:dynamic => true, :type => :integer})
55
- a.defProperty("exp:ontime", "Average length of burst [msec]", '--exp:ontime', {:dynamic => true, :type => :integer})
56
- a.defProperty("exp:offtime", "Average length of idle time [msec]", '--exp:offtime', {:dynamic => true, :type => :integer})
57
-
58
- # Define the Measurement Points and associated metrics that are available for this application
59
- #
60
- a.defMeasurement('udp_out') do |m|
61
- m.defMetric('ts',:float)
62
- m.defMetric('flow_id',:long)
63
- m.defMetric('seq_no',:long)
64
- m.defMetric('pkt_length',:long)
65
- m.defMetric('dst_host',:string)
66
- m.defMetric('dst_port',:long)
67
- end
68
- end
@@ -1,56 +0,0 @@
1
- #
2
- # Copyright (c) 2006-2009 National ICT Australia (NICTA), Australia
3
- #
4
- # Copyright (c) 2004-2009 WINLAB, Rutgers University, USA
5
- #
6
- # Permission is hereby granted, free of charge, to any person obtaining a copy
7
- # of this software and associated documentation files (the "Software"), to deal
8
- # in the Software without restriction, including without limitation the rights
9
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
- # copies of the Software, and to permit persons to whom the Software is
11
- # furnished to do so, subject to the following conditions:
12
- #
13
- # The above copyright notice and this permission notice shall be included in
14
- # all copies or substantial portions of the Software.
15
- #
16
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22
- # THE SOFTWARE.
23
- #
24
- #
25
-
26
- # This is an OMF Definition for the existing application called 'otg2_mp'
27
- # This definition will allow OMF entities to use and instrument this application
28
- # Note: the application 'otg2_mp' was contributed by a student and is not
29
- # officially supported by the OMF/OML team
30
- #
31
- defApplication('test:app:otg2', 'otg2') do |a|
32
-
33
- a.path = "/usr/bin/otg2_mp"
34
- a.version(1, 1, 2)
35
- a.shortDescription = "Programmable *multipath* traffic generator v2"
36
- a.description = <<TEXT
37
- OTG is a configurable traffic generator. It contains generators
38
- producing various forms of packet streams and port for sending
39
- these packets via various transports, such as TCP and UDP.
40
- This modified version introduces multipath routing, ie. OTG sends pkt via
41
- multiple paths to the destination.
42
- TEXT
43
-
44
- # Define the properties that can be configured for this application
45
- #
46
- # syntax: defProperty(name, description, parameter, options = nil)
47
- #
48
- a.defProperty('protocol', 'Protocol to use [udpm|udp|tcp]','--protocol')
49
- a.defProperty('generator', 'Generator to use [cbr|expoo]','--generator')
50
- a.defProperty('udpm:local_host', 'IP address of the local host [string]','--udpm:local_host')
51
- a.defProperty('udpm:dst_host', 'IP address of the destination host [string]','--udpm:dst_host')
52
- a.defProperty('udpm:disjoint', 'Flag to use (or not) disjoint paths [0 or 1]','--udpm:disjoint')
53
- a.defProperty("debug-level", "debug level [integer]","--debug-level")
54
-
55
- # Note: here we should have some Measurement Point definition...
56
- end
@@ -1,56 +0,0 @@
1
- #
2
- # Copyright (c) 2006-2010 National ICT Australia (NICTA), Australia
3
- #
4
- # Copyright (c) 2004-2010 WINLAB, Rutgers University, USA
5
- #
6
- # Permission is hereby granted, free of charge, to any person obtaining a copy
7
- # of this software and associated documentation files (the "Software"), to deal
8
- # in the Software without restriction, including without limitation the rights
9
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
- # copies of the Software, and to permit persons to whom the Software is
11
- # furnished to do so, subject to the following conditions:
12
- #
13
- # The above copyright notice and this permission notice shall be included in
14
- # all copies or substantial portions of the Software.
15
- #
16
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22
- # THE SOFTWARE.
23
- #
24
-
25
- # This is an OMF Definition for the existing application called 'otr2'
26
- # This definition will allow OMF entities to use and instrument this application
27
- #
28
- defApplication('test:app:otr2', 'otr2') do |a|
29
-
30
- a.path = "/usr/bin/otr2"
31
- a.version(1, 1, 3)
32
- a.shortDescription = "Programmable traffic sink"
33
- a.description = <<TEXT
34
- otr is a configurable traffic sink. It contains port to receive
35
- packet streams via various transport options, such as TCP and UDP.
36
- This version 2 is compatible with OMLv2.
37
- TEXT
38
-
39
- # Define the properties that can be configured for this application
40
- #
41
- # syntax: defProperty(name, description, parameter, options = nil)
42
- #
43
- a.defProperty('udp:local_host', 'IP address of this Destination node', '--udp:local_host', {:type => :string, :dynamic => false})
44
- a.defProperty('udp:local_port', 'Receiving Port of this Destination node', '--udp:local_port', {:type => :integer, :dynamic => false})
45
-
46
- # Define the Measurement Points and associated metrics that are available for this application
47
- #
48
- a.defMeasurement('udp_in') do |m|
49
- m.defMetric('ts',:float)
50
- m.defMetric('flow_id',:long)
51
- m.defMetric('seq_no',:long)
52
- m.defMetric('pkt_length',:long)
53
- m.defMetric('dst_host',:string)
54
- m.defMetric('dst_port',:long)
55
- end
56
- end
@@ -1,51 +0,0 @@
1
- #
2
- # Copyright (c) 2006-2009 National ICT Australia (NICTA), Australia
3
- #
4
- # Copyright (c) 2004-2009 WINLAB, Rutgers University, USA
5
- #
6
- # Permission is hereby granted, free of charge, to any person obtaining a copy
7
- # of this software and associated documentation files (the "Software"), to deal
8
- # in the Software without restriction, including without limitation the rights
9
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
- # copies of the Software, and to permit persons to whom the Software is
11
- # furnished to do so, subject to the following conditions:
12
- #
13
- # The above copyright notice and this permission notice shall be included in
14
- # all copies or substantial portions of the Software.
15
- #
16
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22
- # THE SOFTWARE.
23
- #
24
-
25
- # This is an OMF Definition for the existing application called 'otr2_mp'
26
- # This definition will allow OMF entities to use and instrument this application
27
- # Note: the application 'otr2_mp' was contributed by a student and is not
28
- # officially supported by the OMF/OML team
29
- #
30
- defApplication('test:app:otr2_mp', 'otr2_mp') do |a|
31
-
32
- a.path = "/bin/otr2_mp"
33
- a.version(1, 1, 2)
34
- a.shortDescription = "Programmable traffic sink"
35
- a.description = <<TEXT
36
- otr is a configurable traffic sink. It contains port to receive
37
- packet streams via various transport options, such as TCP and UDP.
38
- This modified version introduces multipath routing, ie. OTG sends pkt via
39
- multiple paths to the destination.
40
- TEXT
41
-
42
- # Define the properties that can be configured for this application
43
- #
44
- # syntax: defProperty(name, description, parameter, options = nil)
45
- #
46
- a.defProperty('sink', 'Processing to do with received packets [udpi|udpmi]', '--sink', {:type => :string, :dynamic => false})
47
- a.defProperty('udpmi:local_host', 'IP address of the local host ', '--udpmi:local_host', {:type => :string, :dynamic => false})
48
- a.defProperty("debug-level", "debug level [integer]","--debug-level")
49
-
50
- # Note: here we should have some Measurement Point definition...
51
- end