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.