]> git.proxmox.com Git - pve-common.git/commitdiff
setup_tc_rate_limit : delete class and filter before update
authorAlexandre Derumier <aderumier@odiso.com>
Tue, 5 Mar 2013 09:23:44 +0000 (10:23 +0100)
committerDietmar Maurer <dietmar@proxmox.com>
Tue, 5 Mar 2013 10:59:11 +0000 (11:59 +0100)
also return after remove if rate is not defined

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
data/PVE/Network.pm

index 4efd30b10835e8d64cc152fcb4065b54d574f9c2..4cc5fb8c11beafad3fb40a00261ec222895441bd 100644 (file)
@@ -11,9 +11,13 @@ use File::Basename;
 sub setup_tc_rate_limit {
     my ($iface, $rate, $burst, $debug) = @_;
 
 sub setup_tc_rate_limit {
     my ($iface, $rate, $burst, $debug) = @_;
 
+    system("/sbin/tc class del dev $iface parent 1: classid 1:1 >/dev/null 2>&1");
+    system("/sbin/tc filter del dev $iface parent ffff: protocol ip prio 50 estimator 1sec 8sec >/dev/null 2>&1");
     system("/sbin/tc qdisc del dev $iface ingress >/dev/null 2>&1");
     system("/sbin/tc qdisc del dev $iface root >/dev/null 2>&1");
 
     system("/sbin/tc qdisc del dev $iface ingress >/dev/null 2>&1");
     system("/sbin/tc qdisc del dev $iface root >/dev/null 2>&1");
 
+    return if (!$rate || ($rate && $rate == 0));
+
     run_command("/sbin/tc qdisc add dev $iface handle ffff: ingress");
 
     # this does not work wit virtio - don't know why (setting "mtu 64kb" does not help)
     run_command("/sbin/tc qdisc add dev $iface handle ffff: ingress");
 
     # this does not work wit virtio - don't know why (setting "mtu 64kb" does not help)