Paolo Valente
be72f63b4c
sched: add missing group change to qfq_change_class
...
[Resending again, as the text was corrupted by the email client]
To speed up operations, QFQ internally divides classes into
groups. Which group a class belongs to depends on the ratio between
the maximum packet length and the weight of the class. Unfortunately
the function qfq_change_class lacks the steps for changing the group
of a class when the ratio max_pkt_len/weight of the class changes.
For example, when the last of the following three commands is
executed, the group of class 1:1 is not correctly changed:
tc disc add dev XXX root handle 1: qfq
tc class add dev XXX parent 1: qfq classid 1:1 weight 1
tc class change dev XXX parent 1: classid 1:1 qfq weight 4
Not changing the group of a class does not affect the long-term
bandwidth guaranteed to the class, as the latter is independent of the
maximum packet length, and correctly changes (only) if the weight of
the class changes. In contrast, if the group of the class is not
updated, the class is still guaranteed the short-term bandwidth and
packet delay related to its old group, instead of the guarantees that
it should receive according to its new weight and/or maximum packet
length. This may also break service guarantees for other classes.
This patch adds the missing operations.
Signed-off-by: Paolo Valente <[email protected] >
Signed-off-by: David S. Miller <[email protected] >
2012-08-08 16:02:05 -07:00
..
act_api.c
pkt_sched: act_api: Move away from NLMSG_PUT().
2012-06-26 21:39:32 -07:00
act_csum.c
ipv6: correct the ipv6 option name - Pad0 to Pad1
2012-05-17 15:49:51 -04:00
act_gact.c
net_sched: gact: Fix potential panic in tcf_gact().
2012-08-03 16:47:24 -07:00
act_ipt.c
net_sched: act: Delete estimator in error path.
2012-08-06 13:30:01 -07:00
act_mirred.c
net: Convert net_ratelimit uses to net_<level>_ratelimited
2012-05-15 13:45:03 -04:00
act_nat.c
pkt_sched: Stop using NLA_PUT*().
2012-04-01 18:11:37 -04:00
act_pedit.c
net_sched: act: Delete estimator in error path.
2012-08-06 13:30:01 -07:00
act_police.c
pkt_sched: Stop using NLA_PUT*().
2012-04-01 18:11:37 -04:00
act_simple.c
net_sched: act: Delete estimator in error path.
2012-08-06 13:30:01 -07:00
act_skbedit.c
pkt_sched: Stop using NLA_PUT*().
2012-04-01 18:11:37 -04:00
cls_api.c
pkt_sched: cls_api: Move away from NLMSG_NEW().
2012-06-26 21:54:15 -07:00
cls_basic.c
pkt_sched: Stop using NLA_PUT*().
2012-04-01 18:11:37 -04:00
cls_cgroup.c
cgroup: convert all non-memcg controllers to the new cftype interface
2012-04-01 12:09:55 -07:00
cls_flow.c
pkt_sched: Stop using NLA_PUT*().
2012-04-01 18:11:37 -04:00
cls_fw.c
pkt_sched: Stop using NLA_PUT*().
2012-04-01 18:11:37 -04:00
cls_route.c
ipv4: Prepare for change of rt->rt_iif encoding.
2012-07-23 16:36:26 -07:00
cls_rsvp.c
cls_rsvp.h
pkt_sched: Stop using NLA_PUT*().
2012-04-01 18:11:37 -04:00
cls_rsvp6.c
cls_tcindex.c
pkt_sched: Stop using NLA_PUT*().
2012-04-01 18:11:37 -04:00
cls_u32.c
net: Convert net_ratelimit uses to net_<level>_ratelimited
2012-05-15 13:45:03 -04:00
em_canid.c
net: em_canid: Ematch rule to match CAN frames according to their identifiers
2012-07-04 13:07:05 +02:00
em_cmp.c
em_ipset.c
net: sched: add ipset ematch
2012-07-12 07:54:46 -07:00
em_meta.c
ipv4: Prepare for change of rt->rt_iif encoding.
2012-07-23 16:36:26 -07:00
em_nbyte.c
em_text.c
em_u32.c
ematch.c
net: Convert net_ratelimit uses to net_<level>_ratelimited
2012-05-15 13:45:03 -04:00
Kconfig
net: sched: add ipset ematch
2012-07-12 07:54:46 -07:00
Makefile
net: sched: add ipset ematch
2012-07-12 07:54:46 -07:00
sch_api.c
pkt_sched: sch_api: Move away from NLMSG_NEW().
2012-06-26 21:54:15 -07:00
sch_atm.c
sch_atm.c: get rid of poinless extern
2012-06-01 10:37:18 -04:00
sch_blackhole.c
sch_cbq.c
pkt_sched: Stop using NLA_PUT*().
2012-04-01 18:11:37 -04:00
sch_choke.c
net: sched: factorize code (qdisc_drop())
2012-05-04 11:50:05 -04:00
sch_codel.c
fq_codel: should use qdisc backlog as threshold
2012-05-16 15:30:26 -04:00
sch_drr.c
net_sched: update bstats in dequeue()
2012-05-10 23:33:01 -04:00
sch_dsmark.c
net: sched: factorize code (qdisc_drop())
2012-05-04 11:50:05 -04:00
sch_fifo.c
pkt_sched: Stop using NLA_PUT*().
2012-04-01 18:11:37 -04:00
sch_fq_codel.c
fq_codel: should use qdisc backlog as threshold
2012-05-16 15:30:26 -04:00
sch_generic.c
net: Convert net_ratelimit uses to net_<level>_ratelimited
2012-05-15 13:45:03 -04:00
sch_gred.c
net: Convert net_ratelimit uses to net_<level>_ratelimited
2012-05-15 13:45:03 -04:00
sch_hfsc.c
net_sched: update bstats in dequeue()
2012-05-10 23:33:01 -04:00
sch_htb.c
net_sched: update bstats in dequeue()
2012-05-10 23:33:01 -04:00
sch_ingress.c
sch_mq.c
net: Add export.h for EXPORT_SYMBOL/THIS_MODULE to non-modules
2011-10-31 19:30:30 -04:00
sch_mqprio.c
pkt_sched: Stop using NLA_PUT*().
2012-04-01 18:11:37 -04:00
sch_multiq.c
pkt_sched: Stop using NLA_PUT*().
2012-04-01 18:11:37 -04:00
sch_netem.c
netem: refine early skb orphaning
2012-07-16 23:08:33 -07:00
sch_plug.c
net_sched: sch_plug: plug_qdisc_ops is static
2012-02-13 16:04:40 -05:00
sch_prio.c
pkt_sched: Stop using NLA_PUT*().
2012-04-01 18:11:37 -04:00
sch_qfq.c
sched: add missing group change to qfq_change_class
2012-08-08 16:02:05 -07:00
sch_red.c
pkt_sched: Stop using NLA_PUT*().
2012-04-01 18:11:37 -04:00
sch_sfb.c
sch_sfb: Fix missing NULL check
2012-07-12 08:33:18 -07:00
sch_sfq.c
pkt_sched: Stop using NLA_PUT*().
2012-04-01 18:11:37 -04:00
sch_tbf.c
pkt_sched: Stop using NLA_PUT*().
2012-04-01 18:11:37 -04:00
sch_teql.c
sch_teql: Convert over to dev_neigh_lookup_skb().
2012-07-05 01:09:06 -07:00