On Wed, May 12, 2021 at 3:41 AM Dongseok Yi <dseok.yi@xxxxxxxxxxx> wrote: > > In the forwarding path GRO -> BPF 6 to 4 -> GSO for TCP traffic, the > coalesced packet payload can be > MSS, but < MSS + 20. > bpf_skb_proto_6_to_4 will upgrade the MSS and it can be > the payload > length. After then tcp_gso_segment checks for the payload length if it > is <= MSS. The condition is causing the packet to be dropped. > > tcp_gso_segment(): > [...] > mss = skb_shinfo(skb)->gso_size; > if (unlikely(skb->len <= mss)) > goto out; > [...] > > Allow to upgrade/downgrade MSS only when BPF_F_ADJ_ROOM_FIXED_GSO is > not set. > > Signed-off-by: Dongseok Yi <dseok.yi@xxxxxxxxxxx> Acked-by: Willem de Bruijn <willemb@xxxxxxxxxx>