- self.capped = False
-
- # Format template parameters for high bandwidth message
- #params['class'] = "high bandwidth"
- #params['bytes'] = format_bytes(usedi2bytes - self.i2bytes)
- #params['limit'] = format_bytes(self.Maxi2KByte * 1024)
- #params['new_maxexemptrate'] = bwlimit.format_tc_rate(new_maxi2rate)
-
- # Cap high bandwidth burst rate
- #if new_maxi2rate != runningmaxi2rate:
- # message += template % params
- # logger.log("bwmon: %(slice)s %(class)s capped at %(new_maxexemptrate)s/s" % params)
-
- # Apply parameters
- if new_maxrate != runningmaxrate or new_maxi2rate != runningmaxi2rate:
- bwlimit.set(xid = self.xid, maxrate = new_maxrate, maxexemptrate = new_maxi2rate)
+ self.capped += False
+
+ # Check running values against newly calculated values so as not to run tc
+ # unnecessarily
+ if (runningrates['maxrate'] != new_maxrate) or \
+ (runningrates['minrate'] != self.MinRate * 1000) or \
+ (runningrates['maxexemptrate'] != new_maxi2rate) or \
+ (runningrates['minexemptrate'] != self.Mini2Rate * 1000) or \
+ (runningrates['share'] != self.Share):
+ # Apply parameters
+ bwlimit.set(xid = self.xid,
+ minrate = self.MinRate * 1000,
+ maxrate = new_maxrate,
+ minexemptrate = self.Mini2Rate * 1000,
+ maxexemptrate = new_maxi2rate,
+ share = self.Share)