Re: Changing default qdisc from pfifo to sfq

Linux Advanced Routing and Traffic Control

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Akshat,

What I mean is that the handle 1: can have upto 65k classes and so can 2: and 3: and so on.
Therefore you can do the following

1: root handle (htb/hsfc, etc classful  qdisc)
1:2 class (parent class is 1:)   
2:1 leaf sfq/fq/codel qdisc (parent handle is 1:2)
....
Don't just take my word on this, I strongly encourage to try it out.

Remy 

> On 02 Oct 2014, at 16:49, Akshat Kakkar <akshat.1984@xxxxxxxxx> wrote:
> 
> Thanks for the sysctl option. That might help.
> 
> Regarding 64K limit, as shown in the example you have given, the leaf
> handle can only be from 1: to fffe: i.e. 64K. total class limit can be
> 64K * 64K i.e 4G but for the lead SFQ ( as SFQ handle can't have minor
> number) so for an interface, it can at max be fffe i.e. 64K. Is my
> understanding correct on this? or do you want to say that for class
> handle 1:1 I can define 64K SFQs and then for class handle 1:2 I can
> again have 64K SFQs???
> 
>> On Tue, Sep 30, 2014 at 7:04 PM, Remy Mudingay <remy.mudingay@xxxxxxxxx> wrote:
>> Hi Akshat,
>> 
>> The 65K (65535) limit is only for a specific handle and not the
>> maximum number of classes that one can create on a system. You can
>> create/attach more classes but you need to give them a new (leaf)
>> handle for your sfq qdiscs.
>> 
>> Here's an example (using htb) ;
>> 
>> tc class add dev eth0 parent 1: classid 1:1 htb rate 100mbit ceil 100mbit
>> 
>> tc class add dev eth0 parent 1:1 classid 1:10 htb rate 100kbit ceil 1mbit
>> 
>> ....
>> 
>> tc class add dev eth0 parent 1:1 classid 1:ffe htb rate 100kbit ceil 1mbit
>> 
>> 
>> 
>> tc qdisc add dev eth0 parent 1:1 handle 1: sfq
>> 
>> tc qdisc add dev eth0 parent 1:ffe handle ffff: sfq
>> 
>> 
>> To answer your question about setting a default qdisc. This is
>> possible from a specific kernel version (I can't recall which version)
>> but I know that 3.11 and onwards support setting it either via sysctl
>> ;
>> 
>> net.core.default_qdisc = sfq
>> 
>> or by issuing  ;
>> 
>> echo "sfq" > /proc/sys/net/core/default_qdisc
>> 
>> 
>> The changes are effective (when using sysctl.conf) after a reboot or
>> when adding after adding a qdisc and then deleting it from an
>> interface.
>> 
>> I hope that helps.
>> 
>> 
>> Remy
>> 
>> 
>> 
>> 
>>> On 30 September 2014 14:16, Akshat Kakkar <akshat.1984@xxxxxxxxx> wrote:
>>> 
>>> If I want to define classes more than 64k (i.e. ffff), I need to use
>>> class hierarchy  or nested classes.
>>> But, if I want to give each one of them SFQ then I can't do that, as
>>> then I will have to define separate qdisc for each one of them and
>>> each SFQ will require to be given a handle starting from  1: and
>>> ending at fffe: i.e. only 64K and not more then that. For classes not
>>> having SFQ (as the number is exhausted), the qdisc remains as SFQ.
>>> 
>>> So in a way, each leaf class gets a queue for sure but not SFQ.
>>> 
>>> Is there a way, to make SFQ as the default qdisc so that we don't have
>>> to specify it separately and hence will never run short of them?
>>> 
>>> I apologise if I have confused the things.
>>> 
>>> Thanks in anticipation.
>>> --
>>> To unsubscribe from this list: send the line "unsubscribe lartc" in
>>> the body of a message to majordomo@xxxxxxxxxxxxxxx
>>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>> --
>> To unsubscribe from this list: send the line "unsubscribe lartc" in
>> the body of a message to majordomo@xxxxxxxxxxxxxxx
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe lartc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [LARTC Home Page]     [Netfilter]     [Netfilter Development]     [Network Development]     [Bugtraq]     [GCC Help]     [Yosemite News]     [Linux Kernel]     [Fedora Users]
  Powered by Linux