X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=lib%2Fclassifier.h;h=9022faba8b9992482b597010772aae8cf6477867;hb=c5cf10598f8c9f4428291e9df3ecd72a05fb1ccf;hp=b6b89a0c1534d80aa5a0e276c0c0493c341216da;hpb=13751fd88c4b7464f9453c03659201c10b3b87a0;p=sliver-openvswitch.git diff --git a/lib/classifier.h b/lib/classifier.h index b6b89a0c1..9022faba8 100644 --- a/lib/classifier.h +++ b/lib/classifier.h @@ -213,6 +213,7 @@ * The classifier may safely be accessed by many reader threads concurrently or * by a single writer. */ +#include "fat-rwlock.h" #include "flow.h" #include "hindex.h" #include "hmap.h" @@ -254,7 +255,7 @@ struct classifier { struct list subtables_priority; /* Subtables in descending priority order. */ struct hmap partitions; /* Contains "struct cls_partition"s. */ - struct ovs_rwlock rwlock OVS_ACQ_AFTER(ofproto_mutex); + struct fat_rwlock rwlock OVS_ACQ_AFTER(ofproto_mutex); struct cls_trie tries[CLS_MAX_TRIES]; /* Prefix tries. */ unsigned int n_tries; }; @@ -345,6 +346,9 @@ struct cls_rule *classifier_lookup(const struct classifier *cls, const struct flow *, struct flow_wildcards *) OVS_REQ_RDLOCK(cls->rwlock); +struct cls_rule *classifier_lookup_miniflow_first(const struct classifier *cls, + const struct miniflow *) + OVS_REQ_RDLOCK(cls->rwlock); bool classifier_rule_overlaps(const struct classifier *cls, const struct cls_rule *) OVS_REQ_RDLOCK(cls->rwlock);