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.
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@inventum.cc> 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. > >-- Bla bla _______________________________________________ LARTC mailing list / LARTC@mailman.ds9a.nl http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/
> 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@inventum.cc> 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 limitbandiwdth> > based on protocols (http, smtp etc) > > Then there are users classes which rate limit each user to a specificrate.> > > > Each Box Level and User Classes have associated Qdiscs as well. > > > > The issue is that HTB seems to be rate limiting only if I attachfilters at> > the root (1:). > > > > Since classification for box level classes may also match morespecific> > user filters are well, one of the two things happen: > > > > 1. If the prio of the filters for Box level is higher or equal thanthat of> > Users, packets are only sent to the box level class, and since therate at> > box level class is generally higher, the user starts exceeding hislimit.> > 2. If the prio of the User filter is higher, packets matching theuser> > filter are never sent to the Box level classes, making the box levelrate> > for a particular protocol exceed the required for all users puttogether.> > > > Is there a solutions to this issue? I am unable to really find asolution> > 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
Maybe Matching Threads
- tc-htb traffic shaping script
- Shaping incoming traffic on the other interface
- how to setup massive traffic shaping? (2 class B nets)
- Looking for a good htb traffic shaping script to prioritize incoming traffic
- Traffic Shaping multiple incoming broadband sources?