• Joe Stringer's avatar
    tools lib bpf: Add BPF program pinning APIs · f367540c
    Joe Stringer authored
    Add new APIs to pin a BPF program (or specific instances) to the
    filesystem.  The user can specify the path full path within a BPF
    filesystem to pin the program.
    
    bpf_program__pin_instance(prog, path, n) will pin the nth instance of
    'prog' to the specified path.
    
    bpf_program__pin(prog, path) will create the directory 'path' (if it
    does not exist) and pin each instance within that directory. For
    instance, path/0, path/1, path/2.
    
    Committer notes:
    
    - Add missing headers for mkdir()
    
    - Check strdup() for failure
    
    - Check snprintf >= size, not >, as == also means truncated, see 'man
      snprintf', return value.
    
    - Conditionally define BPF_FS_MAGIC, as it isn't in magic.h in older
      systems and we're not yet having a tools/include/uapi/linux/magic.h
      copy.
    
    - Do not include linux/magic.h, not present in older distros.
    Signed-off-by: default avatarJoe Stringer <joe@ovn.org>
    Cc: Alexei Starovoitov <ast@fb.com>
    Cc: Daniel Borkmann <daniel@iogearbox.net>
    Cc: Wang Nan <wangnan0@huawei.com>
    Cc: netdev@vger.kernel.org
    Link: http://lkml.kernel.org/r/20170126212001.14103-2-joe@ovn.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    f367540c
libbpf.c 36.2 KB