76 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| --- a/net/sched/Kconfig
 | |
| +++ b/net/sched/Kconfig
 | |
| @@ -3,8 +3,9 @@
 | |
|  # 
 | |
|  
 | |
|  menuconfig NET_SCHED
 | |
| -	bool "QoS and/or fair queueing"
 | |
| +	def_bool y
 | |
|  	select NET_SCH_FIFO
 | |
| +	select NET_SCH_FQ_CODEL
 | |
|  	---help---
 | |
|  	  When the kernel has several packets to send out over a network
 | |
|  	  device, it has to decide which ones to send first, which ones to
 | |
| --- a/net/sched/sch_fq_codel.c
 | |
| +++ b/net/sched/sch_fq_codel.c
 | |
| @@ -594,7 +594,7 @@ static const struct Qdisc_class_ops fq_c
 | |
|  	.walk		=	fq_codel_walk,
 | |
|  };
 | |
|  
 | |
| -static struct Qdisc_ops fq_codel_qdisc_ops __read_mostly = {
 | |
| +struct Qdisc_ops fq_codel_qdisc_ops __read_mostly = {
 | |
|  	.cl_ops		=	&fq_codel_class_ops,
 | |
|  	.id		=	"fq_codel",
 | |
|  	.priv_size	=	sizeof(struct fq_codel_sched_data),
 | |
| @@ -610,6 +610,7 @@ static struct Qdisc_ops fq_codel_qdisc_o
 | |
|  	.dump_stats =	fq_codel_dump_stats,
 | |
|  	.owner		=	THIS_MODULE,
 | |
|  };
 | |
| +EXPORT_SYMBOL(fq_codel_qdisc_ops);
 | |
|  
 | |
|  static int __init fq_codel_module_init(void)
 | |
|  {
 | |
| --- a/include/net/sch_generic.h
 | |
| +++ b/include/net/sch_generic.h
 | |
| @@ -315,6 +315,7 @@ extern struct Qdisc noop_qdisc;
 | |
|  extern struct Qdisc_ops noop_qdisc_ops;
 | |
|  extern struct Qdisc_ops pfifo_fast_ops;
 | |
|  extern struct Qdisc_ops mq_qdisc_ops;
 | |
| +extern struct Qdisc_ops fq_codel_qdisc_ops;
 | |
|  
 | |
|  struct Qdisc_class_common {
 | |
|  	u32			classid;
 | |
| --- a/net/sched/sch_generic.c
 | |
| +++ b/net/sched/sch_generic.c
 | |
| @@ -680,7 +680,7 @@ static void attach_one_default_qdisc(str
 | |
|  
 | |
|  	if (dev->tx_queue_len) {
 | |
|  		qdisc = qdisc_create_dflt(dev_queue,
 | |
| -					  &pfifo_fast_ops, TC_H_ROOT);
 | |
| +					  &fq_codel_qdisc_ops, TC_H_ROOT);
 | |
|  		if (!qdisc) {
 | |
|  			netdev_info(dev, "activation failed\n");
 | |
|  			return;
 | |
| --- a/net/sched/sch_mq.c
 | |
| +++ b/net/sched/sch_mq.c
 | |
| @@ -57,7 +57,7 @@ static int mq_init(struct Qdisc *sch, st
 | |
|  
 | |
|  	for (ntx = 0; ntx < dev->num_tx_queues; ntx++) {
 | |
|  		dev_queue = netdev_get_tx_queue(dev, ntx);
 | |
| -		qdisc = qdisc_create_dflt(dev_queue, &pfifo_fast_ops,
 | |
| +		qdisc = qdisc_create_dflt(dev_queue, &fq_codel_qdisc_ops,
 | |
|  					  TC_H_MAKE(TC_H_MAJ(sch->handle),
 | |
|  						    TC_H_MIN(ntx + 1)));
 | |
|  		if (qdisc == NULL)
 | |
| --- a/net/sched/sch_mqprio.c
 | |
| +++ b/net/sched/sch_mqprio.c
 | |
| @@ -124,7 +124,7 @@ static int mqprio_init(struct Qdisc *sch
 | |
|  
 | |
|  	for (i = 0; i < dev->num_tx_queues; i++) {
 | |
|  		dev_queue = netdev_get_tx_queue(dev, i);
 | |
| -		qdisc = qdisc_create_dflt(dev_queue, &pfifo_fast_ops,
 | |
| +		qdisc = qdisc_create_dflt(dev_queue, &fq_codel_qdisc_ops,
 | |
|  					  TC_H_MAKE(TC_H_MAJ(sch->handle),
 | |
|  						    TC_H_MIN(i + 1)));
 | |
|  		if (qdisc == NULL) {
 |