On Thu, 4 Feb 2016 12:45:23 +0100 "Peter N. M. Hansteen" <pe...@bsdly.net> wrote:
> On 02/04/16 12:19, Marko Cupać wrote: > > > If you need something more advanced, like granting minimum bandwidth > > with the ability to borrow from other queues up to maximum bandwidth > > when other queues are empty, I am afraid you won't be able to do it > > with current queueing system. However, I'm still hoping one of > > these days someone will prove me wrong. > > I'm a little curious about what you're basing this assertion on? > > As in, can you point us to benchmarks or other tests that indicate > that hfsc queueing (which is the algorithm underlying the post-5.5 > traffic shaping) with variable allocations does not work? > > Child queues with variable allocations (min and bandwith not equal to > max or burst) can never exceed the parent queue's allocation, but > using the min, max and burst parameters as documented in the queueing > section of pf.conf(5) should indeed influence observed results /when > one or more queues approach a threshold that triggers shaping/. > > If you can come up with measurements that show the mechanism is > defective, I'm sure a bug report would be appreciated. Let's say I have the following setup: ---cut-here--- queue download on $int_if bandwidth 10M min 10M max 10M queue host1 parent download bandwidth 5M min 5M max 10M queue host2 parent download bandwidth 5M min 5M max 10M default match out on $int_if to $host1 set queue host1 match out on $int_if to $host2 set queue host2 pass out on $int_if ---cut-here--- I guess it should be obvious what I want to achieve: If both hosts request max bandwidth at the same time, throttle them both to 5M. While host2 sits idle, give host1 10M. If host2 requests max bandwidth while host1 downloads at 10M, throttle host1 to 5M and give host2 5M. Would getting the different outcome (such as not throttling active host1's active transfer from 10M to 5M, and grant host2 5M when it requests max bandwidth) count as proof for defective mechanism? Regards, -- Before enlightenment - chop wood, draw water. After enlightenment - chop wood, draw water. Marko Cupać https://www.mimar.rs/