rconn: Disable probe for local connections.
authornghosh@us.ibm.com <nghosh@us.ibm.com>
Tue, 24 May 2016 22:47:20 +0000 (15:47 -0700)
committerBen Pfaff <blp@ovn.org>
Fri, 3 Jun 2016 18:50:53 +0000 (11:50 -0700)
There are four sessions established from ovn-controller to the following:
OVN Southbound — JSONRPC based
Local ovsdb — JSONRPC based
Local vswitchd — openflow based from ofctrl
Local vswitchd — openflow based from pinctrl

All of these sessions have their own probe_interval, For the last
two connections, they do not need probe_timer as they are over unix domain
socket. This patch takes care of that.

This change has been tested putting logs in several places like in
ovn-controller.c, lib/rconn.c to make sure the probe_timer is
disabled. Also, by making sure from ovn-controller's
log file that there is no more reconnect happening due to probe
under heavy load.

Signed-off-by: Nirapada Ghosh <nghosh@us.ibm.com>
Signed-off-by: Ben Pfaff <blp@ovn.org>
lib/rconn.c

index 063eda8..8482d47 100644 (file)
@@ -29,6 +29,7 @@
 #include "openvswitch/vlog.h"
 #include "poll-loop.h"
 #include "sat-math.h"
+#include "stream.h"
 #include "timeval.h"
 #include "util.h"
 
@@ -339,6 +340,9 @@ rconn_connect(struct rconn *rc, const char *target, const char *name)
     rconn_disconnect__(rc);
     rconn_set_target__(rc, target, name);
     rc->reliable = true;
+    if (!stream_or_pstream_needs_probes(target)) {
+        rc->probe_interval = 0;
+    }
     reconnect(rc);
     ovs_mutex_unlock(&rc->mutex);
 }