[ovs-dev] [PATCH 5/8] lib/classifier: Optimize megaflows for single rule case.

Ben Pfaff blp at nicira.com
Fri Jun 13 17:23:23 UTC 2014


On Fri, Jun 13, 2014 at 10:21:36AM -0700, Ben Pfaff wrote:
> On Mon, Jun 09, 2014 at 11:53:52AM -0700, Jarno Rajahalme wrote:
> > When, during a classifier lookup, we narrow down to a single potential
> > rule, it is enough to match on ("unwildcard") one bit that differs
> > between the packet and the rule.
> > 
> > This is a special case of the more general algorithm, where it is
> > sufficient to match on enough bits that separates the packet from all
> > higher priority rules than the matched rule.  For a miss that would be
> > all the rules.  Implementing this is expensive for a more than a few
> > rules.  This patch starts by doing this for a single rule when we
> > already have it, also reducing the lookup cost by finishing the lookup
> > earlier than before.
> > 
> > Signed-off-by: Jarno Rajahalme <jrajahalme at nicira.com>
> 
> In find_match_wc(), suppose that we narrow down to half a dozen rules
> in the first stage, and then to a single rule in the second stage.  It
> looks to me like this code would only unwildcard one bit in that case,
> but I am not sure that this is correct: don't we need to unwildcard
> the bits that the first stage examined?

Please ignore that review.  I was reading the wrong version.



More information about the dev mailing list