From owner-freebsd-pf@FreeBSD.ORG Wed Feb 22 19:07:04 2006 Return-Path: X-Original-To: freebsd-pf@freebsd.org Delivered-To: freebsd-pf@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8E3A516A420 for ; Wed, 22 Feb 2006 19:07:04 +0000 (GMT) (envelope-from chris@xecu.net) Received: from mss2.myactv.net (mss2.myactv.net [24.89.0.27]) by mx1.FreeBSD.org (Postfix) with SMTP id 4C51B43D76 for ; Wed, 22 Feb 2006 19:06:54 +0000 (GMT) (envelope-from chris@xecu.net) Received: (qmail 952 invoked from network); 22 Feb 2006 19:06:54 -0000 Received: from dyn-24-13.myactv.net (HELO ?192.168.1.86?) (24.89.24.13) by mss2.myactv.net with SMTP; 22 Feb 2006 19:06:53 -0000 Message-ID: <43FCB645.5000508@xecu.net> Date: Wed, 22 Feb 2006 14:06:45 -0500 From: Christopher McGee User-Agent: Mozilla Thunderbird 1.0.6 (Windows/20050716) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Bill Marquette References: <43FC9F63.5070009@xecu.net> <8eea04080602220957v46f9d11ev2544e8cbe893365d@mail.gmail.com> <43FCA7B8.3090300@xecu.net> <55e8a96c0602221042re25f819g1e3815384c022590@mail.gmail.com> In-Reply-To: <55e8a96c0602221042re25f819g1e3815384c022590@mail.gmail.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-pf@freebsd.org, Jon Simola Subject: Re: Hfsc configuration problems X-BeenThere: freebsd-pf@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Technical discussion and general questions about packet filter \(pf\)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 22 Feb 2006 19:07:04 -0000 Bill Marquette wrote: >On 2/22/06, Christopher McGee wrote: > > >>Jon Simola wrote: >> >> >> >>>On 2/22/06, Christopher McGee 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