ofproto-dpif: Store relevant fields for wildcarding in facet.
authorJustin Pettit <jpettit@nicira.com>
Wed, 15 May 2013 01:24:43 +0000 (18:24 -0700)
committerJustin Pettit <jpettit@nicira.com>
Tue, 11 Jun 2013 22:01:59 +0000 (15:01 -0700)
commitfacbc29f5b2f12c99f61316df47904f9510743f0
tree13236411f0e1e4a5ab5d1fdd7fea74f76d285416
parentebf6dced1a0fa73149664cd104729cc468602f37
ofproto-dpif: Store relevant fields for wildcarding in facet.

Dynamically determines the flow fields that were relevant in
processing flows based on the OpenFlow flow table and switch
configuration.  The immediate use for this functionality is to
cache action translations for similar flows in facets.  This yields
a roughly 80% improvement in flow set up rates for a complicated
flow table.

More importantly, these wildcards will be used to determine what to
wildcard for the forthcoming kernel wildcard (megaflow) patches
that will allow wildcarding in the kernel, which will provide
significant flow set up improvements.

The approach to tracking fields and caching action translations in
facets was based on an impressive prototype by Ethan Jackson.

Co-authored-by: Ethan Jackson <ethan@nicira.com>
Signed-off-by: Ethan Jackson <ethan@nicira.com>
Signed-off-by: Justin Pettit <jpettit@nicira.com>
17 files changed:
NEWS
lib/bond.c
lib/bond.h
lib/bundle.c
lib/bundle.h
lib/flow.c
lib/flow.h
lib/learn.c
lib/learn.h
lib/multipath.c
lib/multipath.h
lib/nx-match.c
lib/nx-match.h
ofproto/ofproto-dpif.c
tests/ofproto-dpif.at
tests/test-bundle.c
tests/test-multipath.c