Disable NIC offload for hosts in routinglib
Change-Id: Id2f8549f9b52c9a4895b3f219de640bb2244f7ea
diff --git a/routinglib.py b/routinglib.py
index 970ce77..c0ed910 100644
--- a/routinglib.py
+++ b/routinglib.py
@@ -153,6 +153,9 @@
if self.defaultRoute:
self.cmd('ip route add default via %s' % self.defaultRoute)
+ for interface in self.interfaces:
+ disable_offload(self, interface)
+
def terminate(self, **kwargs):
self.cmd("ps ax | grep '%s' | awk '{print $1}' | xargs kill"
% (self.socket))
@@ -339,6 +342,8 @@
defaultRoute=defaultRoute,
protocols=[bgp],
*args, **kwargs)
+ def config(self, **kwargs):
+ super(BgpRouter, self).config(**kwargs)
class RouterData(object):
@@ -678,3 +683,9 @@
for intf in self.mn.get( host ).intfList( ):
intf.link.intf1.ifconfig( op )
intf.link.intf2.ifconfig( op )
+
+# Disable NIC offloading
+def disable_offload(host, intf):
+ for attr in ["rx", "tx", "sg"]:
+ cmd = "/sbin/ethtool --offload %s %s off" % (intf, attr)
+ host.cmd(cmd)