[ovs-dev] [PATCH 2/2] bridge: Fix interpretation of 'health' member of struct ofproto_cfm_status.
Ben Pfaff
blp at nicira.com
Thu Mar 7 00:25:27 UTC 2013
Thanks, I applied these to master.
On Wed, Mar 06, 2013 at 04:16:30PM -0800, Ethan Jackson wrote:
> Acked-by: Ethan Jackson <ethan at nicira.com>
>
>
>
> On Wed, Mar 6, 2013 at 2:53 PM, Ben Pfaff <blp at nicira.com> wrote:
>
> > Commit 9a9e3786b3a8 (ofproto: Merge all the CFM query functions into one.)
> > mistakenly interpreted struct ofproto_cfm_status as always being in the
> > range [0,100]. It can in fact take the value -1 if the health status is
> > not currently well-defined.
> >
> > Signed-off-by: Ben Pfaff <blp at nicira.com>
> > ---
> > ofproto/ofproto.h | 9 +++++++--
> > vswitchd/bridge.c | 6 +++++-
> > 2 files changed, 12 insertions(+), 3 deletions(-)
> >
> > diff --git a/ofproto/ofproto.h b/ofproto/ofproto.h
> > index 3ea56df..5960d7b 100644
> > --- a/ofproto/ofproto.h
> > +++ b/ofproto/ofproto.h
> > @@ -362,8 +362,8 @@ void ofproto_free_ofproto_controller_info(struct shash
> > *);
> >
> > /* CFM status query. */
> > struct ofproto_cfm_status {
> > - enum cfm_fault_reason faults; /* 0 if not faulted. */
> > - int health; /* Health status in [0,100] range. */
> > + /* 0 if not faulted, otherwise a combination of one or more reasons.
> > */
> > + enum cfm_fault_reason faults;
> >
> > /* 0 if the remote CFM endpoint is operationally down,
> > * 1 if the remote CFM endpoint is operationally up,
> > @@ -371,6 +371,11 @@ struct ofproto_cfm_status {
> > * mode. */
> > int remote_opstate;
> >
> > + /* Ordinarily a "health status" in the range 0...100 inclusive, with 0
> > + * being worst and 100 being best, or -1 if the health status is not
> > + * well-defined. */
> > + int health;
> > +
> > /* 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 311753d..f7932c7 100644
> > --- a/vswitchd/bridge.c
> > +++ b/vswitchd/bridge.c
> > @@ -1779,7 +1779,11 @@ iface_refresh_cfm_stats(struct iface *iface)
> > ovsrec_interface_set_cfm_remote_mpids(cfg,
> > (const int64_t
> > *)status.rmps,
> > status.n_rmps);
> > - ovsrec_interface_set_cfm_health(cfg, &cfm_health, 1);
> > + if (cfm_health >= 0) {
> > + ovsrec_interface_set_cfm_health(cfg, &cfm_health, 1);
> > + } else {
> > + ovsrec_interface_set_cfm_health(cfg, NULL, 0);
> > + }
> > }
> > }
> >
> > --
> > 1.7.2.5
> >
> > _______________________________________________
> > dev mailing list
> > dev at openvswitch.org
> > http://openvswitch.org/mailman/listinfo/dev
> >
More information about the dev
mailing list