[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAF=yD-+xYoQtP2=jS17tZwJWCWcN3M0WXC1qUGKiDpM-aOqWLw@mail.gmail.com>
Date: Thu, 6 Jul 2017 13:57:20 -0400
From: Willem de Bruijn <willemdebruijn.kernel@...il.com>
To: David Miller <davem@...emloft.net>
Cc: Network Development <netdev@...r.kernel.org>
Subject: Re: [PATCH RFC 11/12] net: Remove all references to SKB_GSO_UDP.
On Thu, Jul 6, 2017 at 10:43 AM, David Miller <davem@...emloft.net> wrote:
> From: Willem de Bruijn <willemdebruijn.kernel@...il.com>
> Date: Wed, 5 Jul 2017 12:27:11 -0400
>
>>>> --- a/net/ipv4/udp_offload.c
>>>> +++ b/net/ipv4/udp_offload.c
>>>> @@ -21,7 +21,7 @@ static struct sk_buff *__skb_udp_tunnel_segment(struct sk_buff *skb,
>>>> __be16 new_protocol, bool is_ipv6)
>>>
>>> In this file, can now remove all of udp4_ufo_fragment, and
>>> udp6_ufo_fragment in net/ipv6.
>>
>> I had missed that this is used for tunneling with skb_udp_tunnel_segment.
>> But the core codepath should no longer be hit once SKB_GSO_UDP
>> is removed.
>
> Are you sure? I'm pretty sure all of the code remaining after my
> patch series is needed in order to handle doing TCP GRO through
> UDP tunneling encapsulation.
>
> Although the word "fragment" is in the function name, it's not doing
> IP fragmentation. Instead, it is "fragmenting" the batched UDP
> encapsulated frame into a series of individual UDP encapsulated ones.
Isn't that case handled in the branch
if (skb->encapsulation &&
(skb_shinfo(skb)->gso_type &
(SKB_GSO_UDP_TUNNEL|SKB_GSO_UDP_TUNNEL_CSUM))) {
segs = skb_udp_tunnel_segment(skb, features, false);
goto out;
}
It appears to be in a quick test I ran with FOU.
Powered by blists - more mailing lists