blob: e3b1631158b0af2e495adf79848417fb0279ea6f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
package VyattaQosFairQueue;
@ISA = qw/VyattaQosPolicy/;
#
# This is a wrapper around Stochastic Fair Queue(SFQ) queue discipline
# Since SFQ is a hard to explain, use the name fair-queue since SFQ
# is most similar to Weighted Fair Queue (WFQ) on Cisco IOS.
#
use strict;
require VyattaConfig;
# Fair Queue
# Uses SFQ which is similar to (but not same as) WFQ
my %fields = (
_perturb => undef,
_limit => undef,
);
sub new {
my ( $that, $config ) = @_;
my $class = ref($that) || $that;
my $self = {%fields};
$self->{_perturb} = $config->returnValue("hash-interval");
$self->{_limit} = $config->returnValue("queue-limit");
return bless $self, $class;
}
sub commands {
my ( $self, $out, $dev ) = @_;
print {$out} "qdisc add dev $dev root sfq";
print {$out} " perturb $self->{_perturb}" if ( defined $self->{_perturb} );
print {$out} " limit $self->{_limit}" if ( defined $self->{_limit} );
print "\n";
}
1;
|