X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=python%2Fbwlimit.py;h=58d3052787b83ac657c94d7e0a0412c264ef700e;hb=6b5db2f29ebe205319fc40f27a8cd745bfa29ff1;hp=60b290eaceacdab38a91db749d242409aaaeea86;hpb=5468868e9415bbc83b5db6516f245df52b589ece;p=util-vserver-pl.git diff --git a/python/bwlimit.py b/python/bwlimit.py index 60b290e..58d3052 100644 --- a/python/bwlimit.py +++ b/python/bwlimit.py @@ -154,24 +154,24 @@ default_share = 1 # be off by a small fraction. suffixes = { "": 1, - "bit": 1, - "kibit": 1024, - "kbit": 1000, - "mibit": 1024*1024, - "mbit": 1000000, - "gibit": 1024*1024*1024, - "gbit": 1000000000, - "tibit": 1024*1024*1024*1024, - "tbit": 1000000000000, - "bps": 8, - "kibps": 8*1024, - "kbps": 8000, - "mibps": 8*1024*1024, - "mbps": 8000000, - "gibps": 8*1024*1024*1024, - "gbps": 8000000000, - "tibps": 8*1024*1024*1024*1024, - "tbps": 8000000000000 + "bit": 1, + "kibit": 1024, + "kbit": 1000, + "mibit": 1024*1024, + "mbit": 1000000, + "gibit": 1024*1024*1024, + "gbit": 1000000000, + "tibit": 1024*1024*1024*1024, + "tbit": 1000000000000, + "bps": 8, + "kibps": 8*1024, + "kbps": 8000, + "mibps": 8*1024*1024, + "mbps": 8000000, + "gibps": 8*1024*1024*1024, + "gbps": 8000000000, + "tibps": 8*1024*1024*1024*1024, + "tbps": 8000000000000 } @@ -321,6 +321,16 @@ def tc(cmd): return run(TC + " " + cmd) +def stop(dev = dev): + ''' + Turn off all queing. Stops all slice HTBS and reverts to pfifo_fast (the default). + ''' + try: + for i in range(0,2): + tc("qdisc del dev %s root" % dev) + except: pass + + def init(dev = dev, bwcap = bwmax): """ (Re)initialize the bandwidth limits on this node @@ -564,15 +574,9 @@ def on(xid, dev = dev, share = None, minrate = None, maxrate = None, minexemptra def set(xid, share = None, minrate = None, maxrate = None, minexemptrate = None, maxexemptrate = None): - # Get defaults from current state if available - # get(xid,dev) = ( xid, share, minrate, maxrate, minexemptrate, maxexemptrate, bytes, i2bytes ) - current = get(xid, dev) - if current == None: current = () # must be a new slice if returned nothing. - new = ( share, minrate, maxrate, minexemptrate, maxexemptrate ) - if current[1:6] != new: - on(xid = xid, share = share, - minrate = minrate, maxrate = maxrate, - minexemptrate = minexemptrate, maxexemptrate = maxexemptrate) + on(xid = xid, share = share, + minrate = minrate, maxrate = maxrate, + minexemptrate = minexemptrate, maxexemptrate = maxexemptrate) # Remove class associated with specified slice xid. If further packets @@ -623,7 +627,7 @@ Usage: %s [OPTION]... [COMMAND] [ARGUMENT]... Options: - -d device Network interface (default: %s) + -d device Network interface (default: %s) -r rate Node bandwidth cap (default: %s) -q quantum Share multiplier (default: %d bytes) -n Print rates in numeric bits per second