From 61a756a5003bda12380c300dbc963adfcc09d888 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen.hemminger@vyatta.com>
Date: Wed, 10 Jun 2009 16:26:53 -0700
Subject: Fix netem bandwidth (TBF) setup

Need limit or latency value
Bug 4533
---
 lib/Vyatta/Qos/NetworkEmulator.pm | 19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)

(limited to 'lib/Vyatta')

diff --git a/lib/Vyatta/Qos/NetworkEmulator.pm b/lib/Vyatta/Qos/NetworkEmulator.pm
index 2a87407..d7a3404 100644
--- a/lib/Vyatta/Qos/NetworkEmulator.pm
+++ b/lib/Vyatta/Qos/NetworkEmulator.pm
@@ -46,23 +46,28 @@ sub new {
 sub commands {
     my ( $self, $dev ) = @_;
     my $rate = $self->{_rate};
+    my $limit = $self->{_limit};
+    my $delay = $self->{_delay};
 
     if ($rate) {
         my $burst = $self->{_burst};
         $burst or $burst = "15K";
 
-        printf "qdisc add dev %s root handle 1:0 tbf rate %s burst %s\n",
+        printf "qdisc add dev %s root handle 1:0 tbf rate %s burst %s",
           $dev, $rate, $burst;
-        printf "qdisc add dev %s parent 1:1 handle 10: netem", $dev;
+	if ($limit) {
+	    print " limit $limit";
+	} elsif ($delay) {
+	    print " latency $delay";
+	} else {
+	    print " latency 50ms";
+	}
+	printf "\nqdisc add dev %s parent 1:1 handle 10: netem", $dev;
     } else {
         printf "qdisc add dev %s root netem", $dev;
     }
-
-    my $delay = $self->{_delay};
-    print " delay $delay" if ($delay);
-
-    my $limit = $self->{_limit};
     print " limit $limit" if ($limit);
+    print " delay $delay" if ($delay);
 
     my $drop = $self->{_drop};
     print " drop $drop" if ($drop);
-- 
cgit v1.2.3