• Peter Oskolkov's avatar
    bpf: add handling of BPF_LWT_REROUTE to lwt_bpf.c · 3bd0b152
    Peter Oskolkov authored
    This patch builds on top of the previous patch in the patchset,
    which added BPF_LWT_ENCAP_IP mode to bpf_lwt_push_encap. As the
    encapping can result in the skb needing to go via a different
    interface/route/dst, bpf programs can indicate this by returning
    BPF_LWT_REROUTE, which triggers a new route lookup for the skb.
    
    v8 changes: fix kbuild errors when LWTUNNEL_BPF is builtin, but
       IPV6 is a module: as LWTUNNEL_BPF can only be either Y or N,
       call IPV6 routing functions only if they are built-in.
    
    v9 changes:
       - fixed a kbuild test robot compiler warning;
       - call IPV6 routing functions via ipv6_stub.
    
    v10 changes: removed unnecessary IS_ENABLED and pr_warn_once.
    
    v11 changes: fixed a potential dst leak.
    Signed-off-by: default avatarPeter Oskolkov <posk@google.com>
    Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
    3bd0b152
lwt_bpf.c 14.8 KB