This patch set's main goal is to teach bpf_object__open() (and its variants) to automatically derive BPF program type/expected attach type from section names, similarly to how bpf_prog_load() was doing it. This significantly improves user experience by eliminating yet another obvious-only-in-the-hindsight surprise, when using libbpf APIs. There are a bunch of auxiliary clean-ups and improvements. E.g., bpf_program__get_type() and bpf_program__get_expected_attach_type() are added for completeness and symmetry with corresponding setter APIs. Some clean up and fixes in selftests/bpf are done as well. Andrii Nakryiko (7): tools: sync if_link.h libbpf: add bpf_program__get_{type, expected_attach_type) APIs libbpf: add uprobe/uretprobe and tp/raw_tp section suffixes libbpf: teach bpf_object__open to guess program types selftests/bpf: make a copy of subtest name selftests/bpf: make reference_tracking test use subtests selftest/bpf: get rid of a bunch of explicit BPF program type setting tools/include/uapi/linux/if_link.h | 2 + tools/lib/bpf/libbpf.c | 80 ++++++++++++------- tools/lib/bpf/libbpf.h | 5 ++ tools/lib/bpf/libbpf.map | 2 + .../selftests/bpf/prog_tests/attach_probe.c | 5 -- .../selftests/bpf/prog_tests/core_reloc.c | 1 - .../selftests/bpf/prog_tests/rdonly_maps.c | 4 - .../bpf/prog_tests/reference_tracking.c | 3 +- .../selftests/bpf/progs/test_sk_lookup_kern.c | 18 ++--- tools/testing/selftests/bpf/test_maps.c | 4 - tools/testing/selftests/bpf/test_progs.c | 17 ++-- 11 files changed, 83 insertions(+), 58 deletions(-) -- 2.17.1