• Florian Westphal's avatar
    net_sched: drr: warn when qdisc is not work conserving · 6e765a00
    Florian Westphal authored
    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 b00355db
    ('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: default avatarFlorian Westphal <fw@strlen.de>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    6e765a00
pkt_sched.h 3.48 KB