From c16e55cf846f7a04a28730e25193d6a8ccd95f11 Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Tue, 20 Apr 2010 14:06:25 -0700 Subject: [PATCH] in-band: Refactor slightly to be easier to understand. Suggested-by: Justin Pettit --- ofproto/in-band.c | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/ofproto/in-band.c b/ofproto/in-band.c index d918d713..4efcbca6 100644 --- a/ofproto/in-band.c +++ b/ofproto/in-band.c @@ -625,20 +625,6 @@ make_rules(struct in_band *ib, } } -static void -clear_rules(struct in_band *ib) -{ - memset(ib->installed_local_mac, 0, sizeof ib->installed_local_mac); - - free(ib->remote_ips); - ib->remote_ips = NULL; - ib->n_remote_ips = 0; - - free(ib->remote_macs); - ib->remote_macs = NULL; - ib->n_remote_macs = 0; -} - static void drop_rule(struct in_band *ib, const struct in_band_rule *rule) { @@ -646,11 +632,25 @@ drop_rule(struct in_band *ib, const struct in_band_rule *rule) rule->wildcards, rule->priority); } +/* Drops from the flow table all of the flows set up by 'ib', then clears out + * the information about the installed flows so that they can be filled in + * again if necessary. */ static void drop_rules(struct in_band *ib) { + /* Drop rules. */ make_rules(ib, drop_rule); - clear_rules(ib); + + /* Clear out state. */ + memset(ib->installed_local_mac, 0, sizeof ib->installed_local_mac); + + free(ib->remote_ips); + ib->remote_ips = NULL; + ib->n_remote_ips = 0; + + free(ib->remote_macs); + ib->remote_macs = NULL; + ib->n_remote_macs = 0; } static void @@ -666,6 +666,7 @@ add_rule(struct in_band *ib, const struct in_band_rule *rule) rule->priority, &action, 1, 0); } +/* Inserts flows into the flow table for the current state of 'ib'. */ static void add_rules(struct in_band *ib) { -- 2.30.2