• Andrii Nakryiko's avatar
    bpf, xdp: Add bpf_link-based XDP attachment API · aa8d3a71
    Andrii Nakryiko authored
    Add bpf_link-based API (bpf_xdp_link) to attach BPF XDP program through
    BPF_LINK_CREATE command.
    
    bpf_xdp_link is mutually exclusive with direct BPF program attachment,
    previous BPF program should be detached prior to attempting to create a new
    bpf_xdp_link attachment (for a given XDP mode). Once BPF link is attached, it
    can't be replaced by other BPF program attachment or link attachment. It will
    be detached only when the last BPF link FD is closed.
    
    bpf_xdp_link will be auto-detached when net_device is shutdown, similarly to
    how other BPF links behave (cgroup, flow_dissector). At that point bpf_link
    will become defunct, but won't be destroyed until last FD is closed.
    Signed-off-by: default avatarAndrii Nakryiko <andriin@fb.com>
    Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
    Link: https://lore.kernel.org/bpf/20200722064603.3350758-5-andriin@fb.com
    aa8d3a71
dev.c 272 KB