66 lines
2.0 KiB
ReStructuredText
66 lines
2.0 KiB
ReStructuredText
|
.. _throughput-server-sample:
|
||
|
|
||
|
Throughput Server
|
||
|
#################
|
||
|
|
||
|
Overview
|
||
|
********
|
||
|
|
||
|
The throughput-server sample application for Zephyr implements a UDP server
|
||
|
that complements the throughput-client tool from Zephyr `net-tools`_ repository.
|
||
|
The throughput-server listens for incoming IPv4 or IPv6 packets (sent by the
|
||
|
throughput-client) and optionally sends the packets back.
|
||
|
Note that it makes sense to use this sample (only) with high-performance
|
||
|
bearer like Ethernet.
|
||
|
|
||
|
The source code for this sample application can be found at:
|
||
|
:file:`samples/net/throughput_server`.
|
||
|
|
||
|
Building and Running
|
||
|
********************
|
||
|
|
||
|
The application can be used on multiple boards and with different bearers.
|
||
|
Emulation using QEMU is not recommended because the ethernet connection in
|
||
|
QEMU is done using a serial port with SLIP, so it is very slow.
|
||
|
|
||
|
There are configuration files for different boards and setups in the
|
||
|
throughput-server directory:
|
||
|
|
||
|
- :file:`prj_frdm_k64f.conf`
|
||
|
Use this for FRDM-K64F board with built-in ethernet.
|
||
|
|
||
|
Build throughput-server sample application like this:
|
||
|
|
||
|
.. zephyr-app-commands::
|
||
|
:zephyr-app: samples/net/throughput_server
|
||
|
:board: <board to use>
|
||
|
:conf: <config file to use>
|
||
|
:goals: build
|
||
|
:compact:
|
||
|
|
||
|
Make will select the default configuration file based on the BOARD you
|
||
|
specified to CMake.
|
||
|
|
||
|
Note that shell support is not activated in the throughput-server so that
|
||
|
we can save some memory and have as many net_buf's configured in the system
|
||
|
as possible.
|
||
|
|
||
|
Running throughput-client in Linux Host
|
||
|
=======================================
|
||
|
|
||
|
In this example, the throughput-server is run on a board and throughput-client
|
||
|
is run on a Linux host. The throughput-client can be found at the `net-tools`_
|
||
|
project.
|
||
|
|
||
|
Open a terminal window and type:
|
||
|
|
||
|
.. code-block:: console
|
||
|
|
||
|
$ cd net-tools
|
||
|
$ ./throughput-client -F -s 200 2001:db8::1
|
||
|
|
||
|
Note that throughput-server must be running on the device under test before you
|
||
|
start the throughput-client application in a host terminal window.
|
||
|
|
||
|
.. _`net-tools`: https://github.com/zephyrproject-rtos/net-tools
|