Temporary: HACK: SR-IOV: Fix VNIC filtering. 47/16547/1
authorAlexandru Avadanii <Alexandru.Avadanii@enea.com>
Thu, 7 Jul 2016 12:03:20 +0000 (14:03 +0200)
committerAlexandru Avadanii <Alexandru.Avadanii@enea.com>
Thu, 7 Jul 2016 12:08:29 +0000 (14:08 +0200)
FIXME: Revert this when upstream Fuel 9.1 closes bug [1].

[1] https://bugs.launchpad.net/fuel/+bug/1597775

Change-Id: I692b0ef63ee3e035deadef9d4e47b43f4c53e4aa
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
patches/fuel-nailgun-agent/0002-Temporary-SR-IOV-Fix-VNICs-broken-filter.patch [new file with mode: 0644]

diff --git a/patches/fuel-nailgun-agent/0002-Temporary-SR-IOV-Fix-VNICs-broken-filter.patch b/patches/fuel-nailgun-agent/0002-Temporary-SR-IOV-Fix-VNICs-broken-filter.patch
new file mode 100644 (file)
index 0000000..a3cb1ea
--- /dev/null
@@ -0,0 +1,35 @@
+From: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
+Date: Thu, 7 Jul 2016 13:58:34 +0200
+Subject: [PATCH] Temporary: SR-IOV: Fix VNICs broken filter.
+
+Some blades have VNICs (VFs on a PCI device), which are not
+SR-IOV VFs.
+
+Bug report: "VNICs ignored due to SR-IOV filtering" [1]
+
+HACK: Instead of checking for "physfn", we now rely on testing
+for "sriov_totalvfs" file to determine whether current eth is
+a SR-IOV VF or something else (thus keeping VNICs).
+
+FIXME: Revert this patch once upstream closes bug [1].
+
+[1] https://bugs.launchpad.net/fuel/+bug/1597775
+
+Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
+---
+ agent | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/agent b/agent
+index 89ab60f..eb2bfb4 100755
+--- a/agent
++++ b/agent
+@@ -406,7 +406,7 @@ class NodeAgent
+         next if File.exist?("/sys/class/net/#{int}/phy80211") ||
+                 File.exist?("/sys/class/net/#{int}/wireless")
+         # Skip virtual functions
+-        next if File.exists?("/sys/class/net/#{int}/device/physfn")
++        next if File.exists?("/sys/class/net/#{int}/device/sriov_totalvfs")
+         int_meta = {:name => int}
+         int_meta[:interface_properties] = {}
+         int_meta[:state] = intinfo[:state]