diff options
author | Stephen Hemminger <stephen.hemminger@vyatta.com> | 2008-01-30 12:19:39 -0800 |
---|---|---|
committer | Stephen Hemminger <stephen.hemminger@vyatta.com> | 2008-01-30 12:19:39 -0800 |
commit | 86fc4e7801919a1da123f34500218a69a30c2059 (patch) | |
tree | b74d8bc3df7acc298420667710f4d60447504dff /scripts/VyattaQosFairQueue.pm | |
download | vyatta-cfg-qos-86fc4e7801919a1da123f34500218a69a30c2059.tar.gz vyatta-cfg-qos-86fc4e7801919a1da123f34500218a69a30c2059.zip |
Initial version of vyatta-cfg-qosdebian/0.1
This the initial checkin prior to integration
Diffstat (limited to 'scripts/VyattaQosFairQueue.pm')
-rw-r--r-- | scripts/VyattaQosFairQueue.pm | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/scripts/VyattaQosFairQueue.pm b/scripts/VyattaQosFairQueue.pm new file mode 100644 index 0000000..d943db2 --- /dev/null +++ b/scripts/VyattaQosFairQueue.pm @@ -0,0 +1,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("rekey-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; |