[dts] [PATCH 2/4] framework: Fixing unnamed interface detection

Radoslaw Biernacki radoslaw.biernacki at linaro.org
Fri Dec 1 22:20:52 CET 2017


This patch fixes interface name detection broken in one of previous commits.
With introduction of mentioned commit, when interface has no name
get_interface_name() returns "N/A" instead of "No such file".

Fixes: f3e7b094176d ("fix bug that unbound device then run dts will show wrong interface")

Signed-off-by: Radoslaw Biernacki <radoslaw.biernacki at linaro.org>
---
 framework/dut.py    | 46 +++++++++++++++++++++++-----------------------
 framework/tester.py |  5 ++++-
 2 files changed, 27 insertions(+), 24 deletions(-)

diff --git a/framework/dut.py b/framework/dut.py
index 22ff0bb..c83377a 100644
--- a/framework/dut.py
+++ b/framework/dut.py
@@ -260,25 +260,29 @@ class Dut(Crb):
             pci_id = port['type']
             # get device driver
             driver = settings.get_nic_driver(pci_id)
-            if driver is not None:
-                # unbind device driver
-                addr_array = pci_bus.split(':')
-                domain_id = addr_array[0]
-                bus_id = addr_array[1]
-                devfun_id = addr_array[2]
+            if driver is None:
+                self.logger.info("NOT FOUND DRIVER FOR PORT (%s|%s)!!!" % (pci_bus, pci_id))
+                continue
+            # unbind device driver
+            addr_array = pci_bus.split(':')
+            domain_id = addr_array[0]
+            bus_id = addr_array[1]
+            devfun_id = addr_array[2]
 
-                port = GetNicObj(self, domain_id, bus_id, devfun_id)
+            port = GetNicObj(self, domain_id, bus_id, devfun_id)
 
-                self.send_expect('echo %s > /sys/bus/pci/devices/%s\:%s\:%s/driver/unbind'
-                                 % (pci_bus, domain_id, bus_id, devfun_id), '# ')
-                # bind to linux kernel driver
-                self.send_expect('modprobe %s' % driver, '# ')
-                self.send_expect('echo %s > /sys/bus/pci/drivers/%s/bind'
-                                 % (pci_bus, driver), '# ')
-                itf = port.get_interface_name()
-                self.send_expect("ifconfig %s up" % itf, "# ")
-            else:
-                self.logger.info("NOT FOUND DRIVER FOR PORT (%s|%s)!!!" % (pci_bus, pci_id))
+            self.send_expect('echo %s > /sys/bus/pci/devices/%s\:%s\:%s/driver/unbind'
+                             % (pci_bus, domain_id, bus_id, devfun_id), '# ')
+            # bind to linux kernel driver
+            self.send_expect('modprobe %s' % driver, '# ')
+            self.send_expect('echo %s > /sys/bus/pci/drivers/%s/bind'
+                             % (pci_bus, driver), '# ')
+            itf = port.get_interface_name()
+
+            if "N/A" in itf:
+                self.logger.warning("Cannot bring up the interface due missing inf name")
+                continue
+            self.send_expect("ifconfig %s up" % itf, "# ")
 
     def setup_memory(self, hugepages=-1):
         """
@@ -619,7 +623,7 @@ class Dut(Crb):
         for port_info in self.ports_info:
             port = port_info['port']
             intf = port.get_interface_name()
-            if "No such file" in intf:
+            if "N/A" in intf:
                 self.logger.info("DUT: [%s] %s" % (pci_bus, unknow_interface))
                 continue
             self.send_expect("ifconfig %s up" % intf, "# ")
@@ -717,15 +721,11 @@ class Dut(Crb):
 
             port = GetNicObj(self, domain_id, bus_id, devfun_id)
             intf = port.get_interface_name()
-            if "No such file" in intf:
+            if "N/A" in intf:
                 self.logger.info("DUT: [%s] %s" % (pci_bus, unknow_interface))
                 continue
 
             macaddr = port.get_mac_addr()
-            if "No such file" in intf:
-                self.logger.info("DUT: [%s] %s" % (pci_bus, unknow_interface))
-                continue
-
             numa = port.socket
             # store the port info to port mapping
             self.ports_info.append(
diff --git a/framework/tester.py b/framework/tester.py
index 1c854d7..b612cf1 100644
--- a/framework/tester.py
+++ b/framework/tester.py
@@ -237,6 +237,9 @@ class Tester(Crb):
                 addr_array = pci_bus.split(':')
                 port = GetNicObj(self, addr_array[0], addr_array[1], addr_array[2])
                 itf = port.get_interface_name()
+                if "N/A" in itf:
+                    self.logger.warning("Cannot bring up the interface due missing inf name")
+                    continue
                 self.enable_ipv6(itf)
                 self.send_expect("ifconfig %s up" % itf, "# ")
                 if port.get_interface2_name():
@@ -340,7 +343,7 @@ class Tester(Crb):
             port = GetNicObj(self, domain_id, bus_id, devfun_id)
             intf = port.get_interface_name()
 
-            if "No such file" in intf:
+            if "N/A" in intf:
                 self.logger.info("Tester: [%s %s] %s" % (pci_bus, pci_id,
                                                              "unknow_interface"))
                 continue
-- 
2.7.4



More information about the dts mailing list