On Thu, Jul 26, 2018 at 5:41 PM, Simon Horman
<[email protected]> wrote:
> On Wed, Jul 25, 2018 at 09:20:06PM +0300, Or Gerlitz wrote:
>> TTL can and should be used to match on IPv6's hop-limit, fix that.

>> Fixes: ab7ecf266b0a ('netdev-tc-offloads: Add nw_ttl matching using flower')
>> Fixes: 0b4b5203d12e ('tc: Add ip layer ttl matching')

>> --- a/lib/netdev-tc-offloads.c
>> +++ b/lib/netdev-tc-offloads.c
>> @@ -1025,8 +1025,10 @@ netdev_tc_flow_put(struct netdev *netdev, struct 
>> match *match,
>>      if (is_ip_any(key)) {
>>          flower.key.ip_proto = key->nw_proto;
>>          flower.mask.ip_proto = mask->nw_proto;
>> +        mask->nw_proto = 0;
>>          flower.key.ip_ttl = key->nw_ttl;
>>          flower.mask.ip_ttl = mask->nw_ttl;
>> +        mask->nw_ttl = 0;
>>
>>          if (mask->nw_frag & FLOW_NW_FRAG_ANY) {
>>              flower.mask.flags |= TCA_FLOWER_KEY_FLAGS_IS_FRAGMENT;
>> @@ -1073,8 +1075,6 @@ netdev_tc_flow_put(struct netdev *netdev, struct match 
>> *match,
>>          }
>>
>>          mask->nw_tos = 0;
>> -        mask->nw_proto = 0;
>> -        mask->nw_ttl = 0;
>
> I'm not sure that I understand the purpose of the changes above.
> They seem to shuffle setting two mask values from one place to another.
> But what is the effect of this?

Setting mask->zzz to 0 means we consumed (== set into the mask
of the tc rule) the zzz field. The convention in the code is to have
this zeroing near the spot where you consume the field, I aligned
this code to that convention while fixing the bug.
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to