Skip to content
  • Daniel Borkmann's avatar
    bpf: enable load bytes helper for filter/reuseport progs · 2492d3b8
    Daniel Borkmann authored
    BPF_PROG_TYPE_SOCKET_FILTER are used in various facilities such as
    for SO_REUSEPORT and packet fanout demuxing, packet filtering, kcm,
    etc, and yet the only facility they can use is BPF_LD with {BPF_ABS,
    BPF_IND} for single byte/half/word access.
    
    Direct packet access is only restricted to tc programs right now,
    but we can still facilitate usage by allowing skb_load_bytes() helper
    added back then in 05c74e5e
    
     ("bpf: add bpf_skb_load_bytes helper")
    that calls skb_header_pointer() similarly to bpf_load_pointer(), but
    for stack buffers with larger access size.
    
    Name the previous sk_filter_func_proto() as bpf_base_func_proto()
    since this is used everywhere else as well, similarly for the ctx
    converter, that is, bpf_convert_ctx_access().
    
    Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
    Acked-by: default avatarAlexei Starovoitov <ast@kernel.org>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    2492d3b8