[ovs-dev] [PATCH 2/2] bridge: Only an inactivity_probe of 0 should turn off inactivity probes.

Ben Pfaff blp at ovn.org
Thu Jun 10 22:49:34 UTC 2021


The documentation for inactivity_probe says this:

       inactivity_probe: optional integer
              Maximum  number  of milliseconds of idle time on connec‐
              tion to controller before sending  an  inactivity  probe
              message.  If  Open vSwitch does not communicate with the
              controller for the specified number of seconds, it  will
              send a probe. If a response is not received for the same
              additional amount of time, Open vSwitch assumes the con‐
              nection  has  been broken and attempts to reconnect. De‐
              fault is implementation-specific. A value of 0  disables
              inactivity probes.

This means that a value of 0 should disable inactivity probes and any
other value should be in milliseconds.  The code in bridge.c was
actually interpreting it as any value between 0 and 999 disabling
inactivity probes.  That was surprising when I accidentally configured
it to 5 or to 10, not remembering that it was in milliseconds, and
disabled them entirely.  This fixes the problem.

Signed-off-by: Ben Pfaff <blp at ovn.org>
---
 vswitchd/bridge.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/vswitchd/bridge.c b/vswitchd/bridge.c
index 5ed7e8234354..9c1ee3cf06fe 100644
--- a/vswitchd/bridge.c
+++ b/vswitchd/bridge.c
@@ -3965,8 +3965,10 @@ bridge_configure_remotes(struct bridge *br,
         *oc = (struct ofproto_controller) {
             .type = get_controller_ofconn_type(c->target, c->type),
             .max_backoff = c->max_backoff ? *c->max_backoff / 1000 : 8,
-            .probe_interval = (c->inactivity_probe
-                               ? *c->inactivity_probe / 1000 : 5),
+            .probe_interval = (!c->inactivity_probe ? 5
+                               : !*c->inactivity_probe ? 0
+                               : *c->inactivity_probe < 1000 ? 1
+                               : *c->inactivity_probe / 1000),
             .band = ((!c->connection_mode
                       || !strcmp(c->connection_mode, "in-band"))
                      && !disable_in_band
-- 
2.31.1



More information about the dev mailing list