All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH bpf-next v5 0/8] bpf: getsockopt and setsockopt hooks
@ 2019-06-10 21:08 Stanislav Fomichev
  2019-06-10 21:08 ` [PATCH bpf-next v5 1/8] bpf: implement " Stanislav Fomichev
                   ` (8 more replies)
  0 siblings, 9 replies; 15+ messages in thread
From: Stanislav Fomichev @ 2019-06-10 21:08 UTC (permalink / raw)
  To: netdev, bpf; +Cc: davem, ast, daniel, Stanislav Fomichev

This series implements two new per-cgroup hooks: getsockopt and
setsockopt along with a new sockopt program type. The idea is pretty
similar to recently introduced cgroup sysctl hooks, but
implementation is simpler (no need to convert to/from strings).

What this can be applied to:
* move business logic of what tos/priority/etc can be set by
  containers (either pass or reject)
* handle existing options (or introduce new ones) differently by
  propagating some information in cgroup/socket local storage

Compared to a simple syscall/{g,s}etsockopt tracepoint, those
hooks are context aware. Meaning, they can access underlying socket
and use cgroup and socket local storage.

Stanislav Fomichev (8):
  bpf: implement getsockopt and setsockopt hooks
  bpf: sync bpf.h to tools/
  libbpf: support sockopt hooks
  selftests/bpf: test sockopt section name
  selftests/bpf: add sockopt test
  selftests/bpf: add sockopt test that exercises sk helpers
  bpf: add sockopt documentation
  bpftool: support cgroup sockopt

 Documentation/bpf/index.rst                   |   1 +
 Documentation/bpf/prog_cgroup_sockopt.rst     |  39 +
 include/linux/bpf-cgroup.h                    |  29 +
 include/linux/bpf.h                           |  45 +
 include/linux/bpf_types.h                     |   1 +
 include/linux/filter.h                        |  13 +
 include/uapi/linux/bpf.h                      |  13 +
 kernel/bpf/cgroup.c                           | 260 ++++++
 kernel/bpf/core.c                             |   9 +
 kernel/bpf/syscall.c                          |  19 +
 kernel/bpf/verifier.c                         |  15 +
 net/core/filter.c                             |   2 +-
 net/socket.c                                  |  18 +
 .../bpftool/Documentation/bpftool-cgroup.rst  |   7 +-
 .../bpftool/Documentation/bpftool-prog.rst    |   2 +-
 tools/bpf/bpftool/bash-completion/bpftool     |   8 +-
 tools/bpf/bpftool/cgroup.c                    |   5 +-
 tools/bpf/bpftool/main.h                      |   1 +
 tools/bpf/bpftool/prog.c                      |   3 +-
 tools/include/uapi/linux/bpf.h                |  14 +
 tools/lib/bpf/libbpf.c                        |   5 +
 tools/lib/bpf/libbpf_probes.c                 |   1 +
 tools/testing/selftests/bpf/.gitignore        |   2 +
 tools/testing/selftests/bpf/Makefile          |   4 +-
 .../testing/selftests/bpf/progs/sockopt_sk.c  |  67 ++
 .../selftests/bpf/test_section_names.c        |  10 +
 tools/testing/selftests/bpf/test_sockopt.c    | 773 ++++++++++++++++++
 tools/testing/selftests/bpf/test_sockopt_sk.c | 156 ++++
 28 files changed, 1512 insertions(+), 10 deletions(-)
 create mode 100644 Documentation/bpf/prog_cgroup_sockopt.rst
 create mode 100644 tools/testing/selftests/bpf/progs/sockopt_sk.c
 create mode 100644 tools/testing/selftests/bpf/test_sockopt.c
 create mode 100644 tools/testing/selftests/bpf/test_sockopt_sk.c

-- 
2.22.0.rc2.383.gf4fbbf30c2-goog

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2019-06-14 16:32 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-06-10 21:08 [PATCH bpf-next v5 0/8] bpf: getsockopt and setsockopt hooks Stanislav Fomichev
2019-06-10 21:08 ` [PATCH bpf-next v5 1/8] bpf: implement " Stanislav Fomichev
2019-06-13 20:16   ` Alexei Starovoitov
2019-06-13 21:20     ` Stanislav Fomichev
2019-06-13 21:50       ` Andrii Nakryiko
2019-06-13 21:54         ` Stanislav Fomichev
2019-06-14 16:32           ` Stanislav Fomichev
2019-06-10 21:08 ` [PATCH bpf-next v5 2/8] bpf: sync bpf.h to tools/ Stanislav Fomichev
2019-06-10 21:08 ` [PATCH bpf-next v5 3/8] libbpf: support sockopt hooks Stanislav Fomichev
2019-06-10 21:08 ` [PATCH bpf-next v5 4/8] selftests/bpf: test sockopt section name Stanislav Fomichev
2019-06-10 21:08 ` [PATCH bpf-next v5 5/8] selftests/bpf: add sockopt test Stanislav Fomichev
2019-06-10 21:08 ` [PATCH bpf-next v5 6/8] selftests/bpf: add sockopt test that exercises sk helpers Stanislav Fomichev
2019-06-10 21:08 ` [PATCH bpf-next v5 7/8] bpf: add sockopt documentation Stanislav Fomichev
2019-06-10 21:08 ` [PATCH bpf-next v5 8/8] bpftool: support cgroup sockopt Stanislav Fomichev
2019-06-10 21:38 ` [PATCH bpf-next v5 0/8] bpf: getsockopt and setsockopt hooks Martin Lau

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.