From owner-freebsd-isp@FreeBSD.ORG Sun Jul 9 09:51:54 2006 Return-Path: X-Original-To: freebsd-isp@freebsd.org Delivered-To: freebsd-isp@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 950D616A4DD for ; Sun, 9 Jul 2006 09:51:54 +0000 (UTC) (envelope-from mlmarius@yahoo.com) Received: from web56405.mail.re3.yahoo.com (web56405.mail.re3.yahoo.com [216.252.111.84]) by mx1.FreeBSD.org (Postfix) with SMTP id 3FF5043D72 for ; Sun, 9 Jul 2006 09:51:47 +0000 (GMT) (envelope-from mlmarius@yahoo.com) Received: (qmail 98065 invoked by uid 60001); 9 Jul 2006 09:51:47 -0000 DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.com; h=Message-ID:Received:Date:From:Subject:To:MIME-Version:Content-Type:Content-Transfer-Encoding; b=2EPOOK8JFH8MIjnhhrBYLp32Fq2rKeOkOEqtdANzbB4swpiEocGhOTVDnHo+HqsQ0irvFOvQuB+hL38ot7hwKGGq53x0ee2QJDmaePRdQeUg8o6A6ADnw1DifBoCToiXg6c9J/ys3+1FW3tQZJXT/6bhaOxV7ndh9K/sDH/mgq0= ; Message-ID: <20060709095147.98063.qmail@web56405.mail.re3.yahoo.com> Received: from [89.114.47.9] by web56405.mail.re3.yahoo.com via HTTP; Sun, 09 Jul 2006 02:51:47 PDT Date: Sun, 9 Jul 2006 02:51:47 -0700 (PDT) From: Liviu To: freebsd-isp@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Subject: Freebsd 6.1 traffic shaping problem X-BeenThere: freebsd-isp@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Internet Services Providers List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 09 Jul 2006 09:51:54 -0000 Hello . I have set up traffic shaping for my LAN as follows : ext_if="rl0" int_if="rl1" net_dload_realtime="1Kb" metro_dload_realtime="10Kb" net_dload_upperlimit="(512Kb 5000 256Kb)" metro_dload_upperlimit="50Mb" scrub in all altq on $int_if hfsc bandwidth 90Mb queue { ext_download, int_download, def_download } queue int_download bandwidth 88Mb hfsc(upperlimit 88Mb) queue def_download bandwidth 64Kb hfsc(default, upperlimit 64Kb) queue ext_download bandwidth 1Mb hfsc {xd_nake,xd_victor,xd_slash,xd_petre,xd_vera,xd_glontu,xd_razvan,xd_badea\ ,xd_bianca,xd_alina,xd_andrei,xd_alecsan,xd_giginelu,xd_valentin,xd_edi,xd_nicu,xd_kaos,xd_virgild13,xd_sebastian\ ,xd_flo,xd_gxg,xd_cristian,xd_k2,xd_simona,xd_pig,xd_liviupm,xd_carmen,xd_florin,xd_claudiu,xd_felicia,xd_laurentiu\ ,xd_andreiparter,xd_danpm,xd_mari,xd_radud10,xd_adi,xd_gabipm11,xd_slv,xd_alex,xd_john,xd_nicoleta,xd_elena1,xd_aura\ ,xd_valipenes,xd_dabulache,xd_fleoarca,xd_bogdand11,xd_traian,xd_georgiana,xd_gabi4,xd_cheyene,xd_dorupm5,xd_picky\ ,xd_parterd13,xd_radu,xd_florinflo,xd_alica,xd_elena2,xd_cristid12,xd_gelu,xd_flavius,xd_anamaria} queue xd_nake bandwidth 10b hfsc(realtime $net_dload_realtime, upperlimit $net_dload_upperlimit) queue xd_victor bandwidth 10b hfsc(realtime $net_dload_realtime, upperlimit $net_dload_upperlimit) ....... and here are all the other queues ... for download altq on $ext_if hfsc bandwidth 90Mb queue { ext_upload, int_upload, def_upload } queue def_upload bandwidth 64Kb hfsc(default, upperlimit 64Kb) queue int_upload bandwidth 88Mb hfsc(upperlimit 88Mb) queue ext_upload bandwidth 1Mb hfsc {xu_nake,xu_victor,xu_slash,xu_petre,xu_vera,xu_glontu,xu_razvan,xu_badea,xu_bianca\ ,xu_alina,xu_andrei,xu_alecsan,xu_giginelu,xu_valentin,xu_edi,xu_nicu,xu_kaos,xu_virgild13,xu_sebastian,xu_flo,xu_gxg\ ,xu_cristian,xu_k2,xu_simona,xu_pig,xu_liviupm,xu_carmen,xu_florin,xu_claudiu,xu_felicia,xu_laurentiu,xu_andreiparter\ ,xu_danpm,xu_mari,xu_radud10,xu_adi,xu_gabipm11,xu_slv,xu_alex,xu_john,xu_nicoleta,xu_elena1,xu_aura,xu_valipenes\ ,xu_dabulache,xu_fleoarca,xu_bogdand11,xu_traian,xu_georgiana,xu_gabi4,xu_cheyene,xu_dorupm5,xu_picky,xu_parterd13\ ,xu_radu,xu_florinflo,xu_alica,xu_elena2,xu_cristid12,xu_gelu,xu_flavius,xu_anamaria} queue xu_nake bandwidth 10b hfsc(realtime $net_dload_realtime, upperlimit $net_dload_upperlimit) queue xu_victor bandwidth 10b hfsc(realtime $net_dload_realtime, upperlimit $net_dload_upperlimit) #.... and here are all the other queues for upload #at the end of the main pf.conf file i have the redirrection to the queues like this : pass out quick on $int_if from to 89.114.47.0/24 queue int_download pass out quick on $ext_if from 89.114.47.0/24 to queue int_upload anchor extern_download from any to 89.114.47.0/24 anchor extern_upload from 89.114.47.0/24 to any #metropolitan is a table that i get from my ISP and it contains all the subnets that are in their metropolitan area ( i have 100Mb with those that's why i want to separate ) # i have 2 anchor files that i load manually after i start pfctl -f pf.conf . The anchor files look like this : # extern_download : int_if="rl1" pass out quick on $int_if from any to 89.114.47.2 queue xd_nake pass out quick on $int_if from any to 89.114.47.5 queue xd_victor pass out quick on $int_if from any to 89.114.47.6 queue xd_slash # .... all the other queues go here #extern_upload : int_if="rl1" pass in quick on $int_if from 89.114.47.2 to any queue xu_nake pass in quick on $int_if from 89.114.47.5 to any queue xu_victor pass in quick on $int_if from 89.114.47.6 to any queue xu_slash #.... all the other queues go here As you can see i have a queue in witch all the metropolitan traffic goes ( indifferent of the client that the traffic belongs to ) and separate extern queues for eatch client . The problem is : When i first start my home computer and attempt to download from extern , apparently the limitations don't work for a few secconds . ( i can get up the 1Mb download from com while my max queue limit is set up to 512Kb ) . After a few secconds my download rate from extern drops to 0 and it stays that way for another few secconds . After that traffic resumes as intended ( with the limitations that I want ) . ? My question is : how do i make it allocate the right bandwidth from the start ? Some observations : - i have had to modify the queue limit in file altq_hfsc.h because i wasn't able to create more than 64 queues at fisrst #define HFSC_MAX_CLASSES 512 - i am not doing any kind of NAT - even when i exceed my upperlimit the traffic goes to the right queue because i am looking with pftop ( the 8 view witch shows the dequeue rate of my queues ) and i see that my queue is dequeueing at a rate higher than the rate that i've set up ) --------------------------------- How low will we go? Check out Yahoo! Messenger’s low PC-to-Phone call rates.