> PJ Waskiewicz wrote: > > +#ifdef CONFIG_NET_SCH_MULTIQUEUE > > + if (q->mq) > > + skb->queue_mapping = > > + > q->prio2band[band&TC_PRIO_MAX]; > > + else > > + skb->queue_mapping = 0; > > +#endif > > > Setting it to zero here is wrong, consider: > > root qdisc: prio multiqueue > child qdisc: prio non-multiqueue > > The top-level qdisc will set it, the child qdisc will unset it again. > When multiqueue is inactive it should not touch it. > > I'll fix that as well.
But the child can't assume the device is multiqueue if the child is non-multiqueue. This is the same issue with IP forwarding, where if you forward through a multiqueue device to a non-mq device, you don't know if the destination device is multiqueue. So the last qdisc to actually dequeue into a device should have control what the queue mapping is. If a user had a multiqueue qdisc as root, and configured a child qdisc as non-mq, that is a configuration error if the underlying device is indeed multiqueue IMO. -PJ - 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