Skip to content

Commit

Permalink
connmgr: Log when controllers are added and removed.
Browse files Browse the repository at this point in the history
Otherwise occasionally during debugging it can hard to figure out why a
controller connection seemed to drop for a while (when in fact it happened
because the configuration changed).

Suggested-by: Natasha Gude <[email protected]>
Signed-off-by: Ben Pfaff <[email protected]>
  • Loading branch information
blp committed Apr 30, 2012
1 parent f8f26e9 commit 1ea9e60
Showing 1 changed file with 12 additions and 3 deletions.
15 changes: 12 additions & 3 deletions ofproto/connmgr.c
Original file line number Diff line number Diff line change
Expand Up @@ -467,10 +467,14 @@ connmgr_set_controllers(struct connmgr *mgr,

if (!vconn_verify_name(c->target)) {
if (!find_controller_by_target(mgr, c->target)) {
VLOG_INFO("%s: added primary controller \"%s\"",
mgr->name, c->target);
add_controller(mgr, c->target, c->dscp);
}
} else if (!pvconn_verify_name(c->target)) {
if (!ofservice_lookup(mgr, c->target)) {
VLOG_INFO("%s: added service controller \"%s\"",
mgr->name, c->target);
ofservice_create(mgr, c->target, c->dscp);
}
} else {
Expand All @@ -485,10 +489,13 @@ connmgr_set_controllers(struct connmgr *mgr,
/* Delete controllers that are no longer configured.
* Update configuration of all now-existing controllers. */
HMAP_FOR_EACH_SAFE (ofconn, next_ofconn, hmap_node, &mgr->controllers) {
const char *target = ofconn_get_target(ofconn);
struct ofproto_controller *c;

c = shash_find_data(&new_controllers, ofconn_get_target(ofconn));
c = shash_find_data(&new_controllers, target);
if (!c) {
VLOG_INFO("%s: removed primary controller \"%s\"",
mgr->name, target);
ofconn_destroy(ofconn);
} else {
ofconn_reconfigure(ofconn, c);
Expand All @@ -498,11 +505,13 @@ connmgr_set_controllers(struct connmgr *mgr,
/* Delete services that are no longer configured.
* Update configuration of all now-existing services. */
HMAP_FOR_EACH_SAFE (ofservice, next_ofservice, node, &mgr->services) {
const char *target = pvconn_get_name(ofservice->pvconn);
struct ofproto_controller *c;

c = shash_find_data(&new_controllers,
pvconn_get_name(ofservice->pvconn));
c = shash_find_data(&new_controllers, target);
if (!c) {
VLOG_INFO("%s: removed service controller \"%s\"",
mgr->name, target);
ofservice_destroy(mgr, ofservice);
} else {
ofservice_reconfigure(ofservice, c);
Expand Down

0 comments on commit 1ea9e60

Please sign in to comment.