sch_generic.h (38a4671cad3f0d277cf48445b49e42a475ebfb6a) sch_generic.h (45203a3b380cee28f570475c0d28c169f908c209)
1#ifndef __NET_SCHED_GENERIC_H
2#define __NET_SCHED_GENERIC_H
3
4#include <linux/netdevice.h>
5#include <linux/types.h>
6#include <linux/rcupdate.h>
7#include <linux/pkt_sched.h>
8#include <linux/pkt_cls.h>

--- 44 unchanged lines hidden (view full) ---

53#define TCQ_F_ONETXQUEUE 0x10 /* dequeue_skb() can assume all skbs are for
54 * q->dev_queue : It can test
55 * netif_xmit_frozen_or_stopped() before
56 * dequeueing next packet.
57 * Its true for MQ/MQPRIO slaves, or non
58 * multiqueue device.
59 */
60#define TCQ_F_WARN_NONWC (1 << 16)
1#ifndef __NET_SCHED_GENERIC_H
2#define __NET_SCHED_GENERIC_H
3
4#include <linux/netdevice.h>
5#include <linux/types.h>
6#include <linux/rcupdate.h>
7#include <linux/pkt_sched.h>
8#include <linux/pkt_cls.h>

--- 44 unchanged lines hidden (view full) ---

53#define TCQ_F_ONETXQUEUE 0x10 /* dequeue_skb() can assume all skbs are for
54 * q->dev_queue : It can test
55 * netif_xmit_frozen_or_stopped() before
56 * dequeueing next packet.
57 * Its true for MQ/MQPRIO slaves, or non
58 * multiqueue device.
59 */
60#define TCQ_F_WARN_NONWC (1 << 16)
61 int padded;
61 u32 limit;
62 const struct Qdisc_ops *ops;
63 struct qdisc_size_table __rcu *stab;
64 struct list_head list;
65 u32 handle;
66 u32 parent;
62 const struct Qdisc_ops *ops;
63 struct qdisc_size_table __rcu *stab;
64 struct list_head list;
65 u32 handle;
66 u32 parent;
67 atomic_t refcnt;
68 struct gnet_stats_rate_est rate_est;
69 int (*reshape_fail)(struct sk_buff *skb,
70 struct Qdisc *q);
71
72 void *u32_node;
73
74 /* This field is deprecated, but it is still used by CBQ
75 * and it will live until better solution will be invented.
76 */
77 struct Qdisc *__parent;
78 struct netdev_queue *dev_queue;
67 int (*reshape_fail)(struct sk_buff *skb,
68 struct Qdisc *q);
69
70 void *u32_node;
71
72 /* This field is deprecated, but it is still used by CBQ
73 * and it will live until better solution will be invented.
74 */
75 struct Qdisc *__parent;
76 struct netdev_queue *dev_queue;
79 struct Qdisc *next_sched;
80
77
78 struct gnet_stats_rate_est64 rate_est;
79 struct Qdisc *next_sched;
81 struct sk_buff *gso_skb;
82 /*
83 * For performance sake on SMP, we put highly modified fields at the end
84 */
85 unsigned long state;
86 struct sk_buff_head q;
87 struct gnet_stats_basic_packed bstats;
88 unsigned int __state;
89 struct gnet_stats_queue qstats;
90 struct rcu_head rcu_head;
80 struct sk_buff *gso_skb;
81 /*
82 * For performance sake on SMP, we put highly modified fields at the end
83 */
84 unsigned long state;
85 struct sk_buff_head q;
86 struct gnet_stats_basic_packed bstats;
87 unsigned int __state;
88 struct gnet_stats_queue qstats;
89 struct rcu_head rcu_head;
91 spinlock_t busylock;
92 u32 limit;
90 int padded;
91 atomic_t refcnt;
92
93 spinlock_t busylock ____cacheline_aligned_in_smp;
93};
94
95static inline bool qdisc_is_running(const struct Qdisc *qdisc)
96{
97 return (qdisc->__state & __QDISC___STATE_RUNNING) ? true : false;
98}
99
100static inline bool qdisc_run_begin(struct Qdisc *qdisc)

--- 604 unchanged lines hidden ---
94};
95
96static inline bool qdisc_is_running(const struct Qdisc *qdisc)
97{
98 return (qdisc->__state & __QDISC___STATE_RUNNING) ? true : false;
99}
100
101static inline bool qdisc_run_begin(struct Qdisc *qdisc)

--- 604 unchanged lines hidden ---