[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