[ovs-dev] [threaded-learning 07/25] ofproto: Merge ofproto_rule_delete() and ofproto_delete_rule().
Ben Pfaff
blp at nicira.com
Wed Sep 11 05:27:07 UTC 2013
These functions were identical but had different names (one just called
the other). Make them a single function.
Signed-off-by: Ben Pfaff <blp at nicira.com>
---
ofproto/ofproto.c | 35 +++++++++++++++--------------------
1 file changed, 15 insertions(+), 20 deletions(-)
diff --git a/ofproto/ofproto.c b/ofproto/ofproto.c
index b027873..b365866 100644
--- a/ofproto/ofproto.c
+++ b/ofproto/ofproto.c
@@ -1081,10 +1081,20 @@ ofproto_get_snoops(const struct ofproto *ofproto, struct sset *snoops)
/* Deletes 'rule' from 'cls' within 'ofproto'.
*
+ * Within an ofproto implementation, this function allows an ofproto
+ * implementation to destroy any rules that remain when its ->destruct()
+ * function is called. This function is not suitable for use elsewhere in an
+ * ofproto implementation.
+ *
+ * This function is also used internally in ofproto.c.
+ *
+ * This function implements steps 4.4 and 4.5 in the section titled "Rule Life
+ * Cycle" in ofproto-provider.h.
+
* The 'cls' argument is redundant (it is &ofproto->tables[rule->table_id].cls)
* but it allows Clang to do better checking. */
-static void
-ofproto_delete_rule(struct ofproto *ofproto, struct classifier *cls,
+void
+ofproto_rule_delete(struct ofproto *ofproto, struct classifier *cls,
struct rule *rule)
OVS_REQ_WRLOCK(cls->rwlock)
{
@@ -1122,7 +1132,7 @@ ofproto_flush__(struct ofproto *ofproto)
cls_cursor_init(&cursor, &table->cls, NULL);
CLS_CURSOR_FOR_EACH_SAFE (rule, next_rule, cr, &cursor) {
if (!rule->pending) {
- ofproto_delete_rule(ofproto, &table->cls, rule);
+ ofproto_rule_delete(ofproto, &table->cls, rule);
}
}
ovs_rwlock_unlock(&table->cls.rwlock);
@@ -1759,7 +1769,7 @@ ofproto_delete_flow(struct ofproto *ofproto,
} else {
/* Initiate deletion -> success. */
ovs_rwlock_wrlock(&cls->rwlock);
- ofproto_delete_rule(ofproto, cls, rule);
+ ofproto_rule_delete(ofproto, cls, rule);
ovs_rwlock_unlock(&cls->rwlock);
return true;
@@ -2274,21 +2284,6 @@ ofproto_rule_destroy__(struct rule *rule)
rule->ofproto->ofproto_class->rule_dealloc(rule);
}
-/* This function allows an ofproto implementation to destroy any rules that
- * remain when its ->destruct() function is called. This function implements
- * steps 4.4 and 4.5 in the section titled "Rule Life Cycle" in
- * ofproto-provider.h.
- *
- * This function should only be called from an ofproto implementation's
- * ->destruct() function. It is not suitable elsewhere. */
-void
-ofproto_rule_delete(struct ofproto *ofproto, struct classifier *cls,
- struct rule *rule)
- OVS_REQ_WRLOCK(cls->rwlock)
-{
- ofproto_delete_rule(ofproto, cls, rule);
-}
-
/* Returns true if 'rule' has an OpenFlow OFPAT_OUTPUT or OFPAT_ENQUEUE action
* that outputs to 'port' (output to OFPP_FLOOD and OFPP_ALL doesn't count). */
bool
@@ -3862,7 +3857,7 @@ ofproto_rule_expire(struct rule *rule, uint8_t reason)
ofproto_rule_send_removed(rule, reason);
ovs_rwlock_wrlock(&cls->rwlock);
- ofproto_delete_rule(ofproto, cls, rule);
+ ofproto_rule_delete(ofproto, cls, rule);
ovs_rwlock_unlock(&cls->rwlock);
}
--
1.7.10.4
More information about the dev
mailing list