diff options
Diffstat (limited to 'scripts/VyattaQosPolicy.pm')
-rw-r--r-- | scripts/VyattaQosPolicy.pm | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/scripts/VyattaQosPolicy.pm b/scripts/VyattaQosPolicy.pm new file mode 100644 index 0000000..76f86eb --- /dev/null +++ b/scripts/VyattaQosPolicy.pm @@ -0,0 +1,34 @@ +package VyattaQosPolicy; + +use strict; + +require VyattaConfig; +use VyattaQosTrafficShaper; +use VyattaQosFairQueue; + +# Main class for all QoS policys +# It is a base class, and actual policies are subclass instances. + +# Build a new traffic shaper of the proper type based +# on the configuration information. +sub config { + my ( $class, $config, $type ) = @_; + my $object = undef; + + SWITCH: { + ( $type eq 'fair-queue' ) && do { + $object = new VyattaQosFairQueue($config); + last SWITCH; + }; + + ( $type eq 'traffic-shaper' ) && do { + $object = new VyattaQosTrafficShaper($config); + last SWITCH; + }; + + die "Unknown policy type \"$type\"\n"; + } + return $object; +} + +1; |