[ovs-dev] [PATCH] lib/netdev-tc-offloads: Fix frag first/later translation
Roi Dayan
roid at mellanox.com
Thu Mar 29 12:46:00 UTC 2018
On 28/03/2018 15:54, Simon Horman wrote:
> 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 <roid at mellanox.com>
>>> Reviewed-by: Paul Blakey <paulb at 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.
>
ok thanks. let me know if you have some questions or need some output
examples.
More information about the dev
mailing list