Partitioning was replaced with a more generic staged lookup, but the
comment and the hash map still remain in the code.  Let's remove them.

Fixes: a14502a7c529 ("classifier: Retire partitions.")
Signed-off-by: Ilya Maximets <[email protected]>
---
 lib/classifier.h | 38 --------------------------------------
 1 file changed, 38 deletions(-)

diff --git a/lib/classifier.h b/lib/classifier.h
index 77a3ae5cf..5bd86e19e 100644
--- a/lib/classifier.h
+++ b/lib/classifier.h
@@ -172,43 +172,6 @@
  * flow table.  Currently this limit is 4.
  *
  *
- * Partitioning (Lookup Time and Wildcard Optimization)
- * ----------------------------------------------------
- *
- * Suppose that a given classifier is being used to handle multiple stages in a
- * pipeline using "resubmit", with metadata (that is, the OpenFlow 1.1+ field
- * named "metadata") distinguishing between the different stages.  For example,
- * metadata value 1 might identify ingress rules, metadata value 2 might
- * identify ACLs, and metadata value 3 might identify egress rules.  Such a
- * classifier is essentially partitioned into multiple sub-classifiers on the
- * basis of the metadata value.
- *
- * The classifier has a special optimization to speed up matching in this
- * scenario:
- *
- *     - Each cls_subtable that matches on metadata gets a tag derived from the
- *       subtable's mask, so that it is likely that each subtable has a unique
- *       tag.  (Duplicate tags have a performance cost but do not affect
- *       correctness.)
- *
- *     - For each metadata value matched by any cls_rule, the classifier
- *       constructs a "struct cls_partition" indexed by the metadata value.
- *       The cls_partition has a 'tags' member whose value is the bitwise-OR of
- *       the tags of each cls_subtable that contains any rule that matches on
- *       the cls_partition's metadata value.  In other words, struct
- *       cls_partition associates metadata values with subtables that need to
- *       be checked with flows with that specific metadata value.
- *
- * Thus, a flow lookup can start by looking up the partition associated with
- * the flow's metadata, and then skip over any cls_subtable whose 'tag' does
- * not intersect the partition's 'tags'.  (The flow must also be looked up in
- * any cls_subtable that doesn't match on metadata.  We handle that by giving
- * any such cls_subtable TAG_ALL as its 'tags' so that it matches any tag.)
- *
- * Partitioning saves lookup time by reducing the number of subtable lookups.
- * Each eliminated subtable lookup also reduces the amount of un-wildcarding.
- *
- *
  * Classifier Versioning
  * =====================
  *
@@ -336,7 +299,6 @@ struct classifier {
                                              * for staged lookup. */
     struct cmap subtables_map;      /* Contains "struct cls_subtable"s.  */
     struct pvector subtables;
-    struct cmap partitions;         /* Contains "struct cls_partition"s. */
     struct cls_trie tries[CLS_MAX_TRIES]; /* Prefix tries. */
     atomic_uint32_t n_tries;        /* Number of tries.  Also serves as a
                                      * memory synchronization point for trie
-- 
2.52.0

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to