nuttx-apps/netutils/iperf
Petro Karashchenko 9480c0ec12 include: fix double include pre-processor guards
Signed-off-by: Petro Karashchenko <petro.karashchenko@gmail.com>
2022-01-16 17:36:21 +08:00
..
iperf_main.c apps: remove space befone newline in logs 2021-12-27 20:52:08 -06:00
iperf.c iperf: Fix an unused function warning seen with clang 2021-06-17 07:30:41 +02:00
iperf.h include: fix double include pre-processor guards 2022-01-16 17:36:21 +08:00
Kconfig iperf: Make the use of CLOCK_MONOTONIC conditional for now 2021-06-11 07:52:03 -05:00
Make.defs netutils/iperf: Configs were using EXAMPLES_ instead of NETUTILS_. 2021-04-21 13:43:05 -05:00
Makefile netutils/iperf: Configs were using EXAMPLES_ instead of NETUTILS_. 2021-04-21 13:43:05 -05:00
README.md netutils/iperf: Configs were using EXAMPLES_ instead of NETUTILS_. 2021-04-21 13:43:05 -05:00

Overview

This is a NuttX port of the ESP-IDF iperf example. [1]

It doesn't support all features in standard iperf. It's supposed to be compatible with iperf version 2.x. [2]

[1] https://github.com/espressif/esp-idf/tree/master/examples/wifi/iperf [2] https://sourceforge.net/projects/iperf2/

Configuring NuttX to use your Wireless Router (aka Access Point)

Since you are already in the root of NuttX/ repository, execute
make menuconfig to define your Wireless Router and your password:

$ make menuconfig

Browser the menus this way:

Application Configuration  --->
    Network Utilities  --->
        Networking Configuration  --->
            WAPI Configuration  --->
                (myApSSID) SSID
                (mySSIDpassphrase) Passprhase

Replace the SSID from myApSSID with your wireless router name and
the Passprhase with your WiFi password.

Exit and save your configuration.

iperf Test Example

To set up, do make menuconfig and select the Apps > netutils > iperf example. By default, NuttX will the be the client which sends data; and the host computer (Linux, macOS, or Windows) will be the server.

Set up networking so the NuttX computer can ping the host, and the host can ping NuttX. Now you are ready to run the test.

If you are using a wireless network card, you must first connect to the router:

On host:

$ iperf -s -p 5471 -i 1 -w 416K
------------------------------------------------------------
Server listening on TCP port 5471
TCP window size:  416 KByte
------------------------------------------------------------

On NuttX:

nsh> iperf -c 192.168.1.181 -p 5471 -i 1 -t 10
mode=tcp-client sip=192.168.1.198:5001, dip=192.168.1.181:5471, interval=1, time=10

        Interval Bandwidth

0-   1 sec,  0.39 Mbits/sec
1-   2 sec,  0.26 Mbits/sec
2-   3 sec,  0.39 Mbits/sec
3-   4 sec,  0.26 Mbits/sec
4-   5 sec,  0.26 Mbits/sec
5-   6 sec,  0.26 Mbits/sec
6-   7 sec,  0.26 Mbits/sec
7-   8 sec,  0.26 Mbits/sec
8-   9 sec,  0.26 Mbits/sec
9-  10 sec,  0.26 Mbits/sec
0-  10 sec,  0.28 Mbits/sec

Now on the host you should see something like:

$ iperf -s -p 5471 -i 1 -w 416K
------------------------------------------------------------
Server listening on TCP port 5471
TCP window size:  416 KByte
------------------------------------------------------------
[  5] local 192.168.1.181 port 5471 connected with 192.168.1.198 port 4210
[  5]  0.0- 1.0 sec  60.8 KBytes   498 Kbits/sec
[  5]  1.0- 2.0 sec  34.9 KBytes   286 Kbits/sec
[  5]  2.0- 3.0 sec  33.7 KBytes   276 Kbits/sec
[  5]  3.0- 4.0 sec  33.4 KBytes   274 Kbits/sec
[  5]  4.0- 5.0 sec  32.0 KBytes   262 Kbits/sec
[  5]  5.0- 6.0 sec  32.0 KBytes   262 Kbits/sec
[  5]  6.0- 7.0 sec  33.4 KBytes   274 Kbits/sec
[  5]  7.0- 8.0 sec  32.0 KBytes   262 Kbits/sec
[  5]  8.0- 9.0 sec  32.0 KBytes   262 Kbits/sec
[  5]  9.0-10.0 sec  33.4 KBytes   274 Kbits/sec
[  5]  0.0-10.3 sec   368 KBytes   292 Kbits/sec

This will tell you the link speed in Kbits/sec kilobits per second. If you want kilobytes, divide by 8.