Acked-by: Daniele Venturino <daniele.ventur...@m3s.it>

2014-08-21 1:57 GMT+02:00 Jarno Rajahalme <jrajaha...@nicira.com>:

> Testing for sameness first makes the logic simpler to follow.
>
> Signed-off-by: Jarno Rajahalme <jrajaha...@nicira.com>
> ---
>  lib/rstp-state-machines.c |   57
> +++++++++++++++++++--------------------------
>  1 file changed, 24 insertions(+), 33 deletions(-)
>
> diff --git a/lib/rstp-state-machines.c b/lib/rstp-state-machines.c
> index e8b8438..5ae7124 100644
> --- a/lib/rstp-state-machines.c
> +++ b/lib/rstp-state-machines.c
> @@ -2015,42 +2015,33 @@ compare_rstp_priority_vector(struct
> rstp_priority_vector *v1,
>               RSTP_ID_ARGS(v2->root_bridge_id), v2->root_path_cost,
>               RSTP_ID_ARGS(v2->designated_bridge_id),
> v2->designated_port_id);
>
> -    if (v1->root_bridge_id < v2->root_bridge_id
> -        || (v1->root_bridge_id == v2->root_bridge_id &&
> -            v1->root_path_cost < v2->root_path_cost)
> -        || (v1->root_bridge_id == v2->root_bridge_id &&
> -            v1->root_path_cost == v2->root_path_cost &&
> -            v1->designated_bridge_id < v2->designated_bridge_id)
> -        || (v1->root_bridge_id == v2->root_bridge_id &&
> -            v1->root_path_cost == v2->root_path_cost &&
> -            v1->designated_bridge_id == v2->designated_bridge_id &&
> -            v1->designated_port_id < v2->designated_port_id)) {
> -        VLOG_DBG("superior_absolute");
> -        return SUPERIOR;
> -    } else if ((v1->root_bridge_id > v2->root_bridge_id
> -                || (v1->root_bridge_id == v2->root_bridge_id &&
> -                    v1->root_path_cost > v2->root_path_cost)
> -                || (v1->root_bridge_id == v2->root_bridge_id &&
> -                    v1->root_path_cost == v2->root_path_cost &&
> -                    v1->designated_bridge_id > v2->designated_bridge_id)
> -                || (v1->root_bridge_id == v2->root_bridge_id &&
> -                    v1->root_path_cost == v2->root_path_cost &&
> -                    v1->designated_bridge_id == v2->designated_bridge_id
> &&
> -                    v1->designated_port_id > v2->designated_port_id))
> -               && v1->designated_bridge_id == v2->designated_bridge_id
> -               && v1->designated_port_id == v2->designated_port_id) {
> -        VLOG_DBG("superior_same_des");
> -        return SUPERIOR;
> -    } else if (v1->root_bridge_id == v2->root_bridge_id &&
> -               v1->root_path_cost == v2->root_path_cost &&
> -               v1->designated_bridge_id == v2->designated_bridge_id &&
> -               v1->designated_port_id == v2->designated_port_id) {
> +    /* Testing for SAME first, so the SUPERIOR test can follow the logic
> above
> +     * as is. */
> +    if (v1->root_bridge_id == v2->root_bridge_id
> +        && v1->root_path_cost == v2->root_path_cost
> +        && v1->designated_bridge_id == v2->designated_bridge_id
> +        && v1->designated_port_id == v2->designated_port_id) {
>          VLOG_DBG("same");
>          return SAME;
> -    } else {
> -        VLOG_DBG("inferior");
> -        return INFERIOR;
>      }
> +    if (v1->root_bridge_id < v2->root_bridge_id
> +        || (v1->root_bridge_id == v2->root_bridge_id
> +            && v1->root_path_cost < v2->root_path_cost)
> +        || (v1->root_bridge_id == v2->root_bridge_id
> +            && v1->root_path_cost == v2->root_path_cost
> +            && v1->designated_bridge_id < v2->designated_bridge_id)
> +        || (v1->root_bridge_id == v2->root_bridge_id
> +            && v1->root_path_cost == v2->root_path_cost
> +            && v1->designated_bridge_id == v2->designated_bridge_id
> +            && v1->designated_port_id < v2->designated_port_id)
> +        || (v1->designated_bridge_id == v2->designated_bridge_id
> +            && v1->designated_port_id == v2->designated_port_id)) {
> +        VLOG_DBG("superior");
> +        return SUPERIOR;
> +    }
> +
> +    VLOG_DBG("inferior");
> +    return INFERIOR;
>  }
>
>  static bool
> --
> 1.7.10.4
>
> _______________________________________________
> dev mailing list
> dev@openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev
>
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to