diff options
author | Stephen Hemminger <stephen.hemminger@vyatta.com> | 2008-02-06 16:58:06 -0800 |
---|---|---|
committer | Stephen Hemminger <stephen.hemminger@vyatta.com> | 2008-02-06 16:58:06 -0800 |
commit | 49decef8f62c517071c76b620f6f19ef90a8cbf8 (patch) | |
tree | 66cff9467b6a02b5c72044b66a0ffafbc6355640 /scripts/VyattaQosMatch.pm | |
parent | 248920901afa3f1b6d2d461057f51164b66de041 (diff) | |
download | vyatta-cfg-qos-49decef8f62c517071c76b620f6f19ef90a8cbf8.tar.gz vyatta-cfg-qos-49decef8f62c517071c76b620f6f19ef90a8cbf8.zip |
fixes for match on vlan or interface
need to lookup ifindex for interface not vlan tag (duh)
and ip field should be initialized only when ip tag is found.
Diffstat (limited to 'scripts/VyattaQosMatch.pm')
-rw-r--r-- | scripts/VyattaQosMatch.pm | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/scripts/VyattaQosMatch.pm b/scripts/VyattaQosMatch.pm index 4b2e3fe..7263afc 100644 --- a/scripts/VyattaQosMatch.pm +++ b/scripts/VyattaQosMatch.pm @@ -6,14 +6,7 @@ use strict; my %fields = ( _dev => undef, _vif => undef, - _ip => { - src => undef, - dst => undef, - dsfield => undef, - protocol => undef, - sport => undef, - dport => undef, - } + _ip => undef, ); sub new { @@ -31,8 +24,9 @@ sub _define { my ( $self, $config ) = @_; my $level = $config->setLevel(); - $self->{_vif} = VyattaQosUtil::getIfIndex($config->returnValue("vif")); - $self->{_dev} = $config->returnValue("interface"); + $self->{_vif} = $config->returnValue("vif"); + $self->{_dev} = VyattaQosUtil::getIfIndex($config->returnValue("interface")); + if ($config->exists("ip")) { my %ip; @@ -63,11 +57,11 @@ sub filter { } if (defined $self->{_dev}) { - print {$out} " basic meta match meta \(rt_iif eq $self->{_dev}\)"; + print {$out} " basic match meta \(rt_iif eq $self->{_dev}\)"; } if (defined $self->{_vif}) { - print {$out} " basic meta match meta \(vlan mask 0xfff eq $self->{_vif}\)"; + print {$out} " basic match meta \(vlan mask 0xfff eq $self->{_vif}\)"; } print {$out} " classid 1:$id\n"; |