summaryrefslogtreecommitdiff
path: root/lib/Vyatta/Qos/TrafficLimiter.pm
diff options
context:
space:
mode:
authorStephen Hemminger <stephen.hemminger@vyatta.com>2010-03-29 12:04:53 -0700
committerStephen Hemminger <stephen.hemminger@vyatta.com>2010-03-29 12:15:17 -0700
commit0c166d59d9adc0d73bf91f1f9f9b025c09d4948b (patch)
treefd82e04e15590ee1dac16b8e6df5bdfe1896fcaf /lib/Vyatta/Qos/TrafficLimiter.pm
parent9abea22b6029c506cff3f88fb5a93d9b2206e256 (diff)
downloadvyatta-cfg-qos-0c166d59d9adc0d73bf91f1f9f9b025c09d4948b.tar.gz
vyatta-cfg-qos-0c166d59d9adc0d73bf91f1f9f9b025c09d4948b.zip
Allow use of traffic-limiter for output policy
Simple limiting on output.
Diffstat (limited to 'lib/Vyatta/Qos/TrafficLimiter.pm')
-rw-r--r--lib/Vyatta/Qos/TrafficLimiter.pm13
1 files changed, 10 insertions, 3 deletions
diff --git a/lib/Vyatta/Qos/TrafficLimiter.pm b/lib/Vyatta/Qos/TrafficLimiter.pm
index e5731d0..ff4a8d2 100644
--- a/lib/Vyatta/Qos/TrafficLimiter.pm
+++ b/lib/Vyatta/Qos/TrafficLimiter.pm
@@ -76,11 +76,18 @@ sub _define {
}
sub commands {
- my ( $self, $dev ) = @_;
+ my ( $self, $dev, $direction ) = @_;
my $classes = $self->{_classes};
- my $parent = 0xffff;
+ my $parent;
+
+ if ($direction eq 'in') {
+ $parent = 0xffff;
+ printf "qdisc add dev %s handle %x: ingress\n", $dev, $parent;
+ } else {
+ $parent = 1;
+ printf "qdisc add dev %s handle $x: prio\n", $dev, $parent;
+ }
- printf "qdisc add dev %s handle %x: ingress\n", $dev, $parent;
foreach my $class (@$classes) {
foreach my $match ( $class->matchRules() ) {
my $police = " police rate " . $class->{rate}