Freebsd 6.1 traffic shaping problem



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 <metropolitan> to 89.114.47.0/24 queue int_download
pass out quick on $ext_if from 89.114.47.0/24 to <metropolitan> 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.
_______________________________________________
freebsd-isp@xxxxxxxxxxx mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-isp
To unsubscribe, send any mail to "freebsd-isp-unsubscribe@xxxxxxxxxxx"



Relevant Pages

  • cbq not borrowing fully from parent queue
    ... I'm running 6-STABLE using pf and altq/cbq to manage bandwidth on my ... queue internal bandwidth 53104Kb priority 7 cbq ... so it can't borrow from the root queue. ...
    (freebsd-questions)
  • Re: How to shape VoIP traffic on FreeBSD 4.8 router?
    ... I'd also like to give TCP ACK packets a priority boost. ... > traffic without assimilating bandwidth. ... Define 1 pipe for the entire upstream bandwidth. ... add queue 2 ip from any to any not ssh,telnet,ntp out via oif ...
    (comp.unix.bsd.freebsd.misc)
  • Re: pf traffic shaping and perfomance
    ... I would like to implement traffic shaping using pf. ... #queue def bandwidth 13% cbq ... #queue ssh_bulk priority 0 ...
    (freebsd-questions)
  • Re: Quick question about PF and ALTQ
    ... There are three categories of queuing disciples supported by pf. ... priority based queuing ... The altq statement (which interface to work on, how much bandwidth ... "queue" lines that also determine what to do when there is congestion. ...
    (freebsd-questions)
  • Re: mldonkey & traffic shaping -> WWW still slow
    ... queue) and has no prios set up to prioritize traffic. ... Effectively clamps the bandwidth available at the shaping point. ... especially those that send a number of short packets back-n-forth. ... way to test software solutions for effectiveness and usability. ...
    (comp.os.linux.networking)