Hands-on Labs using the WLAN Pros ODROID Performance Testing Device

The goal is to provide Wireless LAN Professionals with a ready-to-use custom device to help provide throughput measurements for network performance. It can be used to test Wired-to-Wired, Wired- to-Wireless, and even Wireless-to-Wireless tests.

These tests can assist in establishing baselines, help in troubleshooting, test consistency, as well as measuring network throughput from known end points.

Why ODROID? The ODROID C-2 device has much in common with other Single-Board-Computers, like and others. We chose this platform for its versatility but mainly because it offers a full Gigabit port, so that component should not ever be a bottleneck or be a throttle to network throughput testing. (unlike the Raspberry Pi’s 10/100 Ethernet port).

• The specs on the ODROID are: • 1.5GHz 64-bit quad-core single board computer (SBC) • Gigabit Ethernet • eMMC Flash Storage – boots in under 20-seconds • Low power consumption – around 1amp – we power with standard USB battery • Very Versatile • Ability to use Bluetooth or USB keyboard/mice • HDMI out capability • We use an attached screen to do much of what we need • Can be used in a ‘headless’ environment

Linux Performance Testing Apps We are using Debian Linux with the following services running upon boot up so they are always ready: Application Version Port Iperf3 3.16 5202 Iperf2 2.0.9 5001 Ruckus ZAP 1.83 Ekahau eperf 3.x 5201 HTML5 Tests 6 versions 80 on Different URLs

Client Applications (see other instructions on how to install all these client-side testing apps)

Application Version MacOS Windows Android iOS Iperf3 3.1.6 X X Iperf2 2.0.9 X X ZAP 1.83 X X Ekahau ESS X X WiFiPerf (Demo) 1.9 X X X X Ruckus Speedflex 2.0.7 X X Hurricane Electric 1.5.0.289 X X Aruba Utilities X

Note: All the files for client-side applications are provided either on the included USB drive or via Internet while doing automatic installations.

It is recommended you do the Client installs before starting on the ODROID performance testing. The installation instructions are in the appendix at the end of this document.

Powering On/Off Your ODROID

The installed USB Battery from KORAL can be turned on with the power button on the side of the battery.

Alternatively – the ODROID can be powered with any 5v/2a power source.

Powering Off the KORAL battery by pressing the power button TWICE!

Connect your client devices to either the 2.4GHz or 5GHz SSID’s.

Note what IP addresses each received via WIRELESS connection. • MacOS ___.____.____.____ • Windows OS ___.____.____.____ • Android ___.____.____.____ • iOS ___.____.____.____

Plug your ODROID into a wired port. Note what IP address it received. • ODROID ___.____.____.____

Login and configure your ODROID

• SSH to the ODROID using an SSH Client • Open Terminal (MacOS) or Putty (Windows) $ SSH [email protected] Default password = wlanpro

Change root password: # passwd

You should now have a remote session to your ODROID via SSH.

Performance Testing with the ODROID device

Task 1 – Basic Performance Test using iPerf

Execute an iPerf test with iPerf2 $ iperf –c A.A.A.A

Execute an iPerf3 test $ iperf3 –c A.A.A.A –p 5202

-C specifies client mode A.A.A.A is the ODROID IP address -p specifies the port to use

Task 2 – Test Consistency using ZAP tool

Using the Ruckus ZAP tool to measure the consistency and throughput of a network connection.

• Start zapd (daemon)

Note: The starting of the ZAP daemon on the ODROID is by default at startup – this is the ZAP Daemon on the client side. We will be running these ZAP tests from the client’s perspective.

Open a different terminal (MacOS) or Command Prompt (Windows) where we can control the ODROID.

Run ZAP test to ODROID

$ zap –sA.A.A.A –dB.B.B.B

-s specifies the source IP A.A.A.A is the ODROID IP Address -d specifies the destination IP B.B.B.B is your test device’s IP Address Note: Do NOT put a space after the –s or –d

Note: This will run a long time… by default it will run 1,000 unique throughput tests. The results show not only average, but break down the results by percentile.

Task 3 – Network Performance Graph using WiFiPerf

• Start WiFiPerf (MacOS) • Configure WiFiPerf settings Target Server Address: A.A.A.A Server Port: 5202

• Run Test

A.A.A.A is the ODROID’s IP address

This tool is also using the ZAP application and showing a visual result of the statistics.

Task 4 – Mobile Performance Testing using Speedflex • Start SpeedFlex app on iOS or Android • Configure SpeedFlex settings Destination Address: A.A.A.A

• Run Test A.A.A.A is the ODROID’s IP address

Task 5 – Mobile Performance Testing using Hurricane Electric Network Utilities iPerf2 and iPerf3 Use H/E Network Tools to perform an iperf2/3 measurement from iOS

• Start H/E Network Tools • Select iperf from the list of tools • Configure iPerf settings

Select: iperf2 iperf Server: A.A.A.A Interval: 2 Bytes: 500M

4. Select field at top with address and click Go

Note: Just click in the field with the server address then click enter

*To use iperf3, select iperf3 and specify port 5202 Example: A.A.A.A -p 5202

Task 6 – Mobile Performance Testing using Aruba Network Utilities Use Aruba Utilities to run an iPerf test from an Android device

• Start Aruba Utilities (Android) • Swipe to the left to select iPerf page (Perhaps even multiple swipes) • Configure iPerf settings

-c A.A.A.A -i 2 -t 10 -c connect to an iPerf server at specified IP -i sets the reporting interval time in seconds -t time in seconds to run test for • Run

Task 7 - Remote test between 2 devices

Use Zap to remotely measure the network performance between two devices. • Start Zapd or Ruckus SpeedFlex on any two devices Example: iPhone running SpeedFlex and Odroid running zapd • Run a remote zap test from Windows or Mac

$ zap -sA.A.A.A -dB.B.B.B

-s specifies source IP A.A.A.A = IP of Device 1 -d specifies destination IP B.B.B.B = IP of Device 2

*do not put a space after -s or -d

Task 8 – Web Browser Speed Tests

In this test, we will be using HTML5 code on the ODROID – there is one specific set of code for the default on port 80… but to get additional tests – one of which you might prefer for ease of use, readability, etc. We’ve added 6 more versions for you to choose from. Just type in the appropriate URL.

• Start a Browser of choice • Head over to A.A.A.A - your ODROID’s IP Address • Make choices on the check-boxes to what you’d like to view • Click Start

For additional tests – add one of these options to the end, like A.A.A.A/exampleX.html

Turn your ODROID into a Wireless Access Point

• Insert the enclosed USB Wi-Fi Adapter • Configure your Access Point settings by editing the AP config file: /boot/ap.txt from an SSH session to the ODROID • SSH to the ODROID using an SSH Client • Open Terminal (MacOS) or Putty (Windows) $ SSH [email protected] Default password = wlanpro

• #nano /boot/ap.txt

• Modify the following settings from the WLANPros image: SSID WLAN_PRO wpa_passphrase changeme channel 36

• Press Button 3 on the ODROID to start/stop the Access Point • Turn on the access point, and then associate with your client. Check your IP address. • Connect your client devices to the SSID’s provided by the ODROID Access Point. Note what IP addresses each received. • MacOS ___.____.____.____ • Windows OS ___.____.____.____ • Android ___.____.____.____ • iOS ___.____.____.____

• Connect to the ODROID via SSH like above, or run any of the throughput tests. In this case you’ll be testing the Wi-Fi USB device’s capabilities…

By default it should be handing out 192.168.42.xxx IP’s from the ODROID’s DHCP pool.

Use ODROID as a Remote Sensor for Wi-Fi Explorer Pro

On the ODROID: • Press button #2 to enable and disable the Remote Sensor service • Note: SSH command line # service wifiexplorer-sensor start/stop

On the MacOS Client: • Start WiFi Explorer Pro

Add a remote sensor

You are now feeding information from the ODROID’s attached USB Wi-Fi device directly to the running copy of Wi-Fi Explorer and can do remote analysis.

(Think of having the ODROID shipped to a remote spot, plugged into an Ethernet port the attached remotely using Wi-Fi Explorer for gathering detailed information.)

Appendix Client Installations for ODROID Testing

Macintosh

Install iPerf3 on Mac OS

Install Xcode Launch Terminal Application $ xcode-select --install

Install iperf3 $ sudo git clone https://github.com/esnet/iperf.git $ cd iperf $ sudo ./configure $ sudo make $ sudo make install

Test if it is working $ iperf3 –v

Start an iperf 3 server $ iperf3 –s

Run an iperf3 client $ iperf3 –c x.x.x.x (IP address of iperf3 server)

Install iperf2 on Mac OS First, download and extract the latest iperf2 source code from here: https://sourceforge.net/projects/iperf2/?source=typ_redirect

Unzip and Save to your desktop.

