Changes between Version 1 and Version 2 of Internal/RunningDemos


Ignore:
Timestamp:
Dec 21, 2005, 7:34:16 PM (19 years ago)
Author:
kishore
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Internal/RunningDemos

    v1 v2  
    11= HowTo for ORBIT Demos =
    2 This document describes the technical procedure for showing demonstrations on the ORBIT Indoor testbed. The current version covers two demos
     2This document describes the technical procedure for showing demonstrations on the ORBIT Indoor testbed. The objective here is to cover all the technical aspects so that any novice ORBIT user can run these demos. The current version covers two demos
    33  * Conference room demo
    44  * Streaming video demo
     5
     6Future demos should also include their details here.
     7
     8== Conference room demo ==
     9
     10
     11== Streaming video demo ==
     12
     13=== Revision History ===
     14
     15|| Version || Date || Revised by || Changes
     16|| v0.1 || 2005-10-25 || Mesut Ali Ergin || Initial version
     17|| v0.2 || 2005-10-27 || Mesut Ali Ergin || Updates some IP addresses, added UDP streaming port number.
     18
     19=== Objective ===
     20In this demo, purpose is to run three concurrent video streams on three node pairs ([1,2],[1,8],[2,1],[2,5],[3,2],[3,8]). These three pairs should nearly saturate the network and by enabling admission control on one of the pairs, we should be able to see that one of the streams is not accepted in the first place for routing. Direction of the flow is designed to be like
     21
     22{{{
     23     VIDEO                            VIDEO
     24    SOURCES                        DESTINATIONS
     25             Streaming on Wireless
     26      [1,2] -----------------------> [1,8]   } Streaming on Wired
     27      [2,1] -----------------------> [2,5]   }====================> DISPLAY
     28      [3,2] -----------------------> [3,8]   }                      MACHINE
     29               UDP Streaming to                  HTTP Streaming to
     30                destport 1234                    destports 80XY
     31}}}
     32
     33All script files (except the ones in the node image file) are compiled into a nodehandler tarball and they can be found in repository/test/exp folder after extracting nodeHandler-panasonic.0.1.tar.gz. This tarball is available for download from http://www.winlab.rutgers.edu/~ergin/files/nodeHandler-panasonic.0.1.tar.gz
     34
     35=== Preliminaries ===
     36
     371. '''Image name'''[[BR]]panasonic-demo-2.4.26-click-20051025.ndz node image file must be used. Resides on repository2:/export/orbit/image. It includes following additional installed features onto the standard click image:
     38  * Lunar protocol source code and compiled modules
     39  * VLC Media Player 0.8.2
     40  * ssh key files for hosts [1,2],[1,8],[2,1],[2,5],[3,2],[3,8]
     41  * bash files for experiment support: send-stream,sh, receive-stream.sh, stop-everything.sh
     42
     432. '''nodeHandler scripts'''[[BR]]There are two scripts with names streaming-panasonic.rb and streaming-panasonic-stop.rb. Former is used to start the experiment, and the latter is used to stop it. nodeHandler version 1.71 (modified to support execution of bash scripts and has been used with those scripts. As of writing, due to a bug in lunar modules, stop script cannot unload klunar and ksapf modules, after they are involved in data transfer. So, for a clean restart, node power cycle might be needed.
     44  * Display machine[[BR]]It must be able to reach ports on grid nodes using TCP. Display machine at ORBIT control room has that capability (or any other machine connected to that wall plug).  The port numbers to connect are of 80XY format, where X and Y are coordinates of the node. Display machine should have VLC Media Player 0.8.2 installed in  order to show the streams to user. E.g., if experiment is run on sandbox 9, the URL to the stream on [1,2] -> [1,8] pair is http://10.19.1.8:8018
     45
     46* Video Clip packages[[BR]]There are two debian packages (with different set of video clips in them) called,
     47
     48teststream_1.1-1_all.deb, teststream_1.1-2_all.deb. Normally, experiment support
     49
     50script checks the package and installs if it does not exist on the particular
     51
     52source node automatically. If debian repository, which is
     53
     54repository1.orbit-lab.org (or the network connected to it) fails, it may not be
     55
     56loaded on demand. In that case, the mentioned package have to be uploaded and
     57
     58installed manually to the node. Video clips are not embedded into the O/S image
     59
     60file due to the image file size concerns. The folder on which this debian
     61
     62package files reside is repository1:/var/www/video/binary
     63
     64
     65
     66* Auxiliary scripts
     67
     68
     69
     70Following are the the shell scripts that can be used on the console to help
     71
     72maintaining the experiment. They are not required for functionality, they are
     73
     74only for helping with some of the tasks.
     75
     76- poweroff-panasonic/poweron-panasonic: Powers off or on all the experiment
     77
     78nodes by contacting CMC web interface accordingly.
     79
     80- getlunarips: Retrieves lunar interface IP addresses from the streaming nodes.
     81
     82Must be run during the experiment.
     83
     84- scp-deb: copies teststream debian package to three source nodes via scp.
     85
     86
     87
     88Steps to Follow:
     89
     90
     91
     92Step 1)
     93
     94
     95
     96Make sure that all nodes in the experiment are powered off. poweroff-panasonic
     97
     98shell script can be used for that purpose.
     99
     100
     101
     102Image the experiment nodes with the following command:
     103
     104
     105
     106 imageNodes [1,2],[1,8],[2,1],[2,5],[3,2],[3,8] \
     107
     108   panasonic-demo-2.4.26-click-20051025.ndz
     109
     110
     111
     112Carefully watch the imaging process. It should take less than 10 mins. If any of
     113
     114the nodes do not come up with PXE image or any of them check back in during the
     115
     116imaging process, kill the imaging nodeHandler instance, power-off the nodes, and
     117
     118restart imaging.
     119
     120
     121
     122If successful, nodes will be powered off automatically. They can be powered-on
     123
     124with experiment script or with poweron-panasonic shell script without starting
     125
     126the experiment.
     127
     128
     129
     130Step 2)
     131
     132
     133
     134Start the experiment with the following command after getting into
     135
     136nodeHandler-panasonic/ruby folder:
     137
     138
     139
     140 ruby nodeHandler.rb -s false test:exp:streaming-panasonic
     141
     142
     143
     144change test:exp portion if the script is being invoked from some other folder
     145
     146structure. After all nodes check in, it will take at most 10 seconds for the
     147
     148streaming to start on the node pairs, except first time. The first time run will
     149
     150involve an apt-get install command to install video clip debian package file.
     151
     152So, this adds at most 2 minutes. Subsequent runs should not have this additional
     153
     154delay. This delay is not a blocking delay for nodeHandler. So, experimenter
     155
     156needs to wait this amount of time after the nodeHandler start script is invoked.
     157
     158
     159
     160Step 3)
     161
     162
     163
     164Use display machine to run three instances of VLC player, and enter URL info of
     165
     166the stream into 'File->Open Network Stream->HTTP' text field. URL format is
     167
     168http://CTRL_IP_of_Node:80XY, where X and Y are coordinates of the node. In
     169
     170current setup, the URLs translate into:
     171
     172       http://10.19.1.8:8018
     173
     174       http://10.19.2.5:8025
     175
     176       http://10.19.3.8:8038
     177
     178Invoking these URLs should bring up three video streaming windows on display
     179
     180machine. With the current setup, there should be perceivable distortion on the
     181
     182streams, especially on the bigger one.
     183
     184
     185
     186Step 4)
     187
     188
     189
     190Log-into node3-2 with 'ssh root@node3-2' command. Execute 'pkill vlc' on the
     191
     192node to stop streaming of the video. After a few seconds, video should freeze on
     193
     194the corresponding VLC window on display machine. Stream can be restarted, if
     195
     196necessary, by executing 'sh execfile' on the node.
     197
     198
     199
     200Step 5)
     201
     202
     203
     204After stopping the stream on one pair, invoke monitor program on node3-8 (or
     205
     206node3-2), by executing 'lin/monitor2 ath1raw 3000 500'. Here, 3000 means that
     207
     208the link is supposed to support 3Mbps bandwidth, and 500 means that the
     209
     210application packet rate is 500 packets/sec. This command should run a process
     211
     212that updates /proc/pkt_rate periodically. After a few updates, re-invoke the
     213
     214streaming by executing 'sh execfile'. Streaming process should start, but
     215
     216pressing play button on the VLC software on display machine should not display
     217
     218the stream, since it is not accepted for routing on the wireless network.
     219
     220
     221
     222Step 6)
     223
     224
     225
     226Stop the monitor program, and manually enter 'echo 40X6000'>/proc/pkt_rate to
     227
     228tell the admission control algorithm that there is enough bandwidth for the
     229
     230video. Re-invoking the stream and trying to see it on display (as explained in
     231
     232Step5) should succeed this time.
     233
     234
     235
     236
     237
     238Troubleshooting
     239
     240
     241
     242If video is not visible on the display machine, check the following things to
     243
     244see what might have gone wrong by logging into a source and destination pair.
     245
     246
     247
     248- At the source and destination, do a 'ps aux'. There should be a group of vlc
     249
     250processes running (at least three or four). Run 'cat execfile' to check IP
     251
     252addresses for streaming client and server are produced correctly. If not, re-run
     253
     254the nodeHandler script to see if problem persists.
     255
     256
     257
     258- Make sure that video clip package is installed correctly by looking into
     259
     260/usr/streams directory. There should be MPEG files in that folder. If not,
     261
     262upload teststream_1.1-2_all.deb to source nodes and install it with
     263
     264'dpkg -i teststream_1.1-2_all.deb' command.
     265
     266
     267
     268- Make sure that you can ping the destination node's lunar IP address
     269
     270(192.168.42.X) from the source node. If not, try restarting node, since lunar
     271
     272modules can not be reloaded in a healthy manner.
     273
     274
     275
     276- Make sure that display machine VLC client can connect to the stream
     277
     278destination node. Kill the destination vlc instance (at stream destination node)
     279
     280with 'pkill vlc' and invoke it the same way specified in execfile, without -d
     281
     282option. This will enable foreground mode and process should inform whenever
     283
     284display VLC client is connected to the destination node.