That's fine.  I had just been holding off because I thought you'd wanted the 
probe to disable meters on kernels with a broken implementation.  Regardless, I 
did get that patch out earlier today:

        https://mail.openvswitch.org/pipermail/ovs-dev/2018-August/350885.html

Thanks,

--Justin


> On Aug 8, 2018, at 8:12 AM, Ben Pfaff <[email protected]> wrote:
> 
> Justin, I already applied this as a straightforward backport.  Hope it
> doesn't disrupt your work.
> 
> On Tue, Aug 07, 2018 at 08:31:35PM -0700, Justin Pettit wrote:
>> 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

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

Reply via email to