Hi,
Does anyone have any idea why I can't do this anymore?
queue trunk_root on $if_trunk bandwidth $downstream
queue qlocal on $if_trunk parent trunk_root bandwidth 99%
queue local_kern on $if_trunk parent qlocal bandwidth 1% min 1%
queue local_pri on $if_trunk parent qlocal bandwidth 4% min 4%
queue local_data on $if_trunk parent qlocal bandwidth 95% min 50%
queue qwan on $if_trunk parent trunk_root bandwidth 1%
queue wan_rt on $if_trunk parent qwan bandwidth 20% min 10% burst 40%
for 5000ms
queue wan_int on $if_trunk parent qwan bandwidth 10% min 5%
queue wan_pri on $if_trunk parent qwan bandwidth 10% min 5% burst 20%
for 2000ms
queue wan_vpn on $if_trunk parent qwan bandwidth 25% min 25%
queue wan_web on $if_trunk parent qwan bandwidth 10% min 5% burst 10%
for 3000ms
queue wan_dflt on $if_trunk parent qwan bandwidth 10% min 5% burst 10%
for 5000ms
queue wan_bulk on $if_trunk parent qwan bandwidth 10% max 25% default
This used to work with the old syntax, and meant I can use the same queue
structure everywhere and I only have to define the total bandwidth and then
the relative percentages take from their parent etc..
Cheers, Andy.
On 24 Feb 2015, at 15:26, Andy Lemin <[email protected]> wrote:
> Hi,
>
> Hopefully this is just a quick question and I'm missing something here, but
it
> seems that we can no longer use percentages in our PF child queues.
>
> For example;
> This:-
> altq on $if_trunk bandwidth 4294Mb hfsc queue { _local, _wan }
> oldqueue _local on $if_trunk bandwidth 4100Mb priority 4 hfsc(linkshare
> 4100Mb, upperlimit 4100Mb) { local_kernel, local_pri, local_data }
> oldqueue local_kernel on $if_trunk bandwidth 1% qlimit 100 priority
7
> hfsc(realtime 1%, linkshare 1%)
> oldqueue local_pri on $if_trunk bandwidth 10% qlimit 100 priority 4
> hfsc(realtime 10%, linkshare 10%)
> oldqueue local_data on $if_trunk bandwidth 89% qlimit 100 priority 0
> hfsc(linkshare 89%)
> oldqueue _wan on $if_trunk bandwidth 190Mb priority 15 hfsc(linkshare
> 190Mb, upperlimit 190Mb) { wan_rt, wan_int, wan_pri, wan_vpn, wan_web,
> wan_dflt, wan_bulk }
> oldqueue wan_rt on $if_trunk bandwidth 20% priority 7 qlimit 100
> hfsc(realtime(20%, 5000, 10%), linkshare 20%)
> oldqueue wan_int on $if_trunk bandwidth 10% priority 5 qlimit 200
> hfsc(realtime 5%, linkshare 10%)
> oldqueue wan_pri on $if_trunk bandwidth 10% priority 4 qlimit 300
> hfsc(realtime(15%, 2000, 5%), linkshare 10%)
> oldqueue wan_vpn on $if_trunk bandwidth 30% priority 3 qlimit 300
> hfsc(realtime 15%, linkshare 30%)
> oldqueue wan_web on $if_trunk bandwidth 10% priority 2 qlimit 500
> hfsc(realtime(10%, 3000, 5%), linkshare 10%)
> oldqueue wan_dflt on $if_trunk bandwidth 15% priority 1 qlimit 100
> hfsc(realtime(10%, 5000, 5%), linkshare 15%, ecn, default)
> oldqueue wan_bulk on $if_trunk bandwidth 5% priority 0 qlimit 100
> hfsc(linkshare 5%, upperlimit 30%, ecn, red)
>
>
> Now has to be written like this:-
> queue trunk_root on $if_trunk bandwidth 4294M
> queue qlocal on $if_trunk parent trunk_root bandwidth 4.1G
> queue local_kern on $if_trunk parent qlocal bandwidth 6M min 6M
> queue local_pri on $if_trunk parent qlocal bandwidth 80M min 80M
> queue local_data on $if_trunk parent qlocal bandwidth 4G min 1G
> default
> queue qwan on $if_trunk parent trunk_root bandwidth 190M
> queue wan_rt on $if_trunk parent qwan bandwidth 38M min 19M burst
38M
> for 5000ms
> queue wan_int on $if_trunk parent qwan bandwidth 19M min 9M
> queue wan_pri on $if_trunk parent qwan bandwidth 19M min 10M burst
25M
> for 2000ms
> queue wan_vpn on $if_trunk parent qwan bandwidth 50M min 25M
> queue wan_web on $if_trunk parent qwan bandwidth 19M min 10M burst
19M
> for 3000ms
> queue wan_dflt on $if_trunk parent qwan bandwidth 19M min 10M burst
> 19M for 5000ms
> queue wan_bulk on $if_trunk parent qwan bandwidth 20M max 50M
>
> It looks simpler to read and should be easier for people to get used to,
but
> not being able to use percentages really affects us.
>
>
> We use "Puppet" to deploy *many* firewalls around the world, all with
> different bandwidth available to them, but with nearly identical PF files.
So
> we deploy the PF files as a common template and each site just defines a
few
> simple site specific variables to define the downstream and upstream
bandwidth
> like this;
> altq on $if_lan bandwidth 970Mb hfsc queue { lan_local, lan_wan }
> queue lan_local bandwidth 880Mb priority 4 hfsc(upperlimit 881Mb) {
> lan_local_kernel, lan_local_data }
> queue lan_local_kernel bandwidth 1% priority 4 hfsc(realtime
> 1%)
> queue lan_local_data bandwidth 99% priority 1 hfsc
> queue lan_wan bandwidth $downstreambw priority 7 hfsc(linkshare
> $downstreambw, upperlimit $downstreambw) { lan_wan_rt, lan_wan_int,
> lan_wan_pri, lan_wan_vpn, lan_wan_web, lan_wan_dflt, lan_wan_bulk }
> queue lan_wan_rt bandwidth 20% priority 7 qlimit 150
> hfsc(realtime(40%, 2500, 20%), linkshare 20%)
> queue lan_wan_int bandwidth 10% priority 5 qlimit 200
> hfsc(realtime 5%, linkshare 10%)
> queue lan_wan_pri bandwidth 20% priority 4 qlimit 300
> hfsc(realtime 5%, linkshare 20%)
> queue lan_wan_vpn bandwidth 10% priority 3 qlimit 300
> hfsc(realtime 5%, linkshare 10%)
> queue lan_wan_web bandwidth 20% priority 2 qlimit 500
> hfsc(realtime(10%, 3000, 5%), linkshare 20%)
> queue lan_wan_dflt bandwidth 10% priority 1 qlimit 100
> hfsc(realtime(20%, 3000, 5%), linkshare 10%, default)
> queue lan_wan_bulk bandwidth 5% priority 0 qlimit 200
> hfsc(upperlimit 20%, linkshare 5%)
>
>
> How can we use percentages again?
>
> Hoping I'm just being a bit stupid..
> Cheers, A