+# system provided modules
+import os, string, time, socket
+
+# PlanetLab system modules
+import sioc, plnet
+
+# local modules
+import plnode.bwlimit as bwlimit
+import logger, iptables, tools
+
+# we can't do anything without a network
+priority=1
+
+dev_default = tools.get_default_if()
+
+
+def start():
+ logger.log("net: plugin starting up...")
+
+def GetSlivers(data, config, plc):
+ # added by caglar
+ # band-aid for short period as old API returns networks instead of interfaces
+ global KEY_NAME
+ KEY_NAME = "interfaces"
+ #################
+
+ logger.verbose("net: GetSlivers called.")
+ if not 'interfaces' in data:
+ # added by caglar
+ # band-aid for short period as old API returns networks instead of interfaces
+ # logger.log_missing_data('net.GetSlivers','interfaces')
+ # return
+ if not 'networks' in data:
+ logger.log_missing_data('net.GetSlivers','interfaces')
+ return
+ else:
+ KEY_NAME = "networks"
+ ##################
+
+ plnet.InitInterfaces(logger, plc, data)
+ if 'OVERRIDES' in dir(config):
+ if config.OVERRIDES.get('net_max_rate') == '-1':
+ logger.log("net: Slice and node BW Limits disabled.")
+ if len(bwlimit.tc("class show dev %s" % dev_default)):
+ logger.verbose("net: *** DISABLING NODE BW LIMITS ***")
+ bwlimit.stop()
+ else:
+ InitNodeLimit(data)
+ InitI2(plc, data)
+ else:
+ InitNodeLimit(data)
+ InitI2(plc, data)