diff options
author | Andrey Ignatov <rdna@fb.com> | 2018-04-17 13:28:45 -0400 |
---|---|---|
committer | Daniel Borkmann <daniel@iogearbox.net> | 2018-04-18 08:39:24 -0400 |
commit | 81efee75c4a8210cac6eb791892f974dfcfc24b0 (patch) | |
tree | 076439a7ce9ba2a3c925e72f44c8265b40f11aa5 /tools/lib/bpf | |
parent | 393de512e719a5fbd6712fc392a571ab287eb8ab (diff) |
libbpf: Support guessing post_bind{4,6} progs
libbpf can guess prog type and expected attach type based on section
name. Add hints for "cgroup/post_bind4" and "cgroup/post_bind6" section
names.
Existing "cgroup/sock" is not changed, i.e. expected_attach_type for it
is not set to `BPF_CGROUP_INET_SOCK_CREATE`, for backward compatibility.
Signed-off-by: Andrey Ignatov <rdna@fb.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Diffstat (limited to 'tools/lib/bpf')
-rw-r--r-- | tools/lib/bpf/libbpf.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/tools/lib/bpf/libbpf.c b/tools/lib/bpf/libbpf.c index 5922443063f0..0fcc4474e1cc 100644 --- a/tools/lib/bpf/libbpf.c +++ b/tools/lib/bpf/libbpf.c | |||
@@ -1859,6 +1859,9 @@ static void bpf_program__set_expected_attach_type(struct bpf_program *prog, | |||
1859 | 1859 | ||
1860 | #define BPF_PROG_SEC(string, ptype) BPF_PROG_SEC_FULL(string, ptype, 0) | 1860 | #define BPF_PROG_SEC(string, ptype) BPF_PROG_SEC_FULL(string, ptype, 0) |
1861 | 1861 | ||
1862 | #define BPF_S_PROG_SEC(string, ptype) \ | ||
1863 | BPF_PROG_SEC_FULL(string, BPF_PROG_TYPE_CGROUP_SOCK, ptype) | ||
1864 | |||
1862 | #define BPF_SA_PROG_SEC(string, ptype) \ | 1865 | #define BPF_SA_PROG_SEC(string, ptype) \ |
1863 | BPF_PROG_SEC_FULL(string, BPF_PROG_TYPE_CGROUP_SOCK_ADDR, ptype) | 1866 | BPF_PROG_SEC_FULL(string, BPF_PROG_TYPE_CGROUP_SOCK_ADDR, ptype) |
1864 | 1867 | ||
@@ -1889,10 +1892,13 @@ static const struct { | |||
1889 | BPF_SA_PROG_SEC("cgroup/bind6", BPF_CGROUP_INET6_BIND), | 1892 | BPF_SA_PROG_SEC("cgroup/bind6", BPF_CGROUP_INET6_BIND), |
1890 | BPF_SA_PROG_SEC("cgroup/connect4", BPF_CGROUP_INET4_CONNECT), | 1893 | BPF_SA_PROG_SEC("cgroup/connect4", BPF_CGROUP_INET4_CONNECT), |
1891 | BPF_SA_PROG_SEC("cgroup/connect6", BPF_CGROUP_INET6_CONNECT), | 1894 | BPF_SA_PROG_SEC("cgroup/connect6", BPF_CGROUP_INET6_CONNECT), |
1895 | BPF_S_PROG_SEC("cgroup/post_bind4", BPF_CGROUP_INET4_POST_BIND), | ||
1896 | BPF_S_PROG_SEC("cgroup/post_bind6", BPF_CGROUP_INET6_POST_BIND), | ||
1892 | }; | 1897 | }; |
1893 | 1898 | ||
1894 | #undef BPF_PROG_SEC | 1899 | #undef BPF_PROG_SEC |
1895 | #undef BPF_PROG_SEC_FULL | 1900 | #undef BPF_PROG_SEC_FULL |
1901 | #undef BPF_S_PROG_SEC | ||
1896 | #undef BPF_SA_PROG_SEC | 1902 | #undef BPF_SA_PROG_SEC |
1897 | 1903 | ||
1898 | static int bpf_program__identify_section(struct bpf_program *prog) | 1904 | static int bpf_program__identify_section(struct bpf_program *prog) |