zephyr/samples/net/echo_server
Anas Nashif ca0ad13a61 net: enable SLIP only on QEMU targets
In many networking tests we had to configure SLIP in the prj.conf
leaving those configurations Qemu specific. This change enables SLIP for
QEMU targets automatically and allows reuse of prj.conf for multiple
boards.

Additionally, the TUN options is removed. This option was not used
anywhere.

To enable self-contained networking tests that do not depend on SLIP, we
introduce the new option NET_TEST which disables TAP and allows testing
in QEMU without the need for a host interface.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-07-26 10:57:48 -04:00
..
src net: udp: Remove NET_UDP_HDR() macro and direct access to net_buf 2017-07-07 15:24:00 +03:00
Makefile license: Replace Apache boilerplate with SPDX tag 2017-01-19 03:50:58 +00:00
README.rst samples: net: Fix README.rst file documentation 2017-06-09 09:55:37 +03:00
prj_arduino_101.conf net: fix wrong Kconfig 2017-07-05 12:43:13 -04:00
prj_arduino_101_cc2520.conf net: Renaming net nbuf API to net pkt API 2017-04-21 14:19:50 +03:00
prj_bt.conf net: samples: Convert echo-server to use network app API 2017-06-30 06:13:09 -04:00
prj_cc2520.conf net: samples: Convert echo-server to use network app API 2017-06-30 06:13:09 -04:00
prj_frdm_k64f.conf net: samples: Convert echo-server to use network app API 2017-06-30 06:13:09 -04:00
prj_frdm_k64f_cc2520.conf net: samples: Convert echo-server to use network app API 2017-06-30 06:13:09 -04:00
prj_frdm_k64f_mcr20a.conf net: samples: Convert echo-server to use network app API 2017-06-30 06:13:09 -04:00
prj_nrf5.conf net: samples: Convert echo-server to use network app API 2017-06-30 06:13:09 -04:00
prj_qemu_802154.conf net: samples: Convert echo-server to use network app API 2017-06-30 06:13:09 -04:00
prj_qemu_cortex_m3.conf net: enable SLIP only on QEMU targets 2017-07-26 10:57:48 -04:00
prj_qemu_x86.conf net: enable SLIP only on QEMU targets 2017-07-26 10:57:48 -04:00
prj_qemu_x86_tls.conf net: enable SLIP only on QEMU targets 2017-07-26 10:57:48 -04:00
prj_sam_e70_xplained.conf net: samples: Convert echo-server to use network app API 2017-06-30 06:13:09 -04:00
sample.yaml tests: samples: convert testcase files to yaml 2017-06-21 20:56:53 -04:00

README.rst

.. _echo-server-sample:

Echo Server
###########

Overview
********

The echo-server sample application for Zephyr implements a UDP/TCP server
that complements the echo-client sample application: the echo-server listens
for incoming IPv4 or IPv6 packets (sent by the echo client) and simply sends
them back.

The source code for this sample application can be found at:
:file:`samples/net/echo_server`.

Requirements
************

- :ref:`networking_with_qemu`

Building and Running
********************

There are multiple ways to use this application. One of the most common
usage scenario is to run echo-server application inside QEMU. This is
described in :ref:`networking_with_qemu`.

There are configuration files for different boards and setups in the
echo-server directory:

- :file:`prj_arduino_101_cc2520.conf`
  Use this for Arduino 101 with external IEEE 802.15.4 cc2520 board.

- :file:`prj_arduino_101.conf`
  Use this for Arduino 101 with external enc28j60 ethernet board.

- :file:`prj_bt.conf`
  Use this for Bluetooth IPSP connectivity.

- :file:`prj_cc2520.conf`
  Use this for devices that have support for IEEE 802.15.4 cc2520 chip.

- :file:`prj_frdm_k64f_cc2520.conf`
  Use this for FRDM-K64F board with external IEEE 802.15.4 cc2520 board.

- :file:`prj_frdm_k64f.conf`
  Use this for FRDM-K64F board with built-in ethernet.

- :file:`prj_frdm_k64f_mcr20a.conf`
  Use this for FRDM-K64F board with IEEE 802.15.4 mcr20a board.

- :file:`prj_qemu_802154.conf`
  Use this when simulating IEEE 802.15.4 network using two QEMU's that
  are connected together.

- :file:`prj_qemu_cortex_m3.conf`
  Use this for ARM QEMU.

- :file:`prj_qemu_x86.conf`
  Use this for x86 QEMU.

- :file:`prj_sam_e70_xplained.conf`
  Use this for Atmel SMART SAM E70 Xplained board with ethernet.

Build echo-server sample application like this:

.. code-block:: console

    $ cd $ZEPHYR_BASE/samples/net/echo_server
    $ make pristine && make CONF_FILE=<your desired conf file> \
      BOARD=<board to use>

Make can select the default configuration file based on the BOARD you've
specified automatically so you might not always need to mention it.

Running echo-client in Linux Host
=================================

There is one useful testing scenario that can be used with Linux host.
Here echo-server is run in QEMU and echo-client is run in Linux host.

To use QEMU for testing, follow the :ref:`networking_with_qemu` guide.

Run echo-server application in QEMU:

.. code-block:: console

    $ cd $ZEPHYR_BASE/samples/net/echo_server
    $ make pristine && make qemu

In a terminal window:

.. code-block:: console

    $ sudo ./echo-client -i tap0 2001:db8::1

Note that echo-server must be running in QEMU before you start the
echo-client application in host terminal window.