learning-switch: Also wildcard VLAN priority bits.
authorBen Pfaff <blp@nicira.com>
Wed, 1 Jun 2011 20:50:24 +0000 (13:50 -0700)
committerBen Pfaff <blp@nicira.com>
Tue, 7 Jun 2011 05:07:37 +0000 (22:07 -0700)
There's no need to learn based on the priority bits so we might as well
wildcard them too.

Reported-by: Justin Pettit <jpettit@nicira.com>
lib/learning-switch.c

index 269f0301d2ee6c6ad87c696622b57536f8d2f744..077251c9df8a905c26fd4c92a30b5450761f947b 100644 (file)
@@ -106,8 +106,9 @@ lswitch_create(struct rconn *rconn, const struct lswitch_config *cfg)
         if (cfg->wildcards == UINT32_MAX) {
             /* Try to wildcard as many fields as possible, but we cannot
              * wildcard all fields.  We need in_port to detect moves.  We need
-             * Ethernet source and dest and VLAN to do L2 learning. */
-            ofpfw = (OFPFW_DL_TYPE | OFPFW_NW_SRC_ALL | OFPFW_NW_DST_ALL
+             * Ethernet source and dest and VLAN VID to do L2 learning. */
+            ofpfw = (OFPFW_DL_TYPE | OFPFW_DL_VLAN_PCP
+                     | OFPFW_NW_SRC_ALL | OFPFW_NW_DST_ALL
                      | OFPFW_NW_TOS | OFPFW_NW_PROTO
                      | OFPFW_TP_SRC | OFPFW_TP_DST);
         } else {