classifier: Use ccmaps for staged lookup indices.
authorJarno Rajahalme <jarno@ovn.org>
Sat, 23 Apr 2016 02:40:09 +0000 (19:40 -0700)
committerJarno Rajahalme <jarno@ovn.org>
Tue, 17 May 2016 00:47:54 +0000 (17:47 -0700)
commit59936df6f45cf554ca201a08d8335af04d82a82c
treeac4a22713cccfcd47f969e48b4000155f27409be
parent1c4dd4246c2776a58b5c5a78db0d5581edf4205b
classifier: Use ccmaps for staged lookup indices.

Use the new ccmap type instead of cmap for staged lookup indices to
fix the problem with slow removal of rules with large number of
duplicates.  This was problematic especially when many rules shared
the same match in packet metadata (e.g., a port number, but nothing
else), causing a large number of duplicates to be inserted into the
staged lookup index.  ccmap only keeps the count of inserted (hash)
values, so duplicates do not add any performance penalty.

Reported-by: Alok Kumar Maurya <alok-kumar.maurya@hpe.com>
Signed-off-by: Jarno Rajahalme <jarno@ovn.org>
Acked-by: Ben Pfaff <blp@ovn.org>
lib/classifier-private.h
lib/classifier.c