doc: net: Add more info for Arm FVP user mode networking

Added more detailed information about Arm FVP user mode networking and
how to use it.

Signed-off-by: Huifeng Zhang <Huifeng.Zhang@arm.com>
This commit is contained in:
Huifeng Zhang 2023-02-12 16:27:33 +08:00 committed by Carles Cufí
commit 2080bd702b
2 changed files with 62 additions and 0 deletions

View file

@ -0,0 +1,51 @@
.. _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.

View file

@ -14,6 +14,7 @@ Networking with the host system
qemu_user_setup.rst qemu_user_setup.rst
networking_with_multiple_instances.rst networking_with_multiple_instances.rst
qemu_802154_setup.rst qemu_802154_setup.rst
armfvp_user_networking_setup.rst
While developing networking software, it is usually necessary to connect and While developing networking software, it is usually necessary to connect and
exchange data with the host system like a Linux desktop computer. exchange data with the host system like a Linux desktop computer.
@ -42,6 +43,16 @@ possible:
limitations including performance which makes it less valuable for practical limitations including performance which makes it less valuable for practical
purposes. See :ref:`networking_with_user_qemu` for details. purposes. See :ref:`networking_with_user_qemu` for details.
* Arm FVP (User Mode Networking).
* 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. See :ref:`networking_with_armfvp`
for details.
* native_posix board. * native_posix board.
* The Zephyr instance can be executed as a user space process in the host * The Zephyr instance can be executed as a user space process in the host