Skip to content
  • Willem de Bruijn's avatar
    bpf: only adjust gso_size on bytestream protocols · b90efd22
    Willem de Bruijn authored
    bpf_skb_change_proto and bpf_skb_adjust_room change skb header length.
    For GSO packets they adjust gso_size to maintain the same MTU.
    
    The gso size can only be safely adjusted on bytestream protocols.
    Commit d02f51cb ("bpf: fix bpf_skb_adjust_net/bpf_skb_proto_xlat
    to deal with gso sctp skbs") excluded SKB_GSO_SCTP.
    
    Since then type SKB_GSO_UDP_L4 has been added, whose contents are one
    gso_size unit per datagram. Also exclude these.
    
    Move from a blacklist to a whitelist check to future proof against
    additional such new GSO types, e.g., for fraglist based GRO.
    
    Fixes: bec1f6f6
    
     ("udp: generate gso with UDP_SEGMENT")
    Signed-off-by: default avatarWillem de Bruijn <willemb@google.com>
    Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
    b90efd22