Hey!

I tested this patch and it works fine.
Thanks for working on it Lorenzo!

Tested-By: Maciej Jozefczyk <[email protected]>

On Wed, Apr 22, 2020 at 10:36 PM Lorenzo Bianconi <
[email protected]> wrote:

> ovn currently identifies qos meters according to the rate and burst values
> configured. Doing so 2 meters on the same hv assigned to 2 different
> logical
> switch ports and configured with the same values for rate and burst will be
> mapped to the same ovs kernel mater and will share the bandwidth.
> Fix this behavior making qos meter name unique
>
> Signed-off-by: Lorenzo Bianconi <[email protected]>
> ---
>  controller/ofctrl.c |  2 +-
>  lib/actions.c       | 11 ++++++-----
>  2 files changed, 7 insertions(+), 6 deletions(-)
>
> diff --git a/controller/ofctrl.c b/controller/ofctrl.c
> index 36e39ba06..485a857d1 100644
> --- a/controller/ofctrl.c
> +++ b/controller/ofctrl.c
> @@ -970,7 +970,7 @@ add_meter_string(struct ovn_extend_table_info
> *m_desired,
>      enum ofputil_protocol usable_protocols;
>      char *meter_string = xasprintf("meter=%"PRIu32",%s",
>                                     m_desired->table_id,
> -                                   &m_desired->name[9]);
> +                                   &m_desired->name[52]);
>      char *error = parse_ofp_meter_mod_str(&mm, meter_string, OFPMC13_ADD,
>                                            &usable_protocols);
>      if (!error) {
> diff --git a/lib/actions.c b/lib/actions.c
> index deca18842..20a7a5caf 100644
> --- a/lib/actions.c
> +++ b/lib/actions.c
> @@ -2851,12 +2851,13 @@ encode_SET_METER(const struct ovnact_set_meter *cl,
>       * describes the meter itself. */
>      char *name;
>      if (cl->burst) {
> -        name = xasprintf("__string: kbps burst stats bands=type=drop "
> -                         "rate=%"PRId64" burst_size=%"PRId64"", cl->rate,
> -                         cl->burst);
> +        name = xasprintf("__string: uuid "UUID_FMT" kbps burst stats "
> +                         "bands=type=drop rate=%"PRId64"
> burst_size=%"PRId64,
> +                         UUID_ARGS(&ep->lflow_uuid), cl->rate, cl->burst);
>      } else {
> -        name = xasprintf("__string: kbps stats bands=type=drop "
> -                         "rate=%"PRId64"", cl->rate);
> +        name = xasprintf("__string: uuid "UUID_FMT" kbps stats "
> +                         "bands=type=drop rate=%"PRId64,
> +                         UUID_ARGS(&ep->lflow_uuid), cl->rate);
>      }
>
>      table_id = ovn_extend_table_assign_id(ep->meter_table, name,
> --
> 2.25.3
>
> _______________________________________________
> dev mailing list
> [email protected]
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>
>

-- 
Best regards,
Maciej Józefczyk
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to