On Tue, Jul 17, 2012 at 09:45:04AM -0700, Ben Pfaff wrote: > When an output OF1.0 match uses OFP_VLAN_NONE to match only when the 802.1Q > header is not present, it is somewhat contradictory to specify any value > for the VLAN PCP, since none can be present without an 802.1Q header, but > the match output by Open vSwitch did so. This fixes it. > > Signed-off-by: Ben Pfaff <[email protected]> > --- > v1->v2: Fix test failure in "test flow extractor" test, reported by > Simon Horman.
Tested-by: Simon Horman <[email protected]> > > lib/ofp-util.c | 1 + > tests/flowgen.pl | 9 ++++++--- > 2 files changed, 7 insertions(+), 3 deletions(-) > > diff --git a/lib/ofp-util.c b/lib/ofp-util.c > index 5fb8d8f..a62b554 100644 > --- a/lib/ofp-util.c > +++ b/lib/ofp-util.c > @@ -234,6 +234,7 @@ ofputil_cls_rule_to_ofp10_match(const struct cls_rule > *rule, > } else if (rule->wc.vlan_tci_mask & htons(VLAN_CFI) > && !(rule->flow.vlan_tci & htons(VLAN_CFI))) { > match->dl_vlan = htons(OFP10_VLAN_NONE); > + ofpfw |= OFPFW10_DL_VLAN_PCP; > } else { > if (!(rule->wc.vlan_tci_mask & htons(VLAN_VID_MASK))) { > ofpfw |= OFPFW10_DL_VLAN; > diff --git a/tests/flowgen.pl b/tests/flowgen.pl > index 2f68869..536fb32 100755 > --- a/tests/flowgen.pl > +++ b/tests/flowgen.pl > @@ -1,6 +1,6 @@ > #! /usr/bin/perl > > -# Copyright (c) 2009, 2010, 2011 Nicira, Inc. > +# Copyright (c) 2009, 2010, 2011, 2012 Nicira, Inc. > # > # Licensed under the Apache License, Version 2.0 (the "License"); > # you may not use this file except in compliance with the License. > @@ -109,10 +109,13 @@ sub output { > > # Compose packet. > my $packet = ''; > + my $wildcards = 0; > $packet .= pack_ethaddr($flow{DL_DST}); > $packet .= pack_ethaddr($flow{DL_SRC}); > if ($flow{DL_VLAN} != 0xffff) { > $packet .= pack('nn', 0x8100, $flow{DL_VLAN}); > + } else { > + $wildcards |= 1 << 20; # OFPFW10_DL_VLAN_PCP > } > my $len_ofs = length($packet); > $packet .= pack('n', 0) if $attrs{DL_HEADER} =~ /^802.2/; > @@ -204,8 +207,8 @@ sub output { > print "\n"; > > print FLOWS pack('Nn', > - 0, # wildcards > - 1); # in_port > + $wildcards, # wildcards > + 1); # in_port > print FLOWS pack_ethaddr($flow{DL_SRC}); > print FLOWS pack_ethaddr($flow{DL_DST}); > print FLOWS pack('nCxnCCxxNNnn', > -- > 1.7.2.5 > > _______________________________________________ > dev mailing list > [email protected] > http://openvswitch.org/mailman/listinfo/dev > _______________________________________________ dev mailing list [email protected] http://openvswitch.org/mailman/listinfo/dev
