linux/net/sched
Florian Westphal 6e765a009a net_sched: drr: warn when qdisc is not work conserving
The DRR scheduler requires that items on the active list are work
conserving, i.e. do not hold on to skbs for throttling purposes, etc.
Attaching e.g. tbf renders DRR useless because all other classes on the
active list are delayed as well.

So, warn users that this configuration won't work as expected; we
already do this in couple of other qdiscs, see e.g.

commit b00355db3f
('pkt_sched: sch_hfsc: sch_htb: Add non-work-conserving warning handler')

The 'const' change is needed to avoid compiler warning ("discards 'const'
qualifier from pointer target type").

tested with:
drr_hier() {
        parent=$1
        classes=$2
        for i in  $(seq 1 $classes); do
                classid=$parent$(printf %x $i)
                tc class add dev eth0 parent $parent classid $classid drr
		tc qdisc add dev eth0 parent $classid tbf rate 64kbit burst 256kbit limit 64kbit
        done
}
tc qdisc add dev eth0 root handle 1: drr
drr_hier 1: 32
tc filter add dev eth0 protocol all pref 1 parent 1: handle 1 flow hash keys dst perturb 1 divisor 32

Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
2014-06-11 15:50:59 -07:00
..
act_api.c net: Use netlink_ns_capable to verify the permisions of netlink messages 2014-04-24 13:44:54 -04:00
act_csum.c
act_gact.c
act_ipt.c
act_mirred.c
act_nat.c
act_pedit.c
act_police.c
act_simple.c
act_skbedit.c
cls_api.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-05-12 13:19:14 -04:00
cls_basic.c sched, cls: check if we could overwrite actions when changing a filter 2014-04-27 23:42:39 -04:00
cls_bpf.c net: filter: let unattached filters use sock_fprog_kern 2014-05-23 16:48:05 -04:00
cls_cgroup.c sched, cls: check if we could overwrite actions when changing a filter 2014-04-27 23:42:39 -04:00
cls_flow.c sched, cls: check if we could overwrite actions when changing a filter 2014-04-27 23:42:39 -04:00
cls_fw.c sched, cls: check if we could overwrite actions when changing a filter 2014-04-27 23:42:39 -04:00
cls_route.c sched, cls: check if we could overwrite actions when changing a filter 2014-04-27 23:42:39 -04:00
cls_rsvp6.c
cls_rsvp.c
cls_rsvp.h sched, cls: check if we could overwrite actions when changing a filter 2014-04-27 23:42:39 -04:00
cls_tcindex.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-05-24 00:32:30 -04:00
cls_u32.c sched, cls: check if we could overwrite actions when changing a filter 2014-04-27 23:42:39 -04:00
em_canid.c
em_cmp.c
em_ipset.c
em_meta.c
em_nbyte.c
em_text.c
em_u32.c
ematch.c
Kconfig
Makefile
sch_api.c net_sched: drr: warn when qdisc is not work conserving 2014-06-11 15:50:59 -07:00
sch_atm.c
sch_blackhole.c
sch_cbq.c
sch_choke.c net: use the new API kvfree() 2014-06-05 00:49:51 -07:00
sch_codel.c
sch_drr.c net_sched: drr: warn when qdisc is not work conserving 2014-06-11 15:50:59 -07:00
sch_dsmark.c
sch_fifo.c
sch_fq_codel.c net: use the new API kvfree() 2014-06-05 00:49:51 -07:00
sch_fq.c net: use the new API kvfree() 2014-06-05 00:49:51 -07:00
sch_generic.c net-sysfs: expose number of carrier on/off changes 2014-03-31 16:24:52 -04:00
sch_gred.c
sch_hfsc.c
sch_hhf.c net: use the new API kvfree() 2014-06-05 00:49:51 -07:00
sch_htb.c
sch_ingress.c
sch_mq.c
sch_mqprio.c
sch_multiq.c
sch_netem.c net: use the new API kvfree() 2014-06-05 00:49:51 -07:00
sch_pie.c
sch_plug.c
sch_prio.c
sch_qfq.c
sch_red.c
sch_sfb.c
sch_sfq.c net: use the new API kvfree() 2014-06-05 00:49:51 -07:00
sch_tbf.c
sch_teql.c