KUTE -- Kernel-based Traffic Engine
KUTE has been developed to have a maximum performance traffic generator and receiver mainly for use with Gigabit Ethernet. Standard userland tools do not have much performance in terms of packet/s as compared to hardware testers (e.g. Smartbits).
The main reason for this is that user space tools suffer from context switching and the packets must traverse the complete network stack. Another advantage of kernel-based tools is that they can send with more accurately inter packet gaps and more accurately measure packet inter-arrival times.
kute_snd is a UDP packet sender. It is a Linux kernel module which sends packets as fast as possible directly to the hardware driver bypassing the stack. It can generate very high packet rates for a software solution and can be used to test hardware+driver performance performance of receiving stack, routers/switches, middleboxes etc.
kute_rcv is a UDP packet receiver. It is a Linux kernel module which can either hook in at the UDP protocol hook or directly at the receiving routine getting packets from the hardware driver (using a patch supplied in this distribution). The tool will count received packets and measure the packet inter-arrival times. It can accurately measure high packet rates and can be used together with kute_snd for various performance testing.
KUTE works only with Linux 2.6 (tested up to 2.6.16) and so far has been tested only with Ethernet hardware.
We have written a tech report that evaluates the maximum sender and receiver rates and the inter-arrival time accuracy of KUTE. It also compares the results against a similar userspace tool called RUDE/CRUDE.
KUTE 1.4 can be downloaded here.
Old versions of KUTE can be found here.
A predecessor of KUTE for Linux 2.4 can be found here.