Merge from branch.
[nodemanager.git] / net.py
diff --git a/net.py b/net.py
index bb60f1f..810490c 100644 (file)
--- a/net.py
+++ b/net.py
@@ -3,20 +3,33 @@
 #
 """network configuration"""
 
-import sioc
-import bwlimit
-import logger
-import string
-import iptables
-import os
-import plnet
-
-def GetSlivers(plc, data):
-    InitInterfaces(plc, data)
-    InitNodeLimit(data)
-    InitI2(plc, data)
+# system provided modules
+import os, string, time, socket
+
+# PlanetLab system modules
+import sioc, plnet
+
+# local modules
+import bwlimit, logger, iptables
+
+def GetSlivers(plc, data, config):
+    logger.verbose("net:GetSlivers called.")
+    InitInterfaces(plc, data) # writes sysconfig files.
+    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 eth0")):
+                logger.verbose("*** DISABLING NODE BW LIMITS ***")
+                bwlimit.stop()
+        else:
+            InitNodeLimit(data)
+            InitI2(plc, data)
+    else:
+        InitNodeLimit(data)
+        InitI2(plc, data)
     InitNAT(plc, data)
 
+
 def InitNodeLimit(data):
     # query running network interfaces
     devs = sioc.gifconf()