The reason I am confused is that when I use this combination of commands: tc qdisc add dev $IFACE root handle 1: htb default 1 tc class add dev $IFACE parent 1: classid 1:1 htb rate 40mbit tc qdisc del dev eth4 parent 1:1 handle 10: sfq perturb 10 And sending packet from the sender, where qdisc is set, to the receiver, the queuing delay is quite small and is approximately the same as when fq_codel enabled. However, if I am not using sfq, and send only one flow over this link, the delay will explode again. So is sfq here cut off the queue length somehow? How should I make a bufferbloat fair queue on linux box using tc qdisc? Thanks -Mo 2013/12/5 Dong Mo > Thanks for the reply and I think I have successfully set up codel. > Unfortunately I am also new to qdisc. > > I am trying to compare fq_codel and sfq's performance. I was wondering how > to setup a software rate limiting using htb and at the same time have sfq > on this bottleneck link using qdisc. > > Thank you so much! > -Mo > > > 2013/11/23 Dave Taht > >> Why burst 15k? Quantum 1514 works for me. >> >> While htb will give the best results it is also the most CPU intensive. >> >> I also note that running it on ingress can be useful especially with ecn. >> >> IF you have a simple network driver with no ring buffer... Or you have >> working BQL... And you want to run at line rate at 100 Mbit... You can >> tell your Ethernet driver to switch to 100mbit via >> >> ethtool -s your device advertise 0x008 >> >> See also caveats on tso etc: >> >> >> http://www.bufferbloat.net/projects/codel/wiki/Best_Practices_for_Benchmarking_CoDel_and_FQ_CoDel >> On Nov 23, 2013 2:26 AM, "Jonathan Morton" >> wrote: >> >>> >>> On 23 Nov, 2013, at 7:04 am, Dong Mo wrote: >>> >>> > I am new to codel and I would like to run some experiments with codel >>> on a linux box acting as a router. I see on the wiki that running codel on >>> linux requires BQL support from NIC driver. I would like to know is this an >>> essential requirement to run codel on linux box or it is optional? >>> >>> It's not a hard requirement - but large hardware queues (which BQL tries >>> to solve) tend to interfere with line-rate operation. >>> >>> > I don't require line rate performance, something like 100Mbps >>> throughput will be enough for the experiment. However, It is also not clear >>> to me that how Codel is going to interact with some software traffic >>> shaping say bandwidth limiting? >>> >>> tc qdisc add dev $IFACE root handle 1: htb default 1 >>> tc class add dev $IFACE parent 1: classid 1:1 htb rate $RATE burst 15k >>> tc qdisc add dev $IFACE parent 1:1 handle 10: fq_codel >>> >>> That works perfectly well if $RATE is less than line rate, even without >>> BQL. >>> >>> - Jonathan Morton >>> >>> _______________________________________________ >>> Codel mailing list >>> Codel@lists.bufferbloat.net >>> https://lists.bufferbloat.net/listinfo/codel >>> >> >