Gallus/all, can somebody share some code or give me some hints on how to use raw sockets inside the kernel ? Also directly using dev->hard_start_xmit would be appreciated very much. I'm unable to use this after moving forward from 2.6.19 to 2.6.27. Regards, André On Thu, 2009-06-18 at 23:20 +0200, Gallus wrote: > Hi, > I'm trying to sent packets through different interfaces handled by the > same network driver (Intel e1000e). The interfaces are located on the > same card as well as on different cards. > > Each interface has its own instance of my additional custom driver > designed to just send packets. The custom driver just allocs the > packets by: > skb = dev_alloc_skb(packet->len); > > and then sends them by: > result = dev->hard_start_xmit(skb,dev); > > The problem is that I cant obtain full bandwidth offered by the 1GB interfaces. > For one interface I get: 120435948 bytes/sec. > For two interfaces I get: 61080233 bytes/sec and 60515294 bytes/sec. > For three interfaces I get: 28564020 bytes/sec, 27111184 bytes/sec, > 27118907 bytes/sec. > > And, if I use raw sockets (not the custom pktgen-like driver) to send > packets, I'm able to utilize full bandwidth (120*10^6bps) on all four > interfaces. > > What can be the problem? It looks like some bottleneck inside network > subsystem, right under hard_start_xmit? IRQs? Locking? > MATRIX VISION GmbH, Talstra� 16, DE-71570 Oppenweiler Registergericht: Amtsgericht Stuttgart, HRB 271090 Gesch�sf� Gerhard Thullner, Werner Armingeon, Uwe Furtner, Hans-Joachim Reich -- To unsubscribe from this list: send the line "unsubscribe linux-net" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html