wiki:WiMAX/WiMAX-Tutorial/Dash/04

Previous

Writing the Experiment Script

The other part of the experiment that must be installed in the OMF console is the OMF 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

Last modified 11 years ago Last modified on 07/22/13 20:09:27