bpf: Expose bpf_sk_storage_* to iterator programs
authorFlorent Revest <revest@chromium.org>
Fri, 4 Dec 2020 11:36:06 +0000 (12:36 +0100)
committerDaniel Borkmann <daniel@iogearbox.net>
Fri, 4 Dec 2020 21:32:40 +0000 (22:32 +0100)
Iterators are currently used to expose kernel information to userspace
over fast procfs-like files but iterators could also be used to
manipulate local storage. For example, the task_file iterator could be
used to initialize a socket local storage with associations between
processes and sockets or to selectively delete local storage values.

Signed-off-by: Florent Revest <revest@google.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Martin KaFai Lau <kafai@fb.com>
Acked-by: KP Singh <kpsingh@google.com>
Link: https://lore.kernel.org/bpf/20201204113609.1850150-3-revest@google.com
net/core/bpf_sk_storage.c

index a32037d..4edd033 100644 (file)
@@ -394,6 +394,7 @@ static bool bpf_sk_storage_tracing_allowed(const struct bpf_prog *prog)
         * use the bpf_sk_storage_(get|delete) helper.
         */
        switch (prog->expected_attach_type) {
+       case BPF_TRACE_ITER:
        case BPF_TRACE_RAW_TP:
                /* bpf_sk_storage has no trace point */
                return true;