Changes between Version 29 and Version 30 of WARPLab/QuickStart


Ignore:
Timestamp:
Aug 22, 2013, 9:13:53 PM (11 years ago)
Author:
murphpo
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • WARPLab/QuickStart

    v29 v30  
    8585
    8686[[br]]
    87 == Tips ==
    8887
    89 === MATLAB Object Oriented Syntax ===
    90 Throughout the WARPLab MATLAB code, you will see a mix of equivalent ways of calling methods to various objects. Suppose you have an object {{{obj}}} in your workspace and that object has a method {{{method}}}. You can call this method in two completely equivalent ways:
    9188
    92 {{{
    93 obj.method()
    94 }}}
    95 
    96 or
    97 
    98 {{{
    99 method(obj)
    100 }}}
    101 
    102 As a more concrete example, consider the quick start step above that called the command {{{wl_nodeCmd(nodes,'identify');}}}. An equivalent way of issuing this command to the nodes in the network is {{{nodes.wl_nodeCmd('identify');}}}
    103 ----
    104 === Jumbo Frames ===
    105 The WARP hardware design supports Ethernet packets up to 9000 bytes. Any Ethernet packet larger than 1500 bytes is considered a "jumbo frame" and support for these jumbo frames among consumer NICs and switches is limited. To see if your hardware supports jumbo frames, increase the MTU setting on your computer to the maximum allowed setting. Then, two tests can determine the maximum usable payload: (a) a ping test, and (b) a WARPLab test.
    106 ----
    107 ==== Ping Test ====
    108 Once the MTU on your machine is raised to its maximum, you can use pings from your computer to determine whether your switch and NIC can actually send and receive jumbo frames. Make sure you have a board configured with the WARPLab bitstream and a DIP switch of '0' (making its IP address 10.0.0.1).
    109 
    110 '''Windows:''' Open the command line 'cmd.exe' and type the following:
    111 
    112 {{{
    113 >ping -l 8000 10.0.0.1
    114 }}}
    115 
    116 This will send 8000 byte pings to the board. If the board responds, Windows will tell you how many bytes were actually returned. For example, we receive the following using one of our PCs:
    117 
    118 {{{
    119 Pinging 10.0.0.1 with 8000 bytes of data:
    120 Reply from 10.0.0.1: bytes=8000 time=2ms TTL=32
    121 Reply from 10.0.0.1: bytes=8000 time=2ms TTL=32
    122 Reply from 10.0.0.1: bytes=8000 time=2ms TTL=32
    123 Reply from 10.0.0.1: bytes=8000 time=2ms TTL=32
    124 }}}
    125 
    126 This shows that the 8000 byte ping packet was returned, and you computer and switch appear to support communicating with a WARP board with jumbo frames. If, however, you receive ping responses that look like this:
    127 
    128 {{{
    129 Pinging 10.0.0.1 with 8000 bytes of data:
    130 Reply from 10.0.0.1: bytes=1472 (sent 8000) time<1ms TTL=32
    131 Reply from 10.0.0.1: bytes=1472 (sent 8000) time<1ms TTL=32
    132 Reply from 10.0.0.1: bytes=1472 (sent 8000) time<1ms TTL=32
    133 Reply from 10.0.0.1: bytes=1472 (sent 8000) time<1ms TTL=32
    134 }}}
    135 
    136 Then only 1472 bytes were returned of the sent 8000. This means that the packets were fragmented and that the MTU was not set high enough to support the 8000 byte ping packet.
    137 
    138 '''Linux/OSX:''' Open a terminal and type the following:
    139 
    140 {{{
    141 > ping -s 8000 10.0.0.1
    142 }}}
    143 
    144 This will send 8000 byte pings to the board. The board should respond to these pings and return something similar to the following:
    145 
    146 {{{
    147 PING 10.0.0.1 (10.0.0.1): 8000 data bytes
    148 5976 bytes from 10.0.0.1: icmp_seq=1 ttl=32 time=2.356 ms
    149 wrong total length 5996 instead of 8028
    150 }}}
    151 
    152 If, however, the MTU is not set high enough to support the 8000 byte pings, then the board may respond with a smaller reply:
    153 
    154 {{{
    155 PING 10.0.0.1 (10.0.0.1): 8000 data bytes
    156 8008 bytes from 10.0.0.1: icmp_seq=0 ttl=32 time=2.928 ms
    157 8008 bytes from 10.0.0.1: icmp_seq=1 ttl=32 time=3.071 ms
    158 }}}
    159 ----
    160 ==== WARPLab Test ====
    161 If the ping test indicates that your PC and your Ethernet switch support jumbo frames, the next step is to see if WARPLab works with jumbo frames. When node objects are first set up in a WARPLab script, they run a test with their associated boards to see what maximum payload size can be supported. First, re-run the [wiki:../Reference/Utility#wl_setup 'wl_setup'] function in {{{M_Code_Reference}}} and select that you would like to enable jumbo frame support. Next, ensure one WARP board is programmed with the WARPLab bitstream and configured with DIP switch '0'. Then, copy and paste the following lines to the MATLAB command line:
    162 
    163 {{{
    164 clear;
    165 node = wl_initNodes(1);
    166 disp(node.transport.maxPayload)
    167 }}}
    168 
    169 This will display the payload size the WARPLab has configured itself to use. For one of our PCs, this value returns as {{{8960}}}, showing the jumbo frame support is correctly working.
    170 
    171 [[br]]
    172 == Hardware Compatibility ==
    173 
    174 It is impossible to form a definitive list of hardware that is compatible with jumbo frame support, but we will maintain a list of observed setups and their compatibility. If you try jumbo frames and have a hardware setup that does or does not work with them, please post to [http://warpproject.org/forums/ the WARP forums] so we can add them to the list.
    175 
    176 '''Known Compatible:'''
    177  * Dell workstation, Windows 7 64-bit, Intel(R) 82573LB NIC
    178  * Netgear GS105 gigabit switch
    179 
    180 '''Known Partially Compatible:'''
    181  * Apple 2013 Macbook Pro, OSX 10.8.3, Apple Thunderbolt to Gigabit Ethernet Adapter
    182   * Appears to have a "hidden" MTU maximum around 8000, despite the GUI letting you choose 9000.
    183  * Apple 2011 Mac Mini, OSX 10.8.3, Broadcom 57765-B0
    184   * Appears to work for MTU < 7000. There were problems with larger MTUs, but those problems may be attributed to a bad switch.
    185 
    186 '''Known Incompatible:'''
    187  * Dell workstation, Windows 7 64-bit, Broadcom NetXtreme Gigabit Ethernet BCM5755
    188  * Apple 2010 Macbook Pro, OSX 10.8.3, Broadcom 5764-B0
    189 
    190 [[br]]
    19189== Other Information ==
    19290