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>
		
	
			
		
			
				
	
	
		
			9 lines
		
	
	
		
			282 B
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			9 lines
		
	
	
		
			282 B
		
	
	
	
		
			Makefile
		
	
	
	
	
	
| obj-y := core.o
 | |
| 
 | |
| obj-$(CONFIG_BPF_SYSCALL) += syscall.o verifier.o inode.o helpers.o
 | |
| obj-$(CONFIG_BPF_SYSCALL) += hashtab.o arraymap.o percpu_freelist.o bpf_lru_list.o
 | |
| ifeq ($(CONFIG_PERF_EVENTS),y)
 | |
| obj-$(CONFIG_BPF_SYSCALL) += stackmap.o
 | |
| endif
 | |
| obj-$(CONFIG_CGROUP_BPF) += cgroup.o
 |