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.
- data/Rakefile +1 -0
- data/bin/omf_ec +264 -0
- data/example/engine_oedl.rb +52 -0
- data/example/engine_test.rb +90 -0
- data/example/test_exp/test00.rb +12 -0
- data/example/test_exp/test01.rb +22 -0
- data/example/test_exp/test02.rb +30 -0
- data/{exp_repo/test/exp → example/test_exp}/test03.rb +2 -42
- data/{exp_repo/test/exp → example/test_exp}/test04.rb +2 -2
- data/{exp_repo/test/exp → example/test_exp}/test05.rb +4 -4
- data/{exp_repo/test/exp → example/test_exp}/test06.rb +6 -6
- data/example/test_exp/test07.rb +65 -0
- data/lib/omf_ec/app_definition.rb +57 -0
- data/lib/omf_ec/backward/app_definition.rb +35 -0
- data/lib/omf_ec/backward/core_ext/array.rb +19 -0
- data/lib/omf_ec/backward/default_events.rb +71 -0
- data/lib/omf_ec/backward/dsl.rb +83 -0
- data/lib/omf_ec/backward/exp/testbed.rb +47 -0
- data/lib/omf_ec/backward/group.rb +72 -0
- data/lib/omf_ec/context/app_context.rb +54 -0
- data/lib/omf_ec/context/def_app_context.rb +6 -0
- data/lib/omf_ec/context/group_context.rb +88 -0
- data/lib/omf_ec/context/net_context.rb +46 -0
- data/lib/omf_ec/context.rb +10 -0
- data/lib/omf_ec/dsl.rb +159 -0
- data/lib/omf_ec/experiment.rb +71 -0
- data/lib/omf_ec/group.rb +158 -0
- data/lib/omf_ec/version.rb +1 -1
- data/lib/omf_ec.rb +34 -1
- data/omf_ec.gemspec +2 -3
- data/test/omf_ec/context_spec.rb +19 -0
- data/test/omf_ec/group_spec.rb +14 -0
- data/test/test_helper.rb +19 -0
- metadata +44 -89
- data/bin/omf +0 -147
- data/bin/omf_pre +0 -76
- data/bin/omf_test +0 -161
- data/example/net_devices.rb +0 -75
- data/exp_repo/system/exp/eventlib.rb +0 -96
- data/exp_repo/system/exp/imageNode.rb +0 -283
- data/exp_repo/system/exp/reset.rb +0 -21
- data/exp_repo/system/exp/saveNode.rb +0 -99
- data/exp_repo/system/exp/stat.rb +0 -49
- data/exp_repo/system/exp/stdlib.rb +0 -122
- data/exp_repo/system/exp/tell.rb +0 -53
- data/exp_repo/system/exp/testlib.rb +0 -12
- data/exp_repo/system/exp/winlib.rb +0 -154
- data/exp_repo/system/topo/active.rb +0 -9
- data/exp_repo/system/topo/all.rb +0 -10
- data/exp_repo/system/topo/circle.rb +0 -23
- data/exp_repo/test/app/aodvd.rb +0 -73
- data/exp_repo/test/app/appDef1.rb +0 -102
- data/exp_repo/test/app/athstats.rb +0 -76
- data/exp_repo/test/app/echo.rb +0 -36
- data/exp_repo/test/app/gennyReceiverAppDef.rb +0 -100
- data/exp_repo/test/app/gennySenderAppDef.rb +0 -106
- data/exp_repo/test/app/itgdec.rb +0 -79
- data/exp_repo/test/app/itgr.rb +0 -77
- data/exp_repo/test/app/itgs.rb +0 -105
- data/exp_repo/test/app/nop.rb +0 -36
- data/exp_repo/test/app/otg2.rb +0 -68
- data/exp_repo/test/app/otg2_mp.rb +0 -56
- data/exp_repo/test/app/otr2.rb +0 -56
- data/exp_repo/test/app/otr2_mp.rb +0 -51
- data/exp_repo/test/app/trace_oml2.rb +0 -62
- data/exp_repo/test/app/wlanconfig_oml2.rb +0 -42
- data/exp_repo/test/exp/conf-room-demo.rb +0 -118
- data/exp_repo/test/exp/planetlab.rb +0 -82
- data/exp_repo/test/exp/test01.rb +0 -42
- data/exp_repo/test/exp/test02.rb +0 -60
- data/exp_repo/test/exp/tutorial/hello-world-wired.rb +0 -79
- data/exp_repo/test/exp/tutorial/hello-world-wireless.rb +0 -87
- data/exp_repo/test/exp/tutorial/using-filters.rb +0 -69
- data/exp_repo/test/exp/tutorial/using-groups.rb +0 -64
- data/exp_repo/test/exp/tutorial/using-properties.rb +0 -93
- data/exp_repo/test/exp/tutorial/using-prototypes.rb +0 -111
- data/exp_repo/test/proto/aodvrouter.rb +0 -55
- data/exp_repo/test/proto/driverqueryapp.rb +0 -59
- data/exp_repo/test/proto/forwarder.rb +0 -73
- data/exp_repo/test/proto/itgcbrsender.rb +0 -70
- data/exp_repo/test/proto/itgdecoder.rb +0 -64
- data/exp_repo/test/proto/itgreceiver.rb +0 -55
- data/exp_repo/test/proto/itgvoipsender.rb +0 -64
- data/exp_repo/test/proto/listener2.rb +0 -62
- data/exp_repo/test/proto/nop.rb +0 -47
- data/exp_repo/test/proto/probelink.rb +0 -48
- data/exp_repo/test/proto/raw_receiver.rb +0 -64
- data/exp_repo/test/proto/receiver2_mp.rb +0 -48
- data/exp_repo/test/proto/sender2_mp.rb +0 -54
- data/exp_repo/test/proto/udp_receiver.rb +0 -55
- 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
|
-
|
data/exp_repo/test/app/itgdec.rb
DELETED
@@ -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
|
-
|
data/exp_repo/test/app/itgr.rb
DELETED
@@ -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
|
-
|
data/exp_repo/test/app/itgs.rb
DELETED
@@ -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
|
-
|
data/exp_repo/test/app/nop.rb
DELETED
@@ -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
|
-
}
|
data/exp_repo/test/app/otg2.rb
DELETED
@@ -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
|
data/exp_repo/test/app/otr2.rb
DELETED
@@ -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
|