[Codel] New to codel-- how to run codel on a linux box?

Dong Mo montedong at gmail.com
Thu Dec 5 14:49:50 EST 2013


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 <montedong at gmail.com>

> 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 <dave.taht at gmail.com>
>
>> 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" <chromatix99 at gmail.com>
>> 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 at lists.bufferbloat.net
>>> https://lists.bufferbloat.net/listinfo/codel
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.bufferbloat.net/pipermail/codel/attachments/20131205/b0e46649/attachment-0002.html>


More information about the Codel mailing list