> After digging in a little further, I think that the only trouble was the
> above issue. With bools backed by ints in C, the other issue I was
> concerned about does not exist. The "old_cfm_fault != cfm->fault" logic
> checks if there has been a change in fault condition, and the existing
> flap check detects the flap transitions correctly.
>


Exactly, it still compares the enum value rather than boolean value.



> ---
>  lib/cfm.c |   22 ++++++++++++----------
>  1 file changed, 12 insertions(+), 10 deletions(-)
>
> diff --git a/lib/cfm.c b/lib/cfm.c
> index d256a5f..9c65b34 100644
> --- a/lib/cfm.c
> +++ b/lib/cfm.c
> @@ -480,16 +480,18 @@ cfm_run(struct cfm *cfm) OVS_EXCLUDED(mutex)
>              cfm->fault |= CFM_FAULT_RECV;
>          }
>
> -        if (old_cfm_fault != cfm->fault && !VLOG_DROP_INFO(&rl)) {
> -            struct ds ds = DS_EMPTY_INITIALIZER;
> -
> -            ds_put_cstr(&ds, "from [");
> -            ds_put_cfm_fault(&ds, old_cfm_fault);
> -            ds_put_cstr(&ds, "] to [");
> -            ds_put_cfm_fault(&ds, cfm->fault);
> -            ds_put_char(&ds, ']');
> -            VLOG_INFO("%s: CFM faults changed %s.", cfm->name,
> ds_cstr(&ds));
> -            ds_destroy(&ds);
> +        if (old_cfm_fault != cfm->fault) {
> +            if (!VLOG_DROP_INFO(&rl)) {
> +                struct ds ds = DS_EMPTY_INITIALIZER;
> +
> +                ds_put_cstr(&ds, "from [");
> +                ds_put_cfm_fault(&ds, old_cfm_fault);
> +                ds_put_cstr(&ds, "] to [");
> +                ds_put_cfm_fault(&ds, cfm->fault);
> +                ds_put_char(&ds, ']');
> +                VLOG_INFO("%s: CFM faults changed %s.", cfm->name,
> ds_cstr(&ds));
> +                ds_destroy(&ds);
> +            }
>
>              /* If there is a flap, increments the counter. */
>              if (old_cfm_fault == false || cfm->fault == false) {
> --
> 1.7.9.5
>
>
LGTM, thx,
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev

Reply via email to