2
0
mirror of https://github.com/openvswitch/ovs synced 2025-10-25 15:07:05 +00:00

learning-switch: Don't limit message queued by --with-flows.

queue_tx() intentionally limits the number of outstanding OpenFlow messages
queued to the switch.  This was unintentionally being applied to the
messages queued to the switch at startup by ovs-ofctl's --with-flows
command.  This patch should fix the problem, by calling rconn_send()
directly instead of through queue_tx().

Ahmed reported that with this patch there was still a problem when 30,000
flows were specified in the file.

Reported-by: Ahmed Bilal <numan252@gmail.com>
This commit is contained in:
Ben Pfaff
2011-06-01 10:53:53 -07:00
parent 7286b1e13d
commit b85145b59f
2 changed files with 9 additions and 1 deletions

View File

@@ -43,6 +43,7 @@ provided helpful bug reports or suggestions.
Aaron M. Ucko ucko@debian.org
Aaron Rosen arosen@clemson.edu
Ahmed Bilal numan252@gmail.com
Alex Yip alex@nicira.com
Alexey I. Froloff raorn@altlinux.org
Bob Ball bob.ball@citrix.com

View File

@@ -138,7 +138,14 @@ lswitch_create(struct rconn *rconn, const struct lswitch_config *cfg)
const struct ofpbuf *b;
LIST_FOR_EACH (b, list_node, cfg->default_flows) {
queue_tx(sw, rconn, ofpbuf_clone(b));
struct ofpbuf *copy = ofpbuf_clone(b);
int error = rconn_send(rconn, copy, NULL);
if (error) {
VLOG_INFO_RL(&rl, "%s: failed to queue default flows (%s)",
rconn_get_name(rconn), strerror(error));
ofpbuf_delete(copy);
break;
}
}
}