Thanks, Greg. I actually have this queued up with another patch that will 
disable meters entirely on broken kernels. I plan to send that out tomorrow. 

--Justin


> On Aug 7, 2018, at 4:45 PM, Greg Rose <[email protected]> wrote:
> 
> From: Justin Pettit <[email protected]>
> 
> Upstream commit:
>    From: Justin Pettit <[email protected]>
>    Date: Sat, 28 Jul 2018 15:26:01 -0700
>    Subject: [PATCH] openvswitch: meter: Fix setting meter id for new entries
> 
>    The meter code would create an entry for each new meter.  However, it
>    would not set the meter id in the new entry, so every meter would appear
>    to have a meter id of zero.  This commit properly sets the meter id when
>    adding the entry.
> 
>    Fixes: 96fbc13d7e77 ("openvswitch: Add meter infrastructure")
>    Signed-off-by: Justin Pettit <[email protected]>
>    Cc: Andy Zhou <[email protected]>
>    Signed-off-by: David S. Miller <[email protected]>
> 
> Cc: Justin Pettit <[email protected]>
> Signed-off-by: Greg Rose <[email protected]>
> ---
> datapath/meter.c | 10 +++++-----
> 1 file changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/datapath/meter.c b/datapath/meter.c
> index 1c2ed46..281d869 100644
> --- a/datapath/meter.c
> +++ b/datapath/meter.c
> @@ -221,6 +221,7 @@ static struct dp_meter *dp_meter_create(struct nlattr **a)
>    if (!meter)
>        return ERR_PTR(-ENOMEM);
> 
> +    meter->id = nla_get_u32(a[OVS_METER_ATTR_ID]);
>    meter->used = div_u64(ktime_get_ns(), 1000 * 1000);
>    meter->kbps = a[OVS_METER_ATTR_KBPS] ? 1 : 0;
>    meter->keep_stats = !a[OVS_METER_ATTR_CLEAR];
> @@ -290,6 +291,10 @@ static int ovs_meter_cmd_set(struct sk_buff *skb, struct 
> genl_info *info)
>    u32 meter_id;
>    bool failed;
> 
> +    if (!a[OVS_METER_ATTR_ID]) {
> +        return -ENODEV;
> +    }
> +
>    meter = dp_meter_create(a);
>    if (IS_ERR_OR_NULL(meter))
>        return PTR_ERR(meter);
> @@ -308,11 +313,6 @@ static int ovs_meter_cmd_set(struct sk_buff *skb, struct 
> genl_info *info)
>        goto exit_unlock;
>    }
> 
> -    if (!a[OVS_METER_ATTR_ID]) {
> -        err = -ENODEV;
> -        goto exit_unlock;
> -    }
> -
>    meter_id = nla_get_u32(a[OVS_METER_ATTR_ID]);
> 
>    /* Cannot fail after this. */
> -- 
> 1.8.3.1
> 

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to