omf_ec 6.0.0.pre.2
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +4 -0
- data/Gemfile +4 -0
- data/Rakefile +7 -0
- data/bin/omf_test +161 -0
- data/config/ec.yml +164 -0
- data/exp_repo/system/exp/eventlib.rb +96 -0
- data/exp_repo/system/exp/imageNode.rb +283 -0
- data/exp_repo/system/exp/reset.rb +21 -0
- data/exp_repo/system/exp/saveNode.rb +99 -0
- data/exp_repo/system/exp/stat.rb +49 -0
- data/exp_repo/system/exp/stdlib.rb +122 -0
- data/exp_repo/system/exp/tell.rb +53 -0
- data/exp_repo/system/exp/testlib.rb +12 -0
- data/exp_repo/system/exp/winlib.rb +154 -0
- data/exp_repo/system/topo/active.rb +9 -0
- data/exp_repo/system/topo/all.rb +10 -0
- data/exp_repo/system/topo/circle.rb +23 -0
- data/exp_repo/test/app/aodvd.rb +73 -0
- data/exp_repo/test/app/appDef1.rb +102 -0
- data/exp_repo/test/app/athstats.rb +76 -0
- data/exp_repo/test/app/echo.rb +36 -0
- data/exp_repo/test/app/gennyReceiverAppDef.rb +100 -0
- data/exp_repo/test/app/gennySenderAppDef.rb +106 -0
- data/exp_repo/test/app/itgdec.rb +79 -0
- data/exp_repo/test/app/itgr.rb +77 -0
- data/exp_repo/test/app/itgs.rb +105 -0
- data/exp_repo/test/app/nop.rb +36 -0
- data/exp_repo/test/app/otg2.rb +68 -0
- data/exp_repo/test/app/otg2_mp.rb +56 -0
- data/exp_repo/test/app/otr2.rb +56 -0
- data/exp_repo/test/app/otr2_mp.rb +51 -0
- data/exp_repo/test/app/trace_oml2.rb +62 -0
- data/exp_repo/test/app/wlanconfig_oml2.rb +42 -0
- data/exp_repo/test/exp/conf-room-demo.rb +118 -0
- data/exp_repo/test/exp/planetlab.rb +82 -0
- data/exp_repo/test/exp/test01.rb +42 -0
- data/exp_repo/test/exp/test02.rb +60 -0
- data/exp_repo/test/exp/test03.rb +95 -0
- data/exp_repo/test/exp/test04.rb +105 -0
- data/exp_repo/test/exp/test05.rb +87 -0
- data/exp_repo/test/exp/test06.rb +71 -0
- data/exp_repo/test/exp/tutorial/hello-world-wired.rb +79 -0
- data/exp_repo/test/exp/tutorial/hello-world-wireless.rb +87 -0
- data/exp_repo/test/exp/tutorial/using-filters.rb +69 -0
- data/exp_repo/test/exp/tutorial/using-groups.rb +64 -0
- data/exp_repo/test/exp/tutorial/using-properties.rb +93 -0
- data/exp_repo/test/exp/tutorial/using-prototypes.rb +111 -0
- data/exp_repo/test/proto/aodvrouter.rb +55 -0
- data/exp_repo/test/proto/driverqueryapp.rb +59 -0
- data/exp_repo/test/proto/forwarder.rb +73 -0
- data/exp_repo/test/proto/itgcbrsender.rb +70 -0
- data/exp_repo/test/proto/itgdecoder.rb +64 -0
- data/exp_repo/test/proto/itgreceiver.rb +55 -0
- data/exp_repo/test/proto/itgvoipsender.rb +64 -0
- data/exp_repo/test/proto/listener2.rb +62 -0
- data/exp_repo/test/proto/nop.rb +47 -0
- data/exp_repo/test/proto/probelink.rb +48 -0
- data/exp_repo/test/proto/raw_receiver.rb +64 -0
- data/exp_repo/test/proto/receiver2_mp.rb +48 -0
- data/exp_repo/test/proto/sender2_mp.rb +54 -0
- data/exp_repo/test/proto/udp_receiver.rb +55 -0
- data/exp_repo/test/proto/udp_sender.rb +61 -0
- data/lib/omf_ec/version.rb +3 -0
- data/lib/omf_ec.rb +5 -0
- data/omf_ec.gemspec +24 -0
- metadata +145 -0
@@ -0,0 +1,73 @@
|
|
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
|
+
# Define a prototype
|
27
|
+
#
|
28
|
+
# $Id: forwarder.rb 997 2006-01-20 06:59:31Z sachin $
|
29
|
+
|
30
|
+
p = Prototype.create("test:proto:forwarder")
|
31
|
+
p.name = "Forwarder"
|
32
|
+
p.description = "Nodes which forward packets"
|
33
|
+
p.defProperty('protocol', 'Protocol to use', 'raw')
|
34
|
+
p.defProperty('rxdev', 'hw interface to listen on', 'eth0')
|
35
|
+
p.defProperty('txdev', 'hw interaface to send', 'eth0')
|
36
|
+
p.defProperty('ipFilter', 'IP address of the destination', '12.0.0.6')
|
37
|
+
p.defProperty('nextHopMAC', 'hw address of next-hop receiver', 'FF:FF:FF:FF:FF:FF')
|
38
|
+
|
39
|
+
otf = p.addApplication('otf', "test:app:otf")
|
40
|
+
|
41
|
+
otf.bindProperty('protocol')
|
42
|
+
otf.bindProperty('rxdev')
|
43
|
+
otf.bindProperty('txdev')
|
44
|
+
otf.bindProperty('dstfilter','ipFilter')
|
45
|
+
otf.bindProperty('dstmacaddr','nextHopMAC')
|
46
|
+
|
47
|
+
otf.addMeasurement('senderport', Filter::TIME,
|
48
|
+
{Filter::SAMPLE_SIZE => 1},
|
49
|
+
[
|
50
|
+
['stream_no'],
|
51
|
+
['pkt_seqno'],
|
52
|
+
['pkt_size', Filter::SUM],
|
53
|
+
['gen_timestamp'],
|
54
|
+
['tx_timestamp']
|
55
|
+
]
|
56
|
+
)
|
57
|
+
otf.addMeasurement('otfreceiver', Filter::TIME,
|
58
|
+
{Filter::SAMPLE_SIZE => 1},
|
59
|
+
[
|
60
|
+
['flow_no'],
|
61
|
+
['pkt_num_rcvd'],
|
62
|
+
['rcvd_pkt_size', Filter::SUM],
|
63
|
+
['rx_timestamp', Filter::MEAN],
|
64
|
+
['rssi', Filter::MEAN],
|
65
|
+
['xmitrate']
|
66
|
+
]
|
67
|
+
)
|
68
|
+
|
69
|
+
if $0 == __FILE__
|
70
|
+
p.to_xml.write($stdout, 2)
|
71
|
+
puts
|
72
|
+
end
|
73
|
+
|
@@ -0,0 +1,70 @@
|
|
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
|
+
# Define a prototype
|
27
|
+
#
|
28
|
+
|
29
|
+
p = Prototype.create("test:proto:itgcbrsender")
|
30
|
+
p.name = "ITG Sender"
|
31
|
+
p.description = "Nodes which send a stream of packets"
|
32
|
+
p.defProperty('meter', 'one way delay or RTT', 'owdm')
|
33
|
+
p.defProperty('protocol', 'Protocol to use', 'udp')
|
34
|
+
p.defProperty('destinationHost', 'Host to send packets to')
|
35
|
+
#p.defProperty('sender_port', 'Host to send packets to')
|
36
|
+
p.defProperty('constsize', 'Size of packets', 1000)
|
37
|
+
p.defProperty('constrate', 'Number of bits per second', 1000)
|
38
|
+
p.defProperty('duration', 'Time for sending (millisec)', 1000)
|
39
|
+
p.defProperty('gen_delay', 'Generation delay (millisec)', 10000)
|
40
|
+
#p.defProperty('recv_logfile', 'Recv log')
|
41
|
+
p.defProperty('recv_port', 'Receiver_port', 8000)
|
42
|
+
|
43
|
+
itgs = p.addApplication(:itgs, "test:app:itgs")
|
44
|
+
itgs.bindProperty('m','meter')
|
45
|
+
itgs.bindProperty('T','protocol')
|
46
|
+
itgs.bindProperty('a', 'destinationHost')
|
47
|
+
itgs.bindProperty('c', 'constsize')
|
48
|
+
itgs.bindProperty('C', 'constrate')
|
49
|
+
itgs.bindProperty('t', 'duration')
|
50
|
+
itgs.bindProperty('d', 'gen_delay')
|
51
|
+
#itgs.bindProperty('l', 'logfile')
|
52
|
+
#itgs.bindProperty('x', 'recv_logfile')
|
53
|
+
itgs.bindProperty('r', 'recv_port')
|
54
|
+
|
55
|
+
itgs.addMeasurement('senderport', Filter::TIME,
|
56
|
+
{Filter::SAMPLE_SIZE => 1},
|
57
|
+
[
|
58
|
+
['stream_no'],
|
59
|
+
['pkt_seqno'],
|
60
|
+
['pkt_size', Filter::SUM],
|
61
|
+
['gen_timestamp'],
|
62
|
+
['tx_timestamp']
|
63
|
+
]
|
64
|
+
)
|
65
|
+
|
66
|
+
if $0 == __FILE__
|
67
|
+
p.to_xml.write($stdout, 2)
|
68
|
+
puts
|
69
|
+
end
|
70
|
+
|
@@ -0,0 +1,64 @@
|
|
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
|
+
# Define a prototype
|
27
|
+
#
|
28
|
+
|
29
|
+
p = Prototype.create("test:proto:itgdecoder")
|
30
|
+
p.name = "ITG Decoder"
|
31
|
+
p.description = "Decodes output and prints results"
|
32
|
+
p.defProperty('logfile', 'Logfile')
|
33
|
+
p.defProperty('tput_report_interval', 'Report interval for throughput')
|
34
|
+
p.defProperty('delay_report_interval', 'Report interval for Delay')
|
35
|
+
p.defProperty('jitter_report_interval', 'Report interval for Jitter')
|
36
|
+
p.defProperty('loss_report_interval', 'Report interval for Packet loss')
|
37
|
+
|
38
|
+
itgd = p.addApplication('itgdec', "test:app:itgdec")
|
39
|
+
itgd.bindProperty('logfile')
|
40
|
+
itgd.bindProperty('d', 'delay_report_interval')
|
41
|
+
itgd.bindProperty('j', 'jitter_report_interval')
|
42
|
+
itgd.bindProperty('b', 'tput_report_interval')
|
43
|
+
itgd.bindProperty('p', 'loss_report_interval')
|
44
|
+
|
45
|
+
itgd.addMeasurement('decoderport', Filter::SAMPLE,
|
46
|
+
{Filter::SAMPLE_SIZE => 1},
|
47
|
+
[
|
48
|
+
['flow_no'],
|
49
|
+
['src_port'],
|
50
|
+
['dst_port'],
|
51
|
+
['throughput'],
|
52
|
+
['jitter'],
|
53
|
+
['delay'],
|
54
|
+
['pkt_loss'],
|
55
|
+
['rssi'],
|
56
|
+
['rate']
|
57
|
+
]
|
58
|
+
)
|
59
|
+
|
60
|
+
if $0 == __FILE__
|
61
|
+
p.to_xml.write($stdout, 2)
|
62
|
+
puts
|
63
|
+
end
|
64
|
+
|
@@ -0,0 +1,55 @@
|
|
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
|
+
# Define a prototype
|
27
|
+
#
|
28
|
+
|
29
|
+
p = Prototype.create("test:proto:itgreceiver")
|
30
|
+
p.name = "ITG Receiver"
|
31
|
+
p.description = "Nodes which receive packets"
|
32
|
+
p.defProperty('logfile', 'Logfile')
|
33
|
+
|
34
|
+
itgr = p.addApplication('itgr', "test:app:itgr")
|
35
|
+
itgr.bindProperty('l','logfile')
|
36
|
+
|
37
|
+
itgr.addMeasurement('receiverport', Filter::SAMPLE,
|
38
|
+
{Filter::SAMPLE_SIZE => 1},
|
39
|
+
[
|
40
|
+
['flow_no'],
|
41
|
+
['min_delay'],
|
42
|
+
['max_delay'],
|
43
|
+
['avg_delay'],
|
44
|
+
['avg_jitter'],
|
45
|
+
['delay_stdev'],
|
46
|
+
['avg_throughput'],
|
47
|
+
['packet_loss'],
|
48
|
+
]
|
49
|
+
)
|
50
|
+
|
51
|
+
if $0 == __FILE__
|
52
|
+
p.to_xml.write($stdout, 2)
|
53
|
+
puts
|
54
|
+
end
|
55
|
+
|
@@ -0,0 +1,64 @@
|
|
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
|
+
# Define a prototype
|
27
|
+
#
|
28
|
+
|
29
|
+
p = Prototype.create("test:proto:itgvoipsender")
|
30
|
+
p.name = "ITG VoIP Sender"
|
31
|
+
p.description = "Nodes which send a stream of packets"
|
32
|
+
p.defProperty('meter', 'one way delay or RTT', 'owdm')
|
33
|
+
p.defProperty('duration', 'Time for sending (millisec)', 1000)
|
34
|
+
p.defProperty('protocol',' UDP or UDP_Libmac')
|
35
|
+
p.defProperty('recv_port', 'Receiver_port', 8000)
|
36
|
+
p.defProperty('codec', 'VoIP codec')
|
37
|
+
p.defProperty('voip_control', 'VoIP control')
|
38
|
+
p.defProperty('destinationHost', 'Host to send packets to')
|
39
|
+
|
40
|
+
itgs = p.addApplication(:itgs, "test:app:itgs")
|
41
|
+
itgs.bindProperty('t', 'duration')
|
42
|
+
itgs.bindProperty('codec')
|
43
|
+
itgs.bindProperty('T','protocol')
|
44
|
+
itgs.bindProperty('voip_control')
|
45
|
+
itgs.bindProperty('a', 'destinationHost')
|
46
|
+
itgs.bindProperty('m','meter')
|
47
|
+
itgs.bindProperty('r', 'recv_port')
|
48
|
+
|
49
|
+
itgs.addMeasurement('senderport', Filter::SAMPLE,
|
50
|
+
{Filter::SAMPLE_SIZE => 1},
|
51
|
+
[
|
52
|
+
['stream_no'],
|
53
|
+
['pkt_seqno'],
|
54
|
+
['pkt_size', Filter::SUM],
|
55
|
+
['gen_timestamp'],
|
56
|
+
['tx_timestamp']
|
57
|
+
]
|
58
|
+
)
|
59
|
+
|
60
|
+
if $0 == __FILE__
|
61
|
+
p.to_xml.write($stdout, 2)
|
62
|
+
puts
|
63
|
+
end
|
64
|
+
|
@@ -0,0 +1,62 @@
|
|
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
|
+
# Define a prototype containing a single
|
27
|
+
# traffic listener (otl).
|
28
|
+
#
|
29
|
+
|
30
|
+
|
31
|
+
defPrototype("test:proto:listener2") { |p|
|
32
|
+
p.name = "Listener2"
|
33
|
+
p.description = "A node which listen for packets through a given interface"
|
34
|
+
# List properties of prototype
|
35
|
+
p.defProperty('omlServer', 'Contact details for the oml collection server', "tcp:#{OmlApp.getServerAddr}:#{OmlApp.getServerPort}")
|
36
|
+
p.defProperty('id', 'ID for this oml client', "#{Experiment.ID}")
|
37
|
+
p.defProperty('expId', 'ID for this experiment', "#{Experiment.ID}")
|
38
|
+
p.defProperty('filter', 'The file with the filter definitions', "default")
|
39
|
+
p.defProperty('interface', 'When using the default filter, listen on this given interface')
|
40
|
+
p.defProperty('sourceIP', 'When using the default filter, select pkt with this Src IP')
|
41
|
+
#p.defProperty('destinationIP', 'When using the default filter, select pkt with this Dst IP')
|
42
|
+
|
43
|
+
# Define applications to be installed on this type of node,
|
44
|
+
# bind the application properties to the prototype properties,
|
45
|
+
# and finally, define what measurements should be collected
|
46
|
+
# for each application.
|
47
|
+
#
|
48
|
+
p.addApplication(:otl2, "test:app:otl2") {|otl|
|
49
|
+
otl.bindProperty('oml-server', 'omlServer')
|
50
|
+
otl.bindProperty('oml-id', 'id')
|
51
|
+
otl.bindProperty('oml-exp-id', 'expId')
|
52
|
+
otl.bindProperty('pcap', 'filter')
|
53
|
+
otl.bindProperty('pcap-if', 'interface')
|
54
|
+
otl.bindProperty('pcap-ip-src', 'sourceIP')
|
55
|
+
#otl.bindProperty('pcap-ip-dst', 'destinationIP')
|
56
|
+
}
|
57
|
+
}
|
58
|
+
|
59
|
+
if $0 == __FILE__
|
60
|
+
p.to_xml.write($stdout, 2)
|
61
|
+
puts
|
62
|
+
end
|
@@ -0,0 +1,47 @@
|
|
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
|
+
# Define a prototype containing a No Operation task
|
27
|
+
#
|
28
|
+
|
29
|
+
|
30
|
+
defPrototype("test:proto:nop") { |p|
|
31
|
+
p.name = "NOP"
|
32
|
+
p.description = "A node which does nothing"
|
33
|
+
# List properties of prototype
|
34
|
+
|
35
|
+
# Define applications to be installed on this type of node,
|
36
|
+
# bind the application properties to the prototype properties,
|
37
|
+
# and finally, define what measurements should be collected
|
38
|
+
# for each application.
|
39
|
+
#
|
40
|
+
p.addApplication(:nop, "test:app:nop") {|nop|
|
41
|
+
}
|
42
|
+
}
|
43
|
+
|
44
|
+
if $0 == __FILE__
|
45
|
+
p.to_xml.write($stdout, 2)
|
46
|
+
puts
|
47
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
#
|
2
|
+
# Copyright (c) 2006-2008 National ICT Australia (NICTA), Australia
|
3
|
+
#
|
4
|
+
# Copyright (c) 2004-2008 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
|
+
# Define a prototype
|
27
|
+
#
|
28
|
+
|
29
|
+
defPrototype("test:proto:probelink") { |p|
|
30
|
+
|
31
|
+
p.name = "ProbeLink"
|
32
|
+
p.description = "Get some characteristics of the wireless interface using the wlanconfig list command"
|
33
|
+
|
34
|
+
# Define some properties for this prototype
|
35
|
+
#
|
36
|
+
p.defProperty('omlServer', 'Contact details for the oml collection server', "tcp:#{OmlApp.getServerAddr}:#{OmlApp.getServerPort}")
|
37
|
+
p.defProperty('id', 'ID for this oml client', "/tmp/#{Experiment.ID}")
|
38
|
+
p.defProperty('expId', 'ID for this experiment', "/tmp/#{Experiment.ID}")
|
39
|
+
|
40
|
+
# Set the OML application definition to use
|
41
|
+
#
|
42
|
+
p.addApplication(:wlanconfig_oml2, "test:app:wlanconfig_oml2") { |wlan|
|
43
|
+
wlan.bindProperty('oml-server', 'omlServer')
|
44
|
+
wlan.bindProperty('oml-id', 'id')
|
45
|
+
wlan.bindProperty('oml-exp-id', 'expId')
|
46
|
+
}
|
47
|
+
|
48
|
+
}
|
@@ -0,0 +1,64 @@
|
|
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
|
+
# Define a prototype
|
27
|
+
#
|
28
|
+
|
29
|
+
p = Prototype.create("test:proto:raw_receiver")
|
30
|
+
p.name = "RAW Receiver"
|
31
|
+
p.description = "Nodes which receive packets"
|
32
|
+
p.defProperty('protocol', 'Protocol to use', 'udp')
|
33
|
+
p.defProperty('rxdev', 'rx dev interface')
|
34
|
+
p.defProperty('dstfilter', 'dst ip address as filter')
|
35
|
+
|
36
|
+
otr= p.addApplication('otr', "test:app:otr")
|
37
|
+
otr.bindProperty('protocol')
|
38
|
+
otr.bindProperty('rxdev')
|
39
|
+
otr.bindProperty('dstfilter')
|
40
|
+
|
41
|
+
otr.addMeasurement('receiverport',Filter::TIME,
|
42
|
+
{Filter::SAMPLE_SIZE => 1},
|
43
|
+
[
|
44
|
+
['pkt_seqno'],
|
45
|
+
['flow_no'],
|
46
|
+
['rcvd_pkt_size', Filter::SUM],
|
47
|
+
['rx_timestamp'],
|
48
|
+
['rssi'],
|
49
|
+
['xmitrate']
|
50
|
+
]
|
51
|
+
)
|
52
|
+
|
53
|
+
otr.addMeasurement('flow', Filter::SAMPLE,
|
54
|
+
{Filter::SAMPLE_SIZE => 1},
|
55
|
+
[
|
56
|
+
['flow_no'],
|
57
|
+
['sender_port']
|
58
|
+
]
|
59
|
+
)
|
60
|
+
|
61
|
+
if $0 == __FILE__
|
62
|
+
p.to_xml.write($stdout, 2)
|
63
|
+
puts
|
64
|
+
end
|
@@ -0,0 +1,48 @@
|
|
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 Prototype definition
|
26
|
+
# This prototype contains a single UDP traffic sink, which uses the
|
27
|
+
# existing modified application otr2_mp.
|
28
|
+
# Note: the application 'otr2_mp' was contributed by a student and is not
|
29
|
+
# officially supported by the OMF/OML team
|
30
|
+
#
|
31
|
+
defPrototype("test:proto:receiver2_mp") do |p|
|
32
|
+
|
33
|
+
p.name = "Receiver2-Multipah"
|
34
|
+
p.description = "Nodes which receive packets from multiple paths"
|
35
|
+
# List properties of prototype
|
36
|
+
p.defProperty('sink', 'Task to perform on received packets', 'udpmi')
|
37
|
+
p.defProperty('localHost', 'Host that generate the packets')
|
38
|
+
p.defProperty('debugLevel', 'Level of debug messages to output', 0)
|
39
|
+
|
40
|
+
# Define applications to be installed on this type of node,
|
41
|
+
# bind the application properties to the prototype properties.
|
42
|
+
#
|
43
|
+
p.addApplication("test:app:otr2_mp") do |otr|
|
44
|
+
otr.bindProperty('sink')
|
45
|
+
otr.bindProperty('udpmi:local_host', 'localHost')
|
46
|
+
otr.bindProperty('debug-level', 'debugLevel')
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,54 @@
|
|
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 Prototype definition
|
26
|
+
# This prototype contains a single UDP traffic generator, which uses the
|
27
|
+
# existing modified application otg2_mp.
|
28
|
+
# Note: the application 'otg2_mp' was contributed by a student and is not
|
29
|
+
# officially supported by the OMF/OML team
|
30
|
+
#
|
31
|
+
defPrototype("test:proto:sender2_mp") do |p|
|
32
|
+
p.name = "Sender2-Multipath"
|
33
|
+
p.description = "A node which transmit a stream of packets over multiple paths"
|
34
|
+
# List properties of prototype
|
35
|
+
p.defProperty('protocol', 'Protocol to use', 'udpm')
|
36
|
+
p.defProperty('generator', 'Generator to use', 'cbr')
|
37
|
+
p.defProperty('localHost', 'Host that generate the packets')
|
38
|
+
p.defProperty('destinationHost', 'Host to send packets to')
|
39
|
+
p.defProperty('debugLevel', 'Level of debug messages to output', 0)
|
40
|
+
p.defProperty('disjointPath', 'Flag to use (or not) disjoint paths', 1)
|
41
|
+
|
42
|
+
|
43
|
+
# Define applications to be installed on this type of node,
|
44
|
+
# bind the application properties to the prototype properties.
|
45
|
+
#
|
46
|
+
p.addApplication("test:app:otg2_mp") {|otg|
|
47
|
+
otg.bindProperty('protocol')
|
48
|
+
otg.bindProperty('generator')
|
49
|
+
otg.bindProperty('udpm:local_host', 'localHost')
|
50
|
+
otg.bindProperty('udpm:dst_host', 'destinationHost')
|
51
|
+
otg.bindProperty('debug-level', 'debugLevel')
|
52
|
+
otg.bindProperty('udpm:disjoint', 'disjointPath')
|
53
|
+
end
|
54
|
+
end
|