wiki:WiMAX/WiMAX-Tutorial/Dash/05

Version 2 (modified by cbn228@nyu.edu, 11 years ago) (diff)

--

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:

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"

Next