[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAA5aLPjzX+9YFRGgCgceHjkU0=e6x8YMENfp_cC9fjfHYK3e+A@mail.gmail.com>
Date: Sun, 18 Aug 2019 00:34:33 +0530
From: Akshat Kakkar <akshat.1984@...il.com>
To: Cong Wang <xiyou.wangcong@...il.com>
Cc: NetFilter <netfilter-devel@...r.kernel.org>,
lartc <lartc@...r.kernel.org>, netdev <netdev@...r.kernel.org>
Subject: Re: Unable to create htb tc classes more than 64K
On Sat, Aug 17, 2019 at 11:54 PM Cong Wang <xiyou.wangcong@...il.com> wrote:
>
> On Sat, Aug 17, 2019 at 5:46 AM Akshat Kakkar <akshat.1984@...il.com> wrote:
> >
> > I agree that it is because of 16bit of minor I'd of class which
> > restricts it to 64K.
> > Point is, can we use multilevel qdisc and classes to extend it to more
> > no. of classes i.e. to more than 64K classes
>
> If your goal is merely having as many classes as you can, then yes.
My goal is not just to make as many classes as possible, but also to
use them to do rate limiting per ip per server. Say, I have a list of
10000 IPs and more than 100 servers. So simply if I want few IPs to
get speed of says 1Mbps per server but others say speed of 2 Mbps per
server. How can I achieve this without having 10000 x 100 classes.
These numbers can be large than this and hence I am looking for a
generic solution to this.
>
>
> >
> > One scheme can be like
> > 100: root qdisc
> > |
> > / | \
> > / | \
> > / | \
> > / | \
> > 100:1 100:2 100:3 child classes
> > | | |
> > | | |
> > | | |
> > 1: 2: 3: qdisc
> > / \ / \ / \
> > / \ / \
> > 1:1 1:2 3:1 3:2 leaf classes
> >
> > with all qdisc and classes defined as htb.
> >
> > Is this correct approach? Any alternative??
>
> Again, depends on what your goal is.
>
>
> >
> > Besides, in order to direct traffic to leaf classes 1:1, 1:2, 2:1,
> > 2:2, 3:1, 3:2 .... , instead of using filters I am using ipset with
> > skbprio and iptables map-set match rule.
> > But even after all this it don't work. Why?
>
> Again, the filters you use to classify the packets could only
> work for the classes on the same level, no the next level.
I am using ipset + iptables to classify and not filters. Besides, if
tc is allowing me to define qdisc -> classes -> qdsic -> classes
(1,2,3 ...) sort of structure (ie like the one shown in ascii tree)
then how can those lowest child classes be actually used or consumed?
>
>
> Thanks.
Powered by blists - more mailing lists