70 lines
2.0 KiB
ReStructuredText
70 lines
2.0 KiB
ReStructuredText
.. zephyr:code-sample:: vlan
|
|
:name: Virtual LAN
|
|
:relevant-api: vlan_api net_l2 net_if
|
|
|
|
Setup two virtual LAN networks and use net-shell to view the networks' settings.
|
|
|
|
Overview
|
|
********
|
|
|
|
The VLAN sample application for Zephyr will setup two virtual LAN networks.
|
|
The application sample enables net-shell and allows users to view VLAN settings.
|
|
|
|
The source code for this sample application can be found at:
|
|
:zephyr_file:`samples/net/vlan`.
|
|
|
|
Requirements
|
|
************
|
|
|
|
- :ref:`networking_with_host`
|
|
|
|
Building and Running
|
|
********************
|
|
|
|
A good way to run this VLAN application is with QEMU as described in
|
|
:ref:`networking_with_eth_qemu`. You can use :file:`zeth-vlan.conf` configuration
|
|
file when running :file:`net-setup.sh` script in Linux like this:
|
|
|
|
.. code-block:: console
|
|
|
|
./net-setup.sh -c zeth-vlan.conf
|
|
|
|
Note that VLAN is only supported for boards that have an ethernet port or
|
|
that support USB networking.
|
|
|
|
Follow these steps to build the VLAN sample application:
|
|
|
|
.. zephyr-app-commands::
|
|
:zephyr-app: samples/net/vlan
|
|
:board: <board to use>
|
|
:conf: prj.conf
|
|
:goals: build
|
|
:compact:
|
|
|
|
The default configuration file :zephyr_file:`samples/net/vlan/prj.conf` creates
|
|
two virtual LAN networks with these settings:
|
|
|
|
- VLAN tag 100: IPv4 198.51.100.1 and IPv6 2001:db8:100::1
|
|
- VLAN tag 200: IPv4 203.0.113.1 and IPv6 2001:db8:200::1
|
|
|
|
Setting up Linux Host
|
|
=====================
|
|
|
|
The :zephyr_file:`samples/net/vlan/vlan-setup-linux.sh` provides a script that
|
|
can be executed on the Linux host. It creates two VLAN interfaces ``vlan.100``
|
|
and ``vlan.200`` on the Linux host and creates routes to Zephyr.
|
|
|
|
If everything is configured correctly, you will be able to successfully execute
|
|
the following commands on the Linux host.
|
|
|
|
.. code-block:: console
|
|
|
|
ping -c 1 2001:db8:100::1
|
|
ping -c 1 198.51.100.1
|
|
ping -c 1 2001:db8:200::1
|
|
ping -c 1 203.0.113.1
|
|
|
|
The network packets to ``2001:db8:100::1`` or ``198.51.100.1`` will have VLAN
|
|
tag 100 set to them. The vlan tag 200 will be set to network packets to
|
|
``2001:db8:200::1`` or ``203.0.113.1``.
|