2
0
mirror of https://github.com/openvswitch/ovs synced 2025-09-01 14:55:18 +00:00

connmgr: Make treatment of active and passive connections more uniform.

Until now, connmgr has handled active and passive OpenFlow connections in
quite different ways.  Any active connection, whether it was currently
connected or not, was always maintained as an ofconn.  Whenever such a
connection (re)connected, its settings were cleared.  On the other hand,
passive connections had a separate listener which created an ofconn when
a new connection came in, and these ofconns would be deleted when such a
connection was closed.  This approach is inelegant and has occasionally
led to bugs when reconnection didn't clear all of the state that it
should have.

There's another motivation here.  Currently, active connections are
always primary controllers and passive connections are always service
controllers (as documented in ovs-vswitchd.conf.db(5)).  Sometimes it would
be useful to have passive primary controllers (maybe active service
controllers too but I haven't personally run into that use case).  As is,
this is difficult to implement because there is so much different code in
use between active and passive connections.  This commit will make it
easier.

Signed-off-by: Ben Pfaff <blp@ovn.org>
This commit is contained in:
Ben Pfaff
2018-10-24 14:23:38 -07:00
parent ae6e4f12fc
commit a0baa7dfa4
2 changed files with 310 additions and 312 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -2718,7 +2718,7 @@ ofp12_controller_role_to_str(enum ofp12_controller_role role)
return "slave";
case OFPCR12_ROLE_NOCHANGE:
default:
return "*** INVALID ROLE ***";
return NULL;
}
}