sch_generic.h (79e24da00b1137031245f3341828e4215b1b5b59) sch_generic.h (1f27cde313d72d6b44a73ba89c8b2c6a99c628cf)
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>

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

340#define tcf_tree_unlock(tp) sch_tree_unlock((tp)->q)
341
342extern struct Qdisc noop_qdisc;
343extern struct Qdisc_ops noop_qdisc_ops;
344extern struct Qdisc_ops pfifo_fast_ops;
345extern struct Qdisc_ops mq_qdisc_ops;
346extern struct Qdisc_ops noqueue_qdisc_ops;
347extern const struct Qdisc_ops *default_qdisc_ops;
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>

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

340#define tcf_tree_unlock(tp) sch_tree_unlock((tp)->q)
341
342extern struct Qdisc noop_qdisc;
343extern struct Qdisc_ops noop_qdisc_ops;
344extern struct Qdisc_ops pfifo_fast_ops;
345extern struct Qdisc_ops mq_qdisc_ops;
346extern struct Qdisc_ops noqueue_qdisc_ops;
347extern const struct Qdisc_ops *default_qdisc_ops;
348static inline const struct Qdisc_ops *
349get_default_qdisc_ops(const struct net_device *dev, int ntx)
350{
351 return ntx < dev->real_num_tx_queues ?
352 default_qdisc_ops : &pfifo_fast_ops;
353}
348
349struct Qdisc_class_common {
350 u32 classid;
351 struct hlist_node hnode;
352};
353
354struct Qdisc_class_hash {
355 struct hlist_head *hash;

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

391void dev_shutdown(struct net_device *dev);
392void dev_activate(struct net_device *dev);
393void dev_deactivate(struct net_device *dev);
394void dev_deactivate_many(struct list_head *head);
395struct Qdisc *dev_graft_qdisc(struct netdev_queue *dev_queue,
396 struct Qdisc *qdisc);
397void qdisc_reset(struct Qdisc *qdisc);
398void qdisc_destroy(struct Qdisc *qdisc);
354
355struct Qdisc_class_common {
356 u32 classid;
357 struct hlist_node hnode;
358};
359
360struct Qdisc_class_hash {
361 struct hlist_head *hash;

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

397void dev_shutdown(struct net_device *dev);
398void dev_activate(struct net_device *dev);
399void dev_deactivate(struct net_device *dev);
400void dev_deactivate_many(struct list_head *head);
401struct Qdisc *dev_graft_qdisc(struct netdev_queue *dev_queue,
402 struct Qdisc *qdisc);
403void qdisc_reset(struct Qdisc *qdisc);
404void qdisc_destroy(struct Qdisc *qdisc);
399void qdisc_tree_decrease_qlen(struct Qdisc *qdisc, unsigned int n);
405void qdisc_tree_reduce_backlog(struct Qdisc *qdisc, unsigned int n,
406 unsigned int len);
400struct Qdisc *qdisc_alloc(struct netdev_queue *dev_queue,
401 const struct Qdisc_ops *ops);
402struct Qdisc *qdisc_create_dflt(struct netdev_queue *dev_queue,
403 const struct Qdisc_ops *ops, u32 parentid);
404void __qdisc_calculate_pkt_len(struct sk_buff *skb,
405 const struct qdisc_size_table *stab);
406bool tcf_destroy(struct tcf_proto *tp, bool force);
407void tcf_destroy_chain(struct tcf_proto __rcu **fl);

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

702}
703
704static inline void qdisc_reset_queue(struct Qdisc *sch)
705{
706 __qdisc_reset_queue(sch, &sch->q);
707 sch->qstats.backlog = 0;
708}
709
407struct Qdisc *qdisc_alloc(struct netdev_queue *dev_queue,
408 const struct Qdisc_ops *ops);
409struct Qdisc *qdisc_create_dflt(struct netdev_queue *dev_queue,
410 const struct Qdisc_ops *ops, u32 parentid);
411void __qdisc_calculate_pkt_len(struct sk_buff *skb,
412 const struct qdisc_size_table *stab);
413bool tcf_destroy(struct tcf_proto *tp, bool force);
414void tcf_destroy_chain(struct tcf_proto __rcu **fl);

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

709}
710
711static inline void qdisc_reset_queue(struct Qdisc *sch)
712{
713 __qdisc_reset_queue(sch, &sch->q);
714 sch->qstats.backlog = 0;
715}
716
717static inline struct Qdisc *qdisc_replace(struct Qdisc *sch, struct Qdisc *new,
718 struct Qdisc **pold)
719{
720 struct Qdisc *old;
721
722 sch_tree_lock(sch);
723 old = *pold;
724 *pold = new;
725 if (old != NULL) {
726 qdisc_tree_reduce_backlog(old, old->q.qlen, old->qstats.backlog);
727 qdisc_reset(old);
728 }
729 sch_tree_unlock(sch);
730
731 return old;
732}
733
710static inline unsigned int __qdisc_queue_drop(struct Qdisc *sch,
711 struct sk_buff_head *list)
712{
713 struct sk_buff *skb = __qdisc_dequeue_tail(sch, list);
714
715 if (likely(skb != NULL)) {
716 unsigned int len = qdisc_pkt_len(skb);
717 kfree_skb(skb);

--- 88 unchanged lines hidden ---
734static inline unsigned int __qdisc_queue_drop(struct Qdisc *sch,
735 struct sk_buff_head *list)
736{
737 struct sk_buff *skb = __qdisc_dequeue_tail(sch, list);
738
739 if (likely(skb != NULL)) {
740 unsigned int len = qdisc_pkt_len(skb);
741 kfree_skb(skb);

--- 88 unchanged lines hidden ---