On 11/07/2015 08:06 PM, Eric Dumazet wrote:
On Sat, 2015-11-07 at 10:53 -0800, Eric Dumazet wrote:
Well, imagine following scenario (a real one, as I use it all of time,
thus how I discovered all trafgen traffic ends up on one slave only)
Even if qdisc is bypassed on the bond0, the current handling does not
prevent going to the slave qdiscs.
So it is not clear to me why we do a selective probe depending on the
bypass of first qdisc.
Presumably the transport_header only needs to be set for gso packets in
some drivers (look at igbvf_tso() for example)
It looks like we might need an audit and/or some guidelines/fixes.
Hmm, yeah, on a (only quick) look, it seems this is mostly needed for the
virtio_net related code in packet_snd() / packet_recvmsg(), not handled in
RX/TX ring paths actually.
$ git grep -n gso_size net/packet/
net/packet/af_packet.c:2748: if (vnet_hdr.gso_size == 0)
net/packet/af_packet.c:2825: skb_shinfo(skb)->gso_size =
net/packet/af_packet.c:2826: __virtio16_to_cpu(vio_le(),
vnet_hdr.gso_size);
net/packet/af_packet.c:3219: vnet_hdr.gso_size =
net/packet/af_packet.c:3220:
__cpu_to_virtio16(vio_le(), sinfo->gso_size);
Need to take a closer look on Monday.
--
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