{{{ ############# Tutorial1 ################################## # This script defines the experiment # that has one sender and one receiver # Sender, Receiver - 802.11g # UDP flow offered load = 1 Mbps # Receiver reports throughput, packet loss,avg. delay and jitter # Traffic Generator is D-ITG ############################################################ Experiment.name = "tutorial-itg" Experiment.project = "orbit:tutorial" # # Define nodes used in experiment ########################################### # Receiver definition and configuration ########################################## defNodes('receiver', [1,2]) {|node| node.image = nil # assume the right image to be on disk node.prototype("test:proto:itgreceiver", { 'logfile' => "/tmp/res" } ) node.net.w0.ip = "%192.168.%x.%y" node.net.w0.mode = "master" node.net.w0.type = 'b' node.net.w0.essid = "helloworld" } ########################################### # Decoder definition and configuration # Note that we need a decoder to extract # information from the binary file and print ########################################### defNodes('decoder' , [1,2]) {|node| node.image = nil # assume the right image to be on disk node.prototype("test:proto:itgdecoder", { 'logfile' => "/tmp/res", 'tput_report_interval' => 1000, 'delay_report_interval' => 1000, 'loss_report_interval' => 1000, 'jitter_report_interval' => 1000 } ) } # Sender definition and configuration ########################################### defNodes('sender', [1,1]) {|node| node.image = nil # assume the right image to be on disk # use prototype "sender" # and set it's property "destinationHost" to # the receiver node # and bind the remaining properties to the # experiment property space node.prototype("test:proto:itgcbrsender", { 'destinationHost' => '192.168.1.2', 'meter' => 'owdm', #One way delay 'protocol' => 'udp', #UDP client 'constsize' => 1024, #Const payload size (bytes) 'constrate' => 10, #packets per second 'duration' => 60000, #Expt duration (msec) 'gen_delay' => 10000, 'recv_port' => 8000 }) node.net.w0.ip = "%192.168.%x.%y" node.net.w0.mode = "managed" node.net.w0.type = 'b' node.net.w0.essid = "helloworld" } ########################################### # When nodeAgents have reported "OK" to # the nodeHandler start the application ########################################### whenAllInstalled() { wait 20 NodeSet['receiver'].startApplications ###Need to separate receiver and sender start # Receiver opens a TCP port for sending control # information, sender binds to that port. Sleep is # to ensure that receiver is definitely up before # the sender wait 20 ### NodeSet['sender'].startApplications wait 300 NodeSet['decoder'].startApplications wait 10 ########################################### # Shutdown nodes ########################################### Experiment.done } }}}