From owner-freebsd-pf@FreeBSD.ORG Tue Jun 27 12:21:48 2006 Return-Path: X-Original-To: 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 16B6E16A505 for ; Tue, 27 Jun 2006 12:21:48 +0000 (UTC) (envelope-from mclone@gmail.com) Received: from nz-out-0102.google.com (nz-out-0102.google.com [64.233.162.200]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3CF6F43D67 for ; Tue, 27 Jun 2006 12:21:46 +0000 (GMT) (envelope-from mclone@gmail.com) Received: by nz-out-0102.google.com with SMTP id q3so1715337nzb for ; Tue, 27 Jun 2006 05:21:45 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:mime-version:content-type:content-transfer-encoding:content-disposition; b=fFQsqIfGUy3+WDL7qEyFA0jczNOxPkBVNgFYs99X5dVTv9D6fX+4DHBjsWZy3nLyS/clwHBuHriZFkIXzY3ere4yVSCunMzA0pk5MhAici/5WgUbBYcgi2B4omjlimTATr50tu0PohqKtgg/RGR9q00XWcXLTRro6KIZLP0cXqE= Received: by 10.36.224.8 with SMTP id w8mr4283347nzg; Tue, 27 Jun 2006 05:21:45 -0700 (PDT) Received: by 10.36.20.19 with HTTP; Tue, 27 Jun 2006 05:21:45 -0700 (PDT) Message-ID: <451cb3010606270521x506735aep67d18acf95de7b98@mail.gmail.com> Date: Tue, 27 Jun 2006 15:21:45 +0300 From: McLone To: pf@freebsd.org, pf@benzedrine.cx MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Cc: Subject: queueing: give some BW to each addr (in a table)? 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: Tue, 27 Jun 2006 12:21:48 -0000 Hello. I work for small isp, and we want to make customer plan look like this: client A has N kbits/s while business day; he has N*2 kbits/s at night and weekends; and we guarantee to him minimum speed of N/2. (we also buying our main uplink BW according to this formula) We have many clients here, so i wanted to do it on my freebsd6 router, with simple cron job switching tables in PF, but pf doesn't support a thing like "give EACH ip in that table N kbits/s". So i thought i will be able to do it using anchors for pass rules AND for queues (many subqueues, every client has one). But, unfortunately, PF in freebsd6.1 and in openbsd3.9 does not support anchors in queue declarations (i looked at man page). So i have one option now - write some pf.conf preprocessor, with soem frontend to edit it. Also i have two feature suggestions (i'd be happy to see just one of them implemented): a) make pf+altq able to do things like =============== >8 ===== table persist { ip-one; ip-two; ... queue int_cli512 bandwidth 8192Kb priority 2 \ cbq(ecn rio each=512Kb) ... pass out quick on $int_if to keep state \ queue int_cli512 ===== 8< =============== b) make anchors work also for queues, not only for rdr, nat and filtering rules p.s. i used cbq in example, but i need hfsc here, so if someone has a good documentation on hfsc, please let me know where i can find it. (i grok some hfsc only with this list archive's help) Also, i may be on totally wrong way, and things i need can be done in some other way i missed?... -- wbr, |\ _,,,---,,_ dog bless ya! ` Zzz /,`.-'`' -. ;-;;,_ McLone at GMail dot com |,4- ) )-,_. ,\ ( `'-' , net- and *BSD admin '---''(_/--' `-'\_) ...translit rawx