From 635e5bf55b26c3a969f983b7fad586b0095ae2b2 Mon Sep 17 00:00:00 2001 From: Ethan Jackson Date: Wed, 17 Sep 2014 13:22:14 -0700 Subject: [PATCH] ofproto: Warn about excessive rule counts in OpenFlow tables. Frequently we've run into controller bugs which result in hundreds of thousands, or even millions of rules being installed in an OpenFlow table. This isn't something trouble-shooters naturally think of to check for, so it's nice to have a low rate warning message to hint at the potential problem. Signed-off-by: Ethan Jackson Acked-by: Ben Pfaff --- ofproto/ofproto.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/ofproto/ofproto.c b/ofproto/ofproto.c index 4cb052067..7563cfda6 100644 --- a/ofproto/ofproto.c +++ b/ofproto/ofproto.c @@ -1478,6 +1478,14 @@ ofproto_run(struct ofproto *p) continue; } + if (classifier_count(&table->cls) > 100000) { + static struct vlog_rate_limit count_rl = + VLOG_RATE_LIMIT_INIT(1, 1); + VLOG_WARN_RL(&count_rl, "Table %"PRIuSIZE" has an excessive" + " number of rules: %d", i, + classifier_count(&table->cls)); + } + ovs_mutex_lock(&ofproto_mutex); fat_rwlock_rdlock(&table->cls.rwlock); cls_cursor_init(&cursor, &table->cls, NULL); -- 2.20.1