diff options
| author | Daniel Mack <daniel@zonque.org> | 2016-11-23 10:52:26 -0500 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2016-11-25 16:25:52 -0500 |
| commit | 3007098494bec614fb55dee7bc0410bb7db5ad18 (patch) | |
| tree | ff07e31da90fd790d2ae4f129d04954b70766057 /init | |
| parent | 0e33661de493db325435d565a4a722120ae4cbf3 (diff) | |
cgroup: add support for eBPF programs
This patch adds two sets of eBPF program pointers to struct cgroup.
One for such that are directly pinned to a cgroup, and one for such
that are effective for it.
To illustrate the logic behind that, assume the following example
cgroup hierarchy.
A - B - C
\ D - E
If only B has a program attached, it will be effective for B, C, D
and E. If D then attaches a program itself, that will be effective for
both D and E, and the program in B will only affect B and C. Only one
program of a given type is effective for a cgroup.
Attaching and detaching programs will be done through the bpf(2)
syscall. For now, ingress and egress inet socket filtering are the
only supported use-cases.
Signed-off-by: Daniel Mack <daniel@zonque.org>
Acked-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'init')
| -rw-r--r-- | init/Kconfig | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/init/Kconfig b/init/Kconfig index 34407f15e6d3..405120b5f13e 100644 --- a/init/Kconfig +++ b/init/Kconfig | |||
| @@ -1154,6 +1154,18 @@ config CGROUP_PERF | |||
| 1154 | 1154 | ||
| 1155 | Say N if unsure. | 1155 | Say N if unsure. |
| 1156 | 1156 | ||
| 1157 | config CGROUP_BPF | ||
| 1158 | bool "Support for eBPF programs attached to cgroups" | ||
| 1159 | depends on BPF_SYSCALL && SOCK_CGROUP_DATA | ||
| 1160 | help | ||
| 1161 | Allow attaching eBPF programs to a cgroup using the bpf(2) | ||
| 1162 | syscall command BPF_PROG_ATTACH. | ||
| 1163 | |||
| 1164 | In which context these programs are accessed depends on the type | ||
| 1165 | of attachment. For instance, programs that are attached using | ||
| 1166 | BPF_CGROUP_INET_INGRESS will be executed on the ingress path of | ||
| 1167 | inet sockets. | ||
| 1168 | |||
| 1157 | config CGROUP_DEBUG | 1169 | config CGROUP_DEBUG |
| 1158 | bool "Example controller" | 1170 | bool "Example controller" |
| 1159 | default n | 1171 | default n |
