Subject: Re: BUG_ON triggered in skb_segment

From: Eric Dumazet <[email-masked]>
Date: Tue, 13 Mar 2018 18:15:33 -0700

On 03/13/2018 05:35 PM, Eric Dumazet wrote:
> 
> 
> On 03/13/2018 05:26 PM, Eric Dumazet wrote:
>>
>>
>> On 03/13/2018 05:04 PM, Alexei Starovoitov wrote:
>>> On 3/13/18 4:27 PM, Eric Dumazet wrote:
>>>>
>>>>
>>>> On 03/13/2018 04:09 PM, Alexei Starovoitov wrote:
>>>>
>>>>> we have bpf_skb_proto_6_to_4() that was used by cilium for long time.
>>>>> It's not clear why it's not crashing there, but we cannot just
>>>>> reject changing proto in bpf programs now.
>>>>> We have to fix whatever needs to be fixed in skb_segment
>>>>> (if bug is there) or fix whatever necessary on mlx5 side.
>>>>> In bpf helper we mark it as SKB_GSO_DODGY just like packets coming
>>>>> through virtio would do, so if skb_segment() needs to do something
>>>>> special with skb the SKB_GSO_DODGY flag is already there.
>>>>
>>>> 'Fixing' skb_segment(), I did that a long time ago and Herbert Xu was
>>>> not happy with the fix and provided something else.
>>>
>>> any link to your old patches and discussion?
>>>
>>> I think since mlx4 can do tso on them and the packets came out
>>> correct on the wire, there is nothing fundamentally wrong with
>>> changing gso_size. Just tricky to teach skb_segment.
>>>
>>
>> The world is not mlx4 only. Some NIC will ask skb_segment() fallback 
>> segmentation for various reasons (like skb->len above a given limit 
>> like 16KB)
>>
>> Maybe https://www.spinics.net/lists/netdev/msg255549.html
> 
> 
> Herbert patch :
> 
> commit 9d8506cc2d7ea1f911c72c100193a3677f6668c3
> Author: Herbert Xu <[email-masked]>
> Date:   Thu Nov 21 11:10:04 2013 -0800
> 
>      gso: handle new frag_list of frags GRO packets
> 

I found my initial patch.

https://www.spinics.net/lists/netdev/msg255452.html