1.. _networking_with_armfvp: 2 3Networking with Arm FVP User Mode 4################################# 5 6.. contents:: 7 :local: 8 :depth: 2 9 10This page is intended to serve as a starting point for anyone interested in 11using Arm FVP user mode networking with Zephyr. 12 13Introduction 14************* 15 16User mode networking emulates a built-in IP router and DHCP server, and routes 17TCP and UDP traffic between the guest and host. It uses the user mode socket 18layer of the host to communicate with other hosts. This allows the use of 19a significant number of IP network services without requiring administrative 20privileges, or the installation of a separate driver on the host on which 21the model is running. 22 23By default, Arm FVP uses the ``172.20.51.0/24`` network and runs a gateway at 24``172.20.51.254``. This gateway also functions as a DHCP server for the GOS, 25allowing it to be automatically assigned with an IP address ``172.20.51.1``. 26 27More details about Arm FVP user mode networking can be obtained from here: 28https://developer.arm.com/documentation/100964/latest/Introduction-to-Fast-Models/User-mode-networking 29 30Using Arm FVP User Mode Networking with Zephyr 31*********************************************** 32 33Arm FVP user mode networking can be enabled in any applications and it doesn't 34need any configurations on the host system. This feature has been enabled in 35DHCPv4 client sample. 36See :zephyr:code-sample:`dhcpv4-client` sample application. 37 38Limitations 39************* 40 41* You can use TCP and UDP over IP, but not ICMP (ping). 42* User mode networking does not support forwarding UDP ports on the host to 43 the model. 44* You can only use DHCP within the private network. 45* You can only make inward connections by mapping TCP ports on the host to 46 the model. This is common to all implementations that provide host 47 connectivity using NAT. 48* Operations that require privileged source ports, for example NFS in its 49 default configuration, do not work. 50* If setup fails, or the parameter syntax is incorrect, there is no error 51 reporting. 52