Make a library out of the zperf shell sample. This makes to enable the module in any application, not only the dedicated sample. Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
103 lines
2.1 KiB
ReStructuredText
103 lines
2.1 KiB
ReStructuredText
.. _zperf:
|
|
|
|
zperf: Network Traffic Generator
|
|
################################
|
|
|
|
.. contents::
|
|
:local:
|
|
:depth: 2
|
|
|
|
Overview
|
|
********
|
|
|
|
zperf is a shell utility which allows to generate network traffic in Zephyr. The
|
|
tool may be used to evaluate network bandwidth.
|
|
|
|
zperf is compatible with iPerf_2.0.5. Note that in newer iPerf versions,
|
|
an error message like this is printed and the server reported statistics
|
|
are missing.
|
|
|
|
.. code-block:: console
|
|
|
|
LAST PACKET NOT RECEIVED!!!
|
|
|
|
zperf can be enabled in any application, a dedicated sample is also present
|
|
in Zephyr. See :ref:`zperf sample application <zperf-sample>` for details.
|
|
|
|
Sample Usage
|
|
************
|
|
|
|
If Zephyr acts as a client, iPerf must be executed in server mode.
|
|
For example, the following command line must be used for UDP testing:
|
|
|
|
.. code-block:: console
|
|
|
|
$ iperf -s -l 1K -u -V -B 2001:db8::2
|
|
|
|
For TCP testing, the command line would look like this:
|
|
|
|
.. code-block:: console
|
|
|
|
$ iperf -s -l 1K -V -B 2001:db8::2
|
|
|
|
|
|
In the Zephyr console, zperf can be executed as follows:
|
|
|
|
.. code-block:: console
|
|
|
|
zperf udp upload 2001:db8::2 5001 10 1K 1M
|
|
|
|
|
|
For TCP the zperf command would look like this:
|
|
|
|
.. code-block:: console
|
|
|
|
zperf tcp upload 2001:db8::2 5001 10 1K 1M
|
|
|
|
|
|
If the IP addresses of Zephyr and the host machine are specified in the
|
|
config file, zperf can be started as follows:
|
|
|
|
.. code-block:: console
|
|
|
|
zperf udp upload2 v6 10 1K 1M
|
|
|
|
|
|
or like this if you want to test TCP:
|
|
|
|
.. code-block:: console
|
|
|
|
zperf tcp upload2 v6 10 1K 1M
|
|
|
|
|
|
If Zephyr is acting as a server, set the download mode as follows for UDP:
|
|
|
|
.. code-block:: console
|
|
|
|
zperf udp download 5001
|
|
|
|
|
|
or like this for TCP:
|
|
|
|
.. code-block:: console
|
|
|
|
zperf tcp download 5001
|
|
|
|
|
|
and in the host side, iPerf must be executed with the following
|
|
command line if you are testing UDP:
|
|
|
|
.. code-block:: console
|
|
|
|
$ iperf -l 1K -u -V -c 2001:db8::1 -p 5001
|
|
|
|
|
|
and this if you are testing TCP:
|
|
|
|
.. code-block:: console
|
|
|
|
$ iperf -l 1K -V -c 2001:db8::1 -p 5001
|
|
|
|
|
|
iPerf output can be limited by using the -b option if Zephyr is not
|
|
able to receive all the packets in orderly manner.
|