On Sun, Feb 10, 2019 at 08:04:39AM +0000, Roi Dayan wrote:
> 
> 
> On 04/02/2019 15:20, Roi Dayan wrote:
> >>>>> Hi Simon,
> >>>>>
> >>>>> I did some checks and think the correct fix is to offload exact match.
> >>>>> if key is partial we can ignore the mask and offload exact match and
> >>>>> it will be correct as we do more strict matching.
> >>>>>
> >>>>> it is also documented that the kernel datapath is doing the same
> >>>>> (from datapath.rst)
> >>>>>
> >>>>> "The kernel can ignore the mask attribute, installing an exact
> >>>>> match flow"
> >>>>>
> >>>>> So I think the first patch V0 is actually correct as we
> >>>>> check the tunnel key flag exists and offload exact match if
> >>>>> there was any mask or offload without a key if the mask is 0
> >>>>> or no key.
> >>>>>
> >>>>> in netdev-tc-offloads.c
> >>>>>
> >>>>> +        flower.mask.tunnel.id = (tnl->flags & FLOW_TNL_F_KEY) ?
> >>>>> +                                 tnl_mask->tun_id : 0;
> >>>>>
> >>>> I think this is fine so long as tun_id is all-ones. Is that always the 
> >>>> case?
> >>>> Should the code check that it is the case? Am I missing the point?
> >>>>
> >>> it looks like tun_id mask is always set to all-ones.
> >>> but even if it won't be in the future, we shouldn't really care here.
> >>> tc adds exact match on the tun_id and ignores the tun_id mask.
> >>> this is considered ok as the matching is more strict.
> >>> if new match is needed with different tun_id then ovs will try to add
> >>> another rule for it.
> >>> so with tc we could have multiple rules vs 1 rule that support mask.
> >>
> >> Thanks for looking into this. That sounds find to me but I wonder if we 
> >> should make
> >> this behaviour explicit.
> >>
> >>         /*
> >>          * Comment describing why the mask is 0 or all-ones
> >>          */
> >>         flower.mask.tunnel.id = (tnl->flags & FLOW_TNL_F_KEY) ? UINT32_MAX 
> >> : 0;
> >>
> > I think its nicer like this and symetric currently. here it's generic
> > and "use" mask.
> > in tc.c when we fill the netlink msg we ignore the mas and also when
> > parsing tc dump,
> > tun mask is set to FFFF here (tc.c) and not netdev-tc-offloads.c
> > 
> 
> Hi Simon,
> 
> any update? i remind i suggested v0 is the correct one.

Thanks and sorry for the ongoing delays.

I have added this (v2) to a travisci instance and plan to apply the patch
to master if that passes.

https://travis-ci.org/horms2/ovs/builds/491523655
_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to