From: Ben Pfaff Date: Thu, 7 Oct 2010 17:08:21 +0000 (-0700) Subject: ofproto: Factor conditional out of loop in send_flow_removed(). X-Git-Tag: v1.0.3~6 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=bef90330c13461066d50a11268d8d3f0466cb186;p=sliver-openvswitch.git ofproto: Factor conditional out of loop in send_flow_removed(). --- diff --git a/ofproto/ofproto.c b/ofproto/ofproto.c index 552c6e3a9..138f571af 100644 --- a/ofproto/ofproto.c +++ b/ofproto/ofproto.c @@ -4430,6 +4430,10 @@ send_flow_removed(struct ofproto *p, struct rule *rule, struct ofconn *prev; struct ofpbuf *buf = NULL; + if (!rule->send_flow_removed) { + return; + } + /* We limit the maximum number of queued flow expirations it by accounting * them under the counter for replies. That works because preventing * OpenFlow requests from being processed also prevents new flows from @@ -4438,7 +4442,7 @@ send_flow_removed(struct ofproto *p, struct rule *rule, prev = NULL; LIST_FOR_EACH (ofconn, struct ofconn, node, &p->all_conns) { - if (rule->send_flow_removed && rconn_is_connected(ofconn->rconn) + if (rconn_is_connected(ofconn->rconn) && ofconn_receives_async_msgs(ofconn)) { if (prev) { queue_tx(ofpbuf_clone(buf), prev, prev->reply_counter);