summaryrefslogtreecommitdiff
path: root/scripts/VyattaQosUtil.pm
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/VyattaQosUtil.pm')
-rw-r--r--scripts/VyattaQosUtil.pm19
1 files changed, 18 insertions, 1 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,