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