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
net_sched: act: move tcf_hashinfo_init() into tcf_register_action()
2014-02-12 19:23:32 -05:00
act_gact.c
net_sched: act: move tcf_hashinfo_init() into tcf_register_action()
2014-02-12 19:23:32 -05:00
act_ipt.c
net_sched: act: move tcf_hashinfo_init() into tcf_register_action()
2014-02-12 19:23:32 -05:00
act_mirred.c
net_sched: act: move tcf_hashinfo_init() into tcf_register_action()
2014-02-12 19:23:32 -05:00
act_nat.c
net_sched: act: move tcf_hashinfo_init() into tcf_register_action()
2014-02-12 19:23:32 -05:00
act_pedit.c
net_sched: act: move tcf_hashinfo_init() into tcf_register_action()
2014-02-12 19:23:32 -05:00
act_police.c
net_sched: act: move tcf_hashinfo_init() into tcf_register_action()
2014-02-12 19:23:32 -05:00
act_simple.c
net_sched: act: move tcf_hashinfo_init() into tcf_register_action()
2014-02-12 19:23:32 -05:00
act_skbedit.c
net_sched: act: move tcf_hashinfo_init() into tcf_register_action()
2014-02-12 19:23:32 -05:00
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_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_rsvp6.c
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
net: Change skb_get_rxhash to skb_get_hash
2013-12-17 16:36:21 -05:00
em_nbyte.c
em_text.c
em_u32.c
ematch.c
Kconfig
net: pkt_sched: PIE AQM scheme
2014-01-06 15:13:01 -05:00
Makefile
net: pkt_sched: PIE AQM scheme
2014-01-06 15:13:01 -05:00
sch_api.c
net_sched: drr: warn when qdisc is not work conserving
2014-06-11 15:50:59 -07:00
sch_atm.c
net_sched: return nla_nest_end() instead of skb->len
2014-03-13 15:39:20 -04:00
sch_blackhole.c
sch_cbq.c
net_sched: return nla_nest_end() instead of skb->len
2014-03-13 15:39:20 -04:00
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_dsmark: use correct func name in print messages
2013-12-31 13:50:57 -05:00
sch_fifo.c
sch_fq.c
net: use the new API kvfree()
2014-06-05 00:49:51 -07:00
sch_fq_codel.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
net_sched: replace pr_warning with pr_warn
2013-12-31 13:50:56 -05:00
sch_hfsc.c
net_sched: return nla_nest_end() instead of skb->len
2014-03-13 15:39:20 -04:00
sch_hhf.c
net: use the new API kvfree()
2014-06-05 00:49:51 -07:00
sch_htb.c
net_sched: htb: do not acquire qdisc lock in dump operations
2014-03-06 17:24:54 -05:00
sch_ingress.c
net_sched: return nla_nest_end() instead of skb->len
2014-03-13 15:39:20 -04:00
sch_mq.c
pkt_sched: give visibility to mq slave qdiscs
2013-12-09 19:54:47 -05:00
sch_mqprio.c
pkt_sched: give visibility to mq slave qdiscs
2013-12-09 19:54:47 -05:00
sch_multiq.c
net/*: Fix FSF address in file headers
2013-12-06 12:37:57 -05:00
sch_netem.c
net: use the new API kvfree()
2014-06-05 00:49:51 -07:00
sch_pie.c
net: sched: Cleanup PIE comments
2014-02-13 18:29:58 -05:00
sch_plug.c
sch_prio.c
sch_qfq.c
sch_red.c
sch_sfb.c
net: replace macros net_random and net_srandom with direct calls to prandom
2014-01-14 15:15:25 -08:00
sch_sfq.c
net: use the new API kvfree()
2014-06-05 00:49:51 -07:00
sch_tbf.c
net_sched: return nla_nest_end() instead of skb->len
2014-03-13 15:39:20 -04:00
sch_teql.c