This patch is a port of HFSC from altq to Linux 2.6. HFSC is a
hierarchical packet scheduler which allows flexible resource
allocation by decoupling of bandwidth and delay. The original
version and a paper describing HFSC can be found here:
http://www-2.cs.cmu.edu/~hzhang/HFSC/main.html .
iproute paches, 2.4 patches, tcsim patches and related stuff
are available at http://trash.net/~kaber/hfsc .
I would like to get this mergable, so comments/testing are highly
appreciated. It's running stable on 2.6 for a couple of month,
testing in tcsim and personal experience showed excellent results.
Known issues are:
- requeuing is broken. Currently, packets are requeued to the class
they came from without adjusting (internal) statistics. The easiest
solution is probably a fifo requeue-queue which is always dequeued
first.
- intolerant to user errors: when used with non-work-conserving inner
qdiscs it will crash when the inner qdisc decides not to give out
any packets and q.qlen != 0.
- layout of struct hfsc_class is all but optimal
The last issue is the License: The altq version is released under a
BSD-style License without advertising clause (the original authors
kindly agreed to remove it). It is my understanding that this is
compatible with the GPL, and because the code includes some minor
amounts of GPL'ed code the correct License is GPL and not
Dual BSD/GPL. I would be glad if someone can confirm that this is
correct.
Best regards,
Patrick
linux-2.6.2-rc2-hfsc.diff
Description: Text document
|