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: 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 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 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?
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 1You 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 0Remember 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.