Skip to content
  • Daniel Mack's avatar
    bpf: add BPF_PROG_ATTACH and BPF_PROG_DETACH commands · f4324551
    Daniel Mack authored
    
    
    Extend the bpf(2) syscall by two new commands, BPF_PROG_ATTACH and
    BPF_PROG_DETACH which allow attaching and detaching eBPF programs
    to a target.
    
    On the API level, the target could be anything that has an fd in
    userspace, hence the name of the field in union bpf_attr is called
    'target_fd'.
    
    When called with BPF_ATTACH_TYPE_CGROUP_INET_{E,IN}GRESS, the target is
    expected to be a valid file descriptor of a cgroup v2 directory which
    has the bpf controller enabled. These are the only use-cases
    implemented by this patch at this point, but more can be added.
    
    If a program of the given type already exists in the given cgroup,
    the program is swapped automically, so userspace does not have to drop
    an existing program first before installing a new one, which would
    otherwise leave a gap in which no program is attached.
    
    For more information on the propagation logic to subcgroups, please
    refer to the bpf cgroup controller implementation.
    
    The API is guarded by CAP_NET_ADMIN.
    
    Signed-off-by: default avatarDaniel Mack <daniel@zonque.org>
    Acked-by: default avatarAlexei Starovoitov <ast@kernel.org>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    f4324551