tests: net: virtual: Add unit tests for checking tunneling

Add tests to verify that IP tunneling works as expected.

Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
This commit is contained in:
Jukka Rissanen 2021-03-05 18:54:35 +02:00 committed by Anas Nashif
commit 8ea7eb9e51
5 changed files with 1116 additions and 0 deletions

View file

@ -0,0 +1,9 @@
# SPDX-License-Identifier: Apache-2.0
cmake_minimum_required(VERSION 3.13.1)
find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
project(vlan)
target_include_directories(app PRIVATE ${ZEPHYR_BASE}/subsys/net/ip)
FILE(GLOB app_sources src/*.c)
target_sources(app PRIVATE ${app_sources})

26
tests/net/virtual/Kconfig Normal file
View file

@ -0,0 +1,26 @@
# Private config options for virtual network interface test app
# Copyright (c) 2021 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
mainmenu "Virtual network interface test application"
config NET_TEST_TUNNEL_PEER_ADDR
string "Remote IP address of the tunnel interface"
depends on NET_L2_IPIP
help
The value depends on your network setup.
config NET_TEST_TUNNEL_MY_ADDR
string "My address for tunnel interface"
depends on NET_L2_IPIP
help
The value depends on your network setup.
config NET_TEST_TUNNEL_NAME
string "Name of the tunnel interface"
depends on NET_L2_IPIP
help
The value depends on your network setup.
source "Kconfig.zephyr"

View file

@ -0,0 +1,45 @@
CONFIG_NETWORKING=y
CONFIG_NET_TEST=y
CONFIG_NET_IPV6=y
CONFIG_NET_UDP=y
CONFIG_NET_TCP=y
CONFIG_NET_IPV4=y
CONFIG_NET_L2_ETHERNET=y
CONFIG_NET_L2_DUMMY=y
CONFIG_NET_L2_VIRTUAL=y
CONFIG_NET_L2_VIRTUAL_MGMT=y
CONFIG_NET_L2_IPIP=y
CONFIG_NET_IF_MAX_IPV6_COUNT=8
CONFIG_NET_IF_MAX_IPV4_COUNT=8
# First tunneling interface will have these settings
CONFIG_NET_TEST_TUNNEL_PEER_ADDR="192.0.2.2"
#CONFIG_NET_TEST_TUNNEL_PEER_ADDR="2001:db8::2"
# Use this for IPv6 over IPv4|6
CONFIG_NET_TEST_TUNNEL_MY_ADDR="2001:db8:200::1"
# Use this for IPv4 over IPv4|6
#CONFIG_NET_TEST_TUNNEL_MY_ADDR="198.51.100.1"
CONFIG_NET_L2_VIRTUAL_MAX_NAME_LEN=8
CONFIG_NET_ARP=n
CONFIG_NET_MAX_CONTEXTS=4
CONFIG_NET_LOG=y
CONFIG_ENTROPY_GENERATOR=y
CONFIG_TEST_RANDOM_GENERATOR=y
CONFIG_NET_IPV6_DAD=n
CONFIG_NET_IPV6_MLD=n
CONFIG_NET_PKT_TX_COUNT=15
CONFIG_NET_PKT_RX_COUNT=15
CONFIG_NET_BUF_RX_COUNT=15
CONFIG_NET_BUF_TX_COUNT=15
CONFIG_NET_IF_MAX_IPV6_COUNT=6
CONFIG_NET_IF_UNICAST_IPV6_ADDR_COUNT=6
CONFIG_NET_IPV6_ND=n
CONFIG_ZTEST=y
CONFIG_NET_CONFIG_SETTINGS=n
CONFIG_NET_SHELL=n

1011
tests/net/virtual/src/main.c Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,25 @@
common:
depends_on: netif
min_ram: 32
tags: net tunnel virtual
tests:
net.virtual.tunnel.ipip:
extra_configs:
- CONFIG_NET_TEST_TUNNEL_PEER_ADDR="192.0.2.2"
- CONFIG_NET_TEST_TUNNEL_MY_ADDR="198.51.100.1"
- CONFIG_NET_TEST_TUNNEL_NAME="ipip"
net.virtual.tunnel.ip6ip:
extra_configs:
- CONFIG_NET_TEST_TUNNEL_PEER_ADDR="192.0.2.2"
- CONFIG_NET_TEST_TUNNEL_MY_ADDR="2001:db8:200::1"
- CONFIG_NET_TEST_TUNNEL_NAME="ip6ip"
net.virtual.tunnel.ipip6:
extra_configs:
- CONFIG_NET_TEST_TUNNEL_PEER_ADDR="2001:db8::2"
- CONFIG_NET_TEST_TUNNEL_MY_ADDR="198.51.100.1"
- CONFIG_NET_TEST_TUNNEL_NAME="ipip6"
net.virtual.tunnel.ip6ip6:
extra_configs:
- CONFIG_NET_TEST_TUNNEL_PEER_ADDR="2001:db8::2"
- CONFIG_NET_TEST_TUNNEL_MY_ADDR="2001:db8:200::1"
- CONFIG_NET_TEST_TUNNEL_NAME="ip6ip6"