linux/net/sched/cls_cgroup.c

// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * net/sched/cls_cgroup.c	Control Group Classifier
 *
 * Authors:	Thomas Graf <[email protected]>
 */

#include <linux/module.h>
#include <linux/slab.h>
#include <linux/skbuff.h>
#include <linux/rcupdate.h>
#include <net/rtnetlink.h>
#include <net/pkt_cls.h>
#include <net/sock.h>
#include <net/cls_cgroup.h>
#include <net/tc_wrapper.h>

struct cls_cgroup_head {};

TC_INDIRECT_SCOPE int cls_cgroup_classify(struct sk_buff *skb,
					  const struct tcf_proto *tp,
					  struct tcf_result *res)
{}

static void *cls_cgroup_get(struct tcf_proto *tp, u32 handle)
{}

static int cls_cgroup_init(struct tcf_proto *tp)
{}

static const struct nla_policy cgroup_policy[TCA_CGROUP_MAX + 1] =;

static void __cls_cgroup_destroy(struct cls_cgroup_head *head)
{}

static void cls_cgroup_destroy_work(struct work_struct *work)
{}

static int cls_cgroup_change(struct net *net, struct sk_buff *in_skb,
			     struct tcf_proto *tp, unsigned long base,
			     u32 handle, struct nlattr **tca,
			     void **arg, u32 flags,
			     struct netlink_ext_ack *extack)
{}

static void cls_cgroup_destroy(struct tcf_proto *tp, bool rtnl_held,
			       struct netlink_ext_ack *extack)
{}

static int cls_cgroup_delete(struct tcf_proto *tp, void *arg, bool *last,
			     bool rtnl_held, struct netlink_ext_ack *extack)
{}

static void cls_cgroup_walk(struct tcf_proto *tp, struct tcf_walker *arg,
			    bool rtnl_held)
{}

static int cls_cgroup_dump(struct net *net, struct tcf_proto *tp, void *fh,
			   struct sk_buff *skb, struct tcmsg *t, bool rtnl_held)
{}

static struct tcf_proto_ops cls_cgroup_ops __read_mostly =;
MODULE_ALIAS_NET_CLS();

static int __init init_cgroup_cls(void)
{}

static void __exit exit_cgroup_cls(void)
{}

module_init();
module_exit(exit_cgroup_cls);
MODULE_DESCRIPTION();
MODULE_LICENSE();