#
# A plugin to setup capture interfaces
# The plugin is off by default. To enable it, add "interfacesetup.enabled=1" to broctl.cfg.
#
import BroControl.plugin
class InterfaceSetupPlugin(BroControl.plugin.Plugin):
def __init__(self):
super(InterfaceSetupPlugin, self).__init__(apiversion=1)
def name(self):
return "InterfaceSetupPlugin"
def prefix(self):
return "interfacesetup"
def pluginVersion(self):
return 1
def init(self):
if self.getOption("enabled") == "0":
return False
return True
def options(self):
return [("mtu", "int", "9000", "Interface MTU"),
("enabled", "string", "0", "Set to enable plugin")]
def cmd_start_pre(self, nodes):
if not nodes:
return
mtu = self.getOption("mtu")
self.message("InterfaceSetupPlugin: mtu=%s" % (mtu))
host_nodes = {}
for n in nodes:
if n.interface:
host_nodes[n.host] = n
cmds = []
for n in host_nodes.values():
cmd = "/sbin/ifconfig %s up mtu %s" % (n.interface, mtu)
cmds.append((n, cmd))
cmd = "/sbin/ethtool -K %s gro off lro off rx off tx off gso off" % (n.interface)
cmds.append((n, cmd))
self.executeParallel(cmds)