Date: Wed, 10 Oct 2007 09:56:01 +1000 (EST) From: Andrew <andrew@ugh.net.au> To: freebsd-pf@freebsd.org Subject: HFSC and what the parameters mean Message-ID: <20071010014130.K98290@starbug.ugh.net.au>
next in thread | raw e-mail | index | archive | help
I'm trying to make sure I understand the meaning of bandwidth, realtime and linkshare when it comes to hfsc queues. Given the lines: altq on $up_int bandwidth 98Mb hfsc queue { ex_q1, ex_q2 } queue ex_q1 bandwidth 90% priority 6 hfsc(realtime 80% linkshare 90%) queue ex_q2 bandwidth 10% priority 5 hfsc(realtime 0% linkshare 10% default) My understanding is the bandwidth declaration on line 1 (the altq line) sets the total available bandwidth for altq to use. It will never send out traffic faster than this. In this case I have set it to 98Mb, being my (optimistic?) guess at the usable bandwidth on 100Mb ethernet. The bandwidth parameter on the ex_q lines, from my reading on the pf.conf man page sets the maximum bandwidth this child queue can use. This can't add up to more than 100%. Given that, if I wanted to have 2 queues, both of which could use 100% of the bandwidth but one given priority in case of congestion what value should I use here? I saw somewhere that in the case of hsfc that this bandwidth statement was an alias for the linkshare setting so that would mean the comment in the man page doesn't apply when using hfsc? realtime is the minimum amount of bandwidth this queue should be provided with. linkshare is the amount of the packet queue (the queue reffered to by the qlimit option) that will be used for this queue if congestion occurs and packets need queueing. priority controls the order in which packets are dequeued from the packet queue. That should mean that the above config lines create 2 queues - ex_q1 and ex_q2. Traffic in queue 1 gets to use 80% of the 98Mb of available bandwidth regardless of how much other traffic there may be. Traffic in queue 2 gets no guarentees but can use any bandwidth that is otherwise unused. How is the share of the remaining 20% divided? As the priority of queue 1 is higher (and the question only comes into play when there is more traffic than bandwidth) queue 1 should always get the bandwidth so is this not the same as setting realtime parameter to 100%? Thanks, Andrew
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20071010014130.K98290>