1 | ##############################################
|
---|
2 | # This script defines the experiment
|
---|
3 | # that has one sender and one receiver
|
---|
4 | # Sender, Receiver - 802.11a channel 36
|
---|
5 | # UDP flow at varying offer load
|
---|
6 | ############################################################
|
---|
7 |
|
---|
8 | require 'net/http'
|
---|
9 | require 'uri'
|
---|
10 |
|
---|
11 | Experiment.name = "rateudp"
|
---|
12 | Experiment.project = "orbit:tutorial"
|
---|
13 |
|
---|
14 | rates = [8000, 9000, 10000, 11000, 12000]
|
---|
15 |
|
---|
16 | Experiment.defProperty('offerload', 500, 'offered load of flow')
|
---|
17 | Experiment.defProperty('packetsize',1024, 'size of flow')
|
---|
18 |
|
---|
19 | #
|
---|
20 | # Define nodes used in experiment
|
---|
21 | #
|
---|
22 | ###########################################
|
---|
23 | # Sender definition and configuration
|
---|
24 | ###########################################
|
---|
25 | defNodes('sender', [1,2]) {|node|
|
---|
26 | node.image = nil # assume the right image to be on disk
|
---|
27 | # use prototype "sender"
|
---|
28 | # and set it's property "destinationHost" to
|
---|
29 | # the receiver node
|
---|
30 | # and bind the remaining properties to the
|
---|
31 | # experiment property space
|
---|
32 | node.prototype("test:proto:sender", {
|
---|
33 | 'destinationHost' => '192.168.1.1',
|
---|
34 | 'packetSize' => prop.packetsize,
|
---|
35 | 'rate' => prop.offerload,
|
---|
36 | 'protocol'=> 'udp'
|
---|
37 | })
|
---|
38 | node.net.w0.ip = "%192.168.%x.%y"
|
---|
39 | node.net.w0.mode = "Master"
|
---|
40 | node.net.w0.type = 'b'
|
---|
41 | node.net.w0.essid = "helloworld"
|
---|
42 | node.net.w0.channel = 1
|
---|
43 | node.net.w0.rate= '11M'
|
---|
44 | }
|
---|
45 | ###########################################
|
---|
46 | # Receiver definition and configuration
|
---|
47 | ###########################################
|
---|
48 |
|
---|
49 | defNodes('receiver', [1,1]) {|node|
|
---|
50 | node.net.w0.ip = "%192.168.%x.%y"
|
---|
51 | node.image = nil # assume the right image to be on disk
|
---|
52 | node.prototype("test:proto:receiver" , {
|
---|
53 | 'protocol' => 'udp_libmac',
|
---|
54 | 'hostname' => '192.168.1.1'
|
---|
55 | })
|
---|
56 | node.net.w0.mode = "Managed"
|
---|
57 | node.net.w0.type = 'b'
|
---|
58 | node.net.w0.essid = "helloworld"
|
---|
59 | }
|
---|
60 |
|
---|
61 | ###########################################
|
---|
62 | # When nodeAgents have reported "OK" to
|
---|
63 | # the nodeHandler start the application
|
---|
64 | ###########################################
|
---|
65 | whenAllInstalled() {|node|
|
---|
66 |
|
---|
67 | nodes('receiver').startApplications
|
---|
68 | nodes('sender').startApplications
|
---|
69 |
|
---|
70 | rates.each {|rate_level|
|
---|
71 | wait 20
|
---|
72 | prop.packetsize= 52
|
---|
73 | prop.offerload =50
|
---|
74 | wait 30
|
---|
75 | prop.packetsize= 1024
|
---|
76 | prop.offerload= rate_level
|
---|
77 | }
|
---|
78 |
|
---|
79 | allNodes.stopApplications
|
---|
80 |
|
---|
81 | Experiment.done
|
---|
82 |
|
---|
83 | }
|
---|