On Sun, Mar 25, 2018 at 12:53:25PM +0300, Roi Dayan wrote:
> 
> 
> On 25/03/2018 12:11, Roi Dayan wrote:
> > Fragment mask (any and later) always exists so we need to test
> > for FLOW_NW_FRAG_LATER only if the state is FLOW_NW_FRAG_ANY.
> > Before this fix we could pass frag no and first at the same time to TC
> > which is also not tested there for bad frag state.
> > This fix make sure we only pass frag first/later if is frag.
> > 
> > Fixes: 83e866067ea6 ("netdev-tc-offloads: Add support for IP fragmentation")
> > Signed-off-by: Roi Dayan <r...@mellanox.com>
> > Reviewed-by: Paul Blakey <pa...@mellanox.com>
> > ---
> >   lib/netdev-tc-offloads.c | 19 +++++++++++++------
> >   1 file changed, 13 insertions(+), 6 deletions(-)
> > 
> > diff --git a/lib/netdev-tc-offloads.c b/lib/netdev-tc-offloads.c
> > index f22415ee11bd..6db76801fd0e 100644
> > --- a/lib/netdev-tc-offloads.c
> > +++ b/lib/netdev-tc-offloads.c
> > @@ -948,14 +948,21 @@ netdev_tc_flow_put(struct netdev *netdev, struct 
> > match *match,
> >           flower.key.ip_ttl = key->nw_ttl;
> >           flower.mask.ip_ttl = mask->nw_ttl;
> > -        if (mask->nw_frag) {
> > -            if (key->nw_frag & FLOW_NW_FRAG_ANY)
> > +        if (mask->nw_frag & FLOW_NW_FRAG_ANY) {
> > +            flower.mask.flags |= TCA_FLOWER_KEY_FLAGS_IS_FRAGMENT;
> > +
> > +            if (key->nw_frag & FLOW_NW_FRAG_ANY) {
> >                   flower.key.flags |= TCA_FLOWER_KEY_FLAGS_IS_FRAGMENT;
> > -            if (!(key->nw_frag & FLOW_NW_FRAG_LATER))
> > -                flower.key.flags |= TCA_FLOWER_KEY_FLAGS_FRAG_IS_FIRST;
> > -            flower.mask.flags |= TCA_FLOWER_KEY_FLAGS_IS_FRAGMENT;
> > -            flower.mask.flags |= TCA_FLOWER_KEY_FLAGS_FRAG_IS_FIRST;
> > +                if (mask->nw_frag & FLOW_NW_FRAG_LATER) {
> > +                    flower.mask.flags |= 
> > TCA_FLOWER_KEY_FLAGS_FRAG_IS_FIRST;
> > +
> > +                    if (!(key->nw_frag & FLOW_NW_FRAG_LATER)) {
> > +                        flower.key.flags |= 
> > TCA_FLOWER_KEY_FLAGS_FRAG_IS_FIRST;
> > +                    }
> > +                }
> > +            }
> > +
> 
> Hi Simon,
> 
> This fix OVS to send TC nofrag without frag first/later.
> Though for frag it will set TC frag+fragfirst flags.
> This is working fine though from your patch to iproute user-space
> you showed an example of using only firstfrag flag without the need
> for frag flag.
> I'm not sure if we need to minimize it from OVS as well or just let
> this be frag+firstfrag.
> let me know what you think.

Hi Roi,

thanks for reporting this. I'd like a little more time to investigate this
and follow-up properly.
_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to