Raw sockets faster than packet generator?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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?

-- 
Regards,
Gallus
--
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

[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux 802.1Q VLAN]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Git]     [Bugtraq]     [Yosemite News and Information]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux PCI]     [Linux Admin]     [Samba]

  Powered by Linux