net: sched: add Flow Queue PIE packet scheduler
Principles: - Packets are classified on flows. - This is a Stochastic model (as we use a hash, several flows might be hashed to the same slot) - Each flow has a PIE managed queue. - Flows are linked onto two (Round Robin) lists, so that new flows have priority on old ones. - For a given flow, packets are not reordered. - Drops during enqueue only. - ECN capability is off by default. - ECN threshold (if ECN is enabled) is at 10% by default. - Uses timestamps to calculate queue delay by default. Usage: tc qdisc ... fq_pie [ limit PACKETS ] [ flows NUMBER ] [ target TIME ] [ tupdate TIME ] [ alpha NUMBER ] [ beta NUMBER ] [ quantum BYTES ] [ memory_limit BYTES ] [ ecnprob PERCENTAGE ] [ [no]ecn ] [ [no]bytemode ] [ [no_]dq_rate_estimator ] defaults: limit: 10240 packets, flows: 1024 target: 15 ms, tupdate: 15 ms (in jiffies) alpha: 1/8, beta : 5/4 quantum: device MTU, memory_limit: 32 Mb ecnprob: 10%, ecn: off bytemode: off, dq_rate_estimator: off Signed-off-by:Mohit P. Tahiliani <tahiliani@nitk.edu.in> Signed-off-by:
Sachin D. Patil <sdp.sachin@gmail.com> Signed-off-by:
V. Saicharan <vsaicharan1998@gmail.com> Signed-off-by:
Mohit Bhasi <mohitbhasi1998@gmail.com> Signed-off-by:
Leslie Monis <lesliemonis@gmail.com> Signed-off-by:
Gautam Ramakrishnan <gautamramk@gmail.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
Showing
- include/net/pie.h 2 additions, 0 deletionsinclude/net/pie.h
- include/uapi/linux/pkt_sched.h 31 additions, 0 deletionsinclude/uapi/linux/pkt_sched.h
- net/sched/Kconfig 13 additions, 0 deletionsnet/sched/Kconfig
- net/sched/Makefile 1 addition, 0 deletionsnet/sched/Makefile
- net/sched/sch_fq_pie.c 562 additions, 0 deletionsnet/sched/sch_fq_pie.c
Loading
Please register or sign in to comment