omf_ec 6.0.0.pre.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (66) hide show
  1. data/.gitignore +4 -0
  2. data/Gemfile +4 -0
  3. data/Rakefile +7 -0
  4. data/bin/omf_test +161 -0
  5. data/config/ec.yml +164 -0
  6. data/exp_repo/system/exp/eventlib.rb +96 -0
  7. data/exp_repo/system/exp/imageNode.rb +283 -0
  8. data/exp_repo/system/exp/reset.rb +21 -0
  9. data/exp_repo/system/exp/saveNode.rb +99 -0
  10. data/exp_repo/system/exp/stat.rb +49 -0
  11. data/exp_repo/system/exp/stdlib.rb +122 -0
  12. data/exp_repo/system/exp/tell.rb +53 -0
  13. data/exp_repo/system/exp/testlib.rb +12 -0
  14. data/exp_repo/system/exp/winlib.rb +154 -0
  15. data/exp_repo/system/topo/active.rb +9 -0
  16. data/exp_repo/system/topo/all.rb +10 -0
  17. data/exp_repo/system/topo/circle.rb +23 -0
  18. data/exp_repo/test/app/aodvd.rb +73 -0
  19. data/exp_repo/test/app/appDef1.rb +102 -0
  20. data/exp_repo/test/app/athstats.rb +76 -0
  21. data/exp_repo/test/app/echo.rb +36 -0
  22. data/exp_repo/test/app/gennyReceiverAppDef.rb +100 -0
  23. data/exp_repo/test/app/gennySenderAppDef.rb +106 -0
  24. data/exp_repo/test/app/itgdec.rb +79 -0
  25. data/exp_repo/test/app/itgr.rb +77 -0
  26. data/exp_repo/test/app/itgs.rb +105 -0
  27. data/exp_repo/test/app/nop.rb +36 -0
  28. data/exp_repo/test/app/otg2.rb +68 -0
  29. data/exp_repo/test/app/otg2_mp.rb +56 -0
  30. data/exp_repo/test/app/otr2.rb +56 -0
  31. data/exp_repo/test/app/otr2_mp.rb +51 -0
  32. data/exp_repo/test/app/trace_oml2.rb +62 -0
  33. data/exp_repo/test/app/wlanconfig_oml2.rb +42 -0
  34. data/exp_repo/test/exp/conf-room-demo.rb +118 -0
  35. data/exp_repo/test/exp/planetlab.rb +82 -0
  36. data/exp_repo/test/exp/test01.rb +42 -0
  37. data/exp_repo/test/exp/test02.rb +60 -0
  38. data/exp_repo/test/exp/test03.rb +95 -0
  39. data/exp_repo/test/exp/test04.rb +105 -0
  40. data/exp_repo/test/exp/test05.rb +87 -0
  41. data/exp_repo/test/exp/test06.rb +71 -0
  42. data/exp_repo/test/exp/tutorial/hello-world-wired.rb +79 -0
  43. data/exp_repo/test/exp/tutorial/hello-world-wireless.rb +87 -0
  44. data/exp_repo/test/exp/tutorial/using-filters.rb +69 -0
  45. data/exp_repo/test/exp/tutorial/using-groups.rb +64 -0
  46. data/exp_repo/test/exp/tutorial/using-properties.rb +93 -0
  47. data/exp_repo/test/exp/tutorial/using-prototypes.rb +111 -0
  48. data/exp_repo/test/proto/aodvrouter.rb +55 -0
  49. data/exp_repo/test/proto/driverqueryapp.rb +59 -0
  50. data/exp_repo/test/proto/forwarder.rb +73 -0
  51. data/exp_repo/test/proto/itgcbrsender.rb +70 -0
  52. data/exp_repo/test/proto/itgdecoder.rb +64 -0
  53. data/exp_repo/test/proto/itgreceiver.rb +55 -0
  54. data/exp_repo/test/proto/itgvoipsender.rb +64 -0
  55. data/exp_repo/test/proto/listener2.rb +62 -0
  56. data/exp_repo/test/proto/nop.rb +47 -0
  57. data/exp_repo/test/proto/probelink.rb +48 -0
  58. data/exp_repo/test/proto/raw_receiver.rb +64 -0
  59. data/exp_repo/test/proto/receiver2_mp.rb +48 -0
  60. data/exp_repo/test/proto/sender2_mp.rb +54 -0
  61. data/exp_repo/test/proto/udp_receiver.rb +55 -0
  62. data/exp_repo/test/proto/udp_sender.rb +61 -0
  63. data/lib/omf_ec/version.rb +3 -0
  64. data/lib/omf_ec.rb +5 -0
  65. data/omf_ec.gemspec +24 -0
  66. 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