• Andrey Ignatov's avatar
    libbpf: Introduce bpf_prog_attach_xattr · cdbee383
    Andrey Ignatov authored
    Introduce a new bpf_prog_attach_xattr function that, in addition to
    program fd, target fd and attach type, accepts an extendable struct
    bpf_prog_attach_opts.
    
    bpf_prog_attach_opts relies on DECLARE_LIBBPF_OPTS macro to maintain
    backward and forward compatibility and has the following "optional"
    attach attributes:
    
    * existing attach_flags, since it's not required when attaching in NONE
      mode. Even though it's quite often used in MULTI and OVERRIDE mode it
      seems to be a good idea to reduce number of arguments to
      bpf_prog_attach_xattr;
    
    * newly introduced attribute of BPF_PROG_ATTACH command: replace_prog_fd
      that is fd of previously attached cgroup-bpf program to replace if
      BPF_F_REPLACE flag is used.
    
    The new function is named to be consistent with other xattr-functions
    (bpf_prog_test_run_xattr, bpf_create_map_xattr, bpf_load_program_xattr).
    
    The struct bpf_prog_attach_opts is supposed to be used with
    DECLARE_LIBBPF_OPTS macro.
    Signed-off-by: default avatarAndrey Ignatov <rdna@fb.com>
    Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
    Acked-by: default avatarAndrii Nakryiko <andriin@fb.com>
    Link: https://lore.kernel.org/bpf/bd6e0732303eb14e4b79cb128268d9e9ad6db208.1576741281.git.rdna@fb.com
    cdbee383
bpf.c 18.2 KB