Re: [PATCH] bonding: reset queue mapping prior to transmission to physical device
From: Nicolas de Pesloüan <hidden>
Date: 2011-06-02 20:22:13
Le 02/06/2011 22:07, David Miller a écrit :
From: Neil Horman<nhorman@tuxdriver.com> Date: Thu, 2 Jun 2011 14:03:19 -0400quoted
The bonding driver is multiqueue enabled, in which each queue represents a slave to enable optional steering of output frames to given slaves against the default output policy. However, it needs to reset the skb->queue_mapping prior to queuing to the physical device or the physical slave (if it is multiqueue) could wind up transmitting on an unintended tx queue (one that was reserved for specific traffic classes for instance) Signed-off-by: Neil Horman<nhorman@tuxdriver.com>Since, as I mentioned, the idea when we are forwarding and bridging is that we use the input receive classification to influence the spread on transmit, I think things like this bonding case should remember the rxhash setting before they override it and then restore that value right before invoking dev_queue_xmit().
Ok, now I understand. Maybe, using queue mapping for special slave selection wasn't such a good idea at the very beginning, because it pollutes the RX mapping that is expected to be propagated up to TX. Restoring the original value before invoking dev_queue_xmit() would fix this, but I'm not sure it is the cleanest way to do it. Nicolas.