Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 22 Feb 2006 14:06:45 -0500
From:      Christopher McGee <chris@xecu.net>
To:        Bill Marquette <bill.marquette@gmail.com>
Cc:        freebsd-pf@freebsd.org, Jon Simola <jon@abccomm.com>
Subject:   Re: Hfsc configuration problems
Message-ID:  <43FCB645.5000508@xecu.net>
In-Reply-To: <55e8a96c0602221042re25f819g1e3815384c022590@mail.gmail.com>
References:  <43FC9F63.5070009@xecu.net>	 <8eea04080602220957v46f9d11ev2544e8cbe893365d@mail.gmail.com>	 <43FCA7B8.3090300@xecu.net> <55e8a96c0602221042re25f819g1e3815384c022590@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Bill Marquette wrote:

>On 2/22/06, Christopher McGee <chris@xecu.net> wrote:
>  
>
>>Jon Simola wrote:
>>
>>    
>>
>>>On 2/22/06, Christopher McGee <chris@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@freebsd.org mailing list
>>>>http://lists.freebsd.org/mailman/listinfo/freebsd-pf
>>>>To unsubscribe, send any mail to "freebsd-pf-unsubscribe@freebsd.org"
>>>>
>>>>
>>>>
>>>>        
>>>>
>>I can move the queues to 1 level.  I've even tried.  It seems the
>>problem has something to do with allowing multiple queues to have 90 or
>>100% linkshare.  This is where I'm stuck because I'm just not sure how
>>to make multiple queues all share the same pool without doing it that way.
>>    
>>
>
>Yeah, the link share percentages need to add up to less than 100%. 
>Upperlimit is what you want to set, I've never managed to get
>linkshare to do anything (apparently) useful.
>
>--Bill
>  
>
I might be going about this the wrong way, but, this is ultimately what 
I'm trying to do.  One queue has guaranteed 3Mb, another has a 
guaranteed 4Mb, another has 3Mb guarantee, which leaves about 90Mb as a 
pool for all of them.  If they are backlogged, I want the first 2 queues 
to be able to utilize the entire 90Mb, and the 3rd queue should be able 
to utilize about 25Mb of it.  This is a simplified example of what I 
sent earlier.  But if I can do this, I can accomplish what I'm trying to 
and build off it later.

Chris



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?43FCB645.5000508>