it can save classid from skb->sk->sk_classid to skb->bk_classid Signed-off-by: Libo Chen <clbchenlibo.chen@xxxxxxxxxx> --- include/net/cls_cgroup.h | 11 +++++++++++ net/sched/cls_cgroup.c | 1 - 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/include/net/cls_cgroup.h b/include/net/cls_cgroup.h index 33d03b6..4249ea3 100644 --- a/include/net/cls_cgroup.h +++ b/include/net/cls_cgroup.h @@ -16,6 +16,7 @@ #include <linux/cgroup.h> #include <linux/hardirq.h> #include <linux/rcupdate.h> +#include <net/sock.h> #if IS_ENABLED(CONFIG_NET_CLS_CGROUP) struct cgroup_cls_state @@ -26,6 +27,12 @@ struct cgroup_cls_state void sock_update_classid(struct sock *sk); +static inline void bk_cls_classid(struct sk_buff *skb) +{ + if (skb->sk && skb->sk->sk_classid) + skb->backup_classid = skb->sk->sk_classid; +} + #if IS_BUILTIN(CONFIG_NET_CLS_CGROUP) static inline u32 task_cls_classid(struct task_struct *p) { @@ -61,6 +68,10 @@ static inline u32 task_cls_classid(struct task_struct *p) } #endif #else /* !CGROUP_NET_CLS_CGROUP */ +static inline void bk_cls_classid(struct sk_buff *skb) +{ +} + static inline void sock_update_classid(struct sock *sk) { } diff --git a/net/sched/cls_cgroup.c b/net/sched/cls_cgroup.c index f9d21258..d228a5d 100644 --- a/net/sched/cls_cgroup.c +++ b/net/sched/cls_cgroup.c @@ -20,7 +20,6 @@ #include <linux/fdtable.h> #include <net/rtnetlink.h> #include <net/pkt_cls.h> -#include <net/sock.h> #include <net/cls_cgroup.h> static inline struct cgroup_cls_state *css_cls_state(struct cgroup_subsys_state *css) -- 1.8.2.2 _______________________________________________ Containers mailing list Containers@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/containers