omf_ec 6.0.0.pre.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
+ }