Re: help needed using filters

Linux Advanced Routing and Traffic Control

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

 



Hi Stef!

> > I'm trying to shape a traffic to/from a few different subnets using TBF.
> > The way I understand it all I have to do is create a few queueing
> > disciplines and attach a filter to each queueing discipline.
> >
> > So for instance if I want to shape traffic going to 192.168.1.0/24 via eth0
> > to 64kbit then it should look like this:
> >
> > ------------< snip <------< snip <------< snip <------------
> > tc qdisc add dev eth0 root handle 1:0 tbf rate 64kbit burst 4kb latency
> > 100ms peakrate 128kbit mtu 1500
> >
> > tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip dst
> > 192.168.1.0/24
> > ------------< snip <------< snip <------< snip <------------
> >
> > I can't add the filter above and I suspect it is due to
> >
> > a) i can't add filters to tbf queueing disciplines? if so, why not?
> Because the tbf qdisc is classless.  And filter are used to put packets in a 
> child class.  CBQ/HTB are examples of classfull qdiscs.
> You add a tbf qdisc as the root qdisc.  The root qdisc contains ALL packets 
> that are sended.  So you don't need filters.

Ok, so how do you do what I want to do in the example above using the TBF
queuing discipline? All the examples I've seen so far uses CBQ, but that is
not what I want since I don't want to specify the size of my
interface/bandwidth (which is not needed to shape networks).

I obviously need a classful queuing displine so that I can make lots of
sibling classes with filters attached to each one (with each filter's flowid
pointing to a tbf qdisc in that class), but the question then is which
queuing discipline should I use for this "container queueing discipline"?

> > b) i'm confused be the parent x:y and flowid a:b terminology in the filter.
> > When do I use what?
> Parent is the class where you add the filter.  If you have class 10:1 and you 
> want to add a filter to class 10:1, you have to use parent 10:1.
> When the filter matches a packet, it's placed in the class you specify with 
> flowid.  If you have class 10:1 with class 10:10 attached to it and you want 
> to redirect packets to it, you have to specify "parent 10:1 flowid 10:10" in 
> the filter command.

Thanks. This helps a lot. 

-- 

Regards
 Abraham

QOTD:
	"My shampoo lasts longer than my relationships."

___________________________________________________
 Abraham vd Merwe [ZR1BBQ] - Frogfoot Networks
 P.O. Box 3472, Matieland, Stellenbosch, 7602
 Cell: +27 82 565 4451 Http: http://www.frogfoot.net
 Email: abz@frogfoot.net

Attachment: pgp00041.pgp
Description: PGP signature


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