From: Patrick McHardy <[EMAIL PROTECTED]> Date: Fri, 22 Jul 2005 04:59:30 +0200
> We have multiple queue states, one for each hardware TX queue. > But instead of multiple qdiscs per device we add a "prio"-argument > to the dequeue-function. The top-level qdisc is dequeued with the > highest active priority and hands out a packet of this priority, or, > if it doesn't support priorities, any packet. The priority of the > dequeued packet is either passed as argument to hard_start_xmit or > stored in skb->priority. This approach has a great advantage over > multiple top-level qdiscs, we can use all the existing classification > stuff, including SO_PRIORITY etc., and non-work-conserving qdiscs > like HTB, HFSC, ... can still be used to enforce bandwidth limits. > It should be possible to implement it in a way that causes only minimal > overhead for devices not supporting multiple TX queues. > > If everyone can agree to this approach I'll hack something up. Sounds OK. What happens if the top-level queue pulls out a packet with a certain priority, and that priority's queue in the device is stopped? Will it look for lower-priority packets and try to send those? All of this kind of logic could result in some ugly loops :) - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html