I've been looking through the source code for the kernel packet scheduler, and I'm pretty sure I could code what I want manually, if necessary, but I'd love to know if it is possible without recompiling the kernel.
I'm using and RT-N66U router running the Tomato r105 firmware from http://tomato.groov.pl/download/K26RT-N/.
Can I set up a QoS algorithm using tc, without recompiling the kernel, to share bandwidth evenly between computers on the internal network?
Specifically, I'd like a single FIFO queue for every IP on the internal network, and to have packets processed round-robin from those queues (such that, if only one computer is on the network, it can use 100% of the bandwidth, but if more are active, no one user will be able use all of it).
Importantly, each user's share of bandwidth should include incoming and outgoing packets.
It looks like this might be possible with ESFQ, but I'd love some help if anyone knows how to achieve this.