Commit 9a9e3786b3a8 (ofproto: Merge all the CFM query functions into one.) mistakenly transformed a tristate variable into a Boolean one. This commit fixes the problem.
Signed-off-by: Ben Pfaff <b...@nicira.com> --- ofproto/ofproto.h | 7 ++++++- vswitchd/bridge.c | 9 +++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/ofproto/ofproto.h b/ofproto/ofproto.h index a3c52b5..3ea56df 100644 --- a/ofproto/ofproto.h +++ b/ofproto/ofproto.h @@ -363,9 +363,14 @@ void ofproto_free_ofproto_controller_info(struct shash *); /* CFM status query. */ struct ofproto_cfm_status { enum cfm_fault_reason faults; /* 0 if not faulted. */ - bool remote_opstate; /* True if remote CFM endpoint is up. */ int health; /* Health status in [0,100] range. */ + /* 0 if the remote CFM endpoint is operationally down, + * 1 if the remote CFM endpoint is operationally up, + * -1 if we don't know because the remote CFM endpoint is not in extended + * mode. */ + int remote_opstate; + /* MPIDs of remote maintenance points whose CCMs have been received. */ const uint64_t *rmps; size_t n_rmps; diff --git a/vswitchd/bridge.c b/vswitchd/bridge.c index b28ef26..311753d 100644 --- a/vswitchd/bridge.c +++ b/vswitchd/bridge.c @@ -1769,8 +1769,13 @@ iface_refresh_cfm_stats(struct iface *iface) } ovsrec_interface_set_cfm_fault_status(cfg, (char **) reasons, j); - ovsrec_interface_set_cfm_remote_opstate(cfg, (status.remote_opstate - ? "up" : "down")); + if (status.remote_opstate >= 0) { + const char *remote_opstate = status.remote_opstate ? "up" : "down"; + ovsrec_interface_set_cfm_remote_opstate(cfg, remote_opstate); + } else { + ovsrec_interface_set_cfm_remote_opstate(cfg, NULL); + } + ovsrec_interface_set_cfm_remote_mpids(cfg, (const int64_t *)status.rmps, status.n_rmps); -- 1.7.2.5 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev