tests: tapv2, tunv2 and af_packet interface tests for vpp

Tests gso/gro-coalesce features on tapv2, tunv2 and af_packet
interfaces to ensure that packet transmission is enabled correctly
for various MTU sizes and interface combinations in bridged and
routed topologies for IPv4 and IPv6. Interface tests are
dynamically generated at run time from the config file
vm_test_config.py.

Type: test

Change-Id: I5f9d8cc80d20b4e34011fc8a87e35659bd9613bc
Signed-off-by: Naveen Joy <najoy@cisco.com>
This commit is contained in:
Naveen Joy
2022-10-04 14:22:05 -07:00
committed by Dave Wallace
parent d3ccb0c2fb
commit e416893a59
7 changed files with 1193 additions and 137 deletions

292
test/vm_test_config.py Normal file
View File

@ -0,0 +1,292 @@
#!/usr/bin/env python3
## Virtual Interface Test configuration for VM tests ##
test_config = {
"client_namespace": "iprf_client_ns",
"server_namespace": "iprf_server_ns",
"mtus": [9001, 9000, 2048, 2049, 1500, 512],
"ip_versions": [4, 6],
"af_packet": {
"iprf_client_interface_on_linux": "hostintclient",
"iprf_server_interface_on_linux": "hostintserver",
"iprf_client_interface_on_vpp": "vppclientout",
"iprf_server_interface_on_vpp": "vppserverout",
},
"L2": {
"client_ip4_prefix": "10.0.0.101/24",
"server_ip4_prefix": "10.0.0.102/24",
"client_ip6_prefix": "2001:1::1/64",
"server_ip6_prefix": "2001:1::2/64",
},
"L3": {
"client_ip4_prefix": "10.0.0.101/24",
"vpp_client_ip4_prefix": "10.0.0.102/24",
"server_ip4_prefix": "10.0.1.102/24",
"vpp_server_ip4_prefix": "10.0.1.101/24",
"ip4_vrf": 1,
"client_ip6_prefix": "2001:1::1/64",
"vpp_client_ip6_prefix": "2001:1::2/64",
"server_ip6_prefix": "2001:2::2/64",
"vpp_server_ip6_prefix": "2001:2::1/64",
"ip6_vrf": 2,
},
# Test Filter
# Comma separated test id's or range(s) of test id's to run (default=all)
# e.g. "1,3-4,19-23" runs tests with ID's 1, 3, 4, 19, 20, 21, 22 & 23 only
"tests_to_run": "",
"tests": [
{
"id": 1,
"client_if_type": "tap",
"client_if_version": 2,
"client_if_gso": 0,
"client_if_gro": 0,
"server_if_type": "tap",
"server_if_version": 2,
"server_if_gso": 0,
"server_if_gro": 0,
"x_connect_mode": "L2",
},
{
"id": 2,
"client_if_type": "tap",
"client_if_version": 2,
"client_if_gso": 1,
"client_if_gro": 0,
"server_if_type": "tap",
"server_if_version": 2,
"server_if_gso": 0,
"server_if_gro": 0,
"x_connect_mode": "L2",
},
{
"id": 3,
"client_if_type": "tap",
"client_if_version": 2,
"client_if_gso": 0,
"client_if_gro": 0,
"server_if_type": "tap",
"server_if_version": 2,
"server_if_gso": 1,
"server_if_gro": 0,
"x_connect_mode": "L2",
},
{
"id": 4,
"client_if_type": "tap",
"client_if_version": 2,
"client_if_gso": 0,
"client_if_gro": 1,
"server_if_type": "tap",
"server_if_version": 2,
"server_if_gso": 0,
"server_if_gro": 0,
"x_connect_mode": "L2",
},
{
"id": 5,
"client_if_type": "tap",
"client_if_version": 2,
"client_if_gso": 0,
"client_if_gro": 0,
"server_if_type": "tap",
"server_if_version": 2,
"server_if_gso": 0,
"server_if_gro": 1,
"x_connect_mode": "L2",
},
{
"id": 6,
"client_if_type": "tap",
"client_if_version": 2,
"client_if_gso": 1,
"client_if_gro": 0,
"server_if_type": "tap",
"server_if_version": 2,
"server_if_gso": 0,
"server_if_gro": 1,
"x_connect_mode": "L2",
},
{
"id": 7,
"client_if_type": "tap",
"client_if_version": 2,
"client_if_gso": 0,
"client_if_gro": 1,
"server_if_type": "tap",
"server_if_version": 2,
"server_if_gso": 1,
"server_if_gro": 0,
"x_connect_mode": "L2",
},
{
"id": 8,
"client_if_type": "tap",
"client_if_version": 2,
"client_if_gso": 1,
"client_if_gro": 0,
"server_if_type": "tap",
"server_if_version": 2,
"server_if_gso": 1,
"server_if_gro": 0,
"x_connect_mode": "L2",
},
{
"id": 9,
"client_if_type": "tap",
"client_if_version": 2,
"client_if_gso": 0,
"client_if_gro": 1,
"server_if_type": "tap",
"server_if_version": 2,
"server_if_gso": 0,
"server_if_gro": 1,
"x_connect_mode": "L2",
},
{
"id": 10,
"client_if_type": "tap",
"client_if_version": 2,
"client_if_gso": 0,
"client_if_gro": 0,
"server_if_type": "tun",
"server_if_version": 2,
"server_if_gso": 0,
"server_if_gro": 1,
"x_connect_mode": "L3",
},
{
"id": 11,
"client_if_type": "tun",
"client_if_version": 2,
"client_if_gso": 0,
"client_if_gro": 0,
"server_if_type": "tap",
"server_if_version": 2,
"server_if_gso": 0,
"server_if_gro": 1,
"x_connect_mode": "L3",
},
{
"id": 12,
"client_if_type": "af_packet",
"client_if_version": 3,
"client_if_gso": 0,
"server_if_type": "af_packet",
"server_if_version": 3,
"server_if_gso": 0,
"x_connect_mode": "L2",
},
{
"id": 13,
"client_if_type": "af_packet",
"client_if_version": 3,
"client_if_gso": 0,
"server_if_type": "af_packet",
"server_if_version": 3,
"server_if_gso": 0,
"x_connect_mode": "L3",
},
{
"id": 14,
"client_if_type": "af_packet",
"client_if_version": 3,
"client_if_gso": 1,
"server_if_type": "af_packet",
"server_if_version": 3,
"server_if_gso": 1,
"x_connect_mode": "L2",
},
{
"id": 15,
"client_if_type": "af_packet",
"client_if_version": 3,
"client_if_gso": 1,
"server_if_type": "af_packet",
"server_if_version": 3,
"server_if_gso": 1,
"x_connect_mode": "L3",
},
{
"id": 16,
"client_if_type": "af_packet",
"client_if_version": 3,
"client_if_gso": 1,
"server_if_type": "af_packet",
"server_if_version": 3,
"server_if_gso": 0,
"x_connect_mode": "L2",
},
{
"id": 17,
"client_if_type": "af_packet",
"client_if_version": 2,
"client_if_gso": 1,
"server_if_type": "tap",
"server_if_version": 2,
"server_if_gso": 0,
"x_connect_mode": "L2",
},
{
"id": 18,
"client_if_type": "af_packet",
"client_if_version": 2,
"client_if_gso": 1,
"server_if_type": "tun",
"server_if_version": 2,
"server_if_gso": 0,
"x_connect_mode": "L3",
},
{
"id": 19,
"client_if_type": "af_packet",
"client_if_version": 2,
"client_if_gso": 1,
"server_if_type": "af_packet",
"server_if_version": 2,
"server_if_gso": 1,
"x_connect_mode": "L3",
},
{
"id": 20,
"client_if_type": "af_packet",
"client_if_version": 2,
"client_if_gso": 0,
"server_if_type": "af_packet",
"server_if_version": 2,
"server_if_gso": 0,
"x_connect_mode": "L2",
},
{
"id": 21,
"client_if_type": "af_packet",
"client_if_version": 2,
"client_if_gso": 0,
"server_if_type": "tun",
"server_if_version": 2,
"server_if_gro": 1,
"x_connect_mode": "L3",
},
{
"id": 22,
"client_if_type": "af_packet",
"client_if_version": 3,
"client_if_gso": 0,
"server_if_type": "af_packet",
"server_if_version": 2,
"server_if_gso": 1,
"x_connect_mode": "L2",
},
{
"id": 23,
"client_if_type": "af_packet",
"client_if_version": 2,
"client_if_gso": 1,
"server_if_type": "af_packet",
"server_if_version": 2,
"server_if_gso": 1,
"x_connect_mode": "L2",
},
],
}