From bef90330c13461066d50a11268d8d3f0466cb186 Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Thu, 7 Oct 2010 10:08:21 -0700 Subject: [PATCH] ofproto: Factor conditional out of loop in send_flow_removed(). --- ofproto/ofproto.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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); -- 2.43.0