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,79 @@
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
+
@@ -0,0 +1,77 @@
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
+
@@ -0,0 +1,105 @@
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
+
@@ -0,0 +1,36 @@
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
+ }
@@ -0,0 +1,68 @@
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
@@ -0,0 +1,56 @@
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
@@ -0,0 +1,56 @@
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
@@ -0,0 +1,51 @@
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
@@ -0,0 +1,62 @@
1
+ defApplication('test:app:trace_oml2', 'trace_oml2'){|a|
2
+
3
+ a.path = "/usr/bin/trace_oml2"
4
+ a.defProperty('interface', 'interface to listen to', '-i')
5
+ a.defProperty('radiotap', 'Radiotap metadata enable', '-r', {:dynamic => false, :type => :boolean})
6
+ a.defProperty('filter', 'some filers for this tap following libpcap syntax', '-f')
7
+
8
+ a.defMeasurement("radiotap") do |m|
9
+ m.defMetric('tsft', :long)
10
+ m.defMetric('rate', :long)
11
+ m.defMetric('freq', :long)
12
+ m.defMetric('sig_strength_dBm', :long)
13
+ m.defMetric('noise_strength_dBm', :long)
14
+ m.defMetric('sig_strength', :long)
15
+ m.defMetric('noise_strength', :long)
16
+ m.defMetric('attenuation', :long)
17
+ m.defMetric('attenuation_dB', :long)
18
+ m.defMetric('power', :long)
19
+ m.defMetric('antenna', :long)
20
+ m.defMetric('data_retries', :long)
21
+ m.defMetric('sourceMAC', :string)
22
+ m.defMetric('dstMAC', :string)
23
+ end
24
+
25
+ a.defMeasurement("ip") do |m|
26
+ m.defMetric('ip_tos', :long)
27
+ m.defMetric('ip_len', :long)
28
+ m.defMetric('ip_id', :long)
29
+ m.defMetric('ip_off', :long)
30
+ m.defMetric('ip_ttl', :long)
31
+ m.defMetric('ip_proto', :long)
32
+ m.defMetric('ip_sum', :long)
33
+ m.defMetric('ip_src', :string)
34
+ m.defMetric('ip_dst', :string)
35
+ m.defMetric('ip_sizeofpacket', :long)
36
+ end
37
+
38
+ a.defMeasurement("tcp") do |m|
39
+ m.defMetric('tcp_source', :long)
40
+ m.defMetric('tcp_dest', :long)
41
+ m.defMetric('tcp_seq', :long)
42
+ m.defMetric('tcp_ack_seq', :long)
43
+ m.defMetric('tcp_window', :long)
44
+ m.defMetric('tcp_checksum', :long)
45
+ m.defMetric('tcp_urgptr', :long)
46
+ m.defMetric('tcp_packet_size', :long)
47
+ end
48
+
49
+ a.defMeasurement("udp") do |m|
50
+ m.defMetric('udp_source', :long)
51
+ m.defMetric('udp_dest', :long)
52
+ m.defMetric('udp_len', :long)
53
+ m.defMetric('udp_checksum', :long)
54
+ end
55
+
56
+ a.defMeasurement("sensor") do |m|
57
+ m.defMetric('val', :long)
58
+ m.defMetric('inverse', :float)
59
+ m.defMetric('name', :string)
60
+ end
61
+
62
+ }
@@ -0,0 +1,42 @@
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
+ require 'handler/application/appDefinition'
26
+
27
+ defApplication('test:app:wlanconfig_oml2', 'wlanconfig_oml2') { |a|
28
+
29
+ a.version(1, 1, 1)
30
+ a.shortDescription = "Get information about the wireless network"
31
+ a.description = <<TEXT
32
+ This application get information about the neighbours of the node using the wlanconfig command
33
+ TEXT
34
+
35
+ a.defProperty('oml-server', 'Contact details for the oml collection server','--oml-server')
36
+ a.defProperty('oml-id', 'ID for this oml client','--oml-id')
37
+ a.defProperty('oml-exp-id', 'ID for this experiment','--oml-exp-id')
38
+
39
+ # Where to find the application 'wlanconfig_oml2' which calls wlanconfig
40
+ # and parses its outputs
41
+ a.path = "/usr/bin/wlanconfig_oml2"
42
+ }