lib: Refactor gathering CPU core count
[sliver-openvswitch.git] / ofproto / ofproto-provider.h
index de566e3..2844e4c 100644 (file)
@@ -306,7 +306,7 @@ struct oftable {
  *
  * 'rule->ref_count' protects 'rule' from being freed.  It doesn't protect the
  * rule from being deleted from 'cls' (that's 'cls->rwlock') and it doesn't
- * protect members of 'rule' from modification (that's 'rule->rwlock').
+ * protect members of 'rule' from modification (that's 'rule->mutex').
  *
  * 'rule->mutex' protects the members of 'rule' from modification.  It doesn't
  * protect the rule from being deleted from 'cls' (that's 'cls->rwlock') and it
@@ -398,6 +398,18 @@ struct rule_actions *rule_get_actions(const struct rule *rule)
 struct rule_actions *rule_get_actions__(const struct rule *rule)
     OVS_REQUIRES(rule->mutex);
 
+/* Returns true if 'rule' is an OpenFlow 1.3 "table-miss" rule, false
+ * otherwise.
+ *
+ * ("Table-miss" rules are special because a packet_in generated through one
+ * uses OFPR_NO_MATCH as its reason, whereas packet_ins generated by any other
+ * rule use OFPR_ACTION.) */
+static inline bool
+rule_is_table_miss(const struct rule *rule)
+{
+    return rule->cr.priority == 0 && cls_rule_is_catchall(&rule->cr);
+}
+
 /* A set of actions within a "struct rule".
  *
  *