I guess it's not applicable in the sense that the fix is not really in
OVS. Kernels with that bug will continue to have it even after this
backport.

I think it would be pretty challenging to fully backport this through
the OVS tree - it would likely require pulling in the whole UDP
offloads module. That would pretty messy and would silently prevent
other non-OVS users from taking advantage of offloads. To the extent
that this affects OVS users, I think probably needs to be picked up by
distribution kernels.

On Mon, Jul 4, 2016 at 4:02 AM, Jarno Rajahalme <ja...@ovn.org> wrote:
> I'm not really familiar with these backports, but is it so that the main 
> change the upstream patch introduced to udp_gro_complete() is not applicable 
> to the backports?
>
>   Jarno
>
>> On Jun 30, 2016, at 1:06 AM, Pravin B Shelar <pshe...@ovn.org> wrote:
>>
>> Upstream commit:
>>    commit 229740c63169462a838a8b8e16391ed000934631
>>    Author: Jarno Rajahalme <ja...@ovn.org>
>>
>>    udp_offload: Set encapsulation before inner completes.
>>
>>    UDP tunnel segmentation code relies on the inner offsets being set for
>>    an UDP tunnel GSO packet, but the inner *_complete() functions will
>>    set the inner offsets only if 'encapsulation' is set before calling
>>    them.  Currently, udp_gro_complete() sets 'encapsulation' only after
>>    the inner *_complete() functions are done.  This causes the inner
>>    offsets having invalid values after udp_gro_complete() returns, which
>>    in turn will make it impossible to properly segment the packet in case
>>    it needs to be forwarded, which would be visible to the user either as
>>    invalid packets being sent or as packet loss.
>>
>>    This patch fixes this by setting skb's 'encapsulation' in
>>    udp_gro_complete() before calling into the inner complete functions,
>>    and by making each possible UDP tunnel gro_complete() callback set the
>>    inner_mac_header to the beginning of the tunnel payload.
>>
>>    Signed-off-by: Jarno Rajahalme <ja...@ovn.org>
>>    Reviewed-by: Alexander Duyck <adu...@mirantis.com>
>>    Signed-off-by: David S. Miller <da...@davemloft.net>
>>
>> Signed-off-by: Pravin B Shelar <pshe...@ovn.org>
>> ---
>> datapath/linux/compat/geneve.c | 2 ++
>> 1 file changed, 2 insertions(+)
>>
>> diff --git a/datapath/linux/compat/geneve.c b/datapath/linux/compat/geneve.c
>> index e049221..cc8740b 100644
>> --- a/datapath/linux/compat/geneve.c
>> +++ b/datapath/linux/compat/geneve.c
>> @@ -566,6 +566,8 @@ static int geneve_gro_complete(struct sk_buff *skb, int 
>> nhoff,
>>               err = ptype->callbacks.gro_complete(skb, nhoff + gh_len);
>>
>>       rcu_read_unlock();
>> +
>> +     skb_set_inner_mac_header(skb, nhoff + gh_len);
>>       return err;
>> }
>> #endif
>> --
>> 1.9.1
>>
>> _______________________________________________
>> dev mailing list
>> dev@openvswitch.org
>> http://openvswitch.org/mailman/listinfo/dev
>
> _______________________________________________
> dev mailing list
> dev@openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to