[LARTC] HFSC default upper-limit trouble

Andy Furniss andy.furniss at dsl.pipex.com
Sun Jul 10 21:37:39 CEST 2005


Artūras Šlajus wrote:
> Hello,
> 
> I'm having such problem with HFSC with following config:
> + tc qdisc del dev eth3 root
> + tc qdisc add dev eth3 root handle 1: hfsc default 2
> + tc class add dev eth3 parent 1: classid 1:1 hfsc ls rate 512kbit ul 
> rate 512kbit
> + tc class add dev eth3 parent 1:1 classid 1:2 hfsc ls rate 2kbit ul 
> rate 400kbit
> + tc class add dev eth3 parent 1:1 classid 1:3 hfsc ls rate 32kbit ul 
> rate 32kbit
> + tc class add dev eth3 parent 1:1 classid 1:4 hfsc ls rate 300kbit ul 
> rate 300kbit
> 
> Let's say i start to upload thru 1:3. the upper-limit applies, traffic 
> doesn't do up more than 4kb/s. The 1:4 is still functional, but 1:2, the 
> default class starts backlogging and dropping as hell:

Seems to work OK for me - are you saying that there is traffic using 
default but no backlog until you use 1:3?

> class hfsc 1: root
>  Sent 0 bytes 0 pkts (dropped 0, overlimits 0)
>  period 0 level 2
> 
> class hfsc 1:1 parent 1: ls m1 0bit d 0us m2 512000bit ul m1 0bit d 0us 
> m2 512000bit
>  Sent 0 bytes 0 pkts (dropped 0, overlimits 0) <-- This is weird too ^_^
>  period 2643 work 821712 bytes level 1

You need to do a tc -s qdisc ls to get the overlimits counter for 1:0.

> 
> class hfsc 1:2 parent 1:1 ls m1 0bit d 0us m2 2000bit ul m1 0bit d 0us 
> m2 400000bit
>  Sent 477205 bytes 3874 pkts (dropped 0, overlimits 0)
>  backlog 201p <-- HUH? (it goes even to 800p..1000p then it starts 
> dropping)
>  period 2494 work 456595 bytes level 0

Remember arp will end up stuck here too unless you filter it elsewhere.

If you want to make the queue shorter add a p/b fifo or something and 
specify limit.


> 
> class hfsc 1:3 parent 1:1 ls m1 0bit d 0us m2 32000bit ul m1 0bit d 0us 
> m2 32000bit
>  Sent 350599 bytes 558 pkts (dropped 0, overlimits 0)
>  backlog 11p
>  period 70 work 342761 bytes level 0
> 
> class hfsc 1:4 parent 1:1 ls m1 0bit d 0us m2 300000bit ul m1 0bit d 0us 
> m2 300000bit
>  Sent 22356 bytes 214 pkts (dropped 0, overlimits 0)
>  period 212 work 22356 bytes level 0
> 
> The 1:1 shows no packets sent as you see.. Is this desirable behavior?
> The default class kinda becomes unusable. Can someone explain me such 
> behavior?

This is normal Patrick said in a recent post -

"HFSC doesn't update statistics of upper classes because I didn't want to
walk up the entire heirarchy for each packet just for statistics."

Andy.


More information about the LARTC mailing list