Merge branch 'bpf-cgroup2'
Martin KaFai Lau says: ==================== cgroup: bpf: cgroup2 membership test on skb This series is to implement a bpf-way to check the cgroup2 membership of a skb (sk_buff). It is similar to the feature added in netfilter: c38c4597 ("netfilter: implement xt_cgroup cgroup2 path match") The current target is the tc-like usage. v3: - Remove WARN_ON_ONCE(!rcu_read_lock_held()) - Stop BPF_MAP_TYPE_CGROUP_ARRAY usage in patch 2/4 - Avoid mounting bpf fs manually in patch 4/4 - Thanks for Daniel's review and the above suggestions - Check CONFIG_SOCK_CGROUP_DATA instead of CONFIG_CGROUPS. Thanks to the kbuild bot's report. Patch 2/4 only needs CONFIG_CGROUPS while patch 3/4 needs CONFIG_SOCK_CGROUP_DATA. Since a single bpf cgrp2 array alone is not useful for now, CONFIG_SOCK_CGROUP_DATA is also used in patch 2/4. We can fine tune it later if we find other use cases for the cgrp2 array. - Return EAGAIN instead of ENOENT if the cgrp2 array entry is NULL. It is to distinguish these two cases: 1) the userland has not populated this array entry yet. or 2) not finding cgrp2 from the skb. - Be-lated thanks to Alexei and Tejun on reviewing v1 and giving advice on this work. v2: - Fix two return cases in cgroup_get_from_fd() - Fix compilation errors when CONFIG_CGROUPS is not used: - arraymap.c: avoid registering BPF_MAP_TYPE_CGROUP_ARRAY - filter.c: tc_cls_act_func_proto() returns NULL on BPF_FUNC_skb_in_cgroup - Add comments to BPF_FUNC_skb_in_cgroup and cgroup_get_from_fd() ==================== Signed-off-by:David S. Miller <davem@davemloft.net>
Showing
- include/linux/cgroup.h 1 addition, 0 deletionsinclude/linux/cgroup.h
- include/uapi/linux/bpf.h 12 additions, 0 deletionsinclude/uapi/linux/bpf.h
- kernel/bpf/arraymap.c 43 additions, 0 deletionskernel/bpf/arraymap.c
- kernel/bpf/syscall.c 2 additions, 1 deletionkernel/bpf/syscall.c
- kernel/bpf/verifier.c 8 additions, 0 deletionskernel/bpf/verifier.c
- kernel/cgroup.c 35 additions, 0 deletionskernel/cgroup.c
- net/core/filter.c 38 additions, 0 deletionsnet/core/filter.c
- samples/bpf/Makefile 3 additions, 0 deletionssamples/bpf/Makefile
- samples/bpf/bpf_helpers.h 2 additions, 0 deletionssamples/bpf/bpf_helpers.h
- samples/bpf/test_cgrp2_array_pin.c 109 additions, 0 deletionssamples/bpf/test_cgrp2_array_pin.c
- samples/bpf/test_cgrp2_tc.sh 184 additions, 0 deletionssamples/bpf/test_cgrp2_tc.sh
- samples/bpf/test_cgrp2_tc_kern.c 69 additions, 0 deletionssamples/bpf/test_cgrp2_tc_kern.c
Loading
Please register or sign in to comment