| | 1 | [wiki:WikiStart Orbit] > [wiki:Documentation/Athstats Athstats] > [wiki:Documentation/Athstats/ScriptsRepository Scripts Repository] > UDP/TCP Unicast |
| | 2 | |
| | 3 | {{{ |
| | 4 | |
| | 5 | require 'net/http' |
| | 6 | require 'uri' |
| | 7 | |
| | 8 | Experiment.name = "tutorial-1a" |
| | 9 | Experiment.project = "orbit:tutorial" |
| | 10 | |
| | 11 | defProperty('rate', 300, 'Bits per second sent from sender') |
| | 12 | defProperty('packetSize', 256, 'Size of packets sent from sender') |
| | 13 | defProperty('startExp', 0, 'Start experiment flag - set to true only when all nodes have associated') |
| | 14 | |
| | 15 | defNodes('receiver', [1,2]) {|node| |
| | 16 | node.image = nil # assume the right image to be on disk |
| | 17 | node.prototype("test:proto:receiver" , { |
| | 18 | 'hostname' => '192.168.1.2', |
| | 19 | 'protocol' => 'udp' |
| | 20 | }) |
| | 21 | node.net.w0.type = 'a' |
| | 22 | node.net.w0.essid = "neo" |
| | 23 | node.net.w0.mode = "master" |
| | 24 | node.net.w0.ip = "%192.168.%x.%y" |
| | 25 | } |
| | 26 | |
| | 27 | defNodes('sender', [1,1]) {|node| |
| | 28 | node.image = nil # assume the right image to be on disk |
| | 29 | node.prototype("test:proto:sender", { |
| | 30 | 'destinationHost' => '192.168.1.2', |
| | 31 | 'packetSize' => Experiment.property("packetSize"), |
| | 32 | 'rate' => Experiment.property("rate"), |
| | 33 | 'protocol' => 'udp', |
| | 34 | }) |
| | 35 | node.net.w0.type = 'a' |
| | 36 | node.net.w0.essid = "neo" |
| | 37 | node.net.w0.mode = "managed" |
| | 38 | node.net.w0.ip = "%192.168.%x.%y" |
| | 39 | } |
| | 40 | |
| | 41 | defNodes('allnodes', [[1,1],[1,2]]) {|node| |
| | 42 | node.image = nil # assume the right image to be on disk |
| | 43 | node.prototype("test:proto:driverqueryapp", { |
| | 44 | 'interface' => 'ath0', |
| | 45 | 'interval' => '1000', |
| | 46 | }) |
| | 47 | } |
| | 48 | |
| | 49 | whenAllInstalled() {|node| |
| | 50 | Experiment.props.packetSize = 1350 |
| | 51 | Experiment.props.rate = 35000 |
| | 52 | Experiment.props.startExp = 0 |
| | 53 | |
| | 54 | puts "Starting applications" |
| | 55 | |
| | 56 | nodes('allnodes').startApplications |
| | 57 | nodes('receiver').startApplications |
| | 58 | nodes('sender').startApplications |
| | 59 | |
| | 60 | wait 60 |
| | 61 | |
| | 62 | puts "Stopping applications" |
| | 63 | |
| | 64 | nodes('sender').stopApplications |
| | 65 | nodes('receiver').stopApplications |
| | 66 | nodes('allnodes').stopApplications |
| | 67 | |
| | 68 | wait 10 |
| | 69 | Experiment.done |
| | 70 | } |
| | 71 | |
| | 72 | }}} |