aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Sicleru <stefan.sicleru@enea.com>2016-08-30 18:32:48 +0200
committerAlexandru Avadanii <Alexandru.Avadanii@enea.com>2016-10-06 13:25:28 +0000
commitfcc8505054ff7499fed841a70ddc2e3e011dd12a (patch)
tree032e67c91c85b8b598164cd60506cf7c734e7f46
parentadc61fb7af7559b89ca70d44b5271d29db9a00e0 (diff)
net-check: add support for faulty operstate
Some eth drivers, such as those for APM X-Gene Mustang Board's NICs, do not advertise operstate properly in sysfs, ie. it is advertised as "unknown" whereas ethtool shows the NIC as fully functional with link detected. This further affects "ip link show" output which is parsed within _check_iface_ready() method. Replace "ip link show" command with "ethtool" in order to obtain proper results when operstate is unknown. Launchpad bug: https://bugs.launchpad.net/fuel/+bug/1618480 Closes-bug: ARMBAND-140 Change-Id: If8e28d3720161d9ffe897b875af235561cf1062d Signed-off-by: Stefan Sicleru <stefan.sicleru@enea.com> (cherry picked from commit 42050fe09821b29b4879f77411eb558c57c302cc)
-rw-r--r--patches/opnfv-fuel/0054-net-check-add-support-for-faulty-operstate.patch63
1 files changed, 63 insertions, 0 deletions
diff --git a/patches/opnfv-fuel/0054-net-check-add-support-for-faulty-operstate.patch b/patches/opnfv-fuel/0054-net-check-add-support-for-faulty-operstate.patch
new file mode 100644
index 00000000..8a765c92
--- /dev/null
+++ b/patches/opnfv-fuel/0054-net-check-add-support-for-faulty-operstate.patch
@@ -0,0 +1,63 @@
+From: Stefan Sicleru <stefan.sicleru@enea.com>
+Date: Tue, 30 Aug 2016 17:53:41 +0200
+Subject: [PATCH] net-check: add support for faulty operstate
+
+Some eth drivers, such as those for APM X-Gene Mustang Board's NICs, do
+not advertise operstate properly in sysfs, ie. it is advertised as
+"unknown" whereas ethtool shows the NIC as fully functional with link
+detected. This further affects "ip link show" output which is parsed
+within _check_iface_ready() method.
+
+Replace "ip link show" command with "ethtool" in order to obtain proper
+results when operstate is unknown.
+
+Signed-off-by: Stefan Sicleru <stefan.sicleru@enea.com>
+---
+ ...et-check-add-support-for-faulty-operstate.patch | 38 ++++++++++++++++++++++
+ 1 file changed, 38 insertions(+)
+ create mode 100644 build/patch-repos/build/repos/network-checker/0010-net-check-add-support-for-faulty-operstate.patch
+
+diff --git a/build/patch-repos/build/repos/network-checker/0010-net-check-add-support-for-faulty-operstate.patch b/build/patch-repos/build/repos/network-checker/0010-net-check-add-support-for-faulty-operstate.patch
+new file mode 100644
+index 0000000..71e7b73
+--- /dev/null
++++ b/build/patch-repos/build/repos/network-checker/0010-net-check-add-support-for-faulty-operstate.patch
+@@ -0,0 +1,38 @@
++From: Stefan Sicleru <stefan.sicleru@enea.com>
++Date: Tue, 30 Aug 2016 17:30:24 +0200
++Subject: [PATCH] net-check: add support for faulty operstate
++
++Some eth drivers, such as those for APM X-Gene Mustang Board's NICs, do
++not advertise operstate properly in sysfs, ie. it is advertised as
++"unknown" whereas ethtool shows the NIC as fully functional with link
++detected. This further affects "ip link show" output which is parsed
++within _check_iface_ready() method.
++
++Replace "ip link show" command with "ethtool" in order to obtain proper
++results when operstate is unknown.
++
++Signed-off-by: Stefan Sicleru <stefan.sicleru@enea.com>
++---
++ network_checker/net_check/api.py | 9 ++++++++-
++ 1 file changed, 8 insertions(+), 1 deletion(-)
++
++diff --git a/network_checker/net_check/api.py b/network_checker/net_check/api.py
++index e3c3b4e..87aa257 100755
++--- a/network_checker/net_check/api.py
+++++ b/network_checker/net_check/api.py
++@@ -195,7 +195,14 @@ class Actor(object):
++ def _check_iface_ready(self, iface, vid=None):
++ check_iface = self._iface_name(iface, vid)
++ output = self._execute(['ip', '-o', 'link', 'show', check_iface])
++- return 'state UP' in '\n'.join(output)
+++ if 'state UP' in '\n'.join(output):
+++ return True
+++
+++ if 'state UNKNOWN' in '\n'.join(output) and vid == None:
+++ output = self._execute(['ethtool', check_iface])
+++ return 'Link detected: yes' in '\n'.join(output).replace('\n', ' ')
+++
+++ return False
++
++ def _ensure_iface_up(self, iface, vid=None):
++ """Ensures interface is with vid up."""