diff options
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/VyattaQosUtil.pm | 19 | ||||
-rwxr-xr-x | scripts/vyatta-qos-util.pl | 15 |
2 files changed, 32 insertions, 2 deletions
diff --git a/scripts/VyattaQosUtil.pm b/scripts/VyattaQosUtil.pm index 668f5c1..82dfd6b 100644 --- a/scripts/VyattaQosUtil.pm +++ b/scripts/VyattaQosUtil.pm @@ -17,7 +17,7 @@ package VyattaQosUtil; require Exporter; -@EXPORT = qw/getRate getBurstSize getProtocol getDsfield getIfIndex interfaceRate/; +@EXPORT = qw/getRate getPercent getBurstSize getProtocol getDsfield getIfIndex interfaceRate/; use strict; sub get_num { @@ -84,6 +84,23 @@ sub getRate { } } +sub getPercent { + my $percent = shift; + my ($num, $suffix) = get_num($percent); + + ($suffix eq '%') + or die "$percent incorrect suffix (expect %)\n"; + defined $num + or die "$percent is not a valid percent bandwidth (not a number)\n"; + ($num >= 0) + or die "$percent is not a acceptable percent bandwidth (negative value)\n"; + ($num <= 100) + or die "$percent is not a acceptable percent bandwidth (greater than 100%)\n"; + + return $num; +} + + # Default time units for tc are usec. my %timeunits = ( 's' => 1000000, diff --git a/scripts/vyatta-qos-util.pl b/scripts/vyatta-qos-util.pl index 1e842b8..8c3bafd 100755 --- a/scripts/vyatta-qos-util.pl +++ b/scripts/vyatta-qos-util.pl @@ -22,7 +22,10 @@ use lib "/opt/vyatta/share/perl5/"; use VyattaQosUtil; use Getopt::Long; +my ($percent, $rate, $burst, $protocol, $dsfield, $time); + GetOptions( + "percent-or-rate=s" => \$percent, "rate=s" => \$rate, "burst=s" => \$burst, "protocol=s" => \$protocol, @@ -31,6 +34,15 @@ GetOptions( "time=s" => \$time, ); +if ( defined $percent ) { + if ($percent =~ /%$/) { + my $p = VyattaQosUtil::getPercent($percent); + } else { + my $r = VyattaQosUtil::getRate($percent); + } + exit 0; +} + if ( defined $rate ) { my $r = VyattaQosUtil::getRate($rate); exit 0; @@ -57,7 +69,8 @@ if ( defined $time ) { } print <<EOF; -usage: vyatta-qos-util.pl --rate rate +usage: vyatta-qos-util.pl --percent-or-rate value + vyatta-qos-util.pl --rate rate vyatta-qos-util.pl --time time vyatta-qos-util.pl --burst size vyatta-qos-util.pl --protocol protocol |