Version 1 (modified by 11 years ago) (diff) | ,
---|
Writing the Experiment Script
While the disk image is loading onto his nodes, he prepares an experiment script. This script describes the configuration of all the OMF-enabled resources in the experiment, and the sequence of events in the experiment.
The experiment script is given here:
defProperty('hrnSuffix', ".outdoor.orbit-lab.org", "Suffix to use for the HRN of resources") defProperty('hrnPrefix', "node1-", "Prefix to use for the HRN of resources") defProperty('serverNum', "5", "Server's node number:x-y") defProperty('rxNum', "3", "Receiver's node number:x-y") defProperty('duration', 100, "Duration of experiment") defProperty('serverURL', "http://10.41.41.#{property.serverNum}/", "server's url") defProperty('inputPath', "dash_lo/www-itec.uni-klu.ac.at/ftp/datasets/mmsys12/BigBuckBunny/bunny_2s_480p_only/bunny_Desktop.mpd", "Path of the Media Presentation Description File") defGroup("Server", "#{property.hrnPrefix}#{property.serverNum}#{property.hrnSuffix}") do |node| node.net.e0.ip = '10.41.41.%y%' node.net.e0.netmask = "255.255.0.0" end defGroup("Receiver", "#{property.hrnPrefix}#{property.rxNum}#{property.hrnSuffix}") do |node| node.net.x0.profile = '51' node.net.x0.ip = '10.41.41.%y%' node.net.x0.netmask = "255.255.0.0" node.addApplication('vlc-dash', :id => 'vlc') do |app| app.setProperty('quiet', true) app.setProperty('play-and-exit', true) app.setProperty('intf', 'dummy') app.setProperty('redirect', true) app.setProperty('input', "http://10.41.41.#{property.serverNum}/#{property.inputPath}") app.setProperty('sout', "''#duplicate{dst=display,dst=std{access=file,mux=ts,dst=/root/#{Experiment.ID}.mp4}}''") app.measure('dashRateAdaptation', :samples =>1) app.measure('dashDlSession', :samples =>1) end node.addApplication('wmxstat_universal', :id => 'wmxstat') do |app| app.measure('status') end end onEvent(:ALL_UP_AND_INSTALLED) do |event| system("/usr/local/bin/getbsconf -i wimaxrf --oml-collect tcp:oml:3004 --oml-id console --oml-domain #{Experiment.ID}") wait 5 group("Server").exec("/etc/init.d/apache2 start") wait 10 group("Receiver").startApplication('wmxstat') group("Receiver").startApplication('vlc') wait property.duration group("Receiver").stopApplications system("/usr/bin/ssh root@#{property.hrnPrefix}#{property.rxNum} '/usr/local/bin/iput /root/#{Experiment.ID}.mp4 dash'") wait 10 group("Server").exec("/etc/init.d/apache2 stop") wait 10 Experiment.done end
Deconstructing the experiment script:
Every OMF-enabled node in the experiment (purple node) is represented by a "defGroup" stanza.
Every OML-enabled application that runs on an OMF node is represented by an "addApplication" stanza within the "defGroup"
Note that client1 is running the client application with VLC, and the server is running the client application without VLC.