wiki:GEC16Agenda/WiMAX-Tutorial/Streamload/08

Version 32 (modified by Fraida Fund, 6 years ago) (diff)

--

Previous

Revise, Repeat

After looking at the measurements collected by the 'wxmstat' application, we realize that the signal strength on the nodes is too high. The WiMAX CINR (a measure of signal quality) is 30 dB, which is very high, and so the maximum number of SVC layers (2) is downloaded in all cases. We want a more realistic environment, so we turn down the base station transmit power from 40 dBm to 20 dBm:

wget -qO- "http://wimaxrf:5052/wimaxrf/bs/set?bs_tx_power=20"
wget -qO- "http://wimaxrf:5052/wimaxrf/bs/restart"

Confirm that the base station power is now set to 20:

wget -qO- "http://wimaxrf:5052/wimaxrf/bs/get?bs_tx_power" | xml_pp

should output:

<STATUS>
  <BaseStation>
    <bs_tx_power>
      <bs_tx_power>25</bs_tx_power>
    </bs_tx_power>
  </BaseStation>
</STATUS>

We can also use the programmable attenuation on Sandbox 4 to create a situation where signal strength varies over the duration of the experiment. To do this, we make some changes to the experiment script (the modified version is saved as wmxtutor-streamload2.rb).

We add some properties to the beginning of his experiment:

defProperty('attUrl', "http://internal2dmz.orbit-lab.org:5054/instr/set?", "Path to use to set attenuation")

and change the sequence of events in the experiment to look like this:

onEvent(:ALL_UP_AND_INSTALLED) do |event|
  l =  [7,8,10,6,5,7,14,15,16,13,12,18,19,15,13,12,11,11,8]
  wait 5
  system("/home/#{ENV['USER']}/getbsconf -i wimaxrf --oml-server tcp:oml:3003 --oml-id console --oml-exp-id #{Experiment.ID}")
  group("server").exec("/usr/bin/python -m SimpleHTTPServer")
  group("client1").startApplications
  l.each do |a|
    system("/usr/bin/wget -qO- \"#{property.attUrl}portA=#{property.client1}\&portB=9\&att=#{a}\"")
    wait 5
  end
  group("client1").stopApplications
  wait 5
  group("client2").startApplications
  l.each do |a|
    system("/usr/bin/wget -qO- \"#{property.attUrl}portA=#{property.client2}\&portB=9\&att=#{a}\"")
    wait 5
  end
  group("client2").stopApplications
  wait 5
  allGroups.stopApplications
  Experiment.done
end

The effect of this is to change the attenuation between the WiMAX BS and the client in a fixed sequence every five seconds during the experiment.


After running this modified experiment with

omf exec wmxtutor-streamload2.rb 

and pushing the data and log files to iRODs:

iarchive -e expID -c streamload

try creating the same plots as before from the new expID.sq3 file:

  • Plot table 'streamload_play' with 'chunk' on the x-axis, 'layer' on the y-axis, and group by 'oml_sender_id'. This will show you the number of layers downloaded for each of the 40 video segments, for each client.
  • Plot table 'wmxstat_status' with 'oml_seq' on the x-axis, 'cinr' on the y-axis, and group by 'oml_sender_id'. This will show you the WiMAX link quality as measured at each node for the duration of the experiment.

The results may look something like this:


WiMAX link status

Layers played, per segment

Note how the WiMAX link quality changes over the duration of the experiment. Also, note that the number of layers in the video playback changes with the link quality.

Does streamloading outperform streaming in average number of layers played? Try creating the following plot, for each experiment result: Plot 'streamload_play' with 'oml_sender_id' on the x-axis and 'layers' on the y-axis. This will show you the average number of layers played for each client.

You can also calculate these numbers directly by running SQL commands on the result database; try (using your own expID):

sqlite3 /var/lib/oml2/expID.sq3 'select oml_sender_id,avg(layers) from streamload_play group by oml_sender_id;'

Next

Attachments (2)

Download all attachments as: .zip