Changes between Initial Version and Version 1 of ConnectivityTesting


Ignore:
Timestamp:
07/28/10 12:17:47 (14 years ago)
Author:
jwilliams@bbn.com
Comment:

copied asydney's wikipage to public GENI wiki from http://groups.geni.net/syseng/wiki/TestingWithGPOLab

Legend:

Unmodified
Added
Removed
Modified
  • ConnectivityTesting

    v1 v1  
     1
     2==  DRAFT: OpenFlow CAMPUS NETWORK TESTS  ==
     3
     4''' FIRST-CUT NETWORK TOOLS AND CONFIGURATION FOR TESTS BETWEEN GPO LAB AND OpenFlow CAMPUSES'''
     5
     6Below are a few network tools currently supported by the GPO Lab for testing purposes.  Should your campus decide to test with BBN, please note
     7the tool, and its respective configurations (NB. These configurations were tested on Ubuntu 10.04).
     8
     9==  Network Monitoring Tools ==
     10
     11Our objective here is to monitor hosts connected to OpenFlow switches (which perhaps may be used in experiments). The statistics obtained will be available to the public via our monitoring web-server and will prove effective in determining the operational status of OpenFlow nodes.
     12
     13'''Note:''' We have installed the monitoring server in the GPO lab, and unless you intend to run your own server, you need only install the ganglia client (See section below: '''On the system(or systems) which runs the Ganglia client''')
     14
     15
     16'''On the system which runs the Ganglia server, do the following:'''
     17
     181. Install gmetad, ganglia-monitor (from package manager)[[BR]]
     192. Create folder /var/www/ganglia[[BR]]
     203. Copy folder "ganglia-webfrontend" from /usr/share to /var/www/ganglia[[BR]]
     214. Modify/add the following lines as necessary, in the configuration file /etc/gmetad.conf: [[BR]]
     22   i.   data_source "ganglia_server" localhost
     23   ii.  data_source "ganglia_client_1" ganglia_client_1_ip
     24   iii. data_source "ganglia_client_2 " ganglia_client_2_ip
     25   iv.  gridname "GPO Lab"
     26   v.   setuid_username "ganglia"
     27
     28where '''ganglia_server''' is the hostname of your ganglia server, and '''ganglia_client_x''' and '''ganglia_client_x_ip''' are the respective names and IP addresses of your ganglia clients (i.e. the systems which will run the ganglia client daemon).
     29
     305. Modify configuration file /etc/gmond.conf[[BR]]
     31
     32cluster {[[BR]]
     33        name ="OpenFlow Integration"[[BR]]
     34        owner ="ganglia_server"[[BR]]
     35        latlong = "unspecified"[[BR]]
     36        url = "unspecified"[[BR]]
     37        }[[BR]]
     38
     39   
     406. Start apache
     41
     42{{{
     43/etc/init.d/apache2 restart
     44}}}
     45
     467. Start gmond
     47
     48{{{
     49gmond
     50}}}
     51
     528. Start gmetad
     53{{{
     54service gmetad restart
     55}}}
     56
     57
     58'''On the system(or systems) which runs the Ganglia client, do the following:'''
     59
     601. Install ganglia-monitor (from package manager)[[BR]]
     612. Modify /etc/ganglia/gmond.conf on all client systems:[[BR]]
     62
     63
     64cluster {[[BR]]
     65        name ="OpenFlow Integration"[[BR]]
     66        owner ="ganglia_client_x"[[BR]]
     67        latlong = "unspecified"[[BR]]
     68        url = "unspecified"[[BR]]
     69        }[[BR]]
     70
     71
     72== Network Performance and Functional Tools ==
     73
     741. '''traceroute'''
     75
     76
     77
     782. '''Jperf''': requires installation of Jperf, which can be obtained from the following link:
     79
     80http://www.softpedia.com/progDownload/JPerf-Download-154326.html
     81
     82PS. Jperf is simply iperf with a GUI
     83
     84
     85
     863.  '''packETH'''
     87    * packETH is a packet generator and will be used to generate LLDP packets
     88      (though you can generate your choice of packets).  On debian distributions (like Ubuntu), packETH can be installed from the package manager. This test simply
     89      verifies LLDP connectivity between OpenFlow switches
     90    * The source computer installs packETH and generates these packets
     91      to the destination host. packETH has a self explanatory interface
     92      At the receiving end, the host simply runs tcpdump to collect
     93      the statistics
     94
     95
     96
     974.  '''VLC Method 1''' (For all tests, we assume a client/server paradigm, and that VLC is installed)
     98
     99    '''VIDEO STREAMING USING VLC'''[[BR]]
     100
     101    For this test, the video server streams UDP packets to the client who stores the stream
     102    in a file (Perhaps for later viewing). This test primarily analyzes performance statistics
     103    (using tcpdump) rather than viewing the stream on the client side. 
     104 
     105'''FROM STREAMING SERVER (CLI)'''[[BR]]
     106
     107a.  The command below assumes that the server terminal is currently pointing to a directory with file "CMU.mov." This file will be streamed to the given destination IP address and port address with the specified time-to-live of 7.
     108   
     109    {{{
     110    vlc -vvv CMU.mov --sout '#std{access=udp{ttl=7},mux=ts,dst=a.b.c.d,port=abcd}
     111    }}}
     112
     113'''FROM CLIENT'''[[BR]]
     114
     115b.   The client receives contents of the stream (from  port abcd) and stores it in a file named GpENI.mov
     116   
     117    {{{
     118    vlc -vvv udp://@:abcd --sout file/ts:GpENI.mov
     119    }}}
     120
     121'''OR'''
     122
     123    {{{
     124    vlc -vvv udp://@:abcd
     125    }}}
     126  if you would simply like to use vlc to view the stream.[[BR]]
     127
     128
     129c. '''TCPDUMP:''' FROM CLIENT/SERVER SIDE (Modify accordingly)  [[BR]]
     130     Save all packets destined to a given IP address, via a given port number, in a file named "statistics."
     131   
     132   {{{   
     133    /usr/sbin/tcpdump -nnvvS src a.b.c.d and dst port abcd > statistics
     134   }}}
     135
     136
     1375. '''VLC: Method 2''' [[BR]]
     138
     139   This test is strictly for decorative purposes. For this reason, the received stream will be
     140   displayed at the host's terminal. Please note that, due to latency constraints on the streamed frames,
     141   DO NOT be disappointed if the resulting video is not HD quality.   
     142
     143'''HOW TO STREAM VIDEO WITH VLC''' (From the VLC GUI)[[BR]]
     144
     145   
     146a.   ''' FROM STREAMING SERVER'''[[BR]]
     147
     148  * Select Media > streaming
     149  * Add streams to play-list
     150  * Select stream > Next > check Display locally (should you choose to view stream locally) > "File=UDP" > Add
     151  * Specify destination IP address and destination port, and ensure "activate transcoding" is unchecked
     152  * Select next > stream
     153 
     154b. '''FROM CLIENT'''[[BR]]
     155
     156  * Select file > open network stream > check UDP/RTP > Port=abcd
     157  * Optional "Customize=udp://@:abcd" > OK
     158NB. Ensure your firewall does not block access to UDP traffic on port abcd   
     159
     160
     161 '''HOW TO STREAM VIDEO FROM VLC (From the CLI)''' [[BR]]
     162
     163 
     164a. '''FROM STREAMING SERVER'''
     165 
     166   {{{
     167   vlc -vvv CMU.mov --sout '#std{access=udp{ttl=7},mux=ts,dst=a.b.c.d,port=abcd}
     168   }}}
     169
     170   The line above assumes the file "CMU.mov" is to be streamed from the server to the host with
     171   an IP address of a.b.c.d, via port abcd
     172
     173b. '''FROM CLIENT'''[[BR]]
     174
     175    {{{
     176    vlc -vvv udp://@:abcd
     177    }}}
     178
     179   NB. If Xserver fails, try
     180   
     181    {{{
     182    vlc --no-x11-shm --no-xvideo-shm --no-glx-shm vlc -vvv udp://@:abcd
     183    }}}
     184
     185   '''OR SIMPLY'''
     186   
     187   {{{
     188    vlc --no-x11-shm -vvv udp://@:abcd
     189    }}}
     190
     1916. '''VLC TELECONFERENCING (WEBCAM''')[[BR]]
     192
     193
     194a. '''FROM STREAMING SERVER'''[[BR]]
     195
     196   * Install ffmpeg
     197
     198*  Ensure webcam is disconnected and check to see the audio and video drivers in use (if any)
     199   {{{
     200    ls -s /dev/audio*
     201   }}}
     202   {{{
     203    ls -s /dev/video*
     204   }}}
     205
     206   * Plug the webcam and run the two commands above to see the new video and audio drivers in use
     207   * In vlc, you will need to know the card and device number
     208   
     209   * In vlc, go to media > streaming and select "capture device"
     210   * video name = /dev/video0 (this is the value obtained from running the ls -s /dev/video* cmd)
     211   
     212   * audio name = hw:1,0 (where hw:x, y st x is the card number and y is the device number)
     213   * You can do UDP streaming only with TS type codec
     214   
     215   * Below "Transcoding options" Video - H.264 + AAC (TS) gives best resolution but you have to install "mpeg aac audio" for the audio to work
     216   * I used mpeg-2 + mpga (TS), but the video quality is not close to HD quality
     217
     218b. '''FROM CLIENT'''[[BR]]
     219    {{{
     220    vlc -vvv udp://@:abcd
     221    }}}
     222
     223   NB. TO RUN SMOOTHLY specify RTP protocol > activate transcoding > video H.264 + AAC (TS)
     224
     225
     226
     227
     228
     229
     230
     231
     232
     233
     234
     235
     236
     237
     238
     239
     240