rconn_create() was substituting OFPUTIL_DEFAULT_VERSIONS if an
allowed_versions of 0 was passed in.  At the same time,
connmgr_set_controllers() compared the adjusted value of allowed_versions
against the original value, saw that they were different, and concluded
that it should kill off and recreate the rconn with the "corrected"
allowed_versions.

This commit fixes the problem by no longer adjusting allowed_versions.
There is no need, because it is only used in contexts where the original
version is OK.

This problem was introduced by commit 90ef0206ea8f5a39 (connmgr:
Reinitialise controllers if protocols changes).

Bug #14126.
CC: Simon Horman <ho...@verge.net.au>
Reported-by: Natasha Gude <nata...@nicira.com>
Signed-off-by: Ben Pfaff <b...@nicira.com>
---
 lib/rconn.c |    4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/lib/rconn.c b/lib/rconn.c
index 45a0acd..ec661cd 100644
--- a/lib/rconn.c
+++ b/lib/rconn.c
@@ -218,9 +218,7 @@ rconn_create(int probe_interval, int max_backoff, uint8_t 
dscp,
     rconn_set_dscp(rc, dscp);
 
     rc->n_monitors = 0;
-    rc->allowed_versions = allowed_versions
-        ? allowed_versions
-        : OFPUTIL_DEFAULT_VERSIONS;
+    rc->allowed_versions = allowed_versions;
 
     return rc;
 }
-- 
1.7.10.4

_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to