ofproto: Factor conditional out of loop in send_flow_removed().
authorBen Pfaff <blp@nicira.com>
Thu, 7 Oct 2010 17:08:21 +0000 (10:08 -0700)
committerBen Pfaff <blp@nicira.com>
Thu, 7 Oct 2010 17:30:54 +0000 (10:30 -0700)
ofproto/ofproto.c

index 6de30b399eb54afe2f5e52e77f9099919f5af3cb..ed7f5b09b912396790b4bd2c78e09f0361b9109b 100644 (file)
@@ -4466,6 +4466,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
@@ -4474,7 +4478,7 @@ send_flow_removed(struct ofproto *p, struct rule *rule,
 
     prev = NULL;
     LIST_FOR_EACH (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);