Tommy Christensen wrote: > Ben Greear wrote: > >> You can't send shared skbs regardless, because the vlan Xmit changes >> the skb->dev at least, so >> you just have to set the multi-skb setting in pktgen to 0 so that it >> does not >> share when using VLANs. > > > By sheer accident, this would actually work! Nevertheless, the code > should obviously handle this correctly (whatever that means?!). It definately crashed on my system when I tried it, so I don't think it actually works. Think about a SMP system where pktgen is re-sending the same pkt while the other CPU is handling the previous send..or something like that. The fact that skb->dev is changing cannot be healthy. From what I can tell, a net-devices hard_start_xmit method must either return 0 and consume the skb, or return a non-zero value and not consume the skb. Since we can detect immediate drops due to the dev_queue_xmit call failing, I don't see how it can hurt anything to preserve the skb and return the error code. Code that cares about retransmitting can, and if it doesn't, it can just delete the skb. I believe this is the same as the case where the e1000 does not show netif_queue_stopped() but still returns failure when you try the hard_start_xmit. I know that this case will probably eventually be fixed, but the fact that it *does* work leads me to believe I can get away with what I'm trying to do with VLANs. -- Ben Greear <greearb@xxxxxxxxxxxxxxx> Candela Technologies Inc http://www.candelatech.com