zephyr/samples/net/virtual
Keith Packard 0b90fd5adf samples, tests, boards: Switch main return type from void to int
As both C and C++ standards require applications running under an OS to
return 'int', adapt that for Zephyr to align with those standard. This also
eliminates errors when building with clang when not using -ffreestanding,
and reduces the need for compiler flags to silence warnings for both clang
and gcc.

Most of these changes were automated using coccinelle with the following
script:

@@
@@
- void
+ int
main(...) {
	...
-	return;
+	return 0;
	...
}

Approximately 40 files had to be edited by hand as coccinelle was unable to
fix them.

Signed-off-by: Keith Packard <keithp@keithp.com>
2023-04-14 07:49:41 +09:00
..
src samples, tests, boards: Switch main return type from void to int 2023-04-14 07:49:41 +09:00
CMakeLists.txt
Kconfig
prj.conf
README.rst
sample.yaml

.. _virtual_network_interface-sample:

Virtual Network Interface Application
#####################################

Overview
********

This sample application creates a sample virtual network interface for
demonstrative purposes, it does not do anything useful here.
There are total 4 network interfaces.
Ethernet network interface is providing the real network interface and
all the virtual interfaces are running on top of it.
On top of Ethernet interface there are two virtual network interfaces,
one provides only IPv6 tunnel, and the other only IPv4. These two tunnels
are provided by IPIP tunnel.
The sample provides tunnel interface which runs on top of the IPv6 tunnel.

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

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

- :ref:`networking_with_host`

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

The `net-tools`_ project provides a configuration that can be used
to create a sample tunnels in host side.

.. code-block:: console

	net-setup.sh -c zeth-tunnel.conf

Note that the sample application expects that the board provides
an Ethernet network interface. Build the sample application like this:

.. zephyr-app-commands::
   :zephyr-app: samples/net/virtual
   :board: <board to use>
   :goals: build
   :compact:

.. _`net-tools`: https://github.com/zephyrproject-rtos/net-tools