[ovs-dev] [ovs-controller 3/3] ovs-controller: Allow --wildcards to specify a wildcard set.

Ben Pfaff blp at nicira.com
Wed Jun 1 20:50:47 UTC 2011


On Wed, Jun 01, 2011 at 11:00:17AM -0700, Justin Pettit wrote:
> On May 31, 2011, at 4:15 PM, Ben Pfaff wrote:
> 
> > +    if (cfg->wildcards) {
> > +        uint32_t ofpfw;
> > +
> > +        if (cfg->wildcards == UINT32_MAX) {
> > +            /* No wildcard defined, try to wildcard as many fields
> > +             * as possible, however we cannot wildcard all fields.
> > +             * We need in_port to detect moves.
> > +             * We need both MAC SA and DA to do L2 learning. */
> > +            ofpfw = (OFPFW_DL_TYPE | OFPFW_NW_SRC_ALL | OFPFW_NW_DST_ALL
> > +                     | OFPFW_NW_TOS | OFPFW_NW_PROTO
> > +                     | OFPFW_TP_SRC | OFPFW_TP_DST);
> 
> As we discussed in person, it may be worth wildcarding the VLAN PCP
> values, too.  It's not more correct, but it will reduce the amount
> of traffic going up to the controller and number of flows in the
> switch.

OK, please review this patch.

--8<--------------------------cut here-------------------------->8--

From: Ben Pfaff <blp at nicira.com>
Date: Wed, 1 Jun 2011 13:50:24 -0700
Subject: [PATCH] learning-switch: Also wildcard VLAN priority bits.

There's no need to learn based on the priority bits so we might as well
wildcard them too.

Reported-by: Justin Pettit <jpettit at nicira.com>
---
 lib/learning-switch.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/lib/learning-switch.c b/lib/learning-switch.c
index 269f030..077251c 100644
--- a/lib/learning-switch.c
+++ b/lib/learning-switch.c
@@ -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 {
-- 
1.7.4.4




More information about the dev mailing list