FIX: Add show log output when test failed.
[csit.git] / resources / libraries / python / InterfaceUtil.py
index 0333c9c..e2dc2f1 100644 (file)
@@ -20,8 +20,8 @@ from ipaddress import ip_address
 from robot.api import logger
 
 from resources.libraries.python.Constants import Constants
-from resources.libraries.python.CpuUtils import CpuUtils
 from resources.libraries.python.DUTSetup import DUTSetup
+from resources.libraries.python.IPAddress import IPAddress
 from resources.libraries.python.L2Util import L2Util
 from resources.libraries.python.PapiExecutor import PapiSocketExecutor
 from resources.libraries.python.parsers.JsonParser import JsonParser
@@ -695,14 +695,6 @@ class InterfaceUtil:
         :raises ValueError: If numa node ia less than 0.
         :raises RuntimeError: If update of numa node failed.
         """
-        def check_cpu_node_count(node_n, val):
-            val = int(val)
-            if val < 0:
-                if CpuUtils.cpu_node_count(node_n) == 1:
-                    val = 0
-                else:
-                    raise ValueError
-            return val
         ssh = SSH()
         for if_key in Topology.get_node_interfaces(node):
             if_pci = Topology.get_interface_pci_addr(node, if_key)
@@ -712,7 +704,7 @@ class InterfaceUtil:
                 ret, out, _ = ssh.exec_command(cmd)
                 if ret == 0:
                     try:
-                        numa_node = check_cpu_node_count(node, out)
+                        numa_node = 0 if int(out) < 0 else int(out)
                     except ValueError:
                         logger.trace(
                             f"Reading numa location failed for: {if_pci}"
@@ -799,16 +791,16 @@ class InterfaceUtil:
         :raises RuntimeError: if it is unable to create VxLAN interface on the
             node.
         """
-        src_address = ip_address(source_ip)
-        dst_address = ip_address(destination_ip)
-
         cmd = u"vxlan_add_del_tunnel"
         args = dict(
-            is_add=1,
-            is_ipv6=1 if src_address.version == 6 else 0,
+            is_add=True,
             instance=Constants.BITWISE_NON_ZERO,
-            src_address=src_address.packed,
-            dst_address=dst_address.packed,
+            src_address=IPAddress.create_ip_address_object(
+                ip_address(source_ip)
+            ),
+            dst_address=IPAddress.create_ip_address_object(
+                ip_address(destination_ip)
+            ),
             mcast_sw_if_index=Constants.BITWISE_NON_ZERO,
             encap_vrf_id=0,
             decap_next_index=Constants.BITWISE_NON_ZERO,
@@ -846,9 +838,9 @@ class InterfaceUtil:
 
         cmd = u"sw_interface_set_vxlan_bypass"
         args = dict(
-            is_ipv6=0,
+            is_ipv6=False,
             sw_if_index=sw_if_index,
-            enable=1
+            enable=True
         )
         err_msg = f"Failed to set VXLAN bypass on interface " \
             f"on host {node[u'host']}"
@@ -878,16 +870,8 @@ class InterfaceUtil:
             :returns: Processed vxlan interface dump.
             :rtype: dict
             """
-            if vxlan_dump[u"is_ipv6"]:
-                vxlan_dump[u"src_address"] = \
-                    ip_address(vxlan_dump[u"src_address"])
-                vxlan_dump[u"dst_address"] =  \
-                    ip_address(vxlan_dump[u"dst_address"])
-            else:
-                vxlan_dump[u"src_address"] = \
-                    ip_address(vxlan_dump[u"src_address"][0:4])
-                vxlan_dump[u"dst_address"] = \
-                    ip_address(vxlan_dump[u"dst_address"][0:4])
+            vxlan_dump[u"src_address"] = str(vxlan_dump[u"src_address"])
+            vxlan_dump[u"dst_address"] = str(vxlan_dump[u"dst_address"])
             return vxlan_dump
 
         if interface is not None:
@@ -1200,6 +1184,10 @@ class InterfaceUtil:
         :raises RuntimeError: If it is not possible to create RDMA interface on
             the node.
         """
+        PapiSocketExecutor.run_cli_cmd(
+            node, u"set logging class avf level debug"
+        )
+
         cmd = u"rdma_create"
         pci_addr = Topology.get_interface_pci_addr(node, if_key)
         args = dict(
@@ -1208,7 +1196,7 @@ class InterfaceUtil:
             rxq_num=int(num_rx_queues) if num_rx_queues else 0,
             rxq_size=rxq_size,
             txq_size=txq_size,
-            mode=getattr(RdmaMode,f"RDMA_API_MODE_{mode.upper()}").value,
+            mode=getattr(RdmaMode, f"RDMA_API_MODE_{mode.upper()}").value,
         )
         err_msg = f"Failed to create RDMA interface on host {node[u'host']}"
         with PapiSocketExecutor(node) as papi_exec: