From 37b40196e9b647b665b53c3ffd6d8535cbd5d880 Mon Sep 17 00:00:00 2001 From: Stephen Hemminger Date: Thu, 15 Jul 2010 13:15:04 -0700 Subject: Allow match on firewall mark and protocol It is possible to use u32 to match on value and mark. --- lib/Vyatta/Qos/Match.pm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/lib/Vyatta/Qos/Match.pm b/lib/Vyatta/Qos/Match.pm index 591c2b0..cb5d4ff 100644 --- a/lib/Vyatta/Qos/Match.pm +++ b/lib/Vyatta/Qos/Match.pm @@ -66,8 +66,6 @@ sub new { $self->{_fwmark} = $fwmark; if ($ptype) { - die "Can not combine protocol and firewall mark match\n" - if ($fwmark); die "Can not combine protocol and vlan tag match\n" if ($vif); die "Can not combine protocol and interface match\n" @@ -100,6 +98,7 @@ sub filter { return; } + my $fwmark = $self->{_fwmark}; foreach my $proto (qw(ip ipv6 ether)) { my $p = $self->{$proto}; next unless $p; @@ -137,12 +136,12 @@ sub filter { print " match $sel dport $$p{dport} 0xffff" if $$p{dport}; } - print " $police" if $police; + print " match mark $fwmark 0xff" if $fwmark; + print " $police" if $police; printf " flowid %x:%x\n", $parent, $classid; return; } - my $fwmark = $self->{_fwmark}; my $indev = $self->{_indev}; my $vif = $self->{_vif}; if ( defined($vif) || defined($indev) ) { -- cgit v1.2.3