> Any ideas how to modify stack to support multiple Tx queues?
It already has that kind of in the form of arbitary qdiscs. The trick
will be only to do all queueing in the qdisc and keep the hardware
queue length as small as possible. I think today's drivers can
do that already by just plugging the queue most of the time,
unless they really want a packet.
Disadvantage will be more use of CPU time to refill driver
queues, but at the relatively slow WLAN speeds that shouldn't
be a big issue.
BTW the standard qdisc pfifo_fast already has three queues,
selected by the old TOS. That may even be good enough for you
already. Users can fine tune it by using firewall rules
that change the TOS for specific protocols etc.