Hfsc configuration problems

Jon Simola jon at abccomm.com
Wed Feb 22 09:57:40 PST 2006


On 2/22/06, Christopher McGee <chris at xecu.net> wrote:
> I've been trying to get hfsc working properly, but I'm obviously doing
> something wrong because I keep getting errors like this:
>
> pfctl: link-sharing sc exceeds parent's sc

Yeah, the percentages in link-sharing are calculated against the
physical interface, but bandwidth is against the parent queue
(usually).

Here's my working sample, which does not make any great sense either.
I had just started playing with upperlimit, which should be settable
on multiple queues.

# backbone queueing
altq on em0 hfsc bandwidth 100Mb queue { q_em0_high, q_em0_high_bulk,
q_em0_med, q_em0_med_bulk, q_em0_low, q_em0_low_bulk }
queue q_em0_high bandwidth 10% hfsc(linkshare 1%) priority 7
queue q_em0_high_bulk bandwidth 40% hfsc(linkshare 4%) priority 6
queue q_em0_med bandwidth 10% hfsc(linkshare 1%) priority 5
queue q_em0_med_bulk bandwidth 20% hfsc(linkshare 2%) priority 4
queue q_em0_low bandwidth 10% hfsc(linkshare 1%) priority 1
queue q_em0_low_bulk bandwidth 10% hfsc(linkshare 1% default) priority 0

# vlan trunk queueing
altq on em1 hfsc(ecn upperlimit 500Mb) queue { q_cust, q_dmz }
queue q_cust hfsc(ecn realtime 2Mb upperlimit 40Mb ) \
  { q_cust_h, q_cust_hb, q_cust_m, q_cust_mb, q_cust_l, q_cust_lb }
queue   q_cust_h bandwidth 10% hfsc(linkshare 1%) priority 5
queue   q_cust_hb bandwidth 40% hfsc(linkshare 4%) priority 4
queue   q_cust_m bandwidth 10% hfsc(linkshare 1%) priority 4
queue   q_cust_mb bandwidth 20% hfsc(linkshare 2%) priority 2
queue   q_cust_l bandwidth 10% hfsc(linkshare 1%) priority 1
queue   q_cust_lb bandwidth 5% hfsc(linkshare 1% default) priority 0
queue q_dmz hfsc(ecn realtime 50Mb upperlimit 90Mb) \
  { q_dmz_h, q_dmz_hb, q_dmz_l, q_dmz_lb }
queue   q_dmz_h bandwidth 10% hfsc(linkshare 5%) priority 7
queue   q_dmz_hb bandwidth 40% hfsc(linkshare 10%) priority 4
queue   q_dmz_l bandwidth 10% hfsc(linkshare 2%) priority 3
queue   q_dmz_lb bandwidth 20% hfsc(linkshare 5% ) priority 0


> Here's my current configuration:
>
> altq on $ext_if bandwidth 100Mb hfsc queue { queue1, queue2, queue3 }
> queue queue1 bandwidth 500Kb priority 7 hfsc(realtime 128Kb red)
> queue queue2 { queue2_1, queue2_2, queue2_3, queue2_4, queue2_5 }
>   queue queue2_1 priority 5 hfsc(realtime 3Mb linkshare 100% default red)
>   queue queue2_2 bandwidth 1.5Mb priority 3 hfsc(red)
>   queue queue2_3 bandwidth 1Mb hfsc(red)
>   queue queue2_4 bandwidth 4Mb hfsc(red)
>   queue queue2_5 priority 3 hfsc(linkshare 100% red)
> queue queue3 { queue3_1, queue3_2 }
>   queue queue3_1 hfsc(linkshare 100% red)
>   queue queue3_2 hfsc(linkshare 100% red)
>
> I've given some minimum bandwidth to queues. I want queue2_1, 2_5, 3_1,
> 3_2 to be able to utilize all of the spare bandwidth when they need it.
> I've read over the man pages, however, documentation on hfsc seems
> fairly limited.
>
> Chris
> _______________________________________________
> freebsd-pf at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-pf
> To unsubscribe, send any mail to "freebsd-pf-unsubscribe at freebsd.org"
>


--
Jon Simola
Systems Administrator
ABC Communications


More information about the freebsd-pf mailing list