xref: /linux/include/net/sch_priv.h (revision c17ee635fd3a482b2ad2bf5e269755c2eae5f25e)
1*8b27fd66SToke Høiland-Jørgensen /* SPDX-License-Identifier: GPL-2.0 */
2*8b27fd66SToke Høiland-Jørgensen #ifndef __NET_SCHED_PRIV_H
3*8b27fd66SToke Høiland-Jørgensen #define __NET_SCHED_PRIV_H
4*8b27fd66SToke Høiland-Jørgensen 
5*8b27fd66SToke Høiland-Jørgensen #include <net/sch_generic.h>
6*8b27fd66SToke Høiland-Jørgensen 
7*8b27fd66SToke Høiland-Jørgensen struct mq_sched {
8*8b27fd66SToke Høiland-Jørgensen 	struct Qdisc		**qdiscs;
9*8b27fd66SToke Høiland-Jørgensen };
10*8b27fd66SToke Høiland-Jørgensen 
11*8b27fd66SToke Høiland-Jørgensen int mq_init_common(struct Qdisc *sch, struct nlattr *opt,
12*8b27fd66SToke Høiland-Jørgensen 		   struct netlink_ext_ack *extack,
13*8b27fd66SToke Høiland-Jørgensen 		   const struct Qdisc_ops *qdisc_ops);
14*8b27fd66SToke Høiland-Jørgensen void mq_destroy_common(struct Qdisc *sch);
15*8b27fd66SToke Høiland-Jørgensen void mq_attach(struct Qdisc *sch);
16*8b27fd66SToke Høiland-Jørgensen void mq_dump_common(struct Qdisc *sch, struct sk_buff *skb);
17*8b27fd66SToke Høiland-Jørgensen struct netdev_queue *mq_select_queue(struct Qdisc *sch,
18*8b27fd66SToke Høiland-Jørgensen 				     struct tcmsg *tcm);
19*8b27fd66SToke Høiland-Jørgensen struct Qdisc *mq_leaf(struct Qdisc *sch, unsigned long cl);
20*8b27fd66SToke Høiland-Jørgensen unsigned long mq_find(struct Qdisc *sch, u32 classid);
21*8b27fd66SToke Høiland-Jørgensen int mq_dump_class(struct Qdisc *sch, unsigned long cl,
22*8b27fd66SToke Høiland-Jørgensen 		  struct sk_buff *skb, struct tcmsg *tcm);
23*8b27fd66SToke Høiland-Jørgensen int mq_dump_class_stats(struct Qdisc *sch, unsigned long cl,
24*8b27fd66SToke Høiland-Jørgensen 			struct gnet_dump *d);
25*8b27fd66SToke Høiland-Jørgensen void mq_walk(struct Qdisc *sch, struct qdisc_walker *arg);
26*8b27fd66SToke Høiland-Jørgensen 
27*8b27fd66SToke Høiland-Jørgensen #endif
28