summaryrefslogtreecommitdiff
path: root/ofproto/ofproto.c
diff options
context:
space:
mode:
authorBen Pfaff <blp@nicira.com>2011-07-28 15:02:06 -0700
committerBen Pfaff <blp@nicira.com>2011-08-08 16:05:35 -0700
commitb772ded808ccc1b3cce2c10377a35637b1beb28c (patch)
tree9fbaba02123e59b829dc6be90b577c8797503448 /ofproto/ofproto.c
parent13521ff59379b6a7a91be18ce8d903cd698694b3 (diff)
downloadopenvswitch-b772ded808ccc1b3cce2c10377a35637b1beb28c.tar.gz
ofproto: New helper macro OFPROTO_FOR_EACH_TABLE.
In my opinion this makes the code slightly easier to read and write.
Diffstat (limited to 'ofproto/ofproto.c')
-rw-r--r--ofproto/ofproto.c19
1 files changed, 9 insertions, 10 deletions
diff --git a/ofproto/ofproto.c b/ofproto/ofproto.c
index 8d22c50f7..2dd3c9f71 100644
--- a/ofproto/ofproto.c
+++ b/ofproto/ofproto.c
@@ -289,10 +289,10 @@ ofproto_create(const char *datapath_name, const char *datapath_type,
struct ofproto **ofprotop)
{
const struct ofproto_class *class;
+ struct classifier *table;
struct ofproto *ofproto;
int n_tables;
int error;
- int i;
*ofprotop = NULL;
@@ -350,8 +350,8 @@ ofproto_create(const char *datapath_name, const char *datapath_type,
assert(n_tables >= 1 && n_tables <= 255);
ofproto->n_tables = n_tables;
ofproto->tables = xmalloc(n_tables * sizeof *ofproto->tables);
- for (i = 0; i < n_tables; i++) {
- classifier_init(&ofproto->tables[i]);
+ OFPROTO_FOR_EACH_TABLE (table, ofproto) {
+ classifier_init(table);
}
ofproto->datapath_id = pick_datapath_id(ofproto);
@@ -675,8 +675,7 @@ ofproto_flush__(struct ofproto *ofproto)
}
group = ofopgroup_create(ofproto);
- for (table = ofproto->tables; table < &ofproto->tables[ofproto->n_tables];
- table++) {
+ OFPROTO_FOR_EACH_TABLE (table, ofproto) {
struct rule *rule, *next_rule;
struct cls_cursor cursor;
@@ -695,7 +694,7 @@ ofproto_flush__(struct ofproto *ofproto)
static void
ofproto_destroy__(struct ofproto *ofproto)
{
- size_t i;
+ struct classifier *table;
assert(list_is_empty(&ofproto->pending));
@@ -712,9 +711,9 @@ ofproto_destroy__(struct ofproto *ofproto)
hmap_destroy(&ofproto->ports);
shash_destroy(&ofproto->port_by_name);
- for (i = 0; i < ofproto->n_tables; i++) {
- assert(classifier_is_empty(&ofproto->tables[i]));
- classifier_destroy(&ofproto->tables[i]);
+ OFPROTO_FOR_EACH_TABLE (table, ofproto) {
+ assert(classifier_is_empty(table));
+ classifier_destroy(table);
}
free(ofproto->tables);
@@ -1956,7 +1955,7 @@ ofproto_get_all_flows(struct ofproto *p, struct ds *results)
{
struct classifier *cls;
- for (cls = &p->tables[0]; cls < &p->tables[p->n_tables]; cls++) {
+ OFPROTO_FOR_EACH_TABLE (cls, p) {
struct cls_cursor cursor;
struct rule *rule;