X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=ofproto%2Fofproto-provider.h;h=2844e4cf5da358b75b82126813e2cc076fd06ee1;hb=aee0979b2c578f4c8a130f4cd5bf2c6ce4949431;hp=de566e3bc443945b4e9a40ea06cdbece491bb91d;hpb=fdcea8032d8d179759315627c52f81554a780b63;p=sliver-openvswitch.git diff --git a/ofproto/ofproto-provider.h b/ofproto/ofproto-provider.h index de566e3bc..2844e4cf5 100644 --- a/ofproto/ofproto-provider.h +++ b/ofproto/ofproto-provider.h @@ -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". * *