wiki:WARPLab/Requirements

System Requirements

Hardware Requirements

WARPLab 7 supports WARP v3 and WARP v2 hardware.

For the 2-radio WARPLab reference design:

  • WARP v3 nodes use the integrated RF interfaces
  • WARP v2 nodes must have Radio Boards in daughtercard slots 2 and 3

For the 4-radio WARPLab reference design:

  • WARP v3 nodes must be equipped with the FMC-RF-2X245 radio FMC module
  • WARP v2 nodes must have Radio Boards in all four daughtercard slots

WARP v1 users should use the WARPLab 6 reference design.

Software Requirements

  • MATLAB 2011a or later

PC requirements

  • Dedicated NIC for WARPLab network I/O
    • Static IP address in the 10.0.0.X subnet
    • Open firewall for UDP ports (10000 and [9000:9000+numNodes-1])

Using Jumbo Ethernet Frames

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.

Ping Max Payload Test

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).

Windows: Open the command line 'cmd.exe' and type the following:

>ping -l 8000 10.0.0.1

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:

Pinging 10.0.0.1 with 8000 bytes of data:
Reply from 10.0.0.1: bytes=8000 time=2ms TTL=32
Reply from 10.0.0.1: bytes=8000 time=2ms TTL=32
Reply from 10.0.0.1: bytes=8000 time=2ms TTL=32
Reply from 10.0.0.1: bytes=8000 time=2ms TTL=32

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:

Pinging 10.0.0.1 with 8000 bytes of data:
Reply from 10.0.0.1: bytes=1472 (sent 8000) time<1ms TTL=32
Reply from 10.0.0.1: bytes=1472 (sent 8000) time<1ms TTL=32
Reply from 10.0.0.1: bytes=1472 (sent 8000) time<1ms TTL=32
Reply from 10.0.0.1: bytes=1472 (sent 8000) time<1ms TTL=32

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.

Linux/OSX: Open a terminal and type the following:

> ping -s 8000 10.0.0.1

This will send 8000 byte pings to the board. The board should respond to these pings and return something similar to the following:

PING 10.0.0.1 (10.0.0.1): 8000 data bytes
5976 bytes from 10.0.0.1: icmp_seq=1 ttl=32 time=2.356 ms
wrong total length 5996 instead of 8028

If, however, the MTU is not set high enough to support the 8000 byte pings, then the board may respond with a smaller reply:

PING 10.0.0.1 (10.0.0.1): 8000 data bytes
8008 bytes from 10.0.0.1: icmp_seq=0 ttl=32 time=2.928 ms
8008 bytes from 10.0.0.1: icmp_seq=1 ttl=32 time=3.071 ms

WARPLab Max Payload Test

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 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:

clear;
node = wl_initNodes(1);
disp(node.transport.maxPayload)

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.

Jumbo Frame Hardware Compatibility

Support for jumbo frames varies widely across Ethernet NICs, PCs and OSs. Our observations for a variety of hardware/OS combinations are described below. If you try jumbo frames and have a hardware setup that does or does not work with them, please post to the WARP forums so we can add them to the list.

Known Compatible:

  • Dell workstation, Windows 7 64-bit, Intel(R) 82573LB NIC
  • Netgear GS105 gigabit switch

Known Partially Compatible:

  • Apple 2013 Macbook Pro, OSX 10.8.3, Apple Thunderbolt to Gigabit Ethernet Adapter
    • Appears to have a "hidden" MTU maximum around 8000 (despite the GUI letting you choose 9000)
  • Apple 2011 Mac Mini, OSX 10.8.3, Broadcom 57765-B0
    • Appears to work for MTU < 7000

Known Incompatible:

  • Ethernet NIC using the Broadcom BCM5755 controller
  • Apple 2010 Macbook Pro using the Broadcom 5764-B0 controller
Last modified 16 months ago Last modified on Dec 17, 2015, 1:47:13 PM