net/core/filter.c | 6 ++++++ 1 file changed, 6 insertions(+)
From: Feng Zhou <zhoufeng.zf@bytedance.com>
At cg_skb hook point, can get classid for v1 or v2, allowing
users to do more functions such as acl.
Signed-off-by: Feng Zhou <zhoufeng.zf@bytedance.com>
---
net/core/filter.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/net/core/filter.c b/net/core/filter.c
index 78a6f746ea0b..d69ba589882f 100644
--- a/net/core/filter.c
+++ b/net/core/filter.c
@@ -8111,6 +8111,12 @@ cg_skb_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog)
return &bpf_get_listener_sock_proto;
case BPF_FUNC_skb_ecn_set_ce:
return &bpf_skb_ecn_set_ce_proto;
+ case BPF_FUNC_get_cgroup_classid:
+ return &bpf_get_cgroup_classid_proto;
+#endif
+#ifdef CONFIG_CGROUP_NET_CLASSID
+ case BPF_FUNC_skb_cgroup_classid:
+ return &bpf_skb_cgroup_classid_proto;
#endif
default:
return sk_filter_func_proto(func_id, prog);
--
2.30.2
On 8/14/24 2:50 AM, Feng zhou wrote: > From: Feng Zhou <zhoufeng.zf@bytedance.com> > > At cg_skb hook point, can get classid for v1 or v2, allowing > users to do more functions such as acl. > > Signed-off-by: Feng Zhou <zhoufeng.zf@bytedance.com> > --- > net/core/filter.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/net/core/filter.c b/net/core/filter.c > index 78a6f746ea0b..d69ba589882f 100644 > --- a/net/core/filter.c > +++ b/net/core/filter.c > @@ -8111,6 +8111,12 @@ cg_skb_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog) > return &bpf_get_listener_sock_proto; > case BPF_FUNC_skb_ecn_set_ce: > return &bpf_skb_ecn_set_ce_proto; > + case BPF_FUNC_get_cgroup_classid: > + return &bpf_get_cgroup_classid_proto; > +#endif > +#ifdef CONFIG_CGROUP_NET_CLASSID > + case BPF_FUNC_skb_cgroup_classid: > + return &bpf_skb_cgroup_classid_proto; With this bpf_skb_cgroup_classid_proto, is the above bpf_get_cgroup_classid_proto necessary? The cg_skb hook must have a skb->sk. Please add a selftest and tag the subject with bpf-next. pw-bot: cr > #endif > default: > return sk_filter_func_proto(func_id, prog);
在 2024/8/16 09:06, Martin KaFai Lau 写道: > On 8/14/24 2:50 AM, Feng zhou wrote: >> From: Feng Zhou <zhoufeng.zf@bytedance.com> >> >> At cg_skb hook point, can get classid for v1 or v2, allowing >> users to do more functions such as acl. >> >> Signed-off-by: Feng Zhou <zhoufeng.zf@bytedance.com> >> --- >> net/core/filter.c | 6 ++++++ >> 1 file changed, 6 insertions(+) >> >> diff --git a/net/core/filter.c b/net/core/filter.c >> index 78a6f746ea0b..d69ba589882f 100644 >> --- a/net/core/filter.c >> +++ b/net/core/filter.c >> @@ -8111,6 +8111,12 @@ cg_skb_func_proto(enum bpf_func_id func_id, >> const struct bpf_prog *prog) >> return &bpf_get_listener_sock_proto; >> case BPF_FUNC_skb_ecn_set_ce: >> return &bpf_skb_ecn_set_ce_proto; >> + case BPF_FUNC_get_cgroup_classid: >> + return &bpf_get_cgroup_classid_proto; >> +#endif >> +#ifdef CONFIG_CGROUP_NET_CLASSID >> + case BPF_FUNC_skb_cgroup_classid: >> + return &bpf_skb_cgroup_classid_proto; > > With this bpf_skb_cgroup_classid_proto, is the above > bpf_get_cgroup_classid_proto necessary? > The cg_skb hook must have a skb->sk. Yes, just add bpf_skb_cgroup_classid_proto. > > Please add a selftest and tag the subject with bpf-next. > Will do, thanks. > pw-bot: cr > >> #endif >> default: >> return sk_filter_func_proto(func_id, prog); >
© 2016 - 2026 Red Hat, Inc.