VIRL test: Replace IP probe for VXLAN test
[csit.git] / resources / libraries / python / InterfaceUtil.py
index b3d168c..2980afa 100644 (file)
@@ -225,6 +225,9 @@ class InterfaceUtil(object):
         """
 
         if_data = InterfaceUtil.vpp_get_interface_data(node, interface)
+        if if_data['sup_sw_if_index'] != if_data['sw_if_index']:
+            if_data = InterfaceUtil.vpp_get_interface_data(
+                node, if_data['sup_sw_if_index'])
         mac_data = [str(hex(item))[2:] for item in if_data['l2_address'][:6]]
         mac_data_nice = []
         for item in mac_data:
@@ -262,8 +265,6 @@ class InterfaceUtil(object):
             for item in data:
                 item["netmask"] = convert_ipv4_netmask_prefix(
                     item["prefix_length"])
-                # VAT returns addresses with reversed byte order (VPP-132)
-                item["ip"] = ".".join(item["ip"].split(".")[::-1])
         return data
 
     @staticmethod
@@ -464,9 +465,23 @@ class InterfaceUtil(object):
             if_pci = Topology.get_interface_pci_addr(node, if_key)
             ssh.connect(node)
             cmd = "cat /sys/bus/pci/devices/{}/numa_node".format(if_pci)
-            (ret, out, _) = ssh.exec_command(cmd)
-            if ret == 0:
-                Topology.set_interface_numa_node(node, if_key, int(out))
+            for _ in range(3):
+                (ret, out, _) = ssh.exec_command(cmd)
+                if ret == 0:
+                    try:
+                        numa_node = int(out)
+                        if numa_node < 0:
+                            raise ValueError
+                    except ValueError:
+                        logger.trace('Reading numa location failed for: {0}'\
+                            .format(if_pci))
+                    else:
+                        Topology.set_interface_numa_node(node, if_key,
+                                                         numa_node)
+                        break
+            else:
+                raise RuntimeError('Update numa node failed for: {0}'\
+                    .format(if_pci))
 
     @staticmethod
     def update_all_interface_data_on_all_nodes(nodes, skip_tg=False,