.. _networking_with_armfvp:

Networking with Arm FVP User Mode
#################################

.. contents::
    :local:
    :depth: 2

This page is intended to serve as a starting point for anyone interested in
using Arm FVP user mode networking with Zephyr.

Introduction
*************

User mode networking emulates a built-in IP router and DHCP server, and routes
TCP and UDP traffic between the guest and host. It uses the user mode socket
layer of the host to communicate with other hosts. This allows the use of
a significant number of IP network services without requiring administrative
privileges, or the installation of a separate driver on the host on which
the model is running.

By default, Arm FVP uses the ``172.20.51.0/24`` network and runs a gateway at
``172.20.51.254``. This gateway also functions as a DHCP server for the GOS,
allowing it to be automatically assigned with an IP address ``172.20.51.1``.

More details about Arm FVP user mode networking can be obtained from here:
https://developer.arm.com/documentation/100964/latest/Introduction-to-Fast-Models/User-mode-networking

Using Arm FVP User Mode Networking with Zephyr
***********************************************

Arm FVP user mode networking can be enabled in any applications and it doesn't
need any configurations on the host system. This feature has been enabled in
DHCPv4 client sample.
See :ref:`Sample DHCPv4 client application <dhcpv4-client-sample>`

Limitations
*************

* You can use TCP and UDP over IP, but not ICMP (ping).
* User mode networking does not support forwarding UDP ports on the host to
  the model.
* You can only use DHCP within the private network.
* You can only make inward connections by mapping TCP ports on the host to
  the model. This is common to all implementations that provide host
  connectivity using NAT.
* Operations that require privileged source ports, for example NFS in its
  default configuration, do not work.
* If setup fails, or the parameter syntax is incorrect, there is no error
  reporting.
