Scalability of ALTQ

Max Laier max at
Wed Jan 12 21:49:57 PST 2005

On Thursday 13 January 2005 01:40, Bernhard Schmidt wrote:
> On 2005-01-12, Bernhard Schmidt <berni at> wrote:
> >> From a very first glance, I think HSFC is what best suits your
> >> application. Here again, you must make sure not to overload your parent
> >> with the client bandwidth.
> >
> > Hrm, I guess I'll just convert a current Packeteer policy to an pf one
> > and have a look whether it loads smoothly. I heard today that we already
> > have a Dell PE750 on stock, I think I'll give it a shot. In the end,
> > a mirrored switchport to the BSD box should be sufficient to test.
> And me again ... I'm now having a problem where I'm not entirely sure
> whether I misunderstood the manpage or there is a bug in the parsing.
> I fell about some errors converting a small subset of our packeteer
> rules to pf. I created a testcase with the following config
> altq on vr1 hfsc bandwidth 5000001b queue { 1, 9999 }
> queue 1 hfsc(red, realtime 5000000b, upperlimit 5000000b) { 2 }
> queue 2 hfsc(red, realtime 4900000b, upperlimit 5000000b) { 3 }
> queue 3 hfsc(red, realtime 4800000b, upperlimit 5000000b) { 4 }
> queue 4 hfsc(red, realtime 4700000b, upperlimit 5000000b)
> queue 9999 hfsc(default, red, realtime 0b, upperlimit 5000000b)
> when loading I get
> pfctl: real-time sc exceeds the interface bandwidth
> pf.conf:3: errors in queue definition
> apparently when using subqueues pf adds up the realtime bandwidth of all
> queues and compares it to the interface bandwidth. To my understanding
> the sum of the bandwidth of all child queues should be compared to the
> direct parent queue. Am I wrong here?
> Of course I could increase the bandwidth parameter on vr1 to something
> really hillariously high, but is this the thing intended?

From the manpage:
>      realtime <sc>
>                  The minimum required bandwidth for the queue.

So this is the guaranteed minimum bandwidth that must be available to the 
queue at any given time.  The makes it clear that the interface must be able 
to provided the combined realtime bandwidth of all child queues.

>      upperlimit <sc>
>                  The maximum allowed bandwidth for the queue.
>      linkshare <sc>
>                  The bandwidth share of a backlogged queue.

That's more what you seem to want.

/"\  Best regards,                      | mlaier at
\ /  Max Laier                          | ICQ #67774661
 X  | mlaier at EFnet
/ \  ASCII Ribbon Campaign              | Against HTML Mail and News
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url :

More information about the freebsd-pf mailing list