Re: Complex Traffic shaping setup

Linux Advanced Routing and Traffic Control

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

 




> I'm not sure if you have to use different prio for filters (With fw
> this is a must). Depends on your setup.
> With htb, everything is attached with parent as root qdisc.
>
>
> On Fri, 18 Feb 2005 18:27:26 +0530, Padam J Singh
> <padam.singh@xxxxxxxxxxx> wrote:
> >  Hi!
> >  
> >  
> >  I have the following setup using iproute2:
> >  
> >  ========
> >  | Root |
> >  ========
> >      |
> >      |           ===============
> >      ------------| Box Level 1 |
> >      |           ===============
> >      |
> >      |           ===============
> >      ------------| Box Level 2 |
> >      |           ===============
> >      |
> >      |
> >      |           ===============
> >      ------------|    Users    |
> >                  ===============
> >                         |
> >                         |           ===============
> >                         ------------|    User 1   |
> >                         |           ===============
> >                         |
> >                         |           ===============
> >                         ------------|    User 2   |
> >                         |           ===============
> >                         |
> >                         |           ===============
> >                         ------------|     User 3  |
> >                                     ===============
> >  
> >  
> >  I am using HTB for each node, simply because it supports burst mode.
> >  
> >  There are box level classes (top level classes) that might limit bandiwdth
> > based on protocols (http, smtp etc)
> >  Then there are users classes which rate limit each user to a specific rate.
> >  
> >  Each Box Level and User Classes have associated Qdiscs as well.
> >  
> >  The issue is that HTB seems to be rate limiting only if I attach filters at
> > the root (1:).
> >  
> >  Since classification for box level classes may also match more specific
> > user filters are well, one of the two things happen:
> >  
> >  1. If the prio of the filters for Box level is higher or equal than that of
> > Users, packets are only sent to the box level class, and since the rate at
> > box level class is generally higher, the user starts exceeding his limit.
> >  2. If the prio of the User filter is higher, packets matching the user
> > filter are never sent to the Box level classes, making the box level rate
> > for a particular protocol exceed the required for all users put together.
> >  
> >  Is there a solutions to this issue? I am unable to really find a solution
> > since filters can only be applied to the root!
> >  
> >  Thanks in advance!
> >  Padam Singh.
> >  
> >

The filters get attached to the root, then use the flowid to determine the destination priority on the HTB.

tc class add dev $e parent 10:1 classid 10:10 htb rate $citrix ceil $nonVoipRate
tc class add dev $e parent 10:1 classid 10:20 htb rate $video ceil $nonVoipRate

tc filter add dev $e protocol ip parent 10: prio 1 u32 match ip src $CONNECTRIA1/32 flowid 10:10

tc filter add dev $e protocol ip parent 10: prio 1 u32 match ip sport 1720 0xffff flowid 10:20
tc filter add dev $e protocol ip parent 10: prio 1 u32 match ip dport 1720 0xffff flowid 10:20
etc...

-Ron

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