This series: - Inlines critical functions that are only used by the classifier. - Hides classifier internals from the API, adding a 'cls_match' that contains the private parts of 'cls_rule'. - Changes the subtable list to a linear array that enables prefetching. - Always inlines the miniflows and minimasks in the classifier, reducing memory indirection.
Jarno Rajahalme (10): lib/flow: Simplify miniflow accessors, add ipv6 support. lib: Inline functions used in classifier_lookup ofproto: Use classifer cursor API to collect vlan usage. lib/classifier: Hide more of the internal data structures. lib/flow: Optimize minimask_has_extra() and minimask_is_catchall() lib: Add prefetch support (for GCC) classifier: Use array for subtables instead of a list. lib/classifier: Separate cls_rule internals from the API. lib/flow: Maintain miniflow offline values explicitly. lib/classifier: Support variable sized miniflows. lib/classifier.c | 825 ++++++++++++++++++++++++++++++++++++----------- lib/classifier.h | 73 +---- lib/compiler.h | 8 + lib/dpif-netdev.c | 32 +- lib/flow.c | 393 ++++++++-------------- lib/flow.h | 233 +++++++------ lib/hindex.c | 13 - lib/hindex.h | 13 +- lib/match.c | 37 +-- lib/match.h | 4 - lib/util.h | 14 + ofproto/ofproto.c | 25 +- tests/test-classifier.c | 33 +- 13 files changed, 1016 insertions(+), 687 deletions(-) -- 1.7.10.4 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev