Changes between Version 27 and Version 28 of Internal/RunningDemos
- Timestamp:
- Jun 3, 2006, 2:12:38 AM (18 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Internal/RunningDemos
v27 v28 75 75 || v0.1 || 2005-10-25 || Mesut Ali Ergin || Initial version 76 76 || 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. 77 78 78 79 === Objective === 79 In this demo, purpose is to run three concurrent video stream s 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 like80 In 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 80 81 81 82 {{{ … … 83 84 SOURCES DESTINATIONS 84 85 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] 87 91 88 89 [3,2] -----------------------> [3,8] } MACHINE90 UDP Streaming to HTTP Streaming to91 destport 1234 destports 80XY92 _________________________________________ _______________________________________ 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) 92 96 }}} 93 97 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.gz98 All 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 95 99 96 100 === Preliminaries === 97 101 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. Itincludes following additional installed features onto the standard click image:102 1. '''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: 99 103 * Lunar protocol source code and compiled modules 100 104 * 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. 103 107 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 108 2. '''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). 106 109 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/binary110 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 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 108 111 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. 112 5. '''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. 113 113 114 114 === Steps to Execute Demo === 115 115 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: 116 1. '''Get Necessary Files''' 117 * Download the above nodeHandler tarball and extract it under your_home@console.sb9 118 * cd into nodeHandler-streaming/ruby 119 120 2. '''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 127 2. '''NodeHandler Script Execution''' 128 * Start the experiment by executing the shell script run.sh. It should invoke nodeHandler as follows: 119 129 {{{ 120 imageNodes [1,2],[1,8],[2,1],[2,5],[3,2],[3,8] panasonic-demo-2.4.26-click-20051025.ndz 130 ruby nodeHandler.rb -s false test:exp:streaming-panasonic 121 131 }}} 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. 135 133 136 134 3. '''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: … … 138 136 ||http://10.19.2.5:8025 139 137 ||http://10.19.3.8:8038 140 Invoking these URLs should bring up three video streaming windows on display machine. With th e current setup, there should be perceivable distortion on the streams, especially on the bigger one.138 Invoking 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. 141 139 142 140 4. '''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.