Changes between Version 4 and Version 5 of ConnectivityTesting


Ignore:
Timestamp:
12/02/10 14:44:36 (14 years ago)
Author:
jwilliams@bbn.com
Comment:

reflow

Legend:

Unmodified
Added
Removed
Modified
  • ConnectivityTesting

    v4 v5  
    1 
    2 =  DRAFT: OpenFlow CAMPUS NETWORK TESTS  =
     1=  Connectivity Test Software =
    32[[PageOutline]]
    43
    5 ''' FIRST-CUT NETWORK TOOLS AND CONFIGURATION FOR TESTS BETWEEN GPO LAB AND OpenFlow CAMPUSES'''
     4'''FIRST-CUT NETWORK TOOLS AND CONFIGURATION FOR TESTS BETWEEN GPO LAB AND OpenFlow CAMPUSES'''
    65
    76Below are a few network tools currently supported by the GPO Lab for testing purposes.  Should your campus decide to test with BBN, please note
    8 the tool, and its respective configurations (NB. These configurations were tested on Ubuntu 10.04).
     7the tool, and its respective configurations (NB. These configurations were tested on Ubuntu 10.04). The statistics obtained will be available to the public via our monitoring web-server and will prove effective in determining the operational status of GENI connections.
    98
    10 For a templete for letting informing a campus of requirments of a test host to support this testing see PersistentTestHostRequirments.
     9For a template for informing a campus of requirements of a test host to support this testing see PersistentTestHostRequirments.
     10
    1111==  Network Monitoring Tools ==
     12Our objective here is to outline common test tools that may be useful in testing GENI layer-2 connectivity.
    1213
    13 Our 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.
    14 
     14== Ganglia ==
    1515'''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''')
    16 
    1716
    1817'''On the system which runs the Ganglia server, do the following:'''
    1918
    20 1. Install gmetad, ganglia-monitor (from package manager)[[BR]]
    21 2. Create folder /var/www/ganglia[[BR]]
    22 3. Copy folder "ganglia-webfrontend" from /usr/share to /var/www/ganglia[[BR]]
    23 4. Modify/add the following lines as necessary, in the configuration file /etc/gmetad.conf: [[BR]]
    24    i.   data_source "ganglia_server" localhost
    25    ii.  data_source "ganglia_client_1" ganglia_client_1_ip
    26    iii. data_source "ganglia_client_2 " ganglia_client_2_ip
    27    iv.  gridname "GPO Lab"
    28    v.   setuid_username "ganglia"
     19 1. Install gmetad, ganglia-monitor (from package manager)[[BR]]
     20 2. Create folder /var/www/ganglia[[BR]]
     21 3. Copy folder "ganglia-webfrontend" from /usr/share to /var/www/ganglia[[BR]]
     22 4. Modify/add the following lines as necessary, in the configuration file /etc/gmetad.conf: [[BR]]
     23   1.   data_source "ganglia_server" localhost
     24   1.  data_source "ganglia_client_1" ganglia_client_1_ip
     25   1. data_source "ganglia_client_2 " ganglia_client_2_ip
     26   1.  gridname "GPO Lab"
     27   1.   setuid_username "ganglia"
    2928
    30 where '''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).
     29Where '''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).
    3130
    32 5. Modify configuration file /etc/gmond.conf[[BR]]
    33 
    34 cluster {[[BR]]
    35         name ="OpenFlow Integration"[[BR]]
    36         owner ="ganglia_server"[[BR]]
    37         latlong = "unspecified"[[BR]]
    38         url = "unspecified"[[BR]]
    39         }[[BR]]
    40 
    41     
    42 6. Start apache
     31 5. Modify configuration file /etc/gmond.conf
     32{{{
     33cluster {
     34        name ="OpenFlow Integration"
     35        owner ="ganglia_server"
     36        latlong = "unspecified"
     37        url = "unspecified"
     38        }
     39}}}
     40   
     41 6. Start apache
    4342
    4443{{{
     
    5756}}}
    5857
    59 
    6058'''On the system(or systems) which runs the Ganglia client, do the following:'''
    6159
    62 1. Install ganglia-monitor (from package manager)[[BR]]
    63 2. Modify /etc/ganglia/gmond.conf on all client systems:[[BR]]
     60 1. Install ganglia-monitor (from package manager)
     61 2. Modify /etc/ganglia/gmond.conf on all client systems:
     62{{{
     63cluster {
     64        name ="OpenFlow Integration"
     65        owner ="ganglia_client_x"
     66        latlong = "unspecified"
     67        url = "unspecified"
     68        }
     69}}}
     70
     71= Network Performance and Functional Tools =
     72
     73== traceroute ==
     74
     75== tcpdump ==
     76
     77== arping ==
     78
     79== iperf ==
     80
     81== jperf ==
     82
     83Jperf  can be obtained from the following link: http://www.softpedia.com/progDownload/JPerf-Download-154326.html
     84
     85PS. Jperf is simply iperf with a GUI.
    6486
    6587
    66 cluster {[[BR]]
    67         name ="OpenFlow Integration"[[BR]]
    68         owner ="ganglia_client_x"[[BR]]
    69         latlong = "unspecified"[[BR]]
    70         url = "unspecified"[[BR]]
    71         }[[BR]]
     88== packETH ==
     89 * packETH is a packet generator and can be used to generate traffic such as LLDP packets. On Debian distributions (like Ubuntu), packETH can be installed from the package manager. This test simply verifies LLDP connectivity between OpenFlow switches
     90   
     91 * The source computer installs packETH and generates these packets to the destination host. packETH has a self explanatory interface at the receiving end, the host simply runs tcpdump to collect the statistics.
    7292
     93== VLC ==
     94For all tests, we assume a client/server paradigm, and that VLC is installed
    7395
    74 == Network Performance and Functional Tools ==
     96=== VIDEO STREAMING USING VLC (method one) ===
    7597
    76 1. '''traceroute'''
     98For this test, the video server streams UDP packets to the client who stores the stream  in a file (Perhaps for later viewing). This test primarily analyzes performance statistics (using tcpdump) rather than viewing the stream on the client side. 
     99 
     100'''FROM STREAMING SERVER (CLI)'''::
     101The 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.
     102   
     103{{{
     104vlc -vvv CMU.mov --sout '#std{access=udp{ttl=7},mux=ts,dst=a.b.c.d,port=abcd}'
     105}}}
    77106
     107'''FROM CLIENT'''::
    78108
    79 
    80 2. '''Jperf''': requires installation of Jperf, which can be obtained from the following link:
    81 
    82 http://www.softpedia.com/progDownload/JPerf-Download-154326.html
    83 
    84 PS. Jperf is simply iperf with a GUI
    85 
    86 
    87 
    88 3.  '''packETH'''
    89     * packETH is a packet generator and will be used to generate LLDP packets
    90       (though you can generate your choice of packets).  On debian distributions (like Ubuntu), packETH can be installed from the package manager. This test simply
    91       verifies LLDP connectivity between OpenFlow switches
    92     * The source computer installs packETH and generates these packets
    93       to the destination host. packETH has a self explanatory interface
    94       At the receiving end, the host simply runs tcpdump to collect
    95       the statistics
    96 
    97 
    98 
    99 4.  '''VLC Method 1''' (For all tests, we assume a client/server paradigm, and that VLC is installed)
    100 
    101     '''VIDEO STREAMING USING VLC'''[[BR]]
    102 
    103     For this test, the video server streams UDP packets to the client who stores the stream
    104     in a file (Perhaps for later viewing). This test primarily analyzes performance statistics
    105     (using tcpdump) rather than viewing the stream on the client side. 
    106  
    107 '''FROM STREAMING SERVER (CLI)'''[[BR]]
    108 
    109 a.  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.
     109The client receives contents of the stream (from  port abcd) and stores it in a file named GpENI.mov
    110110   
    111     {{{
    112     vlc -vvv CMU.mov --sout '#std{access=udp{ttl=7},mux=ts,dst=a.b.c.d,port=abcd}'
    113     }}}
    114 
    115 '''FROM CLIENT'''[[BR]]
    116 
    117 b.   The client receives contents of the stream (from  port abcd) and stores it in a file named GpENI.mov
    118    
    119     {{{
    120     vlc -vvv udp://@:abcd --sout file/ts:GpENI.mov
    121     }}}
     111{{{
     112vlc -vvv udp://@:abcd --sout file/ts:GpENI.mov
     113}}}
    122114
    123115'''OR'''
    124116
    125     {{{
    126     vlc -vvv udp://@:abcd
    127     }}}
    128   if you would simply like to use vlc to view the stream.[[BR]]
     117{{{
     118vlc -vvv udp://@:abcd
     119}}}
     120If you would simply like to use vlc to view the stream, use tcpdump to save all packets destined to a given IP address, via a given port number, in a file named "statistics."
     121   
     122{{{   
     123/usr/sbin/tcpdump -nnvvS src a.b.c.d and dst port abcd > statistics
     124}}}
    129125
     126=== VIDEO STREAMING USING VLC GUI (method two) ===
    130127
    131 c. '''TCPDUMP:''' FROM CLIENT/SERVER SIDE (Modify accordingly)  [[BR]]
    132      Save all packets destined to a given IP address, via a given port number, in a file named "statistics."
    133    
    134    {{{   
    135     /usr/sbin/tcpdump -nnvvS src a.b.c.d and dst port abcd > statistics
    136    }}}
     128This test is strictly for decorative purposes. For this reason, the received stream will be displayed at the host's terminal. Please note that, due to latency constraints on the streamed frames, ''DO NOT'' be disappointed if the resulting video is not HD quality.   
    137129
    138 
    139 5. '''VLC: Method 2''' [[BR]]
    140 
    141    This test is strictly for decorative purposes. For this reason, the received stream will be
    142    displayed at the host's terminal. Please note that, due to latency constraints on the streamed frames,
    143    DO NOT be disappointed if the resulting video is not HD quality.   
    144 
    145 '''HOW TO STREAM VIDEO WITH VLC''' (From the VLC GUI)[[BR]]
    146 
    147    
    148 a.   ''' FROM STREAMING SERVER'''[[BR]]
     130''' FROM STREAMING SERVER (GUI)'''::
    149131
    150132  * Select Media > streaming
     
    154136  * Select next > stream
    155137 
    156 b. '''FROM CLIENT'''[[BR]]
     138'''FROM CLIENT'''::
    157139
    158140  * Select file > open network stream > check UDP/RTP > Port=abcd
    159141  * Optional "Customize=udp://@:abcd" > OK
    160 NB. Ensure your firewall does not block access to UDP traffic on port abcd   
     142  * NB. Ensure your firewall does not block access to UDP traffic on port abcd   
     143
     144=== VIDEO STREAMING USING VLC CLI (method three) ===
     145
     146This test is strictly for decorative purposes. For this reason, the received stream will be displayed at the host's terminal. Please note that, due to latency constraints on the streamed frames, ''DO NOT'' be disappointed if the resulting video is not HD quality. 
     147 
     148'''FROM STREAMING SERVER'''::
     149{{{
     150vlc -vvv CMU.mov --sout '#std{access=udp{ttl=7},mux=ts,dst=a.b.c.d,port=abcd}'
     151}}}
     152
     153The line above assumes the file "CMU.mov" is to be streamed from the server to the host with  an IP address of a.b.c.d, via port abcd
     154
     155'''FROM CLIENT'''::
     156
     157{{{
     158vlc -vvv udp://@:abcd
     159}}}
     160NB. If Xserver fails, try
     161   
     162{{{
     163vlc --no-x11-shm --no-xvideo-shm --no-glx-shm vlc -vvv udp://@:abcd
     164}}}
     165
     166'''OR '''
     167   
     168{{{
     169vlc --no-x11-shm -vvv udp://@:abcd
     170}}}
    161171
    162172
    163  '''HOW TO STREAM VIDEO FROM VLC (From the CLI)''' [[BR]]
    164 
    165  
    166 a. '''FROM STREAMING SERVER'''
    167  
    168    {{{
    169    vlc -vvv CMU.mov --sout '#std{access=udp{ttl=7},mux=ts,dst=a.b.c.d,port=abcd}'
    170    }}}
    171 
    172    The line above assumes the file "CMU.mov" is to be streamed from the server to the host with
    173    an IP address of a.b.c.d, via port abcd
    174 
    175 b. '''FROM CLIENT'''[[BR]]
    176 
    177     {{{
    178     vlc -vvv udp://@:abcd
    179     }}}
    180 
    181    NB. If Xserver fails, try
    182    
    183     {{{
    184     vlc --no-x11-shm --no-xvideo-shm --no-glx-shm vlc -vvv udp://@:abcd
    185     }}}
    186 
    187    '''OR SIMPLY'''
    188    
    189    {{{
    190     vlc --no-x11-shm -vvv udp://@:abcd
    191     }}}
    192 
    193 6. '''VLC TELECONFERENCING (WEBCAM''')[[BR]]
     173=== VLC TELECONFERENCING (WEBCAM) (method 3) ===
    194174
    195175
    196 a. '''FROM STREAMING SERVER'''[[BR]]
     176'''FROM STREAMING SERVER'''::
    197177
    198    * Install ffmpeg
     178 * Install ffmpeg
     179 *  Ensure webcam is disconnected and check to see the audio and video drivers in use (if any)
     180{{{
     181ls -s /dev/audio*
     182ls -s /dev/video*
     183}}}
     184 * Plug the webcam and run the two commands above to see the new video and audio drivers in use
     185 * In vlc, you will need to know the card and device number 
     186 * In vlc, go to media > streaming and select "capture device"
     187 * video name = /dev/video0 (this is the value obtained from running the ls -s /dev/video* cmd)
     188 * audio name = hw:1,0 (where hw:x, y st x is the card number and y is the device number)
     189 * You can do UDP streaming only with TS type codec
     190 * Below "Transcoding options" Video - H.264 + AAC (TS) gives best resolution but you have to install "mpeg aac audio" for the audio to work
     191 * I used mpeg-2 + mpga (TS), but the video quality is not close to HD quality
    199192
    200 *  Ensure webcam is disconnected and check to see the audio and video drivers in use (if any)
    201    {{{
    202     ls -s /dev/audio*
    203    }}}
    204    {{{
    205     ls -s /dev/video*
    206    }}}
     193'''FROM CLIENT'''::
     194{{{
     195vlc -vvv udp://@:abcd
     196}}}
    207197
    208    * Plug the webcam and run the two commands above to see the new video and audio drivers in use
    209    * In vlc, you will need to know the card and device number
    210    
    211    * In vlc, go to media > streaming and select "capture device"
    212    * video name = /dev/video0 (this is the value obtained from running the ls -s /dev/video* cmd)
    213    
    214    * audio name = hw:1,0 (where hw:x, y st x is the card number and y is the device number)
    215    * You can do UDP streaming only with TS type codec
    216    
    217    * Below "Transcoding options" Video - H.264 + AAC (TS) gives best resolution but you have to install "mpeg aac audio" for the audio to work
    218    * I used mpeg-2 + mpga (TS), but the video quality is not close to HD quality
    219 
    220 b. '''FROM CLIENT'''[[BR]]
    221     {{{
    222     vlc -vvv udp://@:abcd
    223     }}}
    224 
    225    NB. TO RUN SMOOTHLY specify RTP protocol > activate transcoding > video H.264 + AAC (TS)
    226 
    227 
    228 
    229 
    230 
    231 
    232 
    233 
    234 
    235 
    236 
    237 
    238 
    239 
    240 
    241 
    242 
     198NB. TO RUN SMOOTHLY specify RTP protocol > activate transcoding > video H.264 + AAC (TS)