aboutsummaryrefslogtreecommitdiffstats
path: root/resources/libraries
diff options
context:
space:
mode:
Diffstat (limited to 'resources/libraries')
-rw-r--r--resources/libraries/python/InterfaceUtil.py6
-rw-r--r--resources/libraries/python/topology.py31
-rw-r--r--resources/libraries/robot/shared/suite_teardown.robot6
3 files changed, 39 insertions, 4 deletions
diff --git a/resources/libraries/python/InterfaceUtil.py b/resources/libraries/python/InterfaceUtil.py
index 1a97130a8e..982a345ef2 100644
--- a/resources/libraries/python/InterfaceUtil.py
+++ b/resources/libraries/python/InterfaceUtil.py
@@ -1455,12 +1455,12 @@ class InterfaceUtil(object):
@staticmethod
def init_avf_interface(node, ifc_key, numvfs=1, osi_layer='L2'):
- """Init PCI device by creating VFs and bind them to vfio-pci for AVF
+ """Init PCI device by creating VIFs and bind them to vfio-pci for AVF
driver testing on DUT.
:param node: DUT node.
:param ifc_key: Interface key from topology file.
- :param numvfs: Number of VFs to initialize, 0 - disable the VFs.
+ :param numvfs: Number of VIFs to initialize, 0 - disable the VIFs.
:param osi_layer: OSI Layer type to initialize TG with.
Default value "L2" sets linux interface spoof off.
:type node: dict
@@ -1518,7 +1518,7 @@ class InterfaceUtil(object):
DUTSetup.pci_vf_driver_bind(node, pf_pci_addr, vf_id, uio_driver)
# Add newly created ports into topology file
- vf_ifc_name = '{pf_if_key}_vf'.format(pf_if_key=ifc_key)
+ vf_ifc_name = '{pf_if_key}_vif'.format(pf_if_key=ifc_key)
vf_pci_addr = DUTSetup.get_virtfn_pci_addr(node, pf_pci_addr, vf_id)
vf_ifc_key = Topology.add_new_port(node, vf_ifc_name)
Topology.update_interface_name(node, vf_ifc_key,
diff --git a/resources/libraries/python/topology.py b/resources/libraries/python/topology.py
index 698c97b426..1e5ce4bd62 100644
--- a/resources/libraries/python/topology.py
+++ b/resources/libraries/python/topology.py
@@ -13,6 +13,8 @@
"""Defines nodes and topology structure."""
+import re
+
from collections import Counter
from yaml import load
@@ -59,6 +61,7 @@ class NodeSubTypeTG(object):
# IxNetwork
IXNET = 'IXNET'
+
DICT__nodes = load_topo_from_yaml()
@@ -139,7 +142,7 @@ class Topology(object):
"""
port_types = ('subinterface', 'vlan_subif', 'memif', 'tap', 'vhost',
'loopback', 'gre_tunnel', 'vxlan_tunnel', 'eth_bond',
- 'avf')
+ 'eth_avf')
for node_data in nodes.values():
if node_data['type'] == NodeType.DUT:
@@ -147,6 +150,32 @@ class Topology(object):
Topology.remove_all_ports(node_data, ptype)
@staticmethod
+ def remove_all_vif_ports(node):
+ """Remove all Virtual Interfaces on DUT node.
+
+ :param node: Node to remove VIF ports on.
+ :type node: dict
+ :returns: Nothing
+ """
+ reg_ex = re.compile(r'port\d+_vif\d+')
+ for if_key in list(node['interfaces']):
+ if re.match(reg_ex, if_key):
+ node['interfaces'].pop(if_key)
+
+ @staticmethod
+ def remove_all_added_vif_ports_on_all_duts_from_topology(nodes):
+ """Remove all added Virtual Interfaces on all DUT nodes in
+ the topology.
+
+ :param nodes: Nodes in the topology.
+ :type nodes: dict
+ :returns: Nothing
+ """
+ for node_data in nodes.values():
+ if node_data['type'] == NodeType.DUT:
+ Topology.remove_all_vif_ports(node_data)
+
+ @staticmethod
def update_interface_sw_if_index(node, iface_key, sw_if_index):
"""Update sw_if_index on the interface from the node.
diff --git a/resources/libraries/robot/shared/suite_teardown.robot b/resources/libraries/robot/shared/suite_teardown.robot
index e5db4f05d8..a6c021e355 100644
--- a/resources/libraries/robot/shared/suite_teardown.robot
+++ b/resources/libraries/robot/shared/suite_teardown.robot
@@ -45,3 +45,9 @@
| | :FOR | ${dut} | IN | @{duts}
| | | Cleanup DPDK Environment
| | | ... | ${nodes['${dut}']} | ${${dut}_if1} | ${${dut}_if2}
+
+| Additional Suite Tear Down Action For vifs
+| | [Documentation]
+| | ... | Additional teardown for suites which uses Virtual Interfaces.
+| | ...
+| | Remove All Added VIF Ports On All DUTs From Topology | ${nodes}