summaryrefslogtreecommitdiffstats
path: root/test/test_vm_tap.py
diff options
context:
space:
mode:
authorNaveen Joy <najoy@cisco.com>2022-10-04 14:22:05 -0700
committerDave Wallace <dwallacelf@gmail.com>2022-12-13 01:43:01 +0000
commite416893a597959509c7f667c140c271c0bb78c14 (patch)
treec294b99cfe1890415c8a14968caf358182b6a4ca /test/test_vm_tap.py
parentd3ccb0c2fba3e3f8b2eca7b2e1a1fe2877eb993b (diff)
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>
Diffstat (limited to 'test/test_vm_tap.py')
-rw-r--r--test/test_vm_tap.py102
1 files changed, 0 insertions, 102 deletions
diff --git a/test/test_vm_tap.py b/test/test_vm_tap.py
deleted file mode 100644
index 6787ca1e3d7..00000000000
--- a/test/test_vm_tap.py
+++ /dev/null
@@ -1,102 +0,0 @@
-#!/usr/bin/env python3
-import unittest
-from ipaddress import ip_interface
-from vpp_qemu_utils import create_namespace
-from vpp_iperf import VppIperf
-from framework import VppTestCase, VppTestRunner
-from config import config
-
-
-class TestTapQemu(VppTestCase):
- """Test Tap interfaces inside a QEMU VM.
-
- Start an iPerf connection stream between QEMU and VPP via
- tap v2 interfaces.
-
- Linux_ns1 -- iperf_client -- tap1 -- VPP-BD -- tap2 --
- -- iperfServer -- Linux_ns2
- """
-
- @classmethod
- def setUpClass(cls):
- super(TestTapQemu, cls).setUpClass()
-
- @classmethod
- def tearDownClass(cls):
- super(TestTapQemu, cls).tearDownClass()
-
- def setUp(self):
- """Perform test setup before running QEMU tests.
-
- 1. Create a namespace for the iPerf Server & Client.
- 2. Create 2 tap interfaces in VPP & add them to each namespace.
- 3. Add the tap interfaces to a bridge-domain.
- """
- super(TestTapQemu, self).setUp()
- self.client_namespace = "iprf_client_ns"
- self.server_namespace = "iprf_server_ns"
- self.client_ip4_prefix = "10.0.0.101/24"
- self.server_ip4_prefix = "10.0.0.102/24"
- create_namespace(self.client_namespace)
- create_namespace(self.server_namespace)
- tap1_if_idx = self.create_tap(
- 101, self.client_namespace, self.client_ip4_prefix
- )
- tap2_if_idx = self.create_tap(
- 102, self.server_namespace, self.server_ip4_prefix
- )
- self.l2_connect_interfaces(tap1_if_idx, tap2_if_idx)
-
- def create_tap(self, id, host_namespace, host_ip4_prefix):
- result = self.vapi.api(
- self.vapi.papi.tap_create_v2,
- {
- "id": id,
- "use_random_mac": True,
- "host_namespace_set": True,
- "host_namespace": host_namespace,
- "host_if_name_set": False,
- "host_bridge_set": False,
- "host_mac_addr_set": False,
- "host_ip4_prefix": ip_interface(host_ip4_prefix),
- "host_ip4_prefix_set": True,
- },
- )
- sw_if_index = result.sw_if_index
- self.vapi.api(
- self.vapi.papi.sw_interface_set_flags,
- {"sw_if_index": sw_if_index, "flags": 1},
- )
- return sw_if_index
-
- def dump_vpp_tap_interfaces(self):
- return self.vapi.api(self.vapi.papi.sw_interface_tap_v2_dump, {})
-
- def dump_bridge_domain_details(self):
- return self.vapi.api(self.vapi.papi.bridge_domain_dump, {"bd_id": 1})
-
- def l2_connect_interfaces(self, *sw_if_idxs):
- for if_idx in sw_if_idxs:
- self.vapi.api(
- self.vapi.papi.sw_interface_set_l2_bridge,
- {
- "rx_sw_if_index": if_idx,
- "bd_id": 1,
- "shg": 0,
- "port_type": 0,
- "enable": True,
- },
- )
-
- @unittest.skipUnless(config.extended, "part of extended tests")
- def test_tap_iperf(self):
- """Start an iperf connection stream between QEMU & VPP via tap."""
- iperf = VppIperf()
- iperf.client_ns = self.client_namespace
- iperf.server_ns = self.server_namespace
- iperf.server_ip = str(ip_interface(self.server_ip4_prefix).ip)
- iperf.start()
-
-
-if __name__ == "__main__":
- unittest.main(testRunner=VppTestRunner)