Changes between Version 27 and Version 28 of Internal/RunningDemos


Ignore:
Timestamp:
Jun 3, 2006, 2:12:38 AM (18 years ago)
Author:
ergin
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Internal/RunningDemos

    v27 v28  
    7575|| v0.1 || 2005-10-25 || Mesut Ali Ergin || Initial version
    7676|| v0.2 || 2005-10-27 || Mesut Ali Ergin || Updates some IP addresses, added UDP streaming port number.
     77|| v0.3 || 2006-06-02 || Mesut Ali Ergin || Revised completely to reflect the stable version of the demo with GUI.
    7778
    7879=== Objective ===
    79 In 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
     80In this demo, purpose is to run three concurrent video streaming sessions on an ad hoc network of nodes [1,2],[1,8],[2,1],[2,5],[3,2],[3,4],[3,8],[8,3]. Each row (1, 2, and 3) is used to communicate one of the streams. These three streams should nearly saturate the network (which is operated at fixed 6Mbps rate using 802.11a @ Ch.36) and by enabling admission control on the network (specifically on row three for the demo purposes), we should be able to see that the stream on row three is not accepted in the first place for routing. Node [8,3] is not used in the first part of the demo. It is brought in to the network to demonstrate that routing protocol (Lunar) is able to discover that alternate route ([3,2]--->[8,3]-->[3,8]) after the fact that admission control tells [3,4] to stop routing the third stream. Direction of the flows are illustrated as
    8081
    8182{{{
     
    8384    SOURCES                        DESTINATIONS
    8485             Streaming on Wireless
    85       [1,2] -----------------------> [1,8]   } Streaming on Wired
    86       [2,1] -----------------------> [2,5]   }====================> DISPLAY
     86      [1,2] -----------------------> [1,8]   }  Streaming on Wired GBps Network
     87      [2,1] -----------------------> [2,5]   }==================================> DISPLAY
     88      [3,2] ---------[3,4]---------> [3,8]   }                                    MACHINE @
     89                                                                                Control Room
     90                     [8,3]
    8791
    88 
    89       [3,2] -----------------------> [3,8]   }                      MACHINE
    90                UDP Streaming to                  HTTP Streaming to
    91                 destport 1234                    destports 80XY
     92    _________________________________________   _______________________________________
     93               UDP Streaming to                            HTTP Streaming to
     94             destination ports #1234                    destination ports 80XY
     95                                               (X= Orbit Node x-coordinate, Y=Orbit Node y-coordinate)
    9296}}}
    9397
    94 All 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
     98All script files (except the ones residing in the node image) and the particular campatible nodehandler are compiled into a nodehandler tarball and it is available for download from http://www.winlab.rutgers.edu/~ergin/files/nodeHandler-streaming.0.2.tar.gz
    9599
    96100=== Preliminaries ===
    97101
    98 1. '''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:
     1021. '''Versions'''[[BR]]Particular nodehandler from the above tarball has to be used. The image file includes following additional installed features onto the standard click image:
    99103  * Lunar protocol source code and compiled modules
    100104  * VLC Media Player 0.8.2
    101   * ssh key files for hosts [1,2],[1,8],[2,1],[2,5],[3,2],[3,8]
    102   * bash files for experiment support: send-stream,sh, receive-stream.sh, stop-everything.sh
     105  * ssh key files for hosts [1,2],[1,8],[2,1],[2,5],[3,2],[3,4],[3,8],[8,3]
     106  * bash files for experiment support: send-stream,sh, receive-stream.sh, stop-everything.sh etc.
    103107
    104 2. '''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 loading/unloading of driver modules) 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.
    105 3. '''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
     1082. '''Display machine'''[[BR]]It must be able to reach ports on grid nodes using TCP. Display machine in ORBIT control room has that capability.  The port numbers to connect to 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., the URL to the stream on [1,2] -> [1,8] pair is http://10.19.1.8:8018. To ease up invoking three VLC instances with correct parameters, use the Windows Batch file written for this purpose (resides on the Display machine desktop).
    106109
    107 4. '''Video Clip packages'''[[BR]]There are two debian packages (with different set of video clips in them) called, teststream_1.1-1_all.deb, teststream_1.1-2_all.deb. Normally, experiment support script checks the package and installs if it does not exist on the particular source node automatically. If debian repository, which is repository1.orbit-lab.org (or the network connected to it) fails, it may not be loaded on demand. In that case, the mentioned package have to be uploaded and installed manually to the node. Video clips are not embedded into the O/S image file due to the image file size concerns. The folder on which this debian package files reside is repository1:/var/www/video/binary
     1104. '''Video Clip packages'''[[BR]]There are two debian packages (with different set of video clips in them) called, teststream_1.1-1_all.deb, teststream_1.1-2_all.deb. Normally, experiment support script checks the package and installs if it does not exist on the particular source node automatically. If debian repository, which is repository1.orbit-lab.org (or the network connected to it) fails, it may not be loaded on demand. In that case, the mentioned package have to be uploaded and installed manually to the three source nodes. Video clips are not embedded into the O/S image file due to the image file size concerns. The folder on which this debian package files reside is repository1:/var/www/video/binary
    108111
    109 5. '''Auxiliary scripts'''[[BR]]Following are the the shell scripts that can be used on the console to help maintaining the experiment. They are not required for functionality, they are only for helping with some of the tasks.
    110   * poweroff-panasonic/poweron-panasonic: Powers off or on all the experiment nodes by contacting CMC web interface accordingly.
    111   * getlunarips: Retrieves lunar interface IP addresses from the streaming nodes. Must be run during the experiment.
    112   * scp-deb: copies teststream debian package to three source nodes via scp.
     1125. '''GUI'''[[BR]] The GUI used to drive the demo is written in TCL/Tk. Console of sb9 normally has the necessary software to run this GUI. In order to use this GUI from display machine (or any other machine capable of reaching grid network), X Server has to be used. There is an X server installed in Display machine. It can be invoked from Start->CygWin menu (open up CygWin terminal and type in startx). Also, the ssh client used to connect to console.sb9 must be configured to forward X11 (which should already be the case for the SSH client on Display machine). Invoking GUI is explained in the below steps.
    113113
    114114=== Steps to Execute Demo ===
    115115
    116 1. '''Imaging'''
    117   * Make sure that all nodes in the experiment are powered off. poweroff-panasonic shell script can be used for that purpose.
    118   * Image the experiment nodes with the following command:
     1161. '''Get Necessary Files'''
     117  * Download the above nodeHandler tarball and extract it under your_home@console.sb9
     118  * cd into nodeHandler-streaming/ruby
     119
     1202. '''Imaging Nodes'''
     121  * Execute the shell script image.sh
     122  * This should image the mentioned eight nodes using panasonic-demo-2.4.26-click-20051114.ndz
     123  * Imaging takes less than 10 mins. If any of the nodes do not come up with PXE image or any of them check back in during the
     124    imaging process, kill the imaging nodeHandler instance, power-off the nodes, and restart imaging. If successful, nodes will be powered off automatically. They can
     125    be powered-on with experiment script.
     126
     1272. '''NodeHandler Script Execution'''
     128  * Start the experiment by executing the shell script run.sh. It should invoke nodeHandler as follows:
    119129{{{
    120 imageNodes [1,2],[1,8],[2,1],[2,5],[3,2],[3,8] panasonic-demo-2.4.26-click-20051025.ndz
     130ruby nodeHandler.rb  -s false test:exp:streaming-panasonic
    121131}}}
    122     Carefully watch the imaging process. It should take less than 10 mins. If any of the nodes do not come up with PXE image or any of them check back in during the
    123     imaging process, kill the imaging nodeHandler instance, power-off the nodes, and restart imaging. If successful, nodes will be powered off automatically. They can
    124     be powered-on with experiment script or with poweron-panasonic shell script without starting the experiment.
    125 
    126 2. '''NodeHandler Script execution'''
    127   * Start the experiment with the following command after getting into nodeHandler-panasonic/ruby folder:
    128 {{{
    129 ruby nodeHandler.rb -s false test:exp:streaming-panasonic
    130 }}}
    131     Change test:exp portion if the script is being invoked from some other folder structure. After all nodes check in, it will take at most 10 seconds for the
    132     streaming to start on the node pairs, except first time. The first time run will involve an apt-get install command to install video clip debian package file. So,
    133     this adds at most 2 minutes. Subsequent runs should not have this additional delay. This delay is not a blocking delay for nodeHandler. So, experimenter needs to
    134     wait this amount of time after the nodeHandler start script is invoked.
     132    After all nodes check in, it will take at most 10 seconds for the streaming to start on the node pairs, except first time. The first time run will involve an apt-get install command to install video clip debian package file. So, this adds at most 2 minutes. Subsequent runs should not have this additional delay. This delay is not a blocking delay for nodeHandler. So, demonstrator needs to wait this amount of time after the nodeHandler start script is invoked.
    135133
    1361343. '''Starting the VLC player'''[[BR]]Use display machine to run three instances of VLC player, and enter URL info of the stream into 'File->Open Network Stream->HTTP' text field. URL format is http://CTRL_IP_of_Node:80XY, where X and Y are coordinates of the node. In current setup, the URLs translate into:
     
    138136    ||http://10.19.2.5:8025
    139137    ||http://10.19.3.8:8038
    140 Invoking these URLs should bring up three video streaming windows on display machine. With the current setup, there should be perceivable distortion on the streams, especially on the bigger one.
     138Invoking these URLs should bring up three video streaming windows on display machine. With three streams concurrently running, there should be perceivable distortion, especially on the bigger one.
    141139
    1421404. '''Stopping the streaming from one node'''[[BR]]Log-into node3-2 with {{{'ssh root@node3-2'}}} command. Execute {{{'pkill vlc'}}} on the node to stop streaming of the video. After a few seconds, video should freeze on the corresponding VLC window on display machine. Stream can be restarted, if necessary, by executing {{{'sh execfile'}}} on the node.