# Re: BUG\_ON in skb\_segment, after bpf\_skb\_change\_proto was applied

- From: Daniel Borkmann \<daniel@iogearbox.net\>
- Date: 2019-08-27 12:10:39 
- List: netdev
- Page: https://ratatoskr.run/netdev/2019/08/11146145
- Thread: https://ratatoskr.run/netdev/2019/08/11146024/t.md

```text
On 8/27/19 1:42 PM, Shmulik Ladkani wrote:
[...]
> - Another thing that puzzles me is that we hit the BUG_ON rather rarely
>    and cannot yet reproduce synthetically. If skb_segment's handling of
>    skbs with a frag_list (that have gso_size mangled) is broken, I'd expect
>    to hit this more often... Any ideas?
>
> - Suppose going for a rewrite, care to elaborate what's exactly missing
>    in skb_segment's logic?
>    I must admit I do not fully understand all the different code flows in
>    this function, it seems to support many different input skbs - any
>    assistance is highly appreciated.

Given first point above wrt hitting rarely, it would be good to first get a
better understanding for writing a reproducer. Back then Yonghong added one
to the BPF kernel test suite [0], so it would be desirable to extend it for
the case you're hitting. Given NAT64 use-case is needed and used by multiple
parties, we should try to (fully) fix it generically.

Thanks,
Daniel

  [0] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=76db8087c4c991dcd17f5ea8ac0eafd0696ab450

> Shmulik
>

```
