.. _networking_with_host:

Networking with the host system
###############################

.. toctree::
   :maxdepth: 1
   :hidden:

   native_posix_setup.rst
   qemu_eth_setup.rst
   qemu_setup.rst
   usbnet_setup.rst
   qemu_user_setup.rst

While developing networking software, it is usually necessary to connect and
exchange data with the host system like a Linux desktop computer.
Depending on what board is used for development, the following options are
possible:

* QEMU using SLIP (Serial Line Internet Protocol).

  * Here IP packets are exchanged between Zephyr and the host system via serial
    port. This is the legacy way of transferring data. It is also quite slow so
    use it only when necessary. See :ref:`networking_with_qemu` for details.

* QEMU using built-in Ethernet driver.

  * Here IP packets are exchanged between Zephyr and the host system via QEMU's
    built-in Ethernet driver. Not all QEMU boards support built-in Ethernet so
    in some cases, you might need to use the SLIP method for host connectivity.
    See :ref:`networking_with_eth_qemu` for details.

* QEMU using SLIRP (Qemu User Networking).

  * QEMU User Networking is implemented using "slirp", which provides a full TCP/IP
    stack within QEMU and uses that stack to implement a virtual NAT'd network. As
    this support is built into QEMU, it can be used with any model and requires no
    admin privileges on the host machine, unlike TAP. However, it has several
    limitations including performance which makes it less valuable for practical
    purposes. See :ref:`networking_with_user_qemu` for details.

* native_posix board.

  * The Zephyr instance can be executed as a user space process in the host
    system. This is the most convenient way to debug the Zephyr system as one
    can attach host debugger directly to the running Zephyr instance. This
    requires that there is an adaptation driver in Zephyr for interfacing
    with the host system. An Ethernet driver exists in Zephyr for this purpose.
    See :ref:`networking_with_native_posix` for details.

* USB device networking.

  * Here, the Zephyr instance is run on a real board and the connectivity to
    the host system is done via USB.
    See :ref:`usb_device_networking_setup` for details.
