On Mon, 21 Sep 2020 23:17:16 +0200 Willem de Bruijn <willemdebruijn.kernel@xxxxxxxxx> wrote: > On Mon, Sep 21, 2020 at 6:22 PM Marek Zavodsky <marek.zavodsky@xxxxxxxxx> wrote: > > > > Hi guys, > > > > My kernel knowledge is small, but I experienced this (similar) issue > > with packet encapsulation (not a redirect), therefore modifying the > > redirect branch would not help in my case. > > > > I'm working on a TC program to do GUE encap/decap (IP + UDP + GUE, > > outer header has extra 52B). > > There are no issues with small packets. But when I use curl to > > download big file HTTP server chunks data randomly. Some packets have > > MTU size, others are even bigger. Big packets are not an issue, > > however MTU sized packets fail on bpf_skb_adjust_room with -524 > > (ENOTSUPP). > > This is a related, but different, unresolved issue at the boundary of > GSO packets. Packets that are not GSO, but would exceed MTU once > encapsulated, will cause adjust room to fail: > > (!shrink && (skb->len + len_diff_abs > len_max && > !skb_is_gso(skb)))) > return -ENOTSUPP; > > As admin, this can be addressed by setting a lower route MTU on routes > that may be encapsulated. But that is not very obvious or transparent. Your issue is very much related, and even-though it is not related to redirect, I also want to address and allow your use-case (in the patchset that I'm collecting input for now). I do think this patch[1][2] will actually solve your problem. Could you please try to apply and test this to make sure? (as we have discussed on this list, that patch is not a 100% solution, and I will work on a better solution). [1] https://lore.kernel.org/bpf/159921182827.1260200.9699352760916903781.stgit@firesoul [2] http://patchwork.ozlabs.org/project/netdev/patch/159921182827.1260200.9699352760916903781.stgit@firesoul/ -- Best regards, Jesper Dangaard Brouer MSc.CS, Principal Kernel Engineer at Red Hat LinkedIn: http://www.linkedin.com/in/brouer