'''[wiki:WiMAX/WiMAX-Tutorial/Dash/04 Previous]''' == 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: {{{ #!ruby 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 }}} [[br]] > '''Deconstructing the experiment script''': [[br]] > Every OMF-enabled node in the experiment (purple node) is represented by a "defGroup" stanza. [[br]] > Every OML-enabled application that runs on an OMF node is represented by an "addApplication" stanza within the "defGroup" '''[wiki:WiMAX/WiMAX-Tutorial/Dash/06 Next]'''