Implementation details of altq hfsc scheduler in pf 4.5

RW rwmaillists at
Sun Dec 18 14:08:50 UTC 2011

On Thu, 15 Dec 2011 12:52:15 -0500
Maxim Khitrov wrote:

> On Tue, Dec 13, 2011 at 8:15 AM, RW <rwmaillists at>
> wrote:

> > It's about latency, realtime has priority over non-realtime.
> I sort of understand this, but I can't figure out how that would apply
> to my example:
> altq on $wan hfsc bandwidth 25Mb queue {one, two}
> queue one bandwidth 70% hfsc(default, realtime 20%)
> queue two bandwidth 30% hfsc(realtime 60%)
> If realtime and linkshare priorities are reversed, what happens as
> total bandwidth utilization approaches 100%?

It would presume that each queue gets its realtime 60% and  20%, and
the other 20% would be used to get the overall ratio as close as
possible to 70:30, which would mean a 60:40 split. I'm not sure though,
but you could test it experimentally.

> >> 2. In service curve configuration (m1, d, m2), what is 'd' relative
> >> to?
> >
> > It looks like it's a leaky-bucket algorithm. It's not really
> > relative to anything except for special cases like a traffic
> > step-function.
> Can you please clarify what you mean? I'm familiar with the leaky
> bucket algorithm, but it still doesn't answer what triggers the switch
> from m1 to m2 and whether it's a per-queue or per-connection setting.

It would be a dual bucket or something equivalent. The switch would be
controlled by the level in the larger bucket.

More information about the freebsd-questions mailing list