1 | # -*- coding: utf-8 -*-
|
---|
2 | defProperty('contr', 'node2-1', 'WiSHFUL Controller Node')
|
---|
3 | defProperty('path','/root/wishful/examples/edca/',"Path to WiSHFUL configuration directory")
|
---|
4 | defProperty('accesspoints', 'node1-3,node1-5', "node ID for access point")
|
---|
5 | defProperty('clients', 'node1-4,node1-6', "node ID for client nodes")
|
---|
6 | defProperty('channel', 11, "WiFi channel to use")
|
---|
7 | defProperty('duration', 60, "Seconds to run the application")
|
---|
8 |
|
---|
9 | defApplication('controller') do |app|
|
---|
10 | app.description = 'WiSHFUL Simple Controller Program'
|
---|
11 | app.path = property.path+'wishful_simple_controller'
|
---|
12 | app.defProperty('config', 'Configuration file', '--config', {:type => :string})
|
---|
13 | end
|
---|
14 |
|
---|
15 | defApplication('agent') do |app|
|
---|
16 | app.description = 'WiSHFUL Simple Agent Program'
|
---|
17 | app.path = property.path+'wishful_simple_agent'
|
---|
18 | app.defProperty('config', 'Configuration file', '--config', {:type => :string})
|
---|
19 | end
|
---|
20 |
|
---|
21 |
|
---|
22 | defGroup( 'Controllers', property.contr ) do |node|
|
---|
23 | node.addApplication( "controller" ) do |app|
|
---|
24 | app.setProperty('config', property.path+'controller_config.yaml')
|
---|
25 | end
|
---|
26 | end
|
---|
27 |
|
---|
28 | @i = 0
|
---|
29 | defGroup('AP', property.accesspoints) do |node|
|
---|
30 | node.addApplication( "agent" ) do |app|
|
---|
31 | app.setProperty('config', property.path+'agent_config.yaml')
|
---|
32 | end
|
---|
33 | node.addApplication("test:app:iperf") do |app|
|
---|
34 | app.setProperty('server', true)
|
---|
35 | app.setProperty('reportstyle','O')
|
---|
36 | app.setProperty('oml-server', "oml:3003")
|
---|
37 | app.setProperty('oml-id', "#{@i}")
|
---|
38 | app.setProperty('oml-exp-id', "#{Experiment.ID}")
|
---|
39 | end
|
---|
40 | node.net.w0.mode = "master"
|
---|
41 | node.net.w0.type = 'g'
|
---|
42 | node.net.w0.channel = property.channel.to_s
|
---|
43 | @i = @i + 1
|
---|
44 | node.net.w0.essid = "WiSHFUL#{@i}"
|
---|
45 | node.net.w0.ip = "192.168.0.#{@i}"
|
---|
46 | end
|
---|
47 |
|
---|
48 | @j = 0
|
---|
49 | defGroup('client', property.clients) do |node|
|
---|
50 | @j = @j + 1
|
---|
51 | node.addApplication( "agent" ) do |app|
|
---|
52 | app.setProperty('config', property.path+'agent_config.yaml')
|
---|
53 | end
|
---|
54 | node.addApplication("test:app:iperf") do |app|
|
---|
55 | app.setProperty('client', "192.168.0.#{@j}")
|
---|
56 | app.setProperty('time', 20)
|
---|
57 | app.setProperty('interval', 5)
|
---|
58 | app.setProperty('reportstyle','O')
|
---|
59 | app.setProperty('oml-server', "oml:3003")
|
---|
60 | app.setProperty('oml-id', "#{@i}")
|
---|
61 | app.setProperty('oml-exp-id', "#{Experiment.ID}")
|
---|
62 | end
|
---|
63 | node.net.w0.mode = "managed"
|
---|
64 | node.net.w0.type = 'g'
|
---|
65 | node.net.w0.channel = property.channel.to_s
|
---|
66 | node.net.w0.essid = "WiSHFUL#{@j}"
|
---|
67 | @i = @i + 1
|
---|
68 | node.net.w0.ip = "192.168.0.#{@i}"
|
---|
69 | end
|
---|
70 |
|
---|
71 | onEvent(:ALL_UP_AND_INSTALLED) do |event|
|
---|
72 | info "Wait for all nodes to come up"
|
---|
73 | wait 20
|
---|
74 | allGroups.startApplications
|
---|
75 | info "Both controller and agent are started; running for #{property.duration}"
|
---|
76 | wait property.duration
|
---|
77 | allGroups.stopApplications
|
---|
78 | info "Both controller and agent are stopped..."
|
---|
79 | Experiment.done
|
---|
80 | end
|
---|
81 |
|
---|