altq: dynamic queues

Tom Judge tom at tomjudge.com
Mon Feb 4 06:36:04 PST 2008


Guntis Bumburs wrote:
> On Monday 04 February 2008 01:48:40 cnupm wrote:
>> My English is no good, so I tried to describe what I want at this example:
>>
>> ### /etc/pf.conf
>> altq on bge0 bandwidth 10Mb hfsc queue { u1_in, u1_out, u2_in, u2_out...}
>> anchor users_queues
>>
>> block all
>> anchor users_rules
>>
>> ### When user connected - teke parameter $x from DB (for example) and
>> execute:
>> echo "queue u1_in bandwidth 1Kb hfsc (upperlimit $xKb)" | pfctl -a
>> user_queues:u1_in -f -
>> echo "queue u1_out bandwidth 1Kb hfsc (upperlimit $xKb)" | pfctl -a
>> user_queues:u1_out -f -
>> *** ... users_rules... ***
>>
>> I know: it doesn't works - it's simplest way (with my English) to explain
>> what I wont.
>> How to dynamicly create/delete queues?
> 
> Hello,
> 
> It's no possible.
> You can't define queues in anchors.
> 
> ANCHORS
>      Besides the main ruleset, pfctl(8) can load rulesets into anchor attach-
>      ment points.  An anchor is a container that can hold rules, address
>      tables, and other anchors.
> 

What you could do is define X queues to start with and then use the pre 
allocated queues in dynamically added rules.  If you set them up as 
borrow you should be able to get the queues to scale fairly with the 
number of users connected.

Tom


More information about the freebsd-pf mailing list