Open Terminal application and change directories to the location of the extracted iperf2 files, for example: $ cd ~/Desktop/iperf-2.0.9 $ ./configure $ sudo make $ sudo make install

Test if iperf2 is installed: $ iperf –v

Start iperf2 server: $ iperf -s

Run an iperf test as the client: $ iperf -c x.x.x.x (iperf2 server IP)

Install ZAP on Mac OS

Open Terminal application. $ sudo curl -O

Note: Source-archive.zip is in the ‘Clients for ODROID Exercises’ Folder

Note: That is a capital letter O in the –O command above, not a Zero.

$ sudo unzip source-archive.zip $ cd zapwireless/trunk $ sudo make $ sudo make install $ sudo mv bin/macintosh/zap* /usr/local/bin

Test the Zap server daemon: $ zapd

Run a zap test: $ zap -sx.x.x.x -dx.x.x.x (Source and Destination IP Addresses) *zapd server must also be running on the same machine running this local test. Or if you are testing remotely – the remote machine must be running the zapd daemon.

Alternative method of using Zap on a Macintosh.

Copy the zapd and zap files from the USB.

/Clients for ODROID Exercises/ZAP/zap-mac/zap and zapd

Copy these two files to the desktop.

Test the Zap server daemon: $ /Users/YourUserName\ 1/Desktop/zapd Control-C to exit

Run a zap test: $ /Users/YourUserName\ 1/Desktop/zap -sx.x.x.x - dx.x.x.x (Source and Destination IP Addresses)

Do not put a space after the –s or the –d. Use Control-C to exit.

Install WiFiPerf (demo)

Unzip the WiFiPerf Endpoint files from the Clients for ODROID Exercises Folder.

/Clients for ODROID Exercises/Mac_OS_WiFiPerf_Deskptop_v2.0_b585b.zip

Windows

Install iPerf3

Copy the iPerf 3.1.3-Windows files from the USB.

/Clients for ODROID Exercises/iPerf3/iperf-3.1.3-Windows

Run iperf3.exe

Test if it is working $ iperf3 –v

Start an iperf 3 server $ iperf3 –s

Run an iperf3 client $ iperf3 –c x.x.x.x (IP address of iperf3 server)

Install iperf2 Copy the iPerf 2.0.8-Windows files from the USB.

/Clients for ODROID Exercises/iPerf2/iperf-2.0.8-Windows

Run iperf.exe

Test if iperf2 is installed: $ iperf –v

Start iperf2 server: $ iperf -s

Run an iperf test as the client: $ iperf -c x.x.x.x (iperf2 server IP)

Install ZAP

Unzip the Zap-1.83-Windows files from the USB.

/Clients for ODROID Exercises/zap-1.83-Windows

Test the Zap server daemon: $ zapd

Run a zap test: $ zap -sx.x.x.x -dx.x.x.x (Source and Destination IP Addresses) *zapd server must also be running on the same machine running this local test. Or if you are testing remotely – the remote machine must be running the zapd daemon.

Install WiFiPerf (demo)

Unzip the WiFiPerf-Windows files from the USB.

/Clients for ODROID Exercises/Windows_WiFiPerf_Endpoint_v1.0_b528.zip

Ekahau Site Survey

Install Ekahau ESS and ask instructor for a temporary license key.

/Clients for ODROID Exercises/ESS

iOS

Install WiFiPerf (demo) Unzip the WiFiPerf Endpoint files from the USB. /Clients for ODROID Exercises/Mac_OS_WiFiPerf_Endpoint_v1.0_b585b.zip

Install Ruckus Speedflex Get from Apple App Store https://itunes.apple.com/us/app/ruckus-speedflex/id556602787?mt=8

Install Hurricane Electric Network Tools Install from Apple App Store. https://itunes.apple.com/us/app/he-net-network-tools/id858241710?mt=8

Android

Install WiFiPerf (demo) Install the WiFiPerf Endpoint files from the USB. /Clients for ODROID Exercises/Andoird_WiFiPerf_Endpoint_v1.0_build528.apk

Install Ruckus SpeedFlex Download from Play Store https://play.google.com/store/apps/details?id=com.ruckuswireless.speedflex

Install Hurricane Electric – Network Tools App Download and Install from Google Play Store https://play.google.com/store/apps/details?id=net.he.networktools&hl=en

Install Aruba Utilities Download and install from Google Play Storehttps://play.google.com/store/apps/details?id=com.arubanetworks.arubautilities