summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStanislav Fomichev <sdf@google.com>2019-06-27 16:38:49 -0400
committerAlexei Starovoitov <ast@kernel.org>2019-06-27 18:25:17 -0400
commit4cdbfb59c44a0df58ab321e4ddd9710cd0823584 (patch)
tree62b8dbccb3f4f9d16fffd6aa70df97e05431e772
parentaa6ab6471e525ce6842e95a565f10b56fd6b4d5c (diff)
libbpf: support sockopt hooks
Make libbpf aware of new sockopt hooks so it can derive prog type and hook point from the section names. Cc: Andrii Nakryiko <andriin@fb.com> Cc: Martin Lau <kafai@fb.com> Signed-off-by: Stanislav Fomichev <sdf@google.com> Signed-off-by: Alexei Starovoitov <ast@kernel.org>
-rw-r--r--tools/lib/bpf/libbpf.c5
-rw-r--r--tools/lib/bpf/libbpf_probes.c1
2 files changed, 6 insertions, 0 deletions
diff --git a/tools/lib/bpf/libbpf.c b/tools/lib/bpf/libbpf.c
index 5186b7710430..6e6ebef11ba3 100644
--- a/tools/lib/bpf/libbpf.c
+++ b/tools/lib/bpf/libbpf.c
@@ -2646,6 +2646,7 @@ static bool bpf_prog_type__needs_kver(enum bpf_prog_type type)
2646 case BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE: 2646 case BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE:
2647 case BPF_PROG_TYPE_PERF_EVENT: 2647 case BPF_PROG_TYPE_PERF_EVENT:
2648 case BPF_PROG_TYPE_CGROUP_SYSCTL: 2648 case BPF_PROG_TYPE_CGROUP_SYSCTL:
2649 case BPF_PROG_TYPE_CGROUP_SOCKOPT:
2649 return false; 2650 return false;
2650 case BPF_PROG_TYPE_KPROBE: 2651 case BPF_PROG_TYPE_KPROBE:
2651 default: 2652 default:
@@ -3604,6 +3605,10 @@ static const struct {
3604 BPF_CGROUP_UDP6_RECVMSG), 3605 BPF_CGROUP_UDP6_RECVMSG),
3605 BPF_EAPROG_SEC("cgroup/sysctl", BPF_PROG_TYPE_CGROUP_SYSCTL, 3606 BPF_EAPROG_SEC("cgroup/sysctl", BPF_PROG_TYPE_CGROUP_SYSCTL,
3606 BPF_CGROUP_SYSCTL), 3607 BPF_CGROUP_SYSCTL),
3608 BPF_EAPROG_SEC("cgroup/getsockopt", BPF_PROG_TYPE_CGROUP_SOCKOPT,
3609 BPF_CGROUP_GETSOCKOPT),
3610 BPF_EAPROG_SEC("cgroup/setsockopt", BPF_PROG_TYPE_CGROUP_SOCKOPT,
3611 BPF_CGROUP_SETSOCKOPT),
3607}; 3612};
3608 3613
3609#undef BPF_PROG_SEC_IMPL 3614#undef BPF_PROG_SEC_IMPL
diff --git a/tools/lib/bpf/libbpf_probes.c b/tools/lib/bpf/libbpf_probes.c
index 6635a31a7a16..ace1a0708d99 100644
--- a/tools/lib/bpf/libbpf_probes.c
+++ b/tools/lib/bpf/libbpf_probes.c
@@ -101,6 +101,7 @@ probe_load(enum bpf_prog_type prog_type, const struct bpf_insn *insns,
101 case BPF_PROG_TYPE_SK_REUSEPORT: 101 case BPF_PROG_TYPE_SK_REUSEPORT:
102 case BPF_PROG_TYPE_FLOW_DISSECTOR: 102 case BPF_PROG_TYPE_FLOW_DISSECTOR:
103 case BPF_PROG_TYPE_CGROUP_SYSCTL: 103 case BPF_PROG_TYPE_CGROUP_SYSCTL:
104 case BPF_PROG_TYPE_CGROUP_SOCKOPT:
104 default: 105 default:
105 break; 106 break;
106 } 107 